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.
- 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.
- 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:
- I can use my own editor because their CLI allows me to download to and submit projects from my machine
- 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:
- If you'd like to learn backend Kotlin with Ktor, you may find the series of videos about how I built techydrrroid, a Twitch chatbot that handles events and chat messages from Twitch.
- If you'd like to learn macOS development or Swift UI (both iOS and macOS), you may find the series of videos about how I built a multi-lingual text-to-speech app on macOS interesting.
- If you want to see some Android development in Kotlin, you may find my series of videos about building a period tracker in Android interesting.
Or videos by other programming streamers:
- the Software and Game Development category on Twitch has people working on cool and interesting things but you probably know that already since that may be how you found me!
❤️ 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.