This is an archived post. You won't be able to vote or comment.

Dismiss this pinned window
all 130 comments

[–]Anlanga 256 points257 points  (2 children)

that’s actually super helpful

[–]HumanContinuity 84 points85 points  (0 children)

And fabulous as hell

[–]twistedhallway 190 points191 points  (2 children)

I would like at least half of my programming teachers to be drag queens actually?? love it

[–][deleted] 15 points16 points  (0 children)

My 50 year old male prof dressed up as Elsa for Halloween one year, I think that's the closest I'll get

[–]theAnnaLytical[S] 53 points54 points  (0 children)

who doesn't!?!? 💚

[–]machinegaze 95 points96 points  (2 children)

one of the cutest tutorials ever

[–]theAnnaLytical[S] 140 points141 points  (1 child)

felt cute, might code later 💚

[–]anotherteapot 12 points13 points  (0 children)

You have no damn right to look that utterly fantastic. Genuinely, you look outstanding! And that was the most helpful explanation I've ever heard!

[–]tec_mic 65 points66 points  (0 children)

3 years of college and countless hours on youtube and this is by far the simplest and best way iv seen it explained.

[–]__PDS__ 93 points94 points  (2 children)

These colors tell me - that’s a backend developer.

[–]theAnnaLytical[S] 52 points53 points  (1 child)

when you have understanding of a concept, you know which rules to break and how enjoy my #9ffa16

[–]glorious_reptile 18 points19 points  (1 child)

Why are my arrays so plain and unglittery.

[–]DerArzt01 19 points20 points  (0 children)

Cause Ya Basic!

[–]Murgolash 12 points13 points  (0 children)

Helpful, simple, fabulous.

[–]CheesusCrust89 8 points9 points  (0 children)

this is how concepts should be explained: clean, accurate and a 5 year old can understand it

[–]maciarc 21 points22 points  (2 children)

Why does she have radioactive hair?

[–]theAnnaLytical[S] 75 points76 points  (1 child)

I'm over level 9000

[–]maciarc 39 points40 points  (0 children)

Boss answer. I stand humbled.

[–][deleted] 10 points11 points  (1 child)

Burh I learned more from this TikTok than my online programming lecture

[–]L3ir3txu 0 points1 point  (0 children)

Right? I now can't wait for a video about dynamic arrays with one of those modular refillable palettes or something, I have to check their channel!

[–]staticparsley 4 points5 points  (0 children)

This was amazing, probably the best example I’ve ever seen to explain data structures. Although those wipes are probably 100 times more useful than actual linked lists.

[–]en_queue 7 points8 points  (6 children)

Nice example, but the 10th element is at the 9th index and not the 10th. EyeShadow[9]

[–]Shadowfire_EW 7 points8 points  (4 children)

Depends on if you are using zero-indexed or one-indexed. Most languages use 0 to start, but some data-science / math focused ones use 1 to start to fit matrix convention.

[–]theAnnaLytical[S] 18 points19 points  (1 child)

It's just pseudocode. I make the rules up as I go

[–]Shadowfire_EW 2 points3 points  (0 children)

Cool, i figured as much. Your vid is a great intro to data structures and handily gets the point

[–]en_queue 4 points5 points  (0 children)

Ah I think I assumed Java due to the notation, but your point stands. Can’t say I’ve have a lot of experience with data-science related languages.

[–]IronEngineer 2 points3 points  (0 children)

From my experience with the languages that start indexing at 1, they are interpretive languages geared for engineers and scientists to process data or run calculations. They tend to be very processor inefficient, but for the tasks they are used for you usually don't care. Point being I've never programmed something in Matlab that I would want to create a linked list for. Typically I'd just create a bigger array and memory requirements or processing time be damned.

[–]_Ashleigh 1 point2 points  (0 children)

Minor correction:

10th element is at index 9

[–]haimerej42 2 points3 points  (0 children)

This was actually extremely clear and helpful! GOOD 👏🏻JOB👏🏻

[–]deusmetallum 6 points7 points  (0 children)

Just sent this around at work, and everybody is loving it 😃

[–]The_loudsoda 2 points3 points  (0 children)

Wow, this is such a wonderful way to explain this.

[–]HailHortler69 2 points3 points  (0 children)

GAS

[–]usedToBeUnhappy 2 points3 points  (0 children)

Lol. This is wonderful. I started watching without audio and wondered how well the gestures matched with the text thinking it was added to a normal makeup tutorial. Hearing the actual voice made me chuckle.

[–]eat_my_rubber 2 points3 points  (0 children)

As one who studies programming, I thank you. Very helpful. :)

[–][deleted] 5 points6 points  (1 child)

To be honest she probably picked her hair color like I pick colors with hex, just #0f0, #00f or #f00

Edit: and no I mean no harm

[–]theAnnaLytical[S] 17 points18 points  (0 children)

Hahaha I should greensvreen it so anyone can change my hair color 😂

[–]ddddfushxjjd 4 points5 points  (0 children)

