Dear younger me,
I am writing to you from 10 years in the future.
Over the next ten years, you'll find that you love computers, but there's a barrier to you starting a career based on this thing you love. You will trip over an oversupply of information from online publications, e-books, and tutorials promising to teach you X language and Y framework, and falter from a lack of direction. So, here are a few pointers from your future self.
Do daily low-level programming exercises. They are your bread and butter, stick with them.
Once you master low-level programming tasks, you'll be 25% closer to your goal. One big, fat C programming textbook with lots of exercises is enough. And since I know you pretty well, hehe, I know that you have a book like that. But that book is hard to find online, and you may have left it at your mother's house, so here is another book: The C Programming Language 2nd Edition. Don't worry, it was released in 1988.
Learn soft skills. But don't neglect your daily low-level programming exercises!
Soft skills are people skills. Communicating, working together, and getting along to get good work done. They are just as important as low-level programming, if not more, and the fastest way to learn them is from interacting with other people. For you, Twitter is only 2 weeks old, but trust me, it's still around, and a great way for you to connect with other people online. Your personal brand is another thing to consider now, and your interactions with others will be part of that.
Don't forget to do your programming exercises! Try learning HTML and CSS to make your own websites.
Use a customizable IDE (integrated development environment).
The best way for you to program is to use the Emacs text editor. Today, Emacs has a new Emacs website with cool videos, but you don't have access to that yet. So, use the hotkey combination Ctrl+H+T
from an Emacs window to bring up the tutorial. And the best way for you to use Emacs is in a Linux terminal.
As a Windows-only user, you don't know this yet, but you like Linux very much. It is free and accessible. A Linux terminal emulator is the best thing for you to use for your low-level programming exercises, and if you want to run performance tests you can install a Linux distribution and dual-boot your PC.
I am using a MacBook these days because is the only operating system that allows me to emulate all the others, and it has a native terminal application that supports Linux-esque commands.
Use open source software.
My message to you today would not be complete without emphasizing the importance of open source software. See, you eventually attend Holberton School where you and your peers mostly use open source tools and technologies. Your learning is maximized in this way, because you become a part of something bigger and work collaboratively others.
Work hard to learn the vocabulary (which can be different and confusing) and find a way to get exposed to the whole stack. Learn higher-level languages such as Python, Ruby, Node.js, and PHP; as well as lower-level languages, mostly C and a bit of Assembly.
Another salient part of the stack is the world of system administration and DevOps. If you can master the art of writing scripts in Bash, Python, and Ruby, and think of potential problems down the road, you are already thinking like a Site Reliability Engineer, or an infrastructure developer. Your goal.
9 Comments