While scrolling through Reddit's programming subreddits I noticed a question similar to "Looking for beginner programming projects". Now, I see this post come up quite often across many different programming subs. I've noticed these questions often have a similar response in the comments. Usually, the comment is similar to "Just build something that you would use daily". Another response I see is something from Github's Awesome lists. Now, I'm personally a big fan of those lists but I think it's typically used as more of a catch-all since the lists usually span a wide variety of topics. I think the answer needs to go down deeper. Typically to provide a good answer to this question we need to know why the person is interested in programming in the first place or why they would like to learn. Most people don't just wake up one day and think they need to learn whatever programming language is trending that day. I've found that people typically start for three reasons. They want to learn to automate things, they want to build a website or web application, or they want to learn to program for penetration testing. I know there are other reasons but these are the ones I'll focus on as they are the reason I've learned programming and continue to learn.
As this is my first blog post and fits the topic I'll go over why I started programming. When I got my first job in IT my boss suggested I learn PHP as their ticketing system and the ITIL application is built in PHP. You can extend the application by building modules but you need a basic understanding of PHP. So, that got me interested in programming and I've built several applications in PHP before picking up Python and then moving to other languages as need. The most important thing I've learned about programming so far is to think of the languages as tools, not solutions. You build the solutions using the tools so sometimes some languages are more suitable for different projects than others. I'll be providing some example projects I've done or have a plan to do in the future. All of these projects can be done in multiple programming and scripting languages.
One thing I want to take time to address. I've noticed on various tech subs that people write questions about a lot of basic things that can easily be found with a quick Google search. Learning how to efficiently find information and solutions online is another invaluable lesson when getting started with programming. If you want to make this a career you can't necessarily make a Reddit or StackOverflow post every time you get stuck. So learning how to Google your question is a great skill also using Google Dorks can get you there a lot faster here's a good cheat sheet to get started.
With a large increase of people automating business processes, I see a lot of people looking at how to break into the field. There are many great resources on how to learn this subject but often they provide the basics and start you off with a few projects. Which is great but they don't often take you past the beginner stage. If you want to expand your knowledge here are my three project ideas to get you started.
With a growing need to develop web applications for a lot of different devices and with more people moving away from desktop applications there is a growing need to develop them. I think they're one of the more useful things to develop and they can be built in so many different ways. You have to often keep expanding your knowledge and trying to make it more efficient. These are the three projects that I think can help get you the experience you would need and provide you with a lot of ways to expand.
This is often considered one of the faster growing IT fields but is one of the hardest to staff. Mostly because it's not an entry-level job. You have to focus on a lot of subjects and have quite a bit of experience. This is why I suggest you learn at the minimum the first two Automation and web apps. You should focus on a lot of other things such as networking, firewalls, security controls, etc. But I'll provide some beginner projects that may get you moving in the right direction.
While this isn't a complete project list I think it's a good starting point with the projects that allow you to expand them naturally. I think this is a good way to look at applications especially side projects since you're only using them to grow your skills it's always good to look at them in ways that can help you. Whether it's at work, at home, or just on a specific project. I'm personally using this list as a list of things I want to build which I also plan on blogging about. So if you want to follow along stick around.