Do you want to make 2017 the year you finally learn to code? If so, you’re on the right track. Software is taking over the world. And the people who embrace this shift and learn to build things for the environment in which we live in will be the ones who move the world forward.

This can be the year that you do it. You can launch version 2.0 of your life starting today, a version of your life where coding and technology plays a pivotal role. But like any complex skill, learning to code isn’t easy. It takes time, determination, discipline, and a whole lot of guidance.

We’re here to help with that last part.

To help guide you on your journey this year, we pulled together a list of the 100 most essential lessons for those who want to learn to code in 2017.

If you want to become a developer, launch your idea, or just level up your skills, these lessons apply to you.

If you can’t get through all 100 lessons, make sure to check out number 41 and number 95. These are probably the most essential of them all. Then bookmark this page so you can come back later.

Let’s dive in.

1. Don’t count the hours.  

Malcolm Gladwell famously proposed the 10,000-hour rule, saying that it takes 10,000 hours to become a world-class expert in an advanced field.  This has been abused by the media to lead the discussion that it takes 10,000 hours to learn anything at all.

Becoming a programmer is about developing your skills every single day. It absolutely does not take 10,000 hours to break into the field. It will take much less time, and it will be different for everyone.

If you want to start a career in web development, the number one thing you need to do is to be coding right now.

2. Start a side project.  

Working on a project where you’re 100% in control is one of the most powerful ways to level up as a developer.  

Side projects can expose you to new technologies, processes, and ways to organize code that will level up your skill as a developer. Demonstrating passion about a project you’ve built start to finish will impress anyone, especially potential employers who will ask you about the things that you’ve built.

Click to tweet:

3. Act like a leader, not a boss.

Work hard to gain the respect and appreciation of teams you work with. People should proactively seek out your expertise because they want your opinion.

4. Motivation is fickle.

If you’re depending solely on motivation to achieve your coding goals, you’ll likely fail. It can be easy to lose motivation for a variety of reasons:

  • Being hungry.
  • Being tired.
  • Having just ate a big meal.
  • Feeling lazier than usual.

If you’re betting on motivation, you’re not setting yourself up for success. The real winners aren’t motivated more than other people. Instead, they bet on their discipline.

Successful people put in the effort even when they’re not feeling particularly motivated.

5. Stop looking for a secret trick.  

Don’t spend your energy looking for a secret trick or shortcut that will make it easier for you to learn to code. It’s a waste of time.

6. Don’t forget to celebrate the small wins.  

It’s great to set out to achieve an ambitious goal, like:

  • Transitioning to a more rewarding career
  • Launching a new web application
  • Automating work you already do

But there are a lot of steps that you need to take before you achieve the goal. Prior to achieving the full goal, you’ll likely have smaller accomplishments along the way. Never forget to celebrate the small wins. They will give you the motivation to get all the way to the finish line.

7. Go to meetups.

If there are programming events, talks, or places where people are connecting about coding, go to them.

Not sure how you can meet people? Try using the “talk to anyone standing alone” strategy.

8. Ignore the social media scoreboard.

On Facebook and Twitter, people only share their successes. It’s tempting to compare yourself with other people, but when you only compare yourself to their highlights, it’s naturally going to make you feel worse about yourself.

Instead, just focus on improving yourself every single day.

9. Pair program with more experienced people

Pair programming is the act of writing code with someone else looking at your screen (either physically, or with something virtually like Google Hangouts, a video chat tool).

It can be intimidating to pair program with someone who has more experience than you.  But remember this: they will likely point out areas where you could write software better, so pair programming is the most efficient way to level up as a developer.

Pair programming is good because it…

  • Catches bugs in your code early.
  • Can illuminate a lot of the things that you don’t know.
  • Helps you understand bigger picture concepts and ideas.

Click to tweet:


10. Launch a personal website.  

Building a simple website for yourself is one of the first steps to establishing your online presence as a developer.

11. If you’re thinking “I just don’t care,” it’s time for a change.

