Okay—with a couple of new books in hand and a good night's sleep behind you, strike out on your own a little. Set yourself a goal, and try to achieve it: something tough, such as an assembly language utility that locates all files on a specified directory tree with a given ambiguous filename. That's ambitious for a newcomer and will require some research and study, and (perhaps) a few false starts. But you can do it, and once you do it you'll be a real journeyman assembly language programmer.
Becoming a master takes work, and time. Books can only take you so far. Eventually you will have to be your own teacher and direct your own course of study. These days, mastering assembly means understanding the operating system kernel and its low-level machinery, such as device drivers. You'll need to learn C well to do that, but there's no way around it. More and more, mastering assembly may also involve writing code to run on high-performance graphics coprocessors like those from Nvidia. The gaming industry drives performance computing these days, and although writing high-performance graphics software is a very difficult challenge, the results can be breathtaking.
Whichever route you take, keep programming. No matter what sort of code you write, you will learn things while writing it that lead to new challenges. Learning something new always involves the realization that there is a lot more to learn. Study is necessary, but without constant and fairly aggressive practice, study won't help, and static knowledge without reinforcement from real-world experience goes stale in a big hurry.
It gets scary at times. The complexity of computing seems to double every couple of years. Still, keep telling yourself: I can do this. Believing in the truth of that statement is the essence of stepping away from square one—and the rest of the road, like all roads, is taken one step at a time.
Was this article helpful?