Learning to code can be very overwhelming, especially in the first months. There is simply so much to learn and some concepts are incredibly difficult for a novice to understand. For some, this inevitably leads to imposter syndrome; that voice telling us that we'll never make it, we don't have what it takes, and we'll never measure up to others.
Feeling overwhelmed is a completely natural response given the vast amount of information to be learned in the field of Computer Science(programming languages, web frameworks...), but there are ways to alleviate those sentiments. The only way to conquer a mountain is by viewing it as a series of manageable steps. The phrase — "It's a marathon, not a sprint" may be overused but it rings especially true here.
The best way to grow as a Computer Scientist is to start thinking like one. Avoid obsessing at that macro-level, and focus on what you need to learn. Adopt the divide-and-conquer philosophy and work on a big problem like a set of sub-problems.
But how exactly do you go about that?
Firstly, you don't need to know everything in order to get a job. Programming is one of the easiest ways to start a profession, the skills you already have can be readily applied (compare it with Medicine or Law).
Secondly, the learning curve isn't linear; it's like a logit function (where x is time and y is knowledge acquired). It is hard to start, feeling the utmost confidence and motivation when you know there will inevitably be bumps in the road. The process takes time, there will be plenty of "stop" and "go" but the road will clear and you will reach your destination. Keep striving and keep growing!
- Finally, to overcome this fear, ask yourself what the most immediate thing you need to work on is? What problem are you trying to solve? Next, write down all the steps you need to take to accomplish that task, then determine the connections between them: what topics are the hardest?... Prioritize them based on your interest, time required to learn the step, and their usefulness for getting the job you want. Follow this list and you'll discern where you need to start and where you need to go.
Once you've done getting your priorities in order, move on to solving the next problem. Rinse and repeat. If you do this consistently for the first 6–12 months of programming, you'll get an excellent base. In the meantime, read what material you can get your hands on. Don't anticipate learning everything at once, but just a bit more than you knew the day before. As you gain experience and knowledge, you'll start seeing patterns and ideas that you can implement into your code.
Your learning efforts should be driven by necessity, not the desire to be like someone else. Instead, you want to focus on developing the skillset to enable you to accomplish whatever is motivating you to learn.
In many cases, persistence is more important than hard work. This especially rings true when it comes to self-development. Mindlessly grinding away can be detrimental to progress if you end up burning out. So if you feel you're too distracted, take a break. It will only help you in the long run.
Finally, rather than burning yourself out, dedicate a small amount of time each day. The better you get at something, the more enjoyable the activity becomes and the more time you can spend doing it. Spend your time wisely and don't lose sight of the big picture. With all of these tools, you can conquer the negative feelings and work your way to a lucrative career.
I share my knowledge on,
- 🌐 Web Development
- ✍️ Content Creation
- 💼 Career Development
- 🦾Personal Growth
- And more!