5 Great Strategies for Learning to Code

5 Great Strategies for Learning to Code Featured Image

As a teacher, I get a lot of questions from students on how to learn more about programming outside of class, and until now I haven’t had a really good answer. At long last, I’ve collected my thoughts and put together this list of strategies for learning to code.

Table of Contents


Right now, I’m preparing to teach a software course where the primary programming language is Java. Of course, not all of the students coming into the course know Java. As a result, they’ll have to get up to speed rather quickly. Naturally, this article is for them.

In addition, I’ve had several students email me in the past asking for coding resources. These are students who aren’t necessarily going to go into Computer Science, but they still want to learn some code for their field (Math, Finance, Business, etc.). As a result, this article is also for them.

Finally, I’m sure there plenty of people out there who are just looking for more support as they learn to code. If that’s you, this article is also for you.

The List

Without further ado, here’s my list!

Join Coding Communities

I’ll come right out of the gate and say it: no article is ever going to give you an up to date list of the best resources for learning to code. As a result, I always tell people to get involved in coding communities.

Personally, I’m partial to Twitter (where I follow the #CodeNewbieOpens in a new tab. and #100DaysOfCodeOpens in a new tab. hashtags) and Dev.toOpens in a new tab., but there are literally hundreds out there. For instance, I’m familiar with MediumOpens in a new tab. as a popular blogging platform among developers as well as FreeCodeCampOpens in a new tab. which now has its own blogging community.

Once you find a few communities you like, I recommend building up a list of your favorite contributors. That way, you can point others to awesome content. If you’re lucky, your favorite contributors will start building a nice following which means more awesome content for you. It’s a wonderful feedback loop!

To be honest, I’ve been really bad about this because I tend to focus mostly on creation rather than consumption, so feel free to recommend your favorite contributors in the comments.

Complete Coding Challenges

In the wonderful age of the internet, there are now a ton of websites which offer gamified education through coding challenges. In general, these sort of platforms provide a series of problems in increasing difficulty which can be solved for some form of internet points (aka bragging rights). In some cases, these internet points can help you score a job which is a nice bonus.

While I’m not big into the coding challenge craze, I have toyed around on a few sites for my own enjoyment. For instance, I’m quite fond of HackerRankOpens in a new tab. which is one of those sites where you can tackle some practice problems while gaining exposure to potential employers. As far as I can tell, they offer problem sets for a variety of languages including C, C++, Java, Python, and Ruby.

If you’re more interested in web development, I recommend FreeCodeCampOpens in a new tab. (again). Personally, I used the website to try to brush up on some JavaScript, so I could learn a few useful libraries like WebGL for 3D graphics and D3 for data visualization.

In addition, I’m familiar with at least one niche coding challenge site called CodingBatOpens in a new tab. for people learning Java or Python. If you’re just looking for code practice, CodingBat is the way to go. There’s no signup or internet points to worry about.

Beyond that, a quick Google search yields a few additional resources like:

  • CodeWarsOpens in a new tab.: Achieve Mastery Through Challenge
  • ExercismOpens in a new tab.: Code practice and mentorship for everyone
  • HackerEarthOpens in a new tab.: Programming Tutorials and Practice Problems
  • CoderbyteOpens in a new tab.: Improve your coding skills

As always, if you know of any coding challenge websites that you think others could benefit from, share them in the comments.

Use Q&A Forums

Sometimes when you’re learning to code, you just want your questions answered. In other words, you don’t want to have to sift through blogs or documentation to get a recommendation on how to solve a problem. Thankfully, there a lot of resources for people who just want answers to their questions.

Perhaps the most infamous coding Q&A website on the internet is StackOverflowOpens in a new tab.. In general, it’s a forum-like website where you can ask questions and get answers from people in the community. If you’ve ever Googled a coding question, you’ve probably found yourself there.

Of course, there are other Q&A platforms on the internet including QuoraOpens in a new tab. which is a bit less coding oriented. That said, I think the platform excels in areas that StackOverflow doesn’t like coding philosophy questions (i.e. What are the best programming practices and coding standards independent of programming languages?Opens in a new tab.).

In addition, there’s always RedditOpens in a new tab.. Unfortunately, I haven’t personally tried to use that platform as it’s also a bit infamous. It’s really too bad there isn’t a benevolent Q&A platform as far as I know, but I think you can still get some value out of these services regardless.

Explore Open-Source Projects

One thing that I think a lot of new learners overlook is the value of open-source code. In particular, I mean having access to a near limitless amount of production quality code in the wild.

Of course, there’s always a bit of a barrier to open-source code as many platforms require some knowledge of version control. Fortunately, you don’t need to know version control to be able to browse code. Seriously!

Right now, you can go on GitHub and explore the most popular repositories by topicOpens in a new tab.. In other words, if you’re interested in Python, you can find a list of active projects written in the language like FlaskOpens in a new tab. or DjangoOpens in a new tab.. As a consequence, you’ll be able to explore real code and get a feel for how real projects are written and managed. If you want, you could even fork your own version and make some changes.

While I was writing this article, I noticed that GitHub already has a “Learn to Code” collection which is loaded with awesome resources like this Project Based Learning collectionOpens in a new tab. and this Python Programming Challenges collectionOpens in a new tab..

Naturally, GitHub isn’t the only open-source hub on the internet. You may also get some value out of BitBucketOpens in a new tab. and GitLabOpens in a new tab.. Of the two, I’ve only used BitBucket which used to be the only place to get free private repositories. That said, GitLab has been gaining a lot of traction since Microsoft took over GitHub, so it may be worth checking out.

Never Give Up

Perhaps the best tip I can give to learners is to stick it out. Unfortunately, learning to code is hard because a lot of people have purposely made it that way. In essence, I’m talking about gatekeeping.

For whatever reason, there’s a very vocal minority in the tech community that wants to decide who can and can’t be in the community based on arbitrary criteria. For instance, you might be compelled to quit after someone claims you aren’t a real coder because you use HTML and CSS.

Even as an instructor, I catch nasty comments from elitists every now and then. In fact, I’ve even made an entire Wall of Shame for some of the comments I’ve gotten. Of course, I wouldn’t recommend you do the same as it’s a lousy coping mechanism. That said, I do think it’s helpful to see examples of the types of things people say to each other under the guise of internet anonymity. In other words, empathy is lacking in the community.

All-in-all, as long as you continue to focus on your growth, you’ll learn what you need to learn. And if not, hopefully you can find a community of people to support you. As always, I’m open to mentoring anyone who needs a hand. Just give the word!

Best of Luck

And with that, all I have to say is best of luck!

Once again, this is the part of the article where I shamelessly plug my membership siteOpens in a new tab.. If you’re into that sort of thing and can toss a couple bucks my way, I’d appreciate it! Alternatively, I’d love it if you hopped on my mailing list. That way, we can stay in touch.

While you’re here, check out some of these relevant books:

In the meantime, I have plenty more content where this came from. To be honest, I don’t do a lot of list pieces like this or general opinion pieces for that matter. That said, I love to talk about code, so maybe these beginner-oriented articles might interest you:

Well, that’s all I got for now. Thanks again for your support, and I hope to see you around.

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Today, he pursues a PhD in Engineering Education in order to ultimately land a teaching gig. In his spare time, Jeremy enjoys spending time with his wife, playing Overwatch and Phantasy Star Online 2, practicing trombone, watching Penguins hockey, and traveling the world.

Recent Posts