The Best Way to Learn Coding

Matt MacPherson on May 10, 2018

The thing that really frustrated me when I first started learning to code was what I now call the “foggy bridge”. It’s a long and dark bridge whe... [Read Full]
markdown guide

What a great article!

I feel you on ,

You know what’s really frustrating about those responses? They’re all legitimately great answers.

We need to be patient with ourselves and find our own way.

We have the same goal: to learn how to code.
We have different pathways to get there. It's all about patience, knowing yourself, and knowing what works for you.

Thanks for writing this! It prompted some great introspection.


Thank you! I really enjoyed reading your post on Frankenstein code the other day; it's pretty much exactly how I learned. I started that journey about 18 years ago with mIRC scripting. Mmm, nostalgia. 😎


Matt, thanks for the article and the creation of edabit. In about 2 days with edabit I feel like I have a much better practical understanding of how to manipulate python lists and I've even learned some new approaches (syntactically and otherwise) thanks to the resources and solutions tabs on each problem. This is a great tool and I feel like I'm perfectly in the middle stage of programming you describe in this article (i.e. "They have no direction other than vague advice to start making things, which is kind of like trying to ride a bike without ever having used training wheels.")

I've occasionally jumped into making stuff (because I had a problem to solve), but even with those wins I felt like my general understanding of programming was limited to the problems I solved (and therefore limited to the problems I could come up with and devote time to). This didn't help my overall feeling that I could really leverage code effectively/quickly enough to invest the time.

In short: thanks for edabit. It's proving (to me) that I basically understand the syntax and how to do things, but it's also increasing my self-efficacy for generally being able to approach problems more quickly with code―which changes my calculation for whether or not it's worth investing the time in coding up a solution.

Thanks for making making more accessible.


Thank you for the encouragement! This kind of feedback really makes doing what I'm doing worth it. Also, I fixed that annoying Python indentation error yesterday (I'm sure you ran into it a few times). If you've got any ideas for site improvements please let me know!! :D


I did run into that error many times! Glad to know it's fixed! I'll certainly send some improvement ideas along as I progress through. I'll try to keep a running list of minor annoyances. The core concept is great though, and really helpful to someone like me. Very much appreciated!


This definitely describes my experience with learning a new programming language.

I really appreciate you creating the Edabit website. It has definitely helped me by putting my Python experience to use to solidify what I have learned.

  • Any possibility of adding Golang to the list of Edabit languages?
  • I have a hard time finding things for this part. I'd really like to find some to put the skills to use:

Once you understand syntax and can actually solve basic coding problems on your own, it’s time to either contribute to open source projects or work on some hair brained idea you’ve got. Build stuff that makes you excited to get out of bed in the morning and prevents you from falling asleep at night. Passion will get you past the remaining hard parts.


Thanks, Matt! I'm in about step 2 of my journey into programming :D


I don't even know where to begin. This post is exactly what I have felt for a while now. You are so correct when you said a big industry is built on beginner books about syntax but then when you jump to things like design patterns and data structures and algorithms it leaves the people who are self taught or just beginning with this paralyzing fear or view that they are never going to learn this stuff.

Many thanks for this great article. If you have time could you expand on problem 2. solving problems. I think the step from 1 -> 2 is by far the biggest but once you get to 2, I think jump to 3 becomes easier.


This is a great article. i like it.
Can you give 2 or more example list in the Solve Problem segment.

thanks for the article.


This blog post and looks like an answer to my prayers! Thank you!


I liked the approach, but for someone who is beginning, it would be important to choose a language wich its syntax and problem solving patterns are inherited by major of languages.


Most popular languages are based on C syntax. Exceptions being Python and Ruby. Problem solving patterns are pretty much universal so far as I can tell... Functions, loops, variables, conditionals, etc. I don’t believe the syntax part is very important. Most people can pick it up relatively quickly. Solving problems with syntax is the challenging, more time consuming part.

code of conduct - report abuse