5 Coding Projects for the Absolute Beginner
Updated: Nov 21, 2020
When your first learning to code there is so much information thrown at you. All of this information may or may not be explained well to you, and you need a way to practice and retain it. This is where personal projects come in. Now if you have some experience coding I recommend coming up with your own ideas and learning something new along the way. Certainly, if your just getting started coming up with your own project to learn a specific concept is a great idea. However if you are just looking for an idea to practice one particular concept, below are 5 coding projects for absolute beginners that utilize some of the more complicated concepts in programming.
1. Tic-Tac-Toe (Arrays)
Tic Tac Toe programs are a great way to practice problem solving, basic algorithm design, and arrays. The foundation of a Tic Tac Toe program lies in a concept called the 2-dimensional array. I'll let you dig around and learn more about yourself, but the general premise is that a 2d array is just a combination of 1d arrays. You can make a theoretical board, and implement a way to set different spaces, as well as check for a win.
2. Shape Drawer (GUI)
A Shape Drawer program is pretty self explanatory; choose a shape, give some dimensions, and then draw that shape. The challenge here is to draw the shape into a graphical user interface, or GUI. As a Java developer, I ended up using the Java Swing library in a school project for this, and it turned out pretty well. First, I would start by getting the GUI to display one type of shape (a square would be easiest). Then expand your program to handle multiple shapes. And if you're really looking for a challenge, try doing it in 3D!
3. Text Based Adventure (Basic Concepts)
I really only recommend this project for the coder who has JUST started learning. It is a great way to practice basic concepts such as conditional statements, for loops, variables, and system input and output. The idea here is to make a story that has the user as the main character. As the story progresses, the user will be presented with a series of choices that affect the rest of the story. You may also choose to create puzzles for the user to solve along the way. The great thing about this project is that it is extendable and can be adapted into other programs. You can be very creative with this and if game design interests you, try creating a game out of your story!
4. Movie Script Word Counter (File I/O)
This project can be a little advanced for the absolute beginner, but is a great way to explore some of the advanced reader classes your preferred language has to offer. Create a text file that contains the entire script of your favorite movie. Then write a program that will read the file's text, and search for a specific word. Each time it finds the word, it increments a counter. To make this a bit more interesting, try working with I/O of different files. For example, each time your program finds the word in a text file, it outputs the word and line it was on to a JSON file. File I/O concepts are crucial to coding further down the line, so if you feel ready for a bit of a challenge I highly recommend this project idea.
5. HTTP Header Retriever (Networking)
A true challenge for a beginner, this program retrieves the HTTP header of a specific URL. For an introduction to networking, this is probably the best project to undertake. You'll be using some advanced data input reader classes to retrieve data form an HTTP connection, and then take that data and print it to your console. I recommend reading up on Http connections and general networking concepts before doing this project. Once you are able to establish the connection and get the data, it really is just a matter of formatting it correctly to display the appropriate information.
What to do after the "beginner" phase
So you have done most or all of the projects above, now what? If you feel past the beginning phases of your programming career, network with some people. Finding other people who code is going to expose you to some much more information in technology. You may find someone who knows a lot about databases, while you know a lot about class organization. Find a good group of people who are actually interested in programming and see if they would be interested in taking on a large scale project. With a team around you, you will learn so much and ultimately become a better programmer.