Hi, I am fortunate enough to have two years to learn how to code before I get out of the military, but I am struggling to form a plan. I have bounced between Python and JS, but decided on sticking with JS since I can use it on the backend with Node. Does anyone have any suggestions on how in-depth I should get with different topics, what technologies I should learn that will benefit me in two years, and how much time should I be dedicating to learning computer science principles? Additionally, should I master one language or should I move on to different languages once I feel comfortable with one? Any help would be appreciated, thank you!
There wasn’t a goal that was mentioned in your post. What is the end goal? Are you looking to get a job as a developer? Do you want to be in the highest paid position? How fast do you want to be a developer? Two years isn’t a very long time believe or not, so you’ll need to start now.
Do you want to be a web developer? What about a software engineer building native apps for enterprises? Or maybe mobile developer? Cloud developers are starting to become a trend and have a lot potential in regards to salary?
What about solutions architect where you’re the one designing the architecture and consuling with developers on what to build?
Read thru this as the roadmaps are what I used to figure out which path I wanted to focus on. I know about 30% in each path so narrowing it down to just 1 of the paths is my issue. Long term I’d probably learn them all and be a “Full Stack”. But this lays out a path to follow.
Two years being not a lot of time is what I was thinking too with all the different technologies available. I want to learn as much as I can so I can be flexible when I get out. I like working with servers so being a back-end developer is the one I’m aiming for, but I have my Security+ so working within security would also be a good choice for me. Thanks for your reply!
This was a great read. Thank you!
Roadmaps out there exist, here is one for web development which is very popular (web popularity will only grow), accessible (who doesn’t use the internet?), and provides the most resources to learn (FCC is one)
If you have more specific wants, like lower level programming using something like C or assembly, you will need to seek out more specialized resources, as FCC teaches full stack web development.
My personal advice is generally learn anything and everything broadly, don’t specialize, only “familiarize” yourself with most things, with a few exceptions.
Know the tools, IDE, source control, automation tools, the cloud, etc are all great to know what they are, how to use them. Think of these as force multipliers for a given task. Yes you can get by without them, but they might just give you an advantage at doing something.
Know your data structures and algorithms. Regardless of what you do, or go into, knowing the fundamentals will help you understand the concepts, rather than just knowing the syntax of a given language. Sites like this one provide resources you can jump into and skim, and dive deeper into if need be.
Build stuff to get experience. You really only need 3 things to learn web development, time, grit and an internet connection. With those things you can learn basically anything, and build basically anything. There are so many free resources to utilize, you just need the time to put into them, and the grit to stick with it.
Nothing is stopping you right now from building whatever you want when it comes to the web right now, so if you start trying to build what you want to learn now, you will learn faster than if you “wait” to “learn stuff”.I say this because you can easily get stuck in tutorial purgatory “learning” without gaining any experience building anything.
Expand your horizons constantly. You mentioned learning Python, I say you can look back into that language or other languages once your are comfortable with JS and have built a few things using it. The goal isn’t to learn Python and use it 24/7, but to learn the syntax to enforce the concepts shared between the two languages. For example, an “array” exists as a data structure/object in both languages, but the syntax is different. Being able to draw the concept from the syntax will help you understand the concept, and allow you to carry onto other languages down the line too
This is great advice! Thank you
Hi @RomeoRaven That roadmap looks overwhelming to a beginner like me. So many things to learn!
@eze, It is overwhelming at first glance. As much as looking at a college course catalog and trying to answer that horrible question: “What do you want to do with your life?”. But the trick to ANY large task is to break it down into bite-size chunks. FreeCodeCamp (FCC) does just that perfectly. I took the roadmap, The Frontend Dev’ portion and made a spreadsheet from it (I love spreadsheets). But from that I now have a ‘To do’ list of all the items. What I did next was find a course, FCC, Udemy, LinkedIN, etc and linked where I can learn that subject. Now I have each of the items, a link to go learn the thing and a checkbox for when I feel I have ‘learned’ it enough that I could add it to a resume. That usually comes in the form of linking a certification, a course completion or an actual demo I built about it. Start there. Remember learning to ‘code’ is a lifelong pursuit, not a “Take my 90 day course for $5,000 and you too can work at Google!” crap.
I hate to be the “just x” guy in the thread but just build something… anything according to your current level. Let it be a portfolio, a to-do app, or something that you absolutely want and you think is within your learning range.
All the things I learned when I started (css, html, js and jquery) were rotting in the back of my brain until I decided that, out of boredom during work hours, I wanted to practise building a quiz app and yes the code was atrocious but that stuff gets worked out as you advance. If you don’t know how to do some things, you google them and implement it.
JS is a great language to start, and Python/C#/PHP/Ruby/Java too ofc. Once you learn those languages then you can start learning some frameworks and libraries and side-languages such as node (not a framework but a runtime library, again, you will eventually learn what that means), express, flask, django, sass, markdown, yaml, how to make calls to APIs, react, angular, vue, etc.
If you’re more interested in the desktop software or videogame thing you may want to learn C#, Lua, Python or Java, or actually just about anything with a 2D/3D drawing API or desktop widgets such as windows forms, tkinter, electron or swing/javafx.
Wanna learn how to do micro-controllers or arduino? learn c++/python and maybe some electronics basics.
It all starts with learning the basics and wanting to build something as little as a command-line RPG game or as big as a full web platform or API.