BrandGhost

3 Beginner Programmer Projects That Scale From Zero To Hero

As beginner programmers, what kinds of things should we try building? Not everyone has the next billion-dollar startup idea. And that's okay! Especially when you're starting out, prioritize building things that allow you to learn. Check out this video for some great starter ideas! For more software engineering videos, check this out: https://www.youtube.com/watch?v=9NIhzWDAmzE&list=PLzATctVhnsghjyegbPZOCpnctSPr_dOaF Have you subscribed to my weekly newsletter yet? A 5 minute read every weekend...
View Transcript
all right so as a new software developer there's tons of information online tons of resources that you can use to go learn about a programming language or software development in general but one of the challenges is that because there's so much information where do you start where's the right source of information how do you prioritize your time it's completely overwhelming now there's lots of influencers and creators online that are trying to push their courses or their boot camps and stuff like that and I think that some of those people are doing a great job and they might have really good content to offer but I think you can still get really far sticking to the basics so in my opinion before you go shelling out money trying to hope that you found the right influencer Creator to listen to I think that you can go watching YouTube videos reading free articles and practicing what you're learning now a lot of what I talk about when it comes to getting better as a software developer is practicing what you're learning and that means actually writing code and actually building things but I get it when you're starting out things can be really challenging because you don't know what to build you you're kind of stuck in this position of like maybe I have an idea and I have no idea how to build it or I don't have any ideas I just want to start somewhere because I keep hearing I have to be coding things so I figured that I owed it to all of you that if I keep saying you have to go build things you have to practice what you're learning that I should talk about some opportunities for things that you could be going to build and I was very fortunate because a couple of weeks ago on LinkedIn someone had posted a really awesome infographic that had tons of project ideas and I asked them if I could go create some video content about some of my favorites and walk through it and share it with all of you so in this video we're going to look at my first three favorite ideas from this list talk about why I think they're great talk about some variations to what the author said and hopefully that should start you off on a path where you can start going to build things and of course if you stay right to the end of this video when the next video is done I'll talk about my next three favorite from this list so with that said we're not going to jump over to visual studio but we're going to jump over to this LinkedIn article and walk through it together alright so in this LinkedIn post this author talks about a bunch of different categories of project ideas and I thought that it would be really important to start with something that's both fun and interesting some of the other categories might be more aligned to something like a business idea and honestly I think that when you're just starting out if you're thinking about things that are just kind of fun or interesting more of a hobby that takes that pressure off of you to try coming up with a really good business idea because in the back of your mind you might be thinking about how do I get users how do I monetize this stuff how do I you know how do I make the next you know billion dollar startup and I think that that's just a ton of pressure for no good reason when you're starting to learn of course when it comes to software development software engineering and actually being successful in Industry I think that there is a really necessary focus on things like business value and how to actually contribute value to customers but when you're just starting out I think it's more important that you're practicing the things that you're learning about so you can build up a foundation and then once you have that in place you can start to go take on some of those other more business value and you know product Focus perspectives and incorporate that into your development so to start my top three from this list of 50 are actually in the fun and interesting category so let's start with that so the author did a really cool job of setting up all of these potential projects and they have this layout with kind of different levels some ideas about what you can go do and contribute and sort of why and the other thing too is I'm just going to quickly jump to this next page they have a bit of a layout that's recommended too so if you had no idea what you wanted to go build or how it's going to go look they actually have some suggestions around that which I think is awesome so this first one that we're looking at is a fan Wiki and I thought that this one was really cool because not only like I said before does the author kind of break down different levels for what you can go build as part of this but I think that we can actually break that down even further depending on how junior or any experience you are as a programmer this one's interesting because I think that when you start thinking about a fan Wiki and if you go back to this layout of different characters that you might want to include so this is going to be something like a website that you could go look at and technically if you wanted you could go make this a desktop application there's no reason it has to go be a website or anything like that but I think that the motivation for a lot of these projects is web focused but I just wanted to call that out as we're going through this that if you're about to go embark on trying to pick different projects to go build you're going to want to align them to the Technologies you're interested in and for example like I talk about c-sharp and net a lot if you didn't want to go building in asp.net core web service or something like that to start you're not interested in Blazer to begin with maybe you just want to go make something in WPF or use Maui to go create a user interface that's totally fine so as we're going through these I want you to think about the fact that you can be going to pick different Technologies and go implementing these in different ways so with this character wiki and having a character layout we have different UI options for technology so we could go look at so I think that's really cool it offers some flexibility for people watching this like depending on what you're interested in you can go pick what you want to go do when we think about some of the design that will go into something like a fan Wiki and having different characters there's a few different components that we're probably going to want to include whether or not we're doing something like a web service or a desktop application and again you can kind of scale the different ideas for technology and implementation depending on your comfort level or what you want to focus on so I'm going to kind of give you a high level idea of I think the different pieces that I could see going into this and then we can talk about how you might go approach different parts of that so for example we already kind of talked about what the front end might feel like so whether or not you're dealing with a web server like an asp.net core application maybe you have you could have a react front end you could have a Blazer front end for that you could be going to build a desktop application using WPF and Maui so in terms of a user interface you have a bunch of different options there but all of those things are really just about how you're going to display that data to the end user when we're talking about the data that we're interested in I think that there's a really cool thing that we could look at here which is like how is that data stored if you were a very new programmer what you might do is actually go code all of that data right into your program so you might have things like data structures to represent the different characters for example and you could have them all declared in a big list or a big array or you know some like a dictionary to go look up all this stuff from memory so that's totally valid if that's how you want it to start but I think that this opens up some doors where you could go look at different Technologies aside from just storing everything in memory and this kind of allows you to explore how do I have an application that has a data store attached to it and I can extend the application simply by adding more data or changing the data instead of recompiling and deploying it so for example the first extension that you might look at instead of having everything coded uh like all the characters in a big array or something like that all the data you need maybe you go load that from a text file right so this is an opportunity where if you were interested in building something like this and you had no idea where to start you could very well go make a simple program maybe you don't have the UI that they're talking about here uh to start with but you're taking one piece of this and you just want to go model how you might store some of that data and you start with it in memory it's organized in a way that you like and maybe the next step is you say cool now that I have that working how do I go load that data from a file instead so maybe you have like a CSV or a Json file and you can go load up all that data you can make decisions about how that data structure should look in the file so for example does it make sense to load it as a CSV do you have anything that's hierarchical because if you do maybe a CSV sucks and maybe you want Json or XML or something that can support a hierarchy easily so you could go you know do another iteration of your simple program which is only a part of this fan Wiki example now you're loading in data cool okay what's another step from that maybe you want to look at using a database instead of actually using a flat file and that could be really awesome too because now you could go exploring like this something that's SQL based makes sense you can go pick which SQL you know uh server or database technology you want to go use so sqlite might ask you well SQL Server postgres everything there's tons of options so you could go pick one and try to model your data in terms of that SQL database so there's another variation or going back to the data structure you might say hey this data was hierarchical and I don't want to have to go joining tables and stuff like that because I don't know that's a lot of effort in SQL if you want to go learn about that that's great but maybe you want to go use a document database like mongodb and if your Json structure was working from your previous iterations cool maybe that's really easy to have it work in mongodb because it's support supports that kind of data so all of the flavors of data like interaction that I just talked about are one small piece of this project and depending on your level of expertise you know if you're just a beginner or if you're just trying to explore some new technologies but you understand programming you have so many different variations of just working with data with this one simple example I think one other thing that I really liked about this and we can kind of demonstrate where my my thinking's at if we go over to the next page so if you were to make a layout like this right something that I think is interesting is that especially as a more Junior programmer when you're first kind of getting introduced how to how to build programs we have a tendency to like we don't really understand how to reuse things properly in the beginning and I mean even after years some people don't know how to reuse things properly and that's okay but it's always a work in progress but when we look at this screen for example as a very new programmer if you had one character working you might have a tendency to be like cool if I want to make another one let me just copy and paste everything I just did over to here and now I can change the uh the text and the pictures and all that kind of stuff and cool now I have a second one so if you were a new Junior programmer you probably would implement it something like that just because it's the quickest way and you could get it working and I would say honestly as a new programmer great like you're proving to yourself that you can see that working and the extension of that and the reason I like this project a lot at least with this layout is it's a really good opportunity to teach you about reusability so how can you refactor some of that UI code to go you know create some of like if you have a character layout maybe these boxes here are a picture with a title maybe some other text kind of laid out on top of it like how can you have reusable controls for that right how could you model the data loading behind the scenes so that you don't have copied and pasted like for every single character you know you have a method for it or something you want to be able to reuse that code and if you tie that into some of the data loading that we talked about that can be kind of interesting as well so I just like that this one kind of sets you up to be able to have an opportunity to reuse code and maybe or first iteration just doesn't do that well but you can refactor it and kind of try that out and then finally the sort of what I think is kind of like uh I don't know like an extension of this or kind of extra that is interesting if you just want to play around with it it's like that he has a couple of things like um custom Styles custom animations Dynamic pages this kind of stuff to me is just it's extra and I think it's cool because if you have the foundation of things working if you were really interested in more front-end stuff and how to kind of make interactions feel smooth and more user friendly or more appealing I think that you can really you can focus on these things and they can eat up a ton of time so like for example could I make some of these things work I've been programming for a long time like probably but am I good at it no um and I don't spend a lot of time doing this kind of stuff but I think that if you focus on it you get familiar with it um you know you can make things that feel kind of Snappy smooth uh user-friendly uh and it's just because it will come natural to you and you become more creative just by spending the time doing it so again I think that this one aside from all these other pieces we talked about gives you these opportunities to kind of focus on some of these like extras for for usability all right if we look at number two it's actually a very similar idea it's specific to Pokemon in this case it's building a pokedex but I think that you could you know you could change the idea to be kind of anything you want that's like a collection of things so it's very similar to the characters um for like a fan Wiki we just talked about so a lot of the same reasons why I like this one apply to the one we just discussed so what I thought might be more more relevant for this one is actually that so for things like Pokemon I feel like there's probably databases or data sets or even publicly available apis where you could go access some of this stuff already and the the variation of this that I see compared to the last example and this might not be the case like you could go find I mean there's a ton of information when it comes to Pokemon so I don't envy the person that wants to go collect all of that stuff and build their own data source for it but um depending on how much granularity you wanted you could like the previous example go build that stuff up but I think for Pokemon and I haven't verified it you could probably go query uh available apis or pull from other data sources and this would be just something else to try and practice often when we're building programs we're not creating everything from scratch so like for example if this were something that you were trying to build for a client or whatever like it probably would not be a good use of your time to say well you know I have to go collect every detail about every Pokemon ever made I mean by the time you even got close they would have the next set of Pokemon out you'd never finish so it would make a lot more sense to try accessing something that exists so that you're not sort of Reinventing the wheel and that would teach you how to use other web services that are available public apis um there'd be authentication or you know access tokens and things like that that instead of going to build your own database now you're discovering how you go interact with other people's services so I like that a lot I think if we're thinking about the previous example that was like the fan Wiki perhaps there's not a ton of characters I think in their ey example here I mean it's kind of similar this is more of a list view the other one was like a grid view you could build whatever you wanted but with something like a pokedex maybe you're looking at more things about like infinite scroll and like how you manage loading tons and tons of data because with the fan Wiki maybe that's a smaller set of characters and things that you have to work with but with something like a pokedex you have tons of Pokemon with tons of information maybe you want to be able to build out sorting and filtering so I think that not only do you have some interesting front end challenges that you could go tackle like how do you go efficiently load all of this data on the Fly for users but also on the back end how do you go sort and filter and you know allow users to navigate that data do you just list them all alphabetically do you let users you know do searches for different Pokemon or maybe they want to look them up by type or by how powerful or something they are their evolutions I feel like there's so many options just for playing with uh data filtering and sorting that this would be really awesome to play around with but largely I do think that this is similar to the example before um I I again I like this and the previous example because you're not tied to particular Technologies and depending on what your interests are again if you're coming to this Channel and you're like I don't even like C sharper.net but I just ended up on this dude's video you go build this and whatever you want um so you're not limited to C sharp and uh you know the.net framework kind of uh world but I like this project because of that okay for the third project I actually wanted to look at a different category this is actually in the personal and portfolio category and one of the reasons I wanted to pick a project from this category is especially for more Junior programmers I think a lot of people when they're embarking on their software engineering Journey they're thinking about how do I how do I demonstrate that I have skills right you're you're in this mindset where you want to obtain skills you want to you know do it the most optimal way possible but you're also thinking like how do I demonstrate this to other people you're trying to get a job you're trying to be you know successful in your career and you're just starting so I think this is why people gravitate towards boot camps or doing certifications and again I'm not saying those things cannot be valuable or they aren't valuable to to certain individuals but I think that part of our nature as we gravitate towards that stuff because we want proof to other people like hey look I've accomplished this and um I think that that ends up trumping sometimes the um your ability to just focus on learning and practicing but that's just my opinion on it so I like this project because I think that I think most people are trying to put a resume or a portfolio together and what better way than to go kind of build something out of code from scratch using whatever Technologies you're interested in to be able to represent that right it's kind of meta if you think about it so you know if you started building your resume and you're linking to your GitHub to show different things you worked on or something like that I mean what if your resume was literally the site you built it's kind of cool to think about so I think the sort of the purpose behind this project is one of the things that I really liked um but again this affords you the opportunity to go build it using the Technologies you'd like I suppose in this case you probably would want to stick to something web-based there's nothing that says you can't go build a desktop application if you just wanted to build it for yourself to be able to you know have a cool resume that you can look at and interact with there's no reason that when you're starting out programming and trying to build things that you need to build things for other people and maybe I should have said that towards the beginning of this video but uh this I don't think I can say it enough I I don't want people to fall into the Trap of it's a waste of time if other people aren't going to use it well no it might be a waste of time if you're trying to sell it and no one's going to use it but if your goal is to learn picking projects that allow you to practice the things you're learning about and the Technologies you want to use will never be a waste of time so keep that in mind so in this example they offer a layout again this might be pretty simple um and let you play with different front-end technology to try and create layouts and stuff like that this is certainly not my forte so like even though I'm programming for uh like 20 years if I had to go do this in uh you know different web Technologies or something I'd probably um I'd probably be learning a lot I could build this in WPF no problem but if I had to go do it and react or something I'm sure I would have a bit of a time just trying to play around with it and get it to work so um I kind of like one of the earlier examples when I said you could look at different ways to animate things or add some Flair make it um just make it feel like your own this is something where Beyond just the layout you could it totally invest extra time and to just make like maybe you have these sections are expandable and you want to animate them or something like that you have all kinds of different options that are kind of extra drift on top of just a layout like this but something you could think about too is if you have different projects that you want to be able to refer to as part of your resume cool okay do you want to just be able to link out to those projects is there some way where you could embed parts of them into your resume is like totally interactive right on the page I think you have lots of cool options there this is probably not something that needs something like database technology so if you were trying to work through like different i o things like the file loading I talked about or databases this one you might be able to kind of skip out on all of that perhaps but you could actually spend more time thinking about okay like where do I want to host this is this something you could do like a one-click deployment through like GitHub Pages or something do you want to go look at hosting your own uh you know web server somewhere so you can play around with Azure AWS or something like that so picking a project check like this by restricting some of the things that you don't have to focus on say like how you work with databases you might be able to go spend more time on other things like hosting technology so having a few different things to pick from I think is super helpful because it's going to allow you to think about what do I actually want to spend time learning right at some point you're probably going to have to touch on all of these in some amount but I like these three and this one is sort of a slightly different to the first two just because it's going to kind of rule out some of the things that you likely need to focus on in the first two they all seem to have um likely what would feel more like a web kind of layout to play with so likely all using a different type of web server and a front end but you know in this case for this project not really looking at database Tech so those are the three projects that I wanted to pick out from that list of 50 that I thought would be really good to start with again this is focused on more beginner software developers so if you're a lot more experienced this might not apply to you but if you are more experienced there might be something about these projects where they're simple enough in some capacity that you can go pick a new technology to try out when you're building them so I think that for all skill levels these could be interesting to play with I wanted to call out too just to kind of remind people that when it comes to learning things just keep in mind that you do not need to be going to build things that need to be monetized that other people are going to find valuable you might not even find the end product that you're building valuable and that's okay because I think if you're focused on learning things the time spent actually building is where you're getting the value so hopefully you found that useful when the next video is done I will link it right up here and that way you can go watch that after and look for more project ideas so thanks and we'll see you next time

Frequently Asked Questions

What are some beginner projects I can start with as a new programmer?

I recommend starting with projects that are fun and interesting, like creating a fan Wiki, building a Pokedex, or developing a personal portfolio website. These projects allow you to practice coding while exploring different technologies.

How can I choose the right technology for my projects?

When picking a project, consider what technologies you're interested in. For example, if you enjoy C# and .NET, you might build your projects using ASP.NET. However, you can also explore other technologies like React or even desktop applications, depending on your preferences.

Do I need to focus on creating projects that have business value?

Not at all! As a beginner, it's more important to practice and learn through building projects. You don't need to worry about monetizing your work or making it valuable to others right away. Focus on the learning experience and enjoy the process!

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload