Skip to main content
3 answers
Asked 1393 views

What is the best way to teach yourself how to code?

I need to learn more about computer science and I feel really behind my peers in the field. When I've asked about resources, I'm usually told to "just use something online" and not given other specifics. #coding #computer-science

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you


3 answers

Share a link to this answer
Share a link to this answer

Jiayu Jimmy’s Answer

Hi Elisabeth, the best way to learn to code by yourself is through online classes. Most of these sites offer free help. Some of these websites even have college level full classes for you to take.

Here are some websites I have used in learning how to code:

Khanacademy or codeacademy offer very basic overview of different languages and type of coding. I recommend to start there first and see what you would like to further pursue.

Thank you comment icon +1 to this One specific good starting point is the MIT intro comp sci course on edx: Daniel Moy
Share a link to this answer
Share a link to this answer

Mavis’s Answer

Hemraj Singh wrote the following post on another question - and it's worth reposting here:

Programming is one of the most valuable skills you can pick up in these modern times, whether for career prospects or to stretch your brain and create something awesome. If you're just getting started on your coding journey, here are ten tips and resources to set you off on the right foot

Figure Out Why You Want to Learn to Code

The direction you go in will depend in large part on why you want to learn to code in the first place and how much time you have to devote to learning. If you want to be a professional programmer, signing up college courses might be your best bet. (Google has a list of suggested skills and courses for would-be software engineers.) If you want to build websites or games for fun (and possibly profit) in your spare time, interactive tutorials might be better. Bloc has a comparison of course options based on workload, cost, and reason you're picking up programming. And if you're still deciding on a tech career, Switch will recommend one based on your interests.

Choose the Right Language

There's no one "best" programming language, and once you've learned one, it's fairly easy to pick up another, so don't get hung too up on choosing your first language. That said, some languages are more beginner-friendly than others. The language you choose to start with might depend, again, on your purpose. (For example, if you want to write an iOS app, you'll need to learn Swift.) There's a case for starting with C if you're serious about programming, although higher-level languages, like Python, are easier to jump into right away. Here's an infographic comparing a few popular programming languages.

Start Small (and Be Patient)

No matter which language or learning method you choose, you should start at the very beginning (a very good place to start). When David Sinsky taught himself to code in eight weeks, for example, he spent one weekend getting an introductory grasp of Python and one weekend getting an introductory understanding of Django—going through the tutorial, deleting all of the tutorial code, and working through the tutorial again from scratch. Start with the basics and be patient with yourself as you progress. To take your first coding project from start to finish, break down the project into simple steps. And if one method of learning isn't working for you (e.g., books), try another method before giving up.

Try a Kids App

Even toddlers are learning to code these days. That's actually a great thing for all of us. Although many of the programs designed to teach kids to code are very simplistic, many of them, like Scratch, are suitable for all ages. It doesn't matter how old you are; even kids' animation apps can get you started with the basics of programming (edX has a new course on Programming in Scratch, by the way).

Use Free Online Training Sites

Free online training sites like Codecademy and other Hour of Code participants can help you write your first computer program. Tutorials from KhanAcademy, Codecademy,, and many other organizations will introduce you to the basics of programming—all while creating a new game, site, or other project. Find the resources you need according to the language you're learning with Bento. These are good starting points, but you'll need to take the initiative to further or continue your learning after these introductions.

Take a Coding Course

Online computer science courses offer a bit more of rounded educational experience compared to online training sites focusing on one language. These courses are designed to teach you fundamental skills over several months in college-level classes. I can't personally recommend Harvard's CS50 (which you can take for free) enough, but there are many others you can take (many listed on our Lifehacker U series). You can even build a college-level computer science education with this selection of fifteen online courses.

Grab Some Free Programming Books

When you get stuck on a problem or just need to look something up, reference books come in very handy. There's a huge collection of over 500 free programming books posted on GitHub, and another collection of Ebooks covering 24 programming languages.

Play Coding Games

Often the best way to learn is through games. While plenty of coding tutorials have you building simple or complex games yourself, a couple of teaching sites are literally games: Code Combat and CodinGame are two you might have fun with.

Get a Mentor (or Teach Someone Else)

The programming community is full of people who are willing to help the next generation of programmers. Hack.pledge() is one site that will connect you to a mentor, or you can sign up to mentor someone else. Even just planning to teach what you've learned can help you retain the information better.

Hack Someone Else's Code

When you reverse engineer someone else's code, testing each line to see how it works, you get a better understanding of the big picture. Thanks to tons of open source code, you can learn just about anything—and keep learning through the incremental-hacking cycle. Just remember to share your code back with the community if you improve on a program

Share a link to this answer
Share a link to this answer

Shabeeb’s Answer

Hi Elisabeth,

That's awesome that you're pursuing coding and computer science! This field can give you a lot of opportunities to work on all sorts of problems that impact people all over the world. Learning coding is not only a challenging and engaging activity, it can also help improve your logical thinking and help your understanding of the world around you. That being said, it is very fair to struggle while you are learning this new skill, I personally felt the same way when I started learning how to code in college. Remember that everyone learns at their own pace, so while it may be frustrating to feel like you are falling behind your peers it is also very normal.

One of the best parts about learning how to code is the plethora of online resources available. CodeCademy, Khan Academy, and Udemy are all great resources that allow you to pick up different skills in a fairly structured manner.

The advice I also like to give is to try and find a personal project that you want to work on that potentially solves a problem in your life. It could be a website, a mobile application, or even just a simple calculator app that takes input from a user. When you have a personal project, you can then ask yourself questions about what you want to accomplish, which will lead you down a path of google searches that will bring up answers and even more questions that you will want answered. You will find answers on Stack Overflow, Quora, or even blog posts that will teach you how to make specific applications in any language that you want to learn.

That added motivation you get from building a personal project will help you when things get difficult and even help you work on it when you don't always feel like sitting down and working. Good luck!