When you hear that anyone can learn the skills they need to become a developer, there’s one important caveat. If you’re going to learn to code, you need to be willing to work hard. Coding is an attainable skill, but it isn’t easy and there are challenges you’ll encounter along the way. We recently asked some of our students – who are now developers – what they found most challenging about learning to code. Here are 4 of the major challenges of learning to code that they shared.
Contents
1. Imposter Syndrome
Whether you’re new to programming or a veteran developer, you will be all too familiar with the lurking presence of Imposter Syndrome when it comes to learning to code. Lacking confidence in your skills is common when you’re new, but honestly, it’s unnecessary. Remember every expert developer was once a beginner and they know how it felt. The tech industry is a welcoming and supportive community where you can find others with more experience who are willing to collaborate or offer guidance (provided you put yourself out there to meet people in tech). As stay-at-home mom and front end developer, Priscilla Lunda, describes “For me, the greatest challenge was the fear and insecurity that held me back in the beginning… That fear and insecurity still creeps up at times and I wonder if I’m good/smart enough to be successful in this field. But then I remember that I love coding and every day is an opportunity to continue to learn.”
That fear and insecurity still creeps up at times and I wonder if I’m good/smart enough to be successful in this field. But then I remember that I love coding and every day is an opportunity to continue to learn.
We also spoke to junior software development engineer, Matt Hamil, who shared his advice for how to overcome imposter syndrome: “As a new developer, it’s easy to want to compare yourself to other developers or worry whether you’re learning the right thing. The path to learning about software isn’t linear. The key is to learn problem-solving. Once you learn how to solve problems, you can learn anything about coding.”
Don’t let yourself feel intimidated. Instead, rise to the challenge, problem-solve and back yourself. There is no single stereotype for a developer anymore, opportunities are out there waiting for you, you just need to focus your efforts on learning and sharpening your coding skill set.
The path to learning about software isn’t linear. The key is to learn problem-solving.
2. Trying to understand it all
Learning to code is like learning any new language. At first, ideas and concepts of coding can feel abstract. Then, even once you’ve begun to grasp the basics, you’ll need to start piecing those bit of knowledge into understanding. As Treehouse moderator and developer, Jennifer Nordell, describes, “There will likely come a time in your learning when you notice things becoming significantly more difficult. These tend to happen when concepts come into play. You’ve learned the basic building blocks, but now you must put them together to architect a solution to a problem. In my experience, this feels a bit like standing at the bottom of a cliff. It is here that I’ve felt the most frustration in my learning process.”
When faced with that overwhelming hurdle, remember again that every developer has been there, and overcome it. Trust that with patience and dedication to learning, you’ll begin to grasp the knowledge. Another useful tip is to use learning tactics to break down concepts into retainable chunks of information. For example, research shows that short, frequent sessions of study are more effective than long ones. (For more tips on how to learn better by studying less, check out this post.)
You’ve learned the basic building blocks, but now you must put them together to architect a solution to a problem.
With trial and error in coding, you may find yourself tinkering with your code and resolving an issue, but you’re not sure how.When that happens, try to understand why? Take the time to review your code and identify what you did to make it work. These lessons you learn along the way will help solidify your understanding and grow your skills.
3. Finding the time
Another common challenge that you’ll face when learning to code is finding the time, especially when you have to factor it in between work, life, and family. As developer, Jeffrey McKim, describes, “we’re in hard times. Rent is high, wages are low, social mobility is stagnating. There are a million distractions and a million reasons to quit.” This is when self-disciplined comes in. Set yourself learning goals and establish a schedule. Here are a few tips on how to fit learning to code into your 9-5.
There will likely be plenty of times when you don’t feel like sitting down at your computer to learn during the weekend or after a long day at work. Those days, remind yourself of the end goal and what you can achieve if you persevere. For example, when you’re lacking motivation after a bad day in the office and struggling to find the motivation to learn, remember that once you master those in-demand coding skills, you can leave that job behind.
4. The frustration
The final challenge is one that anyone who has touched code can relate to; periods of extreme frustration. Whether it’s a hidden error in your code, a new concept you’re trying to learn, or another issue you’ve encountered, the frustration can be overwhelming. When that happens, you may feel like you want to quit. As Jeffrey describes it, “I thought about quitting. I threw things and once even kicked a hole through my wall. I cried. I started at the same lines of code for hours before I realized I was missing a semicolon, or forgot to close a div. I can’t count how many times I did that.” In reality, you’ll have to confront these frustrations through your career as a developer, BUT everytime you persevere, debug, and problem-solve, you’ll learn something new which can help you to avoid similar frustrations in the future. (There’s also the added bonus of the immense satisfaction when you overcome a frustrating challenge!)
These are just a few of the challenges of learning to code. Now we’d really like to hear about your experience. What challenges have you faced? How did you overcome them?
Start learning to code today with your free trial on Treehouse.
“…As a new developer, it’s easy to want to compare yourself to other developers or worry whether you’re learning the right thing…” & “…When that happens, you may feel like you want to quit….” based on true story, thanks for sharing this valuable topic @Faye.
The line resonated with me very strongly, still remember the first time asking for help on stake overflow, was harder than asking my first girlfriend out, really thought the question was so straightforward everyone would think I’m an idiot
It is true that everyday is an opportunity to learn, but I would go one step further and add that everyday is also a necessity to learn as in this field everything changes constantly:) Cheers!
This is a great article! It’s never too late, Thanks a lot for a good answer. The world is my oyster!
“the immense satisfaction when you overcome a frustrating challenge” <– My favourite thing about learning to code! That feeling is the reason why I love problem solving when coding. I know I'll get a developer job soon. Posts like this remind me why I need to keep pushing on.
Imposter Syndrome almost made me quit and give up, thanks to the amazing community and staff on Slack (This was during my techdegree) I got back into it 2 months later. I am so grateful!
1 and a half year has passed since and I will soon have finished my first year as a developer.
hi there, great to know u completed ur coding here at treehouse! i was wondering if u cud advise me abt techdegree!
If som1 wana be job ready in 3/4 months! and got basics of html and css already, then just completing “beginner javascript course” enough? or is it better to take ” front end development ” instead ,which covers html, css and javascript(which includes almost same as beginner javascript course ) ????? and finally how do we go about it on, whats better? on tracks and do it on our own or techdegree path ??