You spend a huge chunk of your life working. If you’re spending your time doing something that you don’t care about, that’s a sign that it could be time to shake things up.


12. Coding isn’t going away anytime soon.

In fact, software and coding are becoming more and more entrenched in the world we live in. Web developers work in a variety of industries, including the obvious ones and many that you might not have even considered.

Here are a few:

  • Consumer technology companies (like Facebook, Instagram, SnapChat, Uber).
  • Business technology companies (like BaseCamp, MailChimp, MixPanel and Intercom).
  • AdTech
  • Payments (companies like Apple, Visa, PayPal, LevelUp, Square, Toast need to work to help build the mobile payment solutions of the future)
  • Media Companies (like Huffington Post, Upworthy, YouTube, Netflix, and
  • Video Game Companies
  • Universities and Academia
  • Embedded Devices (like Nest, Fitbit, Apple Watch)

13. Mentorship matters.  

A mentor can help customize the path that will help you achieve your goal as quickly as possible. They can help keep you on track and keep you accountable.

14. Say, “I don’t know.”

The smartest people acknowledge what they don’t know and try to expand the knowledge they do have. People who pretend to know things they actually don’t know prevent themselves from ever learning anything new.

15. Overcome the Imposter Syndrome

When learning to code, the feeling of the “imposter syndrome” is a normal feeling to have. You feel like you’re pretending to be something you’re not.

If you’re just starting out, you’re not an imposter. Be honest with your skill level and take action to connect with other programmers. It’s the easiest way to make the imposter syndrome go away.

16. Write answers on Quora.

You don’t need to have expert-level status to be able to provide insight about your coding journey.

Even if you only have a little bit of coding experience, you’ve probably encountered some insightful moments that you can tell other people about. Quora is a great platform to tell those stories. You can answer questions like:

What are some things you wish you knew when you started programming?

Answering these questions can help you build a following and motivate you to keep moving on your coding journey.

17. Don’t be afraid of making mistakes.

Mistakes happen, especially when you’re learning something new. Don’t let the fear of making a mistake prevent you from learning new things.

If you’re learning something as complex as programming, you will make mistakes.  That’s ok.

Everyone makes mistakes over the course of their programming journey, and you probably will too.

18. Use animated gifs.

If a picture is worth 1,000 words, an animated gif has to be worth 5,000.  When communicating with other developers, an animated gif can be the most effective way to celebrate code online. Boo yeah!



19. Always test your code.

Nothing is worse than shipping a feature, only to later realize you unknowingly broke a completely unrelated feature. The process of Test-Driven-Development prevents these types of problems. Following this process will ultimately save you time and prevent you from causing big problems.

20. Always work on the edge of your comfort zone.

Real progress as a programmer doesn’t happen when you’re working on the easy stuff.

To improve, you need work in the areas that you’re weakest at. This is the only way to become a better developer.

21. Programmers never stop learning.

Technology is evolving at an incredibly rapid pace. And in programming, there are:

  • A ton of different technologies
  • A ton of different programming languages
  • A ton of different approaches to writing code and solving problems

You’re never going to learn everything. But you should continuously work at improving at the skill of learning new things. Programmers need to be curious and enjoy learning new skills every single day.

22. Always use the right tool for the job.

In programming, there are tools of the trade, like:

  • Ruby
  • JavaScript
  • Ruby on Rails
  • Git
  • GitHub
  • Heroku
  • Twitter Bootstrap
  • Postgres
  • A lot more  

For every tool you pick to solve a problem, there are dozens of other technologies you could’ve picked instead.

Picking the right tool for the job allows you to program is the most enjoyable way possible. You wouldn’t ever try to build a bookshelf with a shovel. So don’t try to solve a programming problem with the wrong tool either.

Click to tweet:


23. Follow smart programmers on Twitter.

By following people who tweet about technology and programming, you’ll find yourself thinking about coding more and more.

Here are some of the people I follow on Twitter to get awesome insights”

  • @dhh – DHH is the creator of the Ruby on Rails framework. His tweets contain a mix of start-up lessons, programming paradigms, new technologies, controversial opinions and stuff about racing cars.
  • @tenderlove – one of the most active Ruby on Rails contributors. He tweets about performance optimization in Ruby, refactoring code in ruby, puns (both good and bad) and his cat Gorbachev Puff-Puff Thunderhorse.
  • @wycats – wrote many libraries that became a big part of Rails.  He built tools like Bundler, which Rails uses. He’s also worked on the Merb project, which helped change the direction of the changes that happened in Rails 2 to Rails 3. He also co-created the front-end framework Ember.  
  • @sandimetz – wrote POODR, Practical Object-Oriented Design in Ruby, one of the best resources for learning how to architect complex ruby programs. She has also given a number of awesome keynote speeches at Ruby conferences, too.
  • @dan_abramov – wrote one of the fastest adopted JavaScript libraries to date, named Redux. He’s currently spending a lot of time working to make the JavaScript ecosystem easier to navigate. He’s also working on a project to help improve documentation of React and JavaScript CLI’s to make programmers’ lives easier.  
  • @codenewbies – an awesome community, started by @saronyibarek

So follow these people, and also follow @FirehoseProject while you’re at it to get awesome stories and advice from our team and our students every day.

24. Sometimes, cheating is absolutely ok.

In programming, it’s far more important to know where to look for answers than to have all of the answers memorized. In general, memorizing stuff is overrated.

If you want to get started as a developer, you probably need to take a step back and un-learn the bad habits you learned in school.

25. It’s important to ask for help.

A big part of becoming a successful developer is learning how to communicate with other developers, and getting help (and helping other developers) is part of the process.

26. You don’t need to have 5 monitors to get started coding.  

A normal laptop or desktop computer is more than enough to get started programming.  Even if you’re on something like a Chromebook, which isn’t a full computer, you can write software using online IDEs like CodeAnywhere, Codenvy,  or cloud9.


27. Learn more than one programming language.

The term for a developer who knows multiple programming languages is a “polyglot programmer.” Having experience working in multiple different programming languages will help you understand programming at a higher level.

You should start with just one programming language but plan to learn additional languages later on.

28. You will eventually need to be ok with occasionally writing bad code.

Given the deadlines and other factors, there will be situations where it’s acceptable to write code that isn’t ideal.

You don’t want to constantly write bad code, but sometimes writing a little bit of bad code to prevent a lot of yak shaving can be worth it. You can always shave that yak later.

Click to tweet:


29. Skills with algorithms are important.

Since technology evolves so rapidly, your skill with any specific technology will only take you so far. Being good at solving algorithmic challenges is a timeless skill.

By investing your energy in learning how to problem solve and break big problems into smaller problems that are more manageable, you gain a skill that will be valuable for your entire career.

30. When you get stuck, embrace the power of the 10 Tab Rule.

Here’s the 10 Tab Rule:

When you get stuck coding, take a moment to articulate a thoughtful question into a search engine, then open a new tab for each of the front page search results.

After running the search and reading through the top ten results, you’ll gain valuable insight that helps you resolve the issue you’re facing.  

31. Don’t over-engineer simple problems.

If you face a simple problem, try to come up with the simplest possible solution.

32. Accept criticism with ease.

One of the fastest ways to learn and grow as a developer is to have another developer tell you how to improve your code.

When a developer critiques your code, it’s to help you learn and improve. It doesn’t mean you’re a bad programmer.  

33. Start applying for jobs before you feel ready.

If you want to land a job as a junior web developer, you should start applying for jobs before you feel ready. Get out there early and start putting yourself in the position to land a job, if that’s your goal.

34. Learn to work with other people.

In the real world, teams of developers write the best software. If you practice working together with other developers, you’ll learn that there’s a lot more to coding than working by yourself.

Since projects in the real world are written by teams of developers, getting the experience working on a team of developers is so helpful to land a job as a developer.

35. You don’t need to be a math genius to learn to code.

Math does play a role in programming, but most people already have the skills required to write software. The most important math topics that programmers use every day are simple things, like:

  • Addition
  • Subtraction
  • Multiplication
  • Division
  • Remainders

It may have been a while since you’ve worked with remainders, but they’re actually pretty useful in programming (and pretty easy to pick up).

Here’s an example:

You want to communicate the length of a workout in hours and minutes to a user of a fitness app. The workout lasted 71 minutes.

71/60 = 1.18. So that’s 1 full hour.

How do you get the minutes?

You use a modulo function, which finds the remainder of a number.

71 % 60 = 11.

So 71 minutes is 1 hour 11 minutes.

For everyday programming and web development, that’s about the extent of the math that’s useful.  Arithmetic is crucial to writing software, but you can get remarkably far with just knowing the basics.

36. You can learn to code without ever leaving your house.  

With all the places you can learn to code online, you can learn to code in the comfort of your own home.  There are all kinds of different resources online that can help you to achieve your coding goals:

  • Free resources to get beginners started
  • DIY coding resources that are relatively inexpensive and give you a deeper experience in programming
  • Longer programs that touch on multiple aspects of programming
  • Online coding bootcamps.

Regardless of your skill level, the Internet makes it possible to get access to everything you need to achieve your coding goals.

37. Subscribe to coding podcasts.

There are plenty of times when it’s not practical to be coding. For example, when you’re commuting, working out at the gym, or doing any other type of physical activity that doesn’t allow you to be on a computer.

Despite the fact that you can’t actually write code while doing any of these activities, they can still be great opportunities for you to learn. Don’t waste these opportunities. Instead, try listening to some coding-related podcasts. There are a ton of quality ones that you can check out.

Here are some that I’d recommend trying:

  • RubyRogues is a popular podcast about being a ruby developer.  
  • Giant Robots Smashing Into Other Giant Robots is a podcast by the people at Thoughtbot.
  • CodeNewbies Podcast is a great podcast for people breaking into the industry. Saron, the founder of CodeNewbies, hosts the podcast and routinely invites different programmers onto the show.
  • Sometimes, you’ll find interesting topics on non-programming related podcasts too. For example, Tim Ferriss recently talked to DHH (David Heinemeier Hansson), the creator of the Ruby on Rails framework, about a ton of interesting programming concepts on his popular podcast.

38. There’s a big difference between a lowercase and capital letter.

Inconsistencies with the smallest details can lead to really annoying problems. Common details you should look out for are:

  • Capital vs. lowercase letters.
  • Singular vs. plural
  • Using the correct programming symbols, like: <, *, >, _, -, $, #
  • Making changes in the correct file on your file system.

As a programmer, you need to pay attention to details. Even small, seemingly insignificant things like this are important.

39. Clean up your GitHub profile.

People will largely judge your ability as a programmer based on the work you do. Since your work will likely be up on, it’s important to have a clean, organized, and professional GitHub presence.

Remove the projects that you don’t think represent your current skill as a developer. You’re better off featuring a smaller mix of high-quality projects than a larger mix of just-ok stuff.

40. Don’t take rejection too seriously.

If you’ve applied for a job and the company decides to turn you down, don’t take it personally. Employers are cautious. For them, it’s far less risky to turn down a great candidate than to hire the wrong person.

41. Learn how to ace the technical interview.

Technical interviews far different than other types of interviews.

There are many aspects to technical interviews that you don’t get in other interviews. And like learning to code, you’ll need to learn how to level up at the skill of technical interviews.

42. Don’t let problems pile up without checking that your app is working.

The key to being an effective developer is to work in a state called iterative development.  

A developer working in an iterative way can jump from one working state to the next. Since problems can easily come up, it’s important to double-check your work in between every single code change you make. That way you can isolate the source of the problem if something comes up.

43. If you feel like you have no idea what you’re doing, it’s ok.

There is no finish line.

Working with things on the edge of your comfort zone is the only way to learn to code.


44. Embrace error messages.

The first few times you see an error message, it can feel daunting. It can feel like your computer is telling you that you’re stupid and not good at programming.

In reality, though, the opposite is true. The computer is a fairly stupid machine. Even the smallest problem can it up.  Luckily, error messages give you all the details you need to source of the problem.

45. Beware of “The Dip.”

If you’re trying to learn any complex skill, there will be a moment where you realize that the rabbit hole goes a lot deeper than you initially imagined. This period of time is known as “The Dip,” and it’s a point in time when it takes a lot more effort to see incrementally smaller results.

After learning the foundations of programming, digging in and learning more and more advanced things can be intimidating. But it’s super important.

Commit to moving past The Dip and honing your skills.

46. Use the power of “No, but…”

When you’re in an interview and someone asks you about something that you don’t know, it can be tempting to…

  • Lie
  • Just say no

Instead, you should respond in a way that indicates that you don’t have experience in the topic, but that you probably wouldn’t have a problem picking it up.

That’s where the phrase “No, but…” comes in. Use it to focus the interview on the things you do know and keep the conversation moving.

47. All coding bootcamps aren’t nonsense.

Like many other educational institutions, some are better than others.  

If you wanting to switch careers, returning to college and taking four more years of classes often isn’t practical. For these people, coding bootcamps can be a viable way to accelerate their skills and successfully transition careers.

48. Craft your personal developer story.

Employers like candidates who decide to pursue something they are passionate about.  Your personal developer story should be all about what you’re passionate about programming.

49. Punch your fear of failure in the face.

If you’re afraid of setting ambitious goals, you’re not alone. But you can’t let this fear stop you from pursuing great things.

There are a few shocking realities when it comes to fear of failure:

Reality #1: It’s scary how little people care about what you do.

It’s easy to think other people will judge you or look down on your for taking a risk. However, most people are actually stuck in their own reality and aren’t really paying too much attention to anybody else.

Reality #2: If you’re lucky, someone will tell you that you’re an idiot and you’re making a huge mistake.

The motivation to prove someone who doesn’t believe in you wrong is a powerful motivator that will help you put in the work when the times are tough.

Reality #3: You’re definitely going to fail.

There will definitely be failures along the way, but you only need to succeed once to achieve your goals.  Don’t let the failure cause you to give up. Instead, use that as motivation to keep moving forward.

50. Learn from each of your failures.

We all make mistakes. The difference between successful people and unsuccessful people is often just that successful people learn from their mistakes and keep trying.

51. Launch your MVP early.

Nothing beats getting real user feedback. If you’re building an application, start by boiling it down to the essential features and omitting anything that isn’t 100% required.

52. Know the expectations of a junior developer.

You’ll never know all the answers, and that’s ok. Hiring junior developers is an investment in their long-term potential rather than an immediate payoff.

Learning and growing as a developer is one of the most important jobs you have to do as a junior developer. You probably won’t have all the answers, but learning how to work with senior developers to get help is important.

53. You’re going to wake up in the morning thinking about code.

And when it happens, it’s going to be pretty awesome.

54. Go play foosball. It’s often more important than coding.

As a programmer, it’s easy to think that you need to spend 100% of your time writing code. Don’t underestimate the value of the relationships you can build with other developers and people in non-technical roles.

55. Follow Medium publications that talk about tech and career switching.

When I wake up, I always check my inbox for the interesting posts sent to me by Medium.

Medium will share the posts based on the people you follow and what your friends recommend.  Here are a few publications that you should consider following.

  • is our Firehose student blog. Here, we feature really awesome posts written by our students. It’s fascinating to get a peek into the minds of people who are pushing themselves to learn programming and change careers. I’d recommend checking out their stories.


  • Signal v. Noise is the medium publication for Basecamp. For context, Basecamp’s founder, DHH, started the Ruby on Rails framework. Both DHH and Jason Fried (CEO of Basecamp) write excellent posts about tech, development and the future of the web. Their opinions often are very different from common beliefs, so it’s interesting to see their unique perspective.
  • Startups, Wanderlust and Life Hacking is one of the largest Medium publications. Although many of the posts aren’t directly related to coding, they’re certainly relevant for someone who is considering entering the startup world as a developer. This medium publication has awesome posts, like Freelancers vs. Entrepreneurs by Seth Godin, and The Surprisingly Simple Thing Slack Got Wrong, by Dharmesh Shah, the CTO of HubSpot.
  • The Personal Growth medium publication also has awesome posts about improving your life, changing careers and becoming a better version of yourself every day.

There are many other Medium publications that produce really excellent content. Make sure to click the follow button to the publications you find interesting!

56. Take responsibility for your mistakes.

If you’re trying to learn to code this year, you’re going to make mistakes. Learn to take responsibility for your mistakes and ensure that they won’t happen again.

If you ever ship a bug, just own up to it. The take the driver’s seat and figure out how you can prevent similar mistakes from ever happening again in the future.

57. Be ok with throwing away code.

The sunk cost fallacy, or the idea that you’ve already invested so much time writing the code that throwing it away would be a waste, can sometimes cause people to act in irrational ways.

Throwing away code is something all developers do.  Learning how to not let it bother you is an important skill.

58. Micro-decisions often matter.

A computer program that you write could have dozens, if not hundreds of:

  • Variable names
  • Method names

Good programmers will make sure they handle little things, like naming things in their code with smart, descriptive names.

If you’re trying to become a programmer, you need to accept that these micro-decisions matter and that it’s worth the time to get them right.

59. Learn how to use vim.

Vim is a text editor that can be run in through the command line. It can come in incredibly handy. Being an expert at Vim isn’t a requirement for a programmer, but it’s incredibly handy to be able to find your way around it.

60. Programming is all about teaching the computer to think like a human.  

Instead of trying to think like a computer, you need to figure out a strategy to teach a computer to solve the problem in a similar way that you would solve it as a human.


61. “Liberal arts people” make great programmers.

Don’t stay stuck in the “liberal arts person stereotype.” You can learn to code, too.

62. Consistently improve the code in your project the right way.

It’s easy to make the mistake of trying to improve the code in your project the wrong way.  Don’t do it.

63. Execution matters the most.

With all other things being equal, developers who spend more time actually programming will become better than developers who spend their time just thinking about programming.

Programming is all about being in the weeds and in the code. The more time you spend writing code, the better you’ll be.

64. There’s a right way to ask for help.

Here’s how to ask for help:

  • Over-communicate the problem you’re facing.
  • Explain exactly how to produce the problem.
  • Explain all the details of the problem and why the problem happens.
  • Walks through why you find this behavior to be surprising.

The act of communicating the details of a problem will often help you uncover the actual cause. Most programmers have experienced a situation during which they explain all the relevant details of their problem and find the answer in the process.

65. You should usually work for someone else before starting your own company.

Mark Cuban says it best in his book How to Win at the Sport of Business:

“In every job, I would justify it in my mind, whether I loved it or hated it, that I was getting paid to learn and every experience would be of value when I figured out what I wanted to do when I grew up.”

In the field of programming, where there is always more to learn, getting paid to learn is one of the most ways to use your time and energy.


66. Stay cool under pressure.

If you become a developer, you will at some point experience the below scenario:

  • You’ll make a change
  • You’ll accidentally cause problems that need to be fixed immediately
  • You’ll have no idea how to fix the problem

Staying cool under pressure and able to think critically about code during times of urgency is a characteristic of a developer who is capable of greatness.

67. Know how to use Google aggressively.

For nearly every coding problem, Google can help bring the knowledge you’re missing.

The best developers know how to effectively use search engines to solve the problems they face on a daily basis.

Click to tweet:


68. Focus really hard on your GitHub.

Your code on GitHub needs to be elegant, well-tested and well documented. If it’s not, a fancy portfolio won’t save you. Your work will need to speak for itself, so make sure your GitHub features code you’re proud of.

69. Great programmers solve problems that make companies a lot of money.

If you do, you’ll become a valuable asset that companies would hate to lose.  As a programmer working at a company it’s easy to put your head down, work on issues, and just do the work.

If you talk to people in different departments, like sales, marketing, and product management and understand their initiatives, it can be easy to put yourself in a position to help the company make a lot of money by adding the right features.  If you understand their goals, you might also be able to give them suggestions they hadn’t thought of because they didn’t know what was technically possible, or how difficult it could be to achieve the goal.

70. Know when it’s time to take a break.

As the day stretches on, mental fatigue can start to take place. It’s not uncommon for someone to spend all day working on a problem, only to solve the same problem in 15 minutes the following day.

Learn to know when you’re at the point where you need to take a break.

71. Listen to the feedback of other developers.

While sometimes the feedback can be spot-on or way off-base, listening is important. It is also important to know when to push back against their feedback and when to adjust your code.

72. Don’t accept freelance work in a technology you don’t understand.

One of the hardest aspects of doing freelance work is accurately estimating how long or how challenging certain parts of the project could be. Using certain technologies you don’t understand in the project could lead to many unknowns. This can be problematic when it comes to getting the job done.

73. Bootcamps operate where theory ends and the real world begins.  

Bootcamps give you the opportunity to get experience with real-world development things like:

  • Working on an agile team
  • Pair programming
  • Writing tests using test-driven development
  • Tools like git and GitHub

You could argue that coding bootcamps are the missing semester that most college computer science programs lack.

74. Get involved with open source software.

The first step could be as simple as sharing a taco recipe with the world.

75. Challenge your mentors.

To become a developer, you need to develop the ability to think critically.

You should evaluate the opinions of senior people with the same level of scrutiny as junior people. Your mentors will respect you more if you do so.

76. Start blogging about code.

Employers want to hire people who are passionate about programming. Writing about code is a great way to show you’re serious about leveling up your skills.

It’s also never been easier to get started. You can sign up for an account on Medium and start writing a blog immediately.

Blogging about programming is a really effective way to get noticed as a developer.

77. Know when it’s time to give back.

Even if you just got started programming, you probably have some expertise that someone else doesn’t have.

Find a community and start helping other people learn. If you share your experience and stories with others, it’s only going to help you improve.

78. When you’re working on a team, make sure the entire team agrees on a plan of attack.

That way, you can get the expertise of everyone and get moving in the right direction right from the start.

79. Know when it’s time to step back and come up with a different plan of attack.

When things don’t go according to plan, don’t hesitate to reach out to the team and suggest taking a different approach.


80. Don’t sweat the details, but make sure you’re moving in the right direction. 

As long as you get closer and closer to achieving your goal each day, you’re on the right track.

81. Avoiding merge conflicts will make you happier.

In the process of building features or fixing bugs, you’ll likely be working in an environment with other developers.The sooner your work gets accepted into the code base, the sooner you won’t have to worry about a different developer stepping on your toes.

82. Trying to understand everything is a lost cause.  

When it comes to programming, you’ll never have all the answers. Nobody does.  Instead, the important thing is to decide what you want to learn and stick with itc.

Click to tweet:


83. Before asking for feedback, make sure to critically review your own work.

GitHub allows you to request to have other developers critique your code. This is known as a pull request. Prior to asking someone else to review your code in the pull request, always make sure to review the code change you’re proposing. Often, you’ll be able to catch small changes in your code that you didn’t intend to make.

84. You actually are smart enough to be a programmer.  

It’s easy to think programming isn’t for you. However, programming is an incredibly broad field, and there are many different types of jobs for a wide range of programmers.

85. Stop thinking and start doing.  

You only grow as a programmer by spending time writing code. It’s easy to get caught up endlessly researching:

  • Programming languages
  • Web frameworks
  • Coding bootcamps
  • Coding paradigms

Just stop researching and start coding.

Not sure where to start? Our free Coding Bootcamp Prep Course is a great way to learn the essential parts of programming, like HTML, CSS, and Ruby.

86. Stop making excuses.  

Doing so will only get in the way of you learning how to code.

87. You need to become a self-sufficient developer.  

Self-sufficient developers are capable of making their ideas come to reality. Moreover, they don’t rely on anyone else to get things done.

The best self-sufficient developers look towards others for inspiration and feedback but are capable of building things on their own.

88. Stay focused.  

Sometimes the learning process can be difficult — especially when it is outside of your comfort zone. Intensely focusing on challenging topics is the key to getting the skills you need to conquer the next challenge that’s waiting around the corner.

89. Be patient. Meaningful change takes a while.  

You need to be in it for the long haul. Meaningful changes happen because of habits and continued improvements. If you focus on working slow and steady, you will make progress.

90. Stop watching Game of Thrones.

The excuse “I don’t have the time” isn’t good enough. You can always make more time.


91. Code every day.  

Spend time coding every single day. Even if you only have 15 or 20 minutes, you can still grab a Codewars kata and solve it. If you have more time, work on a side project and make progress there.

Click to tweet:


92. Plan out exactly which topic you’re going to learn.  

Take few minutes at the start of the week to think about and write down what you want to learn.

By prioritizing that and making it a goal, you’ll set a standard that you’re going to live up to. Be the type of person who always meets their goals.

93. Learning to code isn’t easy.

And that’s a good thing.

If it was easy, programmers wouldn’t be so in-demand.  

94. If you struggle to figure something out, you should document the process.

You’re probably not the first person to find a specific concept challenging, and you also probably won’t be the last. Document the process you used to learn it. It will help you in the future, and it can help other programmers with the same concept too.

95. Learn to love the process.

There are so many different reasons to love programming:

  • You have the ability to create something from nothing, using your computer, a text editor, and ideas you have.
  • There are ways to express yourself, with code that computers understand, that are elegant and beautiful.
  • There are often many different ways to solve the same problem. Learning all of them can expand your view as a programmer.
  • The experience of having things “click” can be one of the most satisfying moments in your career.

96. Move fast and break things.

Mistakes happen.  And that’s ok.  Learning from your mistakes is one of the most effective ways to learn.

Don’t be paralyzed by the idea of making a mistake. It will only prevent you from ever learning anything at all.

97. Don’t give up before change happens.

Switching careers takes a lot of work. But don’t make the mistake of giving up after the first or second setback. Stick with it for the long-haul. You could be closer to your goal than you could ever imagine.


98. You’re never going to feel like you’re ready to program full-time.

Being an effective software developer isn’t like most other careers. It’s all about learning every day: You’ll need to:

  • Learn new technologies.
  • Learn new strategies of how to break down problems.
  • Learn from mistakes.
  • Learn how to work through things with trial and error.

The process of being a developer doesn’t change once you get a job as a developer.  And getting paid to learn is a wonderful thing.

99. Starting today, you’re a developer first.

Your identity will need to shift, and all your energy should go towards your new identity.  Your old job shouldn’t be your primary identity any longer.

100. Take 100% ownership of your learning.

Skills as complicated as coding require you to go all-in. Every minute you spend learning, you should ask yourself:

Am I giving this my best effort?

You should always be answering that question with an emphatic “yes!”

Make 2017 the year that you learn to code.

Get started today here.

Then share this post with someone else who should learn to code this year too using the hashtag #100CodingLessons.

AuthorKen Mazaika

Ken Mazaika is the CTO and co-founder at Firehose. Previously, he was a tech lead at (acquired by PayPal) and a member of the PayPal/eBay development team in Boston.

3 replies on “100 Essential Lessons For Those Who Want To Learn To Code in 2017

  1. #46.) “Instead, you should respond indicates that you don’t have experience in the topic, … “Shouldn’t this read something like, “Instead, your response should indicate that you don’t …”

Leave a Reply

Your email address will not be published. Required fields are marked *