If learning how to code were easy, everyone would be doing it.
But the reality is that learning how to code is continuously filled with ups and downs. In this special sponsored post Avi Flombaum, Dean at Flatiron School, shares five truths every code newbie needs to know.
Take it away, Avi!
We’ve had over 700 students go through our program at Flatiron School, so as the Dean and instructor, I’ve had the opportunity to meet a lot of aspiring programmers at the beginning of their coding journeys. (I was also a beginner once myself!)
I’ve had a front-row seat to the misconceptions many new students hold about what learning to code and being a developer really entail, and I’ve watched these students successfully step out of their comfort zones and thrive.
Here are five truths about learning how to code and building a career as a developer to take to heart as you begin your coding journey—whether you’re learning on your own or at a coding bootcamp like Flatiron School.
1. Programming isn’t linear.
Without fail, one of the most common beliefs I hear from new students is that they expect learning to code to be a linear process: spend an hour learning topic “A”; move onto “B” which will take another hour; take the next step onto “C”, T-minus 60 minutes till completion and mastery of the concept; and so on. But learning how to code is far from linear.
So what is it like? In my experience, learning to code follows more of an S-curve than a straight line. It’s more like the lights coming on in a pitch black room—but instead of flicking a light switch and illuminating the whole room, the light turns on slowly and in different parts of the room. You gradually get a sense of the room’s contours, where in it you stand, and where the obstacles are.
None of this happens all at once. In fact, when you’re learning how to code, you may end up pulling your hair out over a concept for a week or two, feeling completely lost, like you’re not learning anything. In truth, you are learning—you just don’t have a full fluency to verbalize what you’ve been studying yet. But trust me: suddenly it will click, and you’ll make a big jump in your competency and understanding.
Smooth sailing from there? Not a chance. Once again, you’ll plateau and feel like you’re not learning. This is the reality of learning how to code.
It’s a gradual journey from darkness to light and up until you can see the entire room lit up, it may feel like you’re blind.
Be patient with yourself and embrace the non-linear process of moving between struggle and epiphany and back again. Things will click—I’ve never seen a student keep at it and not grow.
2. Everything is always broken. If your program works, you’re not programming, you’re done for the day.
Programming students are often frustrated that their programs are always breaking. But by definition, if you’re a programmer, your programs will be broken. If your program works, you aren’t programming, you’re ready to go home for the day.
As you build new programs or add new features to existing ones, there will always be a constant movement between getting things to work and breaking them again.
In fact, the only way for everything to work all the time would be to stop innovating. So get comfortable existing in a state of error.
Learn to read the clues in your error messages to fix bugs and then break things again. Embrace things being broken and know it’s not your fault, it’s not because you’re stupid, it’s not because you’re bad at programming. It’s because that is the nature of this craft: to exist in a broken state.
3. As a programmer, you don’t exist within a bubble: immerse yourself in the culture.
If you really want to take programming seriously and pursue it as a career, know that a career as a developer isn’t just the mechanical side of things—defining methods, making objects, and designing websites.
Technology moves fast and there is a thriving culture around it. And you have to be willing to engage with it. That means reading books, following awesome programmers online, exploring blogs. I truly believe that the more you invest in the culture of code, the more a programming career will pay back to you.
But don’t just read about that culture; be an active participant in it. Start a blog; document your coding journey. When you’re going through any learning process, you want to give yourself as many opportunities as possible to verbalize what you understand (or think you understand).
Sure, writing code is one way to articulate what you’ve learned, but writing about what you’re learning puts an additional learning tool at your disposal. If you don’t understand a concept, you know exactly what you’re going to do: research the hell out of that topic and write a blog post about it. It’s such a good tool for getting unstuck that we require all Flatiron School students to maintain technical blogs throughout our program.
An added benefit of blogging is that you’re creating “coder cred” for yourself. Next time another aspiring programmer runs into the problem that initially stumped you, they may look to your blog post for their research.
If you have a blog that other people are reading and finding useful, employers will notice and value that.
When it comes to finding a job as a developer, we always say that one of your goals is to become a “no-brainer hire.” Imagine interviewing two candidates who are as competent as each other, but one blogs and one doesn’t. Who do you hire? I guarantee you it’s going to be the candidate giving back to the coding community.
4. Distractions will be everywhere. Stay focused!
When you’re learning how to code, you will be inundated with distractions—especially if you’re asking people for advice. People love to play favorites with programming languages. If you explain what you’re learning, get ready to hear people explain the virtues of learning React, Angular, Ember, and so on, instead of what you’re learning. You just have to stay focused.
They don’t know what you’re going through and they’re giving you advice that they would give themselves right now as opposed to where you’re at.
Take comfort knowing that the best thing you can do is finish what you started and then pick up something new.
Even if you’re learning a language that has become outdated, the act of finishing that learning process gives you something you won’t get by jumping from one thing to the next every time someone tells you to.
A lot of beginners experience what I call learning fatigue: they start learning one thing and only get 20% of the way through it because it starts getting hard, so they start learning something else. Then they get 20% of the way through that until that gets hard. It constantly feels like they’re just learning a little. But as the saying goes: if you’re tired of constantly starting over, you have to stop giving up.
5. Programming is a new way of life, not just a job.
Programming isn’t something you do from nine-to-five. It’s not a job, it’s a life. It will change your perspective on everything.
I’m serious: one of my students once told me that since learning to program, he’s cleaned his apartment differently because he realized they way he was doing it wasn’t efficient—he was constantly moving the mess around instead of starting at the top and ending at the bottom.
Every time we learn a new way of expressing ourselves, we have a new lens with which to interpret the world around us. Programming gives us a new way to communicate and connect with the people and things and topics that occupy our lives. So get ready for a lot of changes. It may feel weird, like you’re becoming a different person. Embrace it.
About The Author
Avi Flombaum is a programmer, teacher, and co-founder of Flatiron School; he has helped thousands of people learn to code and find employment as programmers. Before he started teaching, he worked for an NYC startup, became the CTO of a hedge fund, and started his own company, Designer Pages. He taught the advanced section of Girl Develop It's Ruby series and the most popular Ruby on Rails course on Skillshare. Avi is excited to continue pioneering alternatives to higher-education that have the potential to change a person's life.
This post has been sponsored by Flatiron School