Today’s post is all about the biggest challenge that you will encounter when you are learning or teaching yourself to become a software developer.
I’ve been interviewing a lot of students for my mentoring program and there has been a consistent theme I’ve come across.
I remember I experienced the same when I was first teaching myself how to learn to code. It’s a really big one! But first I want to talk about of the progression of becoming a software developer because it will make more sense.
The progress of your learning is like an exponential curve. Day to day you are absorbing tons and tons of information. You are learning so fast, you’re enthusiastic, you’re motivated and very optimistic.
A lot of that motivation and optimism is coming from the fact that you’re learning so much. You can look back three or four days prior and realize you didn’t know all those things.
So, you’re clearly learning very quickly. However, that’s the only beginner stage of learning programming. It starts to make the most sense after you’ve reached that stage where you’ve picked up all the beginner things you need to know.
You’ve watched all these tutorials and you know pretty much the basics of what a beginner should know. However, the next exponential curve starts petering out or what we call the plateau.
I call it the intermediate plateau.
I have heard people call it intermediate purgatory. There’s lots of words for it but essentially your learning slows down. It’s what happens with any sort of skill.
You can’t just exponentially learn forever. Otherwise you would be like an AI, becoming super duper smart.
So, part of the problem when you’re learning slows down is because your motivation and enthusiasm is tied of learning fast. You were learning a lot but when you reach that plateau it starts petering out and you start learning less and less.
You still can’t figure out whatever problem you’re figuring out. You start to think that maybe you’re not cut out for this.
You start hearing that mental chatter in your head that tells you maybe people were right and you really have to be good at math to be a software developer.
Whatever ridiculous myths about being a software developer out there will creep in your head. You can ignore them but again your mind is telling you a challenging thing for you to overcome.
I’ve noticed from a lot of people and my students in my program that studying is a lonely thing because you’re by yourself. Most people prefer to study with other people but you’ve to embrace studying by yourself.
That means working, studying and building an application and you don’t necessarily need people around you. Most of the time you don’t have experienced developers around you or even people at your level whom you can get affirmation.
Having an experienced developer look at your code is a great way to see how you are progressing in your coding skills. In my opinion the hardest thing is that you don’t have people around you to steer you through your career.
My recommendation for getting over this challenge of becoming or learning software development by yourself is to surround yourself with like-minded people. This can be really hard for some people especially those in remote parts of the world.
It can also happen in big cities if you don’t know how to find people who are software developers.
In addition, some software developers who are the field don’t really want to help because they got stuff going on. Even if you were to find other people who are at your level like a beginner level or whatever it’s hard to find those people.
One of your strategy could be going on forums or meet ups but in general it’s hard to find people that you can connect with at the same level.
Certainly internet has made it easy to find people that you can consistently bounce ideas but the point is that to overcome this intermediate plateau takes strategic approach.
There’s no magic pill!
One of the approaches that I certainly think works well is keeping a journal. A journal of your progress it’s for a few reasons. By writing consistently about your programming journey, what you’re doing now and how you feel about what you’re doing is great for future reference.
The benefit of doing that is that a month from that date you can go back and look or read through the journal and pin point where you’re at this stage.
You’ll be able to remember that you were learning.
Also, what’s beautiful about writing a journal is you’ll be able to see your progress over time and that should gives you enthusiasm.
Honestly, programming is really weird, you could be becoming a really good developer over time but it’s hard to see the evidence. The way you see yourself as a software developer at any given time depends on what you’re working on.
If you’re working on something really challenging to your skills. You can feel like a pretty dumb developer but then if you’re working in something you’re really good at, you feel great.
You need to not trust that feeling in the moment because it could be good or it could be bad. You need to look at evidence and see if you’re making progress and whether you should continue in this path.
Other than that I totally think that finding people is a good idea. Also doing a daily journal is just part of figuring out your emotions and not letting your emotions get to you too much.
Another technique you can utilize is meditation.
I think meditation is a great strategy for overcoming the intermediate plateau because half of our problem as human beings is that we have so much mental chatter going on.
What meditation can do is make those thoughts quieter and make you see past the thoughts because you’ll know that the thoughts are not you but something almost part of you.
It’s like a line of code that just keeps running over and over again.
I highly recommend trying meditation.
All in all I would say becoming a software developer is not easy, it wasn’t easy for me. I think for some people it is but for most people it’s a challenging journey especially if you’re doing it on your own.
There are going to be times when you don’t feel like you are a hundred percent on point but you just got to get pushed through those times.
Put in the time and effort and things will come to fruition.