When you’re learning to code and don’t have much to show employers yet, building your own programming projects is a great way to fix that. You get to demonstrate that you’ve not only learned coding, but independently implemented that knowledge with your own coding project ideas.
Disclosure: I’m a proud affiliate for some of the resources mentioned in this article. If you buy a product through my links on this page, I may get a small commission for referring you. Thanks!
In this episode, Parker Phinney, creator of Interview Cake, joins me to talk about web development projects, why they matter, how to brainstorm project ideas, and how to talk about them on your resume and during interviews.
Listen to the episode below!
Why Build Programming Projects?
There are several benefits to building web development projects on the side as you learn:
- Hone your skills with hands-on implementation. “It keeps your axe sharp,” Parker says. “You can read guides, or go through a book or whatever, but there's nothing like actually building something.”
- Have something concrete to talk about on your resume and during interviews (more on this later!).
- Do it for the simple enjoyment of creating your very own coding project ideas from scratch and seeing your knowledge build something out of nothing.
In season 4, Ashu Desai came on the podcast to talk more about the importance of hands-on, project-based learning. You can listen to that episode here!
How to Come Up With Coding Project Ideas
The key metric? Passion! “The most important thing is that it seems really interesting and fun to you,” says Parker. “I would start with that, because I think there are a lot of reasons why it's easy to talk yourself out of a project idea. But if it’s something you really want and would use and have that enthusiasm, you should go for it.”
When it comes to types of projects, Parker says there are two broad categories. “One is like reinventing the wheel: building something that already exists, but you'd like to see if you can do it yourself. And the other is something that you really want to exist. Either of those can be great. It just comes down to what's actually more exciting to you.”
If you’re stuck trying to come up with something, Parker has a few ideas to get your mind rolling. “Think of a product that you really want to use yourself. Maybe a web browser extension or a web app that you really want. Think of a problem that you're having or something that frustrates you that could be solved with software.”
Remember, the best programming project is one that you actually want to work on. “I'm one of those people that if I'm not excited about something, it's really hard for me to do meaningful work on it,” says Parker. If a project makes you excited, it’s probably the right one!
Example Web Development Projects You Can Build
If you want to practice only front-end or back-end development, you could collaborate with another developer where each of you builds half. But to build your own project from start to finish, choosing full-stack project ideas will enable you to get a feel for all parts of the process.
Here are a few general coding project ideas:
- An app based on your favorite game. “When I was a little bit younger, I built a Sudoku puzzle solver, which was a lot of fun,” Parker says.
- A program that makes your life more fun. In college, Parker and a few friends “built something that would text you or email you if your favorite food was in the dining hall that day. So it would go to the dining hall website and scrape out the menu and then figure out if like, eggplant parmesan was on there, or whatever.”
- Something interactive. “As a student, I was making a web app where the idea was that you could, in real time while watching a video, thumbs up/thumbs down moments in the video.”
- Something that takes care of busywork. “I was really into what's called web scraping. Writing scripts that pull down information from websites, or in some cases actually make posts, requests, fill out forms for you, or something on websites…there are all kinds of things you can do with this. If you really like going to concerts, you can try to write a script that automatically tries to buy tickets to the next Radiohead show the second that they go online.”
- “Write a script that downloads all of Wikipedia and stores an offline copy.”
- “Write a script that takes all your photos off of Facebook and imports them into iPhoto or something so that if you're one of those folks that want to get off Facebook, then you can do that without feeling like you have to leave your pictures behind.”
“These are just kind of some ideas to get people thinking!” Parker says. “And for me, at least whenever I can make money from something that always motivates me a lot more. If you can think of a way to monetize [these projects], and make some money, even if it was a little bit like 100 bucks a month, it's still extra motivation to finish it or to maintain it.”
But if you’re struggling to brainstorm some brand-new idea, start with category one: reverse-engineering something that exists.
“Take a piece of software that you really like and see if you can build it yourself,” Parker says. “Even something as simple as a to-do list app or whatever you nerd out about. If you're really into reading, make a Goodreads clone. Or a place to post images and share them with your friends. You might think there's so many existing things for that, so it's not original, but if it’s interesting technically, go for it.”
Use the #100DaysOfCode challenge as inspiration to work on your coding project ideas every day.
Talking About Programming Projects on Your Resume/Interview
Having a portfolio of projects you can show potential employers is a strong way of helping you land that first gig or job. (It’s why I created my course Portfolio Dojo.) You get to create a story to tell about your process and show a concrete example of your skills. Learn more about tips for a great portfolio here!
There are a few things you can do to draw attention to your project-based accomplishments.
Your first audience, Parker says, is the person who screens resumes. “This is the phase where you're just trying to get an interview at a company. In a lot of cases, that person is not going to be an engineer themselves, so in many cases, they're kind of doing advanced keyword matching. That might be specific languages or frameworks, they may be looking for Rails, they may be looking for Heroku, or PostgreSQL, or React, or whatever kind of stack they have.”
To get past this resume phase, be intentional and specific in your use of language. “Whenever you describe side projects, put all those vocab words in there. In fact, put them right on the top. So just give the name of the project, and then right under, just say Django, Heroku, or whatever the stack was. And any other potentially relevant vocab words like test-driven development, continuous deployment, etc.”
Next comes the interview. While you’re building projects, write down specific highlights and anecdotes that might be interesting — and be prepared to adapt them to various interview questions. It’s especially helpful if your project can be connected to the company’s mission. For instance, when Parker was job hunting after college, he interviewed with a video company, and was able to reference his interactive video-moments idea. “They were super impressed and into it and talking about all the different product ideas.”
While starting with simple projects is a good idea, Parker says, “It is helpful to have at least one of your side projects be somewhat technically complicated. The kind of thing where you could stand up at a whiteboard and walk someone through how the system worked. Something that has some interesting technical design or architecture, because that is something that that will come up in just about every coding interview.”
Your Programming Projects Don’t Have to Be Perfect
Lastly, remember that especially if you’re building your first few projects, they don’t have to be perfect. “Finishing a project is definitely better than not,” says Parker. But even if you didn’t finish it, you can talk to interviewers about the design, or how you were working on it, or what you learned.
Parker also suggests showing a video if the product itself is incomplete. “It's less important that the project fully works and doesn't have bugs and all that stuff, than it is that it's very easy for someone to see the demo,” he says. “Record a screencast of you using the thing. And when you record that screencast, you could mock out features and put in test data, and smooth over some stuff that you never quite finished.”
After all, if you wait for something to be perfect, it’s never going to be done!
Links and mentions from the episode:
- S1E8: How to rock your technical interview w/ Parker Phinney
- Parker on Twitter @interviewcake
- Interview Cake on Facebook
- Interview Cake website
Where to listen to the podcast
You can listen to the Learn to Code With Me podcast on the following platforms:
If you have a few extra minutes, please rate and review the show in iTunes. Ratings and reviews are extremely helpful when it comes to the ranking of the show. I would really, really appreciate it!
Special thanks to this episode’s sponsors
Xojo: Want to create native apps for desktop, mobile, web, and Raspberry Pi–all at the same time!? Xojo is a cross-platform development tool that makes building apps easier and faster than ever. Check out xojo.com/learntocode and get 20% off with the coupon code ICANCODE.