Getting started with programming

Last updated September 28th, 2023

If you’re interested in learning to code, but don’t know where to start, this guide is for you. We’ll break down what language you should learn first, where you can learn it, and what to do next.

Which language should I learn?

It’s best to get started with a language that’s well-known, doesn’t bog you down in advanced computer science concepts right away, and gives you the strongest foundation to pursue more advanced projects in the future.

For these reasons, we recommend that you start with either Python or JavaScript.

You should learn Python if:

  • You’re generally interested in computers, and aren’t sure exactly how you want to use your programming knowledge in the future
  • You want to learn programming to make small programs and scripts that complete small, interesting tasks
  • You want to learn about artificial intelligence, such as building machine learning models

You should learn JavaScript if:

  • You’re interested in working on apps, either web apps or mobile apps
  • You want to make virtual reality and augmented reality projects

Note that JavaScript is unrelated to the Java programming language.

If you’re not sure which category you fall into, we recommend trying a bit of both using the resources listed here, and see which language’s syntax you prefer.

What’s your learning style?

In general, programming is a uniquely accessible skill that doesn’t necessitate offline programs or paid resources. Most student programmers are largely or completely self-taught! You don’t need to pay to become a good programmer.

The best way for you to learn programming will depend on what style of learning you prefer the most. For each language mentioned here, we’ve provided links to:

  • Interactive text-based tutorials and guides
  • YouTube playlists and channels
  • Official documentation pages
  • Free university-level courses on platforms like edX and Coursera
  • Books / textbooks

Once again, if you’re not sure which style will suit you best, try a few different approaches and evaluate which one you seem to learn the most in. Most students tend to prefer a mix of the first two options.

Python

  1. CodeAcademy’s Python 3 course: these interactive text-based tutorials are the gold standard for learning programming through text-based tutorials

  2. YouTube videos from FreeCodeCamp and Programming with Mosh. These should be supplemented with practice on CodeAcademy, HackerRank, or building your own projects.

  3. MIT’s course on edX, ‘Introduction to Computer Science and Programming Using Python’. This is one of the most popular university-level Python courses online, but is definitely heavier and more academic than the above alternatives. However, you can get an official certificate from MIT on edX, and get a feel for college-level courses. We recommend this only for eighth-grade students and above.

  4. W3Schools takes a practical approach to teaching Python, oriented towards practice exercises and eventually learning back-end development.

  5. TechWithTim’s YouTube channel contains many helpful tips, tricks, and ideas for learning Python.

  6. Python’s official documentation is comprehensive, although it’s unlikely you’ll need to use it much while you’re learning Python for the first time.

  7. Harvard’s CS50 (see below)

Wherever you’re learning from, make sure that the course is for Python 3 or later! Some Python 2 courses are still online, but that version of the language is largely outdated and used increasingly less.

JavaScript

  1. CodeAcademy’s Javascript course

  2. You can try learning through the Odin Project’s Full Stack JavaScript course, up to their third chapter (‘Advanced HTML, CSS, and JS’).

  3. FreeCodeCamp’s project-based YouTube series.

  4. Harvard CS50 (see below)

Make sure not to learn anything involving ‘React’, ‘Vue’, ‘Next’, or similar advanced frameworks until you have a foundation in the basics of HTML, CSS, and JavaScript. These are tools which allow you to build complex web applications, but jumping to these may prevent from you building the necessary foundation in JavaScript first.

General computer science

Harvard’s CS50: Introduction to Computer Science on edX is widely considered to be a great introduction to computer science and a variety of programming languages.

If you’re in grade 9 or above, and aren’t sure how you want to go about learning programming, we recommend considering it.

Use projects to apply what you learn

Make sure that you’re not just learning languages and following tutorials, but also applying what you’re learning in independent projects of your own. This might seem scary initially–it always is–but making projects yourself is essential to become a programmer.

The best project ideas are your own, but here is a lists of ideas that may help you practice your programming skills.

What’s next?

After you’ve learnt Python, you can consider:

  • Learning back-end development with Django, Flask, or FastAPI
    1. Django: TechWithTim’s video is a great place to start.
    2. Flask: FreeCodeCamp’s video is a concise starting point.
    3. FastAPI: The official documentation is a great place to start. We recommend learning FastAPI only after learning Django or Flask.
  • Learning machine learning through Stanford Profesor Andrew Ng’s free courses on Coursera. We recommend this only for 10th graders and above.
  • Exploring tutorials on realpython.com that interest you

After you’ve learnt JavaScript, you can consider:

  • Trying to complete the remaining chapters in the Odin Project’s course
  • Learning React to build more complex web apps
  • Learning React Native to build mobile apps that run on both iOS and Android
  • Learning NodeJS and Express to build webservers, similar to Django, Flask, and FastAPI for Python.

Developer Roadmap contains a collection of great resources to take your skills to the next level to build complete applications.

Email tsrs.mgbt@gmail.com in case you have any queries about the society or the website.