21 Programming Project Ideas (Beginner to Advanced)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
You just finished a tutorial and want to take your newfound knowledge into a project problem is you have no idea what that is. A to-do app, really, in today's video, I'm gonna give you 21 different project ideas as a beginner, whether you need it for school or you need it for your resume, and I'll even break down the small steps you need to take in order to complete it as well as give it a difficulty rating. If you're new here, then my name is Lewis. I'm on a mission to inspire developers and tech enthusiasts. To-do app. Okay, let's just get the obvious out of the way here. A to-do app. A to-do app is the easiest way to test out your new programming skills because it teaches you how to store data, delete data, change this state of data, et cetera, and no matter what, it'll translate onto any platform, desktop, mobile, web, the command line interface. So if this interests you, then here's the breakdown. Be able to add a to-do, be able to delete a to-do, be able to mark as done. Easy. Expense tracker. If you see my self-taught software engineer roadmap, which you probably should, then I use this specifically as an example. An expense tracker is a great way to work with numbers, data types, and user interfaces breakdown. Define what an expense is, name, price, the date. Be able to add an expense, be able to add income, be able to calculate everything and show what's left over again. This is bare bones, so adjust it to how you need. Personal portfolio, again mentioned in the self tossed software engineer roadmap video. I use the personal blog as a massive example on your journey because of how helpful it is to your career. I usually would structure it like a homepage, a project page, and a blog page, but add as many pages as you like. It's your life and all you need is H T M L, and C Ss s. Not even JavaScript, but you know, I would recommend JavaScript create a structure of a webpage using H T M L and C S Ss. Write a blog article explaining something that you learned. Create an HTML C Ss S page for a blog page. Insert that text and deploy through Netlify or GitHub pages. Now, the HT m L and C Ss S method might not be the best because you probably want like a blogging platform to automate the whole process. But if you don't wanna do that, you have super customizable blog platforms like WordPress or Ghost Daily Journal Emailer. Imagine if you had an app that could track your mood, your feelings, how you're feeling that day, et cetera. A daily journal emailer could email you at the same time every day, asking for you to insert how you're feeling. It can then store in a database and maybe give you reports every week, and you can do this with any language. So let's break it down. Create a database with. Fields you want to track, schedule an email with cron to email you every day. At the same time, create a form or input that allows users to track their moods, create another CR job that calculates the last week and sends a weekly report. There's also a ton of services online to help you schedule tasks as well. But yeah, if you're probably gonna have to pay for that. Flashcard app. Every student has cried when their dad has done flashcards with them. So cut out the middleman and let's build it ourselves. Premise is easy. Have a bunch of cards with questions on them. Try and say the answer. If you give up or want to check if you're correct, you flip the card over and see the answer. Create a question and answer data tape and connect them somehow. You know you can create a hash map. Dictionary, you know, whatever your key pal error is called. Look through the keys and prompt the user to answer write logic to see if the answer is right or wrong. The reason I put this as a one out of five is because on the command line it's really easy to do, but if you wanna take it one step further, you can make a user interface on mobile devices or a web interface. U R L shortener, you know when you have this long U R L and paste it in somewhere and it just zooms your webpage far down. Well, U R L shorteners are a great way to deal with this. You store the U R L in a database and have a unique code associated with it. When someone goes to that link, redirect them to the actual U R L. And the reason I made this a four out of five in the scale that we're using is because of all the different technologies that you might need to use. When creating an app like this, here's the breakdown. Create a database with necessary fields like short U R L, actual U R L, et cetera. Find a way to create a unique value for each short U R L. Create a form that accepts the U R L. Find a way to redirect users from your backend to the intended U R L. And of course, this is really, really simplifying the concept, considering there's so many little nuances with an app like this, but you would learn a lot if you ended up doing this, so I highly recommend it. Pomodoro timer, one of the most popular productivity methods is the Pomodoro timer. 25 minutes of focus time with five minutes of rest, directly after rinse and repeat two or three times, and then you get a much longer break. And since everybody's productivity kind of works a bit differently, this is a great way for you to specialize in an area. That works for you. Let's break it down. Create a 25 minute timer. Create a function that notifies you. Once the timer's finished, be able to stop and repeat timers when necessary. I rated this off one out of five because of how much the standard library will have, the exact packages you need to develop this type of app, recipe finder. You open up your fridge and you see a ton of ingredients, but no food, the classic predicament. But here's where you come in. Create an app where you put the ingredients in, and based on the ingredients you put in, it returns what you can make. Let's break it down. Create an input where you can list all of the ingredients. Have your list of ingredients. Scan to a database of recipes and see if it's included in any. There are some APIs that you can use that will help you along with this process. And these APIs are mostly paid, but you can be a way more badass developer if you do it this way. Instead, it download the recipes dataset that has over 500,000 recipes. Have the return results come back to you in a pretty way and maybe suggest some alternatives. And again, you can make this really crazy if you wanted to use AI to, you know, figure out what was in it, buy a picture or something. But you know, I'm getting a bit too ahead of myself here. That's up to you, password manager. Do I have to tell you why putting your password on a sticky note is not the best idea. This can be a great project, but it can be a tadd bit hard. Allow users to create an account and store their credentials. Securely, hashed and salted passwords for strong passwords allow decryption to happen when the user wants to see passwords. Now the big thing here is encryption, so make sure you do your own research. But a lot of programming languages have a built-in library dealing with this. And do not create your own algorithms for something like this. Allow users to create a master password or password securely by encrypting, using existing algorithms. Allow user to pick what password to use, then decrypt that password, and it seems really hard, but trust me, this project is incredible. If you want the easiest way to work with passwords, then one password is the best way to get started. I've been using one password for many, many, many years now, and I'm so grateful that they can be the sponsor of today's video. If you're looking for a beginner project, chances are you're a student. One password is part of the GitHub Student Developer pack that gives you free access of one password for. For a year and access to their developer tools. With one password, you can easily and securely store and manage school logins, student IDs, important documents and transcript. But one Password has a suite of developer tools that help you manage your a p i Keys, S s H, keys, and other Secrets in your software development lifecycle. One password for ss, ss H and Get gives you all of the awesome features that One Password is known for. It makes it easy to set up and secure the credentials you need as a beginner leaving you with more time to focus on learning and writing code. You can set up an Ss ss h key in seconds and then store it within one password for easy and secure access while also bringing it into your developer workflow by letting you auto-fill public keys in your browser. For GI or other cloud platforms, I like one password as S Ss H agent that authenticates or get an S s H workflows, whether you're trying to clone a repository or port forwarding to a remote device. Outside of it being really convenient, it also is a must when it comes to keeping you secure when working with other teammates or classmates. Also managing all of this on different devices like your school computer versus your home computer, you'd probably spend hours trying to fix authentication issues. So one password for S s H and get uses the already gray experience to use with one password and brings it over to your developer workflows like. Using your fingerprint scanner to authenticate a get clone. So if you're a student, then you can get the GitHub student developer pack and get one password free for an entire year, including access to all their developer tools like one password for S s, H, and gi, seriously, one password. Like you had to do this when I wasn't in school. If you're 13 and up and in school to be a developer, click the link in the description to find out how to get one password free for one year. That includes their developer tools. Ugh, I need to be a student again. Chat application. We rely on chat applications. And the hardest part about a chat application, what it's a lot, but mostly in the real time connections. I'm reading this a five on a five on the beginner project scale because you have to use everything like databases, web socket, user interface development, and perhaps more if you want to build up. And of course you can use third party APIs that will help you do this, but. You know you wanna learn here, so I would recommend doing it on your own. Create a database that holds required information for chat applications. Allow users to sign up and log in. Establish web socket connection to a chat server. Allow your front end to listen for messages. Render those messages on the screen. Of course, this is a dramatic oversimplification of how a chat application really works, but this app incorporates every piece of technology that you might want to learn. Calculator a calculator app. Wow. So cool. You know, since computers don't really know how to do math, but I thought I would add this because you can make a really good user interface for a calculator. Create four basic functions for a calculator, add, subtract, multiply and divide. Create a user interface that allows you to pick numbers and equations, then render it out. Onto the screen. This could have been a one out of five, but you know, if you're such a good programmer, maybe you should up the ante a little bit and do something a bit harder if you're wanting to complain about it. Quote generator. You see it all over social media. If you don't code right now, you might die. Okay. That was a quote by me specifically. Well, what if you can automatically create an image that was like those images you would see online? Grab a random quote from an a p I online. There's a ton of open source versions, so check out those. Grab a random stock photo from Paxels a P i, or just download a dozen and randomize the output. Use an image processing library to write text on the top of the image. Done. Discord bot Discord is used by everyone today. If you have friends, you do have friends, right? What has made Discord, one of the best places to chat is its open developer, a p i, that lets you customize your experience. So this is where you see advanced moderation, tools, games, chatbots, and more. And I gave this a two out of five, mostly because the documentation that exists. For a Discord bot is scattered across the internet. Get a Discord, a p i key. Find a way to receive events and messages from discord. Have your bot use that message to do something, then return that message back to the user. The concept is really simple, but it's all a matter of starting at that foundational level and then just building up along the way. Make a video game. I am making this a five out of five because making a video game is extremely hard. Now I really can't do a breakdown of this, so you have to do that on your own, depending on what game you want to make. But instead, I'll share some resources that might be helpful for you. The Unity engine has a lot of documentation and is very popular. Dough is completely open source. And free, so that's awesome. Unreal Engine is really beefy, but honestly incredible. If you wanna be more badass, then use a small framework that your programming language has. This is so open-ended, so really tread carefully. Web scraper. Now, web scrapers are a funny concept because the idea of them is that they are pretty simple to make, but oh man, there are a ton of edge cases. When you connect to a site, it might be rendered with JavaScript, it might not load. Anything at all. It might not load everything at first, and that's why I put this at a four out of five because of these little edge cases that you're constantly have to go over. And if you're interested, I built a web scraper that makes a video out of the news that collects, which, you know, definitely give that a checkout. Decide if you want to use a web crawler framework or make a simple script. This just depends on what you want to do. Go to the website and pick out the selectors. You need to capture this data, run this crawler through a proxy return this and. Format in J S O N or C S V Web scrapers are very trial and error. So if you end up making it fail the first time, don't be discouraged. Just keep going. Random number website. A one out of five of this late into the video. Well, I'm catering to everybody. Okay. Create a website that gives you different utilities for generating random numbers. Let me put a number between one and a hundred, then render the result on the screen. But the potential to make this fancy or add even more random number generator utilities is, is there, and I know you can do it. Typing speed test. One of my favorite classes ever was typing class, which does that still exist nowadays, and I would just flex on everybody for how fast I can type. It was a fairly lonely childhood. Actually. Set up a blank template for what type of app you're doing. Listen to keyboard input and determine the speed between two keystrokes, probably all of this up after a timer goes off, render the results on the screen. Now I rank this a three out of five, mostly because we're talking about one specific area as well as maybe a little bit of mathematic work. But again, you can make this really easy. Or you can make it a little bit more complex chat, G B T. So recreate a neural network from scratch and then scale this newfound technology to billions of users all at once. Okay, just kidding. In this example, the Open AI A P I is one of the most popular APIs at the moment. So use this to create a clone of chat, G P T, and wherever you can write code in, like your code editor, your Mac. Desktop, C l I and more. And actually as of this video, the fine tuning model, A P I has just been released by Open ai. So you can really get it to say what you want to say, determine where you want this chat G B T widget. Create an input that can send to a server. Let chat G b t, read your input and send requests back. Send this to the user, then render it out on screen. Also, here's a pro tip. If you add the streaming flag on the open AI A p I, it'll come back to you in that cool little word for word way. Virtual Tamagotchi. If you had a Tamagotchi when you were younger, then no introduction needed. But for those of you that are like. Under 12, let me explain what they are. Tamagotchis were these little virtual pets you can take care of. So let's break it down. Be a virtual character that can live somewhere, have it render on a screen. Give the ability to change outfits, be able to feed a food. Allow this to change certain metrics of this pet. This is something that you can just get started with and then just endlessly customize until while it dies. Visualize a data set. Visualizing a massive dataset is actually a pretty good flex. If you go on Kegel, you'll see a ton of free data sets that are massive that you can download. Then using a data science library like Panda's, if you're using Python, try and find some interesting metrics through visualization. Pick a dataset, think about what you would want to achieve with this data set. For example, if I had a list, Of YouTubers, maybe I wanted to chart the subscribers. Use a data science library to clean up the data as much as possible. Then graph the results and share a line. This also depends on what data set that you're planning on using. It's such a fun way to poke around this massive file, so I heavily recommend you give this a try. Yard sale flipper. I'm always seeing these videos of people going to yard sales and seeing something and then checking on eBay if they can make a profit off of it. Be able to use the camera on your phone. Have a barcode scanner, a P I that can retrieve the info. Use the eBay a p i to search for that specific item, return the price, and then calculate its profit. Or nonprofit, and this project actually has a real world use case, so it would be really cool to share this to existing users to get a better understanding of these projects. Definitely check out my self-taught software engineering roadmap where we talk about project-based learning. Also, check out the GitHub Student Developer Pack where one password is giving a year subscription for free, as well as our developer tools.
Info
Channel: Coding with Lewis
Views: 221,150
Rating: undefined out of 5
Keywords: programming project ideas for beginners, programming project ideas for begginers, programming project idaes for begginers, c programming project ideas for beginners, project ideas for beginners, how to become a software engineer, software projects, best projects for resume, best software projects for resume, python projects for beginners, java projects for beginners, c projects for beginners, code, programming, software development, coding, how to code, coding with lewis, devlog
Id: FCNg8KyMmGI
Channel Id: undefined
Length: 15min 49sec (949 seconds)
Published: Thu Sep 07 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.