Self taught developers have a distinct disadvantage when it comes to learning: lack of structure. Those who have taken a traditional route and gone to college to earn a Computer Science degree have a strict curriculum that they follow. It’s a clear path.
When I started into the world of tech, I had no idea what I didn’t know. I mean, I knew I didn’t know anything. But the specifics of what I needed to learn were not clear. And they won’t be for anyone. There’s so many paths, so many languages, so many niches, that it’s overwhelming. Trying to figure out what you want to study is extremely difficult, since you haven’t been exposed to a lot of these areas. I found when I first started, I thought I knew what I wanted to do but as I discovered more things it was like cracks in a windowpane, appearing and leading off in a million different directions. I quickly became overwhelmed. One day I’d think: “I’m going to specialize in SQL” then the next “I’m going to learn Python” and so on. I would read something that would send me down a rabbit hole and next thing I knew it was 4 hours later and I had bookmarked dozens of websites to return to and investigate.
I read a post on Twitter the other day that really resonated with me: don’t collect materials. Don’t bookmark a million things thinking you’re going to come back to it. Don’t think “I’ll read this later” but click on the hyperlinks to new sources to check out, then repeat. It’s a dark hole. And chances are, you won’t come back to those links anytime soon.
Some of the investigative coursework and reading I did earlier on was helpful. I purposely stepped back at one point and did some entry-level computing courses on LinkedIn learning. I did a course on object-oriented programming which was not language-specific but introduced theory. These gave me a good overview of the basics (What is the internet, how does it work?) and I would recommend anyone do that first.
But then once you get an idea of what path you want to take, map it out and stick to it. Do not get distracted by the pretty, shiny things out there that you’ll hear about on Twitter and LinkedIn or in forums. Stick to your path, learn it well. Those other things will be out there once you complete your entry level work, but trying to do everything at once will leave you exhausted and defeated. In fact, I would go as far to say that once you have decided on a path, do not even click on those Tweets that are threads of “resources for new developers” or “learning paths” – everyone has their own opinion and you can’t keep jumping from path to path if you’re going to get anywhere.
This does bring up one sticking point: how do you know which path to choose to learn? My best advice is to pay attention to what works for you when you are doing your investigative learning. Are you finding videos to be most helpful? Maybe Udemy or Coursera is best for you. Or are you more of a reader? Odin Project is awesome. Perhaps a more hands on approach works best for you. Try Scrimba.
The point is, find out your learning style and THEN find the training materials to help. Then stick with it. After the initial rush of energy to try something new, you will feel as though it’s a slog. Just stick with it. Push through and remain committed. Do not jump tracks. Deepen and refine the skills on that path before you consider moving on to something else. You do NOT want to be “jack of all trades, master of none” when it comes to tech. Companies want to hire you because you are competent in a skill they need. Even if they hire you to learn a different language on the job, the fact that you have deep knowledge with one language will make it much easier to learn the next and shows them that you have tenacity and focus.
Bottom line: choose a path, then go deep, not wide.