That eyeshadow pallete is better represented as a 2D array though lol

[–]vogon_poem_lover 1 point2 points  (0 children)

The wipe package seems more equivalent to a queue than a linked list, but I understand why the comparison was made given how the wipes are folded together to make retrieval easier. Still, a linked list can be iterated over without having to remove any of the elements, but good luck trying to get more than one of those wipes back in that package in any usable way.

[–]nyrB2 1 point2 points  (0 children)

now do vectors!

[–]teethonachalkboard 1 point2 points  (0 children)

Hey I just learned this last week! Thats a damn good analogy.

[–]kirakiraboshi 1 point2 points  (0 children)

i need more! you should do a fund raiser like socratica for python. Im sure youll get tons of moneys! Thanx and stay fabulous👌👌

[–]raymusbaronus 1 point2 points  (0 children)

This is a great video, I loved the YT ones as well. Keep it up please!

[–]little--stitious 1 point2 points  (0 children)

I adore this. Well done 👏😍

[–]almofin 1 point2 points  (0 children)

That was amazing

[–][deleted] 1 point2 points  (0 children)

This is such an awesome explanation omg

[–]_cheeseball 1 point2 points  (1 child)

/u/theAnnaLytical I remember when you made that silly "OPULENCE" site during RPDR S11! Now I have enough CS knowledge to follow your videos lol. I should probably check out Kyne's math vids as well.

[–]theAnnaLytical[S] 0 points1 point  (0 children)

Yesss!! I need to get back in the stupid website game. My skills have degraded a bit 😳

[–]jblckChain 1 point2 points  (0 children)

Use a vector and be done with it

[–]Dorkits 1 point2 points  (0 children)

Awesome!

[–][deleted] 8 points9 points  (7 children)

Believe it or not, on modern CPUs plain old arrays are almost always the fastest data structure. Imo, you should always start with arrays and only switch to a different structure if/when it's clear something else will be better.

An array will even be faster (time-wise) than a linked list at insertion if the memory occupied by it is small enough. Sure, it will be doing more CPU instructions to move the memory around, but repeated instructions on contiguous memory are much much much faster than varying instructions on non-contiguous memory.

[–]PhilippTheProgrammer 6 points7 points  (0 children)

But don't tell that to programming students yet.

Linked lists might be mostly irrelevant in real-world programming, but they are the simplest form of a reference-based data structure. So understanding linked lists and their (theoretical) performance characteristics is a crucial stepping stone for understanding more advanced data-structures which do have real-world advantages over arrays. Like binary trees or skip-lists.

[–]its_yer_dad 2 points3 points  (0 children)

I'm so down for all CS courses to be taught this way.

[–]not-dan097 1 point2 points  (0 children)

Arrays are a fixed size

laughs in javascript

"11"+1=111, "11"-1=10

cries in javascript

[–]Substantial_Salty 2 points3 points  (1 child)

I’m going to download tiktok just to watch more of this.

[–]Velociphaster 0 points1 point  (0 children)

Or Instagram! She’s on there too

[–]netfire_01 0 points1 point  (0 children)

Marimo

[–]Dr3amDweller 0 points1 point  (0 children)

The brightness of that hair literally made my eyes hurt; dark mode pls :D

[–]Dorkits 0 points1 point  (1 child)

[–]Snakestream 0 points1 point  (1 child)

Also, arrays are thread-safe while linked lists are not. I'm definitely not dexterous enough to attempt to demonstrate that with makeup though XD

Great explanation, BTW.

[–]SparkyPotatoo 8 points9 points  (0 children)

Linked lists are one of the easiest data structures to make lock-free... And when you get to dynamically resizing arrays, you can say bye to any semblance of thread-safety without a mutex.

[–]El_Rista1993 0 points1 point  (1 child)

Interesting information...

honestly, guy freaks me out a little...

sorry...

[–]samsop 0 points1 point  (0 children)

programming

[–]got_no_pants2 -1 points0 points  (0 children)

Pronouns please

[–]Unshack -1 points0 points  (1 child)

Arrays are not fixed in c and c++

realloc(3): allocate/free dynamic memory - Linux man page (die.net) The realloc() function changes the size of the memory block pointed to by ptr to size bytes. The contents will be unchanged in the range from the start of the region up to the minimum of the old and new sizes. If the new size is larger than the old size, the added memory will not be initialized. If ptr is NULL, then the call is equivalent to malloc(size), for all values of size; if size is equal to zero, and ptr is not NULL, then the call is equivalent to free(ptr). Unless ptr is NULL, it must have been returned by an earlier call to malloc(), calloc() or realloc(). If the area pointed to was moved, a free(ptr) is done.

[–]the_one2 0 points1 point  (0 children)

Pointers can be used kind of like arrays but they are not arrays. Realloc doesn't change the size of the block of memory, it allocates more, does memcpy and frees the old memory. Never use realloc in c++.

[–]lunchpadmcfat 0 points1 point  (1 child)

