5 Things Every Code Newbie Needs To Know

| Get awesome (and free) stuff here


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.

The two states of every programmer

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.

 Distractions are everywhere

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.

I could go all day debunking coding myths and misconceptions. But truly, the best way to find out what learning to code is really like is to just start coding and see for yourself. The easiest way to get started is to try our free Intro to Javascript and Intro to Ruby courses.

About The AuthorAvi Flombaum

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


  • I have our first program from a reader coming at the end of February,
    actually :). But of course, if anyone wants to help or has an idea for
    a lesson, please email me! We’d love the help.

  • amber

    I earned 4 year degree in this programming and when ever i saw myself in Mirror I just ask why i can’t do programming, I lack so much analytical thinking , I am weak in making logic, This is what our teacher has to recognize inside us so that non logical and imaginative person like me doesnot waste 4 year time. Bigbrandtire.com

  • Just what I was looking for, as I keep on getting to that stage …

    “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.”

    I dont give up, but I do then browse the web, thinking, there has to be something … more me! Then I snap out of it, go for a bicycle ride, brew a cup of tea and carry on :-)

    I’m on a JavaScript route presently with FreeCodeCamp/Codecademy and a JavaScript book. But like the idea of the Ruby / JavaScript route too. http://blog.flatironschool.com/why-learn-ruby-javascript-three-takeaways-from-our-webinar/

    Thank you to Avi and Laurence for the post.

    @nigelfrancisnet

    • Hey Nigel!

      Hope you’re doing well =)

      Glad the post resonated with you. And best of luck as you continue learning and working towards your goals!

      – Laurence

  • Shannon

    This is just what I needed to hear as I am in my 2nd month of learning to code. Number 1 was like a lightbulb and made me feel so much better! The graphic with the “I am a God vs. I have no idea what I am doing” made me laugh because that is exactly the way I have felt on this journey!! Lately I mostly feel the latter, though, so I am glad to hear it is totally normal! I am going to share this post with my fellow classmates. Thanks for posting!

    • Hey Shannon!

      Glad you found the post helpful =)

      Best of luck as you keep learning,
      Laurence

  • Danielle Evans

    I am so excited now. HTML and CSS had me feeling like the “I am God” pic, but then JavaScript has me going through the motions. I’m learning about jQuery now and I just had to take a break. I have a love hate relationship with JavaScript. I also took the Intro to JavaScript with Flatiron. I love how they teach, I just can’t afford them right now, so I’ll finish my Web Development Blueprint with my ladies at Skillcrush. I’m going to start a coding journey page on my blog tonight!

    • Hey Danielle!
      Awesome – love Skillcrush :)
      And woo happy to hear you’ll be blogging!

      Best of luck as you keep learning,
      Laurence

  • This is just what I needed to hear as I am in my 2nd month of learning to code. Number 1 was like a light bulb and made me feel so much better! The graphic with the “I am a God vs. I have no idea what I am doing” made me laugh because that is exactly the way I have felt on this journey!! Lately I mostly feel the latter, though, so I am glad to hear it is totally normal! I am going to share this post with my fellow classmates. Thanks for posting!

  • pizap 2

    This is a very interesting web page and I have enjoyed reading many of the articles and posts contained on the website, keep up the good work and hope to read some more interesting content in the future. Absolutely this article is incredible. pizap And it is so beautiful.

  • Java is rich with design patterns, much of which is a direct result of forcing everything into objects. Sometimes it works, sometimes it is such an unnatural perversion of the way things aught to be that a new design pattern pops up to mitigate the problem.