I've never used those things but I have a basic understanding of how they work -
[u]Adafruit[/u] is another good source of information.
As you may know, there is a programming library for these strips with functions that do all of the "hard stuff" for you, so you don't have to write all of the code from scratch and you don't have to worry about the tricky-timing of the data transmission.
I want the lights to turn on individually, starting at the board and continually turning on without the previous LED turning off.
Yes, that's what "individually addressable" means.
However, the chips/LEDs are daisy chained so if you want to write to the last LED the data has to pass-through all of the other LEDs first. That means you have to address and re-write to all of the LEDs every time you change one LED. That also generally means that you need to store the "state" of all LEDs in memory.
I actually don't know if the LEDs "flash" for a few microseconds as it passes-through but if it does it's too fast to see so it's not a problem.
along with trying to self-learn the language.
Have you done any programming before?
If you've programmed before the "core language" is pretty easy. If not, the hard part is learning "how to program" and "what programming is all about". Most programming books & tutorials just cover the language without giving you the "big picture".
Since you're probably not going to take a programing class, you'll have to "read between the lines" to figure that out on your own. (I can give you a few tips if you want.) The good news is, since the language is pretty-easy the Arduino is a great way to get started with programming!
When you start using libraries it can get more involved, even though the libraries are saving you work & complexity.
Any electronics experience?
With NeoPixels (WS2812B) the electronics/wiring is also pretty easy. The first thing you learn if you take an electronics class is [u]Ohm's Law[/u] which describes the relationship between voltage, current (Amps or milliamps), and resistance (Ohms). This is a law-of-nature with man-made units.
You should also know that power (Watts) is calculated as Voltage x Current.
In words, Ohm's Law says that higher voltage gives you higher current, and resistance is "the resistance to current flow", so more resistance means less current.
In "most situations" the voltage is fixed and the current depends on the resistance of the load. For example, here in the U.S. the household voltage is 120VAC. With nothing plugged-in (or with everything turned-off) no current flows. If you plug-in a 100W light bulb you "draw" a little less than 1 Amp. If you plug-in a 1000W hair drier that's almost 10A and if you plug-in too much stuff you'll draw excess current and blow a circuit breaker. (In Europe with 240V you have half the current for the same wattage, and if you plug-in an American light bulb you'll burn-out the bulb real fast!)
We don't always know the resistance and it can depend on things like how many LEDs are on or if a motor is running, etc., but it's important to understand that the current depends on the "load".
That means you need a power supply of "exactly" 5V for the LEDs and it can be rated for more current than you actually need, and in fact it's good-practice to leave some safety margin. However, with some NeoPixel applications where you won't have all of the LEDs full-brightness-white at the same time, you can "cut it closer".
P.S.
I'm "thinking about" an addressable LED project and I'll probably use what Adafruit calls [u]DotStars[/u] instead of NeoPixels. DotStars require a clock connection in addition to the data connection. That makes the timing less critical and I think it will make the rest of my programming simpler and I probably won't need a library but I haven't full-studied it yet.