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.
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’re interested in working on apps, either web apps or mobile apps
- You want to make virtual reality and augmented reality projects
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.
CodeAcademy’s Python 3 course: these interactive text-based tutorials are the gold standard for learning programming through text-based tutorials
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.
W3Schools takes a practical approach to teaching Python, oriented towards practice exercises and eventually learning back-end development.
TechWithTim’s YouTube channel contains many helpful tips, tricks, and ideas for learning Python.
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.
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.
FreeCodeCamp’s project-based YouTube series.
Harvard CS50 (see below)
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.
After you’ve learnt Python, you can consider:
- Learning back-end development with Django, Flask, or FastAPI
- 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
- 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 firstname.lastname@example.org in case you have any queries about the society or the website.