Introduction to Programming
Learning to code is hard. It may take hundreds of hours for people to learn, some take longer, others shorter. But when people start they also aren't quite sure what to do and what domains they want to work in and build for. With so many options, software development, web development, AI development and so much more, picking a domain has never been harder until now. But with this roadmap, I will help you pick a domain for those unsure future developers.
The Roadmap
With so many programming languages out there for all types of purposes, you're gonna use Python, It's a multi-purpose programming language used in almost every field of development, from software and AI development to web development and automation, Python can do almost anything, you cannot go wrong with Python. Python also houses a large community of developers around the world making it easy to join communities where you can collaborate and learn from others. For learning Python, I recommend this video by Programming with Mosh and follow along.
Programming with Mosh Python Tutorial
Once you have finished this tutorial. It's time to test your knowledge with some smaller projects that you can grow in complexity over time. Here are some beginner project ideas.
Build Your Own Adventure (Difficulty: ★☆☆☆)
Film Suggestor (Difficulty: ★★☆☆)
Math Exercise (Difficulty: ★★☆☆)
Rock, Paper, Scissors (Difficulty: ★★☆☆)
Quizzes (Difficulty: ★★☆☆)
Once you've practiced the basics, you can dive into the more advanced concepts such as Meta and Abstract Classes, Decorators, Generators, and more. I recommend this view by FreeCodeCamp.org.
FreeCodeCamp Advanced Concepts
After you've completed this video you can begin work with sites to practice your problem-solving skills such as CodeWars and LeetCode, when you get more advanced.
Now you can strive for more advanced projects, and try incorporating anything you think would be cool, and don't be afraid to try new domains and to get an idea of what you want and expand into a wide variety of topics, allowing many future opportunities for the Unsure Developer. Here are some project ideas for other domains:
Web Development (Flask or Django Framework)
Build a To-Do App (Difficulty: ★★☆☆)
Build a Banking App (Difficulty: ★★★☆)
Build an E-commerce App (Difficulty: ★★★☆)
Build a Social Media Clone (Difficulty: ★★★☆)
Build a Chat App using WebSockets (Difficulty: ★★★★)
AI Development (Tensorflow or PyTorch Framework)
Build an Image classifier (Is it a cat or dog) (Difficulty: ★★☆☆)
Build a sentiment analysis (Is this positive or negative) (Difficulty: ★★★☆)
Build an Object Detector (Difficulty: ★★★☆)
Build a Facial Detector (Difficulty: ★★★☆)
Train an AI to play a game with NEAT (Difficulty: ★★★★)
Self-driving car simulation (Difficulty: ★★★★)
IoT Development:
Build an IP camera with Raspberry Pi or ESP32-CAM (Difficulty: ★★☆☆)
Home automation with Raspberry Pi (Difficulty: ★★★☆)
Temperature / Humidity Detection System (Difficulty: ★★★☆)
Automatic Plant Watering (Difficulty: ★★★☆)
Automatic Pet Feeder (Difficulty: ★★★☆)
The projects possible with Python are limitless, and many more domains exist between and outside these, but the easiest way to learn how to code is to enjoy the process and strive to do fulfilling projects.