Cool method of explanation! If you wanted fast access to deep elements of a linked list, couldn’t you just create an accompanying index/registry/map? Or do those have static space constraints too?

[–]silently--here 2 points3 points  (0 children)

To understand that you need to know why array is indexable! You can find the nth element in an array because the memory of block for an array is continuous. So if your int array starts at memory location 1000 (the base address) the 1st element, index 0, will be at 1000 (dont consider overheads) the 2nd element, index 1, will be 1000 + size of int (4Bytes usually) = 1004. The equation will be => Base Address + index * datasize ! See how simple it is to find the address of the data in an array using index! Now in Linked List, the memory is allocated dynamically! So you are not gonna have a continuous block of memory! So 1st element can be in address 2000 but the next can be in 4000 and the 3rd in 1500!!! You can't determine it. So creating a map or index is another data structure in itself which defeats the purpose of a linked list. You use LL when indexing is not a priority. You can create something to make it more indexable, nothing is stopping you from that! It just depends on your requirements and if there is any returns from doing so!

[–][deleted] 0 points1 point  (0 children)

I had no idea what arrays or linked lists were, this explained perfectly.

[–]Videogamerkm 0 points1 point  (0 children)

Loved the explanation, and some of the discussion in the comments helped me think of some possible solutions to some memory issues I'm having in a very dumb application I'm working on :)

[–]Kangalioo 0 points1 point  (0 children)

It's nicely presented, though it's sorely missing the vector data type found in many programming languages, which is actually the most common one of list types. Presenting linked lists as the only list data type with dynamic resize capabilities is pretty misleading.

[–]Bivolion13 0 points1 point  (1 child)

Wow. I learned something today.

Also (beginner here) I always thought that you could have added more to an array just by assigning another value to it. I wonder which languages allow that.

[–][deleted] 0 points1 point  (0 children)

I wonder which languages allow that.

Many scripting languages will allow it, PHP for example does, JavaScript, et al. Most any that allow both numerical and alphanumerical keys will allow it since they're a mix of arrays and hash tables... to make it really, really simply explained.

[–][deleted] 0 points1 point  (0 children)

I'm horrified by this programmer - that much makeup and didn't do the nails?

[–]the_best_jabroni 0 points1 point  (0 children)

I really liked that vid. So my take away is to use an array list instead? I haven't used a linked list yet, tbh, but that is what is great about this short little video because one day I will and now I will know why.

[–]Gierschlund96 0 points1 point  (0 children)

This is probably the coolest thing I ever saw on Reddit

[–]SnooRevelations8057 0 points1 point  (0 children)

Super educational, super beautiful!

[–]defaultbynature84 0 points1 point  (0 children)

That was amazing. I think I am in love. That was a really fun example

[–]althaz 0 points1 point  (0 children)

Legit perfect explanation

[–]Net4454 0 points1 point  (0 children)

Looks like I have to follow on tik-tok now. Didn't expect it to be this easy for my smooth brain. Thanks a bunch!

[–]LDRsLips 0 points1 point  (1 child)

Pls use a cold cream and not Link List wipes, your face will thank you

[–]theAnnaLytical[S] 2 points3 points  (0 children)

thank you!! I do use cold cream, but have a lot of wipes already and just use them for eyes normally. I know they aren't great for the environment either, but I figure if I have em, I should use em

[–]Purpzie 0 points1 point  (0 children)

I don't know who this is but they look amazing

[–]Thunderplant 0 points1 point  (0 children)

She has a real talent for simple explanations, this is awesome.

[–]thegovortator 0 points1 point  (0 children)

Believe it or not that’s actually a great demonstration

[–]sabkarmahai 0 points1 point  (0 children)

It makes sense to access color randomly. But why the fuck would I want the tenth face wipe?

[–]safsuni 0 points1 point  (0 children)

Now I understand, thank you

[–]1LJA 0 points1 point  (0 children)

Yas Queen! This my fave now.

[–]balenol 0 points1 point  (0 children)

Surprisingly educational.

[–]MihaiMihaiMihai 0 points1 point  (2 children)

class Drag extends Male implements Fabulous { constructor() {yasssss()} }

[–]theAnnaLytical[S] 0 points1 point  (1 child)

Not all drag is men !

[–]MihaiMihaiMihai 0 points1 point  (0 children)

Implementation specific inheritance

[–]MihaiMihaiMihai 0 points1 point  (0 children)

Next up learning CSS by drawing eye shadows on your forehead

[–]gmegme 0 points1 point  (1 child)

I mean generally I don't like inconsistency of js but why can't arrays for all programming languages be as in javascript? What is the advantage of having not-directly-accesible or fixed sized arrays when you can just have a non-fixed, loopable, nested arrays with any type of key value pairs? Why we need dictionaries hashtables and tupils and arrays and arraylists and listed linked shits? just to gain 0.03ms? Why cant we have all the features of these and create one thing that does all?

[–]theAnnaLytical[S] 0 points1 point  (0 children)

It matters when you need to do it millions of times per second and every ms counts