Learn to Code: Free resources

Learn to Code: Free resources

If you're trying to learn to code, the following resources may help you.

This is a living document and as I hear about new and useful resources, I'll share them here. If you have any suggestions, feel free to leave a comment or DM me on Twitter.

🙋🏻‍♀️ Beginners

  • CodeCademy -> Test out a good breadth of languages like HTML, CSS, SQL, Python, JavaScript, and Ruby. Start with some of those. I'd recommend going through as much of their free content as you find enjoyable, especially web development if you're a visual person or someone who likes creating things and seeing the fruits of your labour. Their content is interactive and fun.
  • Ania Kubów's 12-hour Bootcamp -> Free coding bootcamp video on YouTube for learning web development (HTML, CSS, JavaScript)
  • Scratch is a popular tool that people use to conceptualize logic. I personally do not like it, but it is often recommended by educators. I personally prefer to teach logic by using pseudo code rather than a GUI, but many find this an effective tool for learning.
  • Free Code Camp -> A free, structured way to learn. Join a cohort of people, participate in lectures, do homework, etc.
  • 100devs -> LearnWithLeon, MayanWolfe and other team members at 100devs offer a free full stack web development bootcamp on Twitch. They have planned lessons that are interactive and fun. The focus is on full stack JavaScript.
  • Learn Programming subreddit FAQ -> a list of FAQ's often asked by beginners. A long list of links you may find useful.
  • Flexbox Froggy -> A fun, interactive game that teaches flexbox layouts for front-end web development

💪 Experienced Programmers

If you're an experienced programmer and are trying to learn something new, the above resources are still applicable, but here are some additional ones.

  • Exercism is a great platform for practicing algorithms. There's 2 things I love about it:
    1. I can use my own editor because their CLI allows me to download to and submit projects from my machine
    2. I can seek free mentorship on a solution. For example, I used the mentorship feature to get some feedback about my multi-threading solution, and from a few messages with a mentor I was able to learn and grow.
  • If you know Java, you can learn Kotlin in Android Studio and IntelliJ CE. It allows you to paste Java code into Kotlin files and asks you if you'd like to translate it. You can see what your existing code looks like in Kotlin.
  • Swift UI videos by Paul Hudson are great

🎬 Past Twitch streams

I use a variety of technologies in my programming streams. You can check out some of the videos below:

Or videos by other programming streamers:

❤️ Most important: Find your passion

Find something you really enjoy doing because that passion will drive you to continue to learn and grow. If you don't enjoy it, you may find it hard to stay motivated to learn. If you find you're not having a good time, maybe there's another technology you may enjoy more. It's also possible your learning style may be different—you prefer more structured lessons, or maybe you don't like the pace or format of structured classes and prefer to learn on your own. Do you like videos? Books? Maybe you learn best with 1-on-1 dedicated mentorship. Understanding both how you like to learn and which technologies you like are 2 different things. You may have chosen the right technology for you but maybe the way you're learning it doesn't work for you.