Dear younger me,
I am writing to you from 10 years inthe future.
Over the next ten years, you'll find that youlove computers, butthere's a barrierto you starting a career based on this thing you love. You will trip over anoversupply of information from online publications, e-books, and tutorials promising to teach you X language and Y framework, and falter from alack of direction. So, here are a few pointersfrom your future self.
Do daily low-level programming exercises. Theyare your bread and butter, stick with them.Once you masterlow-level programming tasks (like these examples) , 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 softskills. 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 isfrom interacting with other people. For you, Twitter is only2 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 learningHTML and CSSto make your own websites.
Usea 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 Linuxterminal emulator is the best thing for you to use for your low-level programming exercises, andif you want to run performance tests you can install a Linux distribution and dual-boot your PC.
I am using a MacBook these daysbecause is the only operating systemthat allows me to emulate all the others, andit has a native terminal application that supports Linux-esque commands.
Use opensource software.My message to you today would not be complete without emphasizing the importance of open source software.See, you eventually attend Holberton Schoolwhere 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 tolearn the vocabulary (whichcan 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 thinkof potential problems down the road, you are already thinking like a Site Reliability Engineer, or an infrastructure developer. Your goal.