Learning to code is tough when you’re a beginner. There is so much information to sort through and it can feel like you’ll never learn enough to become a legitimate developer. But if you know what to expect before you start, then you’ll be prepared for these inevitable challenges. Flatiron School dean and co-founder Avi Flombaum taught himself to code, and went through the same struggles that beginner coders face today. We asked Avi to share the 4 crucial obstacles beginners face when learning to code and how you can overcome them!
Obstacle 1: Not knowing where to start and giving up too early
As a beginner, you don't know what you don't know, and that’s hard. You need two things: a path and context.
Finding Your Path
I notice that a lot of beginners ask their developer friends where to start and that’s the worst thing to do! You’ll get a person’s opinion about themselves, not about your situation. You also can’t be motivated by a specific job in the beginning. You may hear that there are a lot of jobs for React developers, but as a beginner, you can’t start by learning React.
Putting your Learning into Context
In the beginning, learning to code is easy because you're learning simple mechanics – tools that will go in a toolbox. You learn where a hammer is, how to swing the hammer, and when to use a screwdriver. In programming you learn what an array is, how to iterate over an array, how to define a method with a variable, etc. At that level, programming is fun and it's doable. But once you try to build a house (or in programming, build Tic-Tac-Toe), you need to know how to contextualize all of the tools. This is the point where I see students give up and quit.
Contextualization is really hard and the only way you learn that is by practice. You have to break tasks down and get over that hurdle.
Obstacle 2: Learning alone
I was self-taught, back when there was no Stack Overflow or coding bootcamps. I read 30 programming books to teach myself to code, so my teachers were Jeffrey Zeldman and David Black. Nobody truly learns anything “alone.” Learning how to program was easily the darkest time of my life. One of the reasons I started Flatiron School is because I wanted to make it easier for people. At this point, the web and development communities are so mature – so you should be learning with other people.
Start alone, but continue with others
We definitely want students to try learning on their own before they come to Flatiron School; how do you know that you want to be a programmer if you’ve never tried programming at all? And everyone runs into walls, whether they’re learning on their own or with a group. But what do you do when you're stuck? Do you just give up or do you break the problem down and learn to ask the right questions?
The whole reason that coding bootcamps like Flatiron School exist is so that you don’t have to teach yourself everything. Most people need a structured and guided way to get through the various hurdles you're going to encounter as you're learning how to program.
Can you really get that experience of learning with others from an online course?
When we designed Learn.co, our online platform, we really wanted to capture the feeling of being in the Flatiron School campus where there's so much energy, celebration, struggle, questions, and collaboration. The more people using Learn.co – asking questions and contributing – the better the experience. Learn.co is actually interactive, and in that way, we’ve brought the community online.
Obstacle 3: Pacing and Goal Setting
For me, learning to code wasn't optional. I could either teach myself and become a developer or I would be totally screwed in life. I burned the bridges behind me, jumped off the cliff, and did what I had to do not to crash land.
You don’t necessarily need to take such drastic measures, but you should set a goal and go after it. And you should have a passion for programming because there are other ways to make money in life besides programming.
Setting a goal and jumping off the cliff is great to kickstart your learning in the beginning. But it will not keep you going. What keeps you going is the habit of programming every day until you stop questioning your learning.
I also find that beginners focus too much on how long it's going to take to become a developer. Listen – I'll let you know when I start feeling like a serious developer! This is a lifelong journey. Who cares how long it takes you to become a programmer. If you’ve set a goal and you’re passionate about programming, then it may take you 6 months or 2 years.
Obstacle 4: Managing frustrations and troubleshooting effectively
Beginners tend to drive towards the answer as opposed to driving towards more questions. As a developer, you will always encounter things you don’t understand, or something that doesn’t work the way you expect. Here are my tips for when you run into a roadblock:
Read error messages! Beginners look at an error message and see gibberish at first, but there are clues in there. You don’t have to understand everything; our brains are so good at inferring details. Malcolm Gladwell says that with 60% comprehension, you can get close to 100% utilization. If you read an error message and only understand 10% of it, you’ll get 50% of the usefulness out of it; more importantly, you’ll start training your mind to get closer to the answer. Debugging is everything.
Get comfortable with not knowing. Beginners always think that it’s about them. In fact, you’re not inherently bad at programming. You’re just a beginner, and by definition you’re bad at this! I'm always surprised at how quickly beginners are willing to blame themselves and call themselves incapable or stupid. Everyone has been where you are right now; questioning yourself and doubting yourself is really self-defeating. Stay positive and trust that you are going to figure it out.
Struggle, but not for too long. Struggling is important for learning, but at the same time, we don’t want to let you struggle to the point of getting demotivated. At Flatiron School, we’ll intervene pretty quickly, but also want you to start developing your own tools to get yourself over a roadblock.
- Learn how to ask questions (of your instructors and yourself!) Look, students can ask me for “the answer,” but I’m always going to ask them questions back. I want to ask you so many questions that you discover the answer yourself, and start to ask yourself those questions next time you hit a roadblock. You should be designing mini-experiments, talking to yourself, Googling, and the last thing you should try is asking someone else.
The benefit of learning at a coding bootcamp like Flatiron School is that you’re asking questions to instructors who can see beyond your question and gauge your frustration level. Are you really tired, do you need a quick win or a lot of feedback? Are you not understanding a larger problem or concept? We can help identify those frustrations and dig deeper.
If you’re ready to start learning to code, check out Flatiron School’s free online Bootcamp Prep course, which includes 75 hours of learning and on-demand support.
What is jQuery: An Intro for Beginners
Should you learn jQuery? We look at the debate around jQuery and what jobs need jQuery.
What is Express? A Guide for Beginners
Git and GitHub: A Guide for Beginners
Turing School instructor David explains Git, GitHub, version control, and repositories for beginners