The dreaded coder’s block! Two simple words that ruined more beginning careers than the whole legion of distant relatives armed with “Just get on with your current job, sweetie, you’re doing just fine” advice. Chances are, you have already encountered this vile beast, and if not, well, you better be prepared for it when it comes.
Today let’s discuss the whole thing: what is coder’s block, the reasons for it to manifest, and, most importantly, how do we overcome it and go forth to productivity and success.
The coder’s block is a complete inability to write good code. Or any code at all, even. Trying to develop a concept of approaching the task at hand evokes panic; your mind is blank, your tool screen just as blank, your will an amorphous jelly. Sounds familiar?
Do not worry, though. Soon, you’ll dissect the essence of the problem and learn how to deal with it.
Why does it happen?
There are several reasons, and we’re going to deal with them one by one. Let’s start with the most inward one.
Too many doubts about your skills and capabilities can devastate any chances of even starting anything. If having thoughts like “I just don’t have a mindset for this” or “It requires too much knowledge, I will most certainly become confused and lost” is your thing, just ask yourself, why do such thoughts appear? The answer is because your self-calibration is way off, and that is because you don’t have a correct measuring scale.
Try communicating with people like you, beginners. You will see that everyone has doubts, everyone is struggling, it’s normal.
Ask professionals of the industry about their beginnings. You might hear a lot of stories akin to yours.
Get that motivation engine going:
- Stop comparing yourself to successful coders because you only see their success; what you don’t see is the path of struggle and hardships they have behind them.
- You’re probably making much more progress than you think. 3. Just believe me, you’ll see later.
- Check around: there are hundreds, thousands of people like you going through the same phase. It’s normal, and you will get over it.
No amount of books and video tutorials can make you a successful coder. Amassing knowledge is valuable, but only to a certain point. Then you gotta code.
What can you do about that? Several things:
- Chop the elephant down. Divide your knowledge into small pieces. Then…
- Use each small detail in practice, one by one. Have you learned something? Now try it.
- Don’t be ashamed to ask if you don’t understand something. No one understands everything.
Are you sure you have your career goals planned out in a clear and comprehensible way? If you have the coder’s block, it might be the problem. Unclear goals mean unclear ways of reaching them, which means you don’t know what to do and do nothing.
Right, you want to become a coder, but why? What do you want to achieve? Write it down. This goal can be as elaborate as you want it. Still, something like “Find a well-paid job and build a successful career” or “Become the leading specialist for BestCodersInTheWorld Incorporated” is good too.
- Create a plan. It is nigh impossible to reach complicated goals if you don’t divide the path to it into understandable steps. It might be something like this:
- Complete a Java course to grasp the basics of the language and get familiar with major programming concepts.
- Create a portfolio project to prove you’re capable of developing solutions on your own.
- Search for vacancies that suit your level of knowledge and skills.
- Get ready for the interview.
- Each step of the plan you’ve created must be now divided further, into really simple parts that can be done fast. Let’s take the “Complete a Java course” step, for example, and break it down:
- Complete a single lesson from the course.
- Complete the practical part of the lesson.
- Ideate a similar task but with different conditions and do it.
Breaking the large goal down is really crucial to making your first steps.
Yeah, the thought of mastering your art alone and in complete isolation from the community might seem tempting for those of you who prefer solitude, but trust me on this one: cooperating with the community can skyrocket your progress.
From shared experiences and success stories (gotta boost that motivation, remember?) to feedback on your code and career advice, the benefits of being an active member of the coders’ crowd are countless.
- Actively seek help from experienced programmers. Don’t be shy; just be polite. There’s no harm in asking, and believe me, and many seniors just love sharing their experiences with newbies.
- Check other people’s open code! It is a perfect opportunity to see how industry standards look in reality and implement their best principles in your work.
- Join some online communities and spend some time socializing with like-minded people. Here are some platforms to check:
- StackOverflow: the largest free community of professional programmers, where you can post your question and get a quality answer to help you out. It’s 99% sure that if you have any issue, the helpful tip is already at StackOverflow.
- Reddit: it is a social news aggregation and discussions website. Find the communities (subreddits) about programming, learning to code, and dive into the global developers’ community.
- CodeRanch: a forum to learn about and discuss programming. Initially it was a JavaRanch, so you can easily guess which language had been discussed the most.
- HackerNews: it’s a media platform that features the latest security news and connects different communities. For example, security researchers, business grads, and thousands of security professionals.
All right, we’ve dealt with major reasons for the coder’s block and what you can do to overcome those, now let’s proceed to things you can use to press the success.
Coder’s block is not something that will leave you forever after you defeat it. It can come back in your darkest hour, stronger than before. That is why it’s important to know how to boost your productivity and get your creative juices flowing. These are just some of the ways for that.
You’ve probably already heard about the gamification principle; it was a hot topic several years ago. Basically, everything becomes easier and more enjoyable if you make a game out of it. Coding is no exception. How do you gamify coding? Well, you can create some methods of your own, but the good news is a lot of people have already done it for you.
I’ve prepared some options for you:
- CodeGym: A gamified platform by its essence, CodeGym provides a ton of activities for a Java coder. This platform was dedicated to make learning much less tedious, and they implemented the whole arsenal of visual, storytelling, and motivational techniques to achieve that. Yet another strong point of CodeGym is an emphasis on practice: the course includes 1300+ tasks and coding projects to solidify the core knowledge and level up the coding skill.
- CodeCombat: This platform focuses on providing a gamified learning experience for younger students but can also be quite helpful if you’re an adult. The main projects, CodeCombat and Ozaria, both offer text-based adventures with tasty-looking graphics and cooperation with teachers.
- Robocode: Here you create your robot battle tank (with the coding, of course) and pit it against others. It has a slightly more steep learning curve than in previously mentioned projects. Still, it’s a great way to learn while staying in gaming mode.
- CodinGame: It’s a multiplayer and community-oriented platform with a wide language coverage and tons of tricks and techniques to learn while practicing. As they say, CodinGame lets programmers improve their coding skills by solving the world’s most challenging problems.
Yeah, I’ve said it before: practice. Practice a lot. Spending one weekend playing with your pet project and trying new things easily beats spending 2–3 weeks watching tutorials online.
Therefore, explore some ideas you find interesting and start projects based on them. Experiment. Play. Coding is your oyster, and there are plenty of ways to cook it.
Don’t limit yourself to your ideas and projects, though; the Net is full of free stuff, some of it priceless in terms of the inspiration it can provide. Here are some top open-source software places you might want to look at:
- GitHub: a great programmers community, where you can find tons of helpful information and make your first steps in contributing to open source. I personally recommend starting with this one.
- GitLab: like previously mentioned, it’s a tool that offers git repository management, code reviews, issue tracking, activity feeds and wikis.
- Bitbucket: a source that gives teams one place to plan projects, collaborate on code, test, and deploy.
- Beanstalk: a service for deploying and scaling web applications and services developed with numerous programming languages.
In life, there is sometimes more than one way to do something. In coding, there ALWAYS is more than one. More than five ways, even. Part of becoming the best coder you can be is training your mind to seek new and more effective approaches to problem-solving constantly. Here are some things to train such a mindset:
- Re-examine your code
- Think about what you can do differently
- Consult with other fellow programmers on the forums
- Check-open sources for similar solutions
Here you go. Step over your coder’s block and go forth to the shining future full of flawless code. And remember, don’t punish yourself too much if you happen to get stuck sometimes. It happens. We’re all human beings, after all. Just try to overcome it as fast as possible, so it doesn’t affect you all that much. Use the community, your goals and plan, the experience of others, practice, and your motivation drive.
And practice a lot. Did I mention practice?..
First published at Better Programming](https://betterprogramming.pub/coders-block-how-to-stop-worrying-and-begin-your-coding-career-15f1f8aa1dba).