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.
(By the way, LTCWM podcast listeners get 20% off Interview Cake using this link!)
Listen to the episode below!
This episode was transcribed with the help of an AI transcription tool. Please forgive any typos.
Laurence Bradford 0:07
Hello and welcome to another episode of the Learn to Code With Me podcast. I'm your host, Laurence Bradford and in today's episode we talk about how to come up with coding projects to build. But first, a quick word about this episode's sponsors.
Laurence Bradford 0:22
Xojo is a development tool you can use to build apps for desktop, mobile and more. With Xojo app billing is easier and faster than ever even for beginners. Learn to Code With Me listeners get 20% off with a coupon code ICanCode. Try Xojo free at xojo.com/learntocode.
Laurence Bradford 0:41
Laurence Bradford 0:59
In this show, I talk with Parker Phinney, the founder of Interview Cake. Parker is well versed on knowing how to rock technical interviews. That's what his company Interview Cake is all about. However, he also knows a ton about building coding projects, and our conversation we discuss why a person should build a coding project in the first place. How one can figure out what to build if they have no clue what direction to take, how coding projects can help in your job, hunt, and so much more. Also, make sure to stick around to the end of the episode where I share details about a limited time sale for the Interview Cake program. Enjoy the episode.
Laurence Bradford 1:41
Hey, Parker, thanks so much for coming on the show.
Parker Phinney 1:43
Thanks for having me.
Laurence Bradford 1:44
It's a pleasure to chat with you. This is of course not your first time on the podcast. You were a guest in the past back in season one, so like, Oh my goodness, like, you know, 70 episodes ago or something. And we spoke about technical interviewing Of course, yeah, but your courses, your expertise because you run the site interview cake. But I'm really excited to have you on again today to talk about coding projects. Yeah, yeah. So to kick things off, could you talk about how you just like, define a coding project? Like, what is a coding project?
Parker Phinney 2:17
Yeah, well, we'll so the I think it's especially interesting to talk about, like side projects. So stuff that you're doing, if you have a day job that you kind of, like, do on your own time on on evenings and weekends, or if you're a student, or if in your, your in your job search, it's just kind of like, the thing you do to, to kind of keep the x sharp. And, yeah, I don't know. I mean, there are a number of reasons why you might want to have on which, which I'm sure we'll get into, but I'd say that's the high level definition.
Laurence Bradford 2:50
All right. Awesome. And you already I think, talked a little bit about this, but the side projects, the coding projects for someone who's a beginner, what's the benefit of Spending time building your own project?
Parker Phinney 3:02
Laurence Bradford 3:32
Yeah. So I feel like for a lot of people, and this was definitely the case for me when I first started out, it's almost like you don't know what you don't know. And even the task of figuring out a coding project to build can be overwhelming. So do you have any tips for people on ways they can get ideas of what to build?
Parker Phinney 3:54
Definitely, yeah. Yeah, I would say I've thought about this a bit. So I think the biggest thing is the best coating project is one that you actually work on. So the most important thing is that it seems really interesting and fun to you. So I can talk about some ideas for like, kind of how to get your mind rolling. But I think that I would start with that, right? Because I think there are a lot of reasons why it's easy to like, talk yourself out of a project idea, right? Like, for example, you might say, like, Oh, this is like, actually not that technically complicated. But, man, it's like, something I really want. It's like something I totally would use and like, I can't believe nobody else has built it yet. Right. I think like, if you have that enthusiasm, you should go for it, right. Similarly, you might have the other kind of situation where you're like, man, I like I really want to build a like an image board kind of thing, like a place where you can go and and post images and share them with with your friends.
Parker Phinney 5:00
Sort of like a fake Facebook or something, right? And but you might say like, oh man, but like, there's so many existing things for that. So like, it's not original. But I think it's like kind of technically interesting, right? Again, if like, if that project kind of speaks to you, I think you should go for it. So that's kind of like the the first kind of framework I would suggest is like, there are two kind of broad categories. One is like reinventing the wheel, right, like building something that you know exists, and you'd like to kind of see if you can do it yourself. And the other is something that you really want to exist. And I think either of those can be great. It just comes down to what's actually more exciting to you.
Laurence Bradford 5:47
Yeah. So I totally agree with the idea of building something that you're interested in. Because I know again, back to when I first started out, I would go through a bunch of projects, I never would finish the project. I would maybe work on it for a week or a little more, a little less, and then I would just get super bored of it. So I think working on something that you're genuinely interested in is probably one of the most important things, or are there other things that a person should consider besides just, it'd be interesting to them?
Parker Phinney 6:19
I would say that's the biggest thing because again, and I guess it depends on your working style a little bit. I know 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. Which sucks. I wish I was not that way. I I've worked with people who are not that way who can just like say, Okay, this is the most important thing to work on today. I'm going to work on it and make real progress. I'm not like that. I'm one of those people that will sort of have all know what's most important and kind of not want to do it, and then I'll make progress on the second most important thing instead What I sometimes call like, productive procrastination, right? And so, one so I've come up with all these kind of little tricks for like tricking myself into being productive. And one of them is for something like side projects, having two things going at once. So you're always like kind of procrastinating on one. But the way that you're procrastinating is by like working on the other. So you're still kind of making progress overall.
Laurence Bradford 7:28
Oh, I love that. Um, and I like that word productive. Procrastination because I feel like I do that all the time. I always prioritize things that I enjoy doing more than the things I don't enjoy doing. I think most people probably probably do that. Maybe maybe some dough, as you mentioned, are some people that they can just do the most important thing, even if they don't find it enjoyable. But could you share like an example of two things you have going at the same time whether it's now or whether it was years ago or whatever?
Parker Phinney 7:57
Yeah, I haven't had like technical side projects in a minute because I've been so focused on Interview Cake. I'm thinking about some projects I had going when I was a little bit younger. One was I built a Sudoku puzzle solver, which was a lot of fun. And I did it. I think it was in high school at the time, and I wrote it in PHP, and I did it while I was on an exchange program in Japan. And I was staying with a host family and the the mom who I was staying with while everyone else was at work or at school, she stayed home and she did a Sudoku puzzles. And so I thought it would be really fun if I like showed her this program. And and I worked on it a bit while I was there, and then couldn't finish it until until after and and I actually remember specifically That was a project that I got, like 90% of the way through. And then I couldn't I hit one of those bugs where like I would press run, and it would just keep spinning. And I thought that what was happening was that it was like too computationally intensive or something. But of course, I just had a bug somewhere where where there was a tight loop that that didn't have an exit condition. And but but I remember I put that project down for like six months or something and worked on some other thing. I think actually, the the next project I had was a, an image board.
Parker Phinney 9:42
This is sort of like a little while ago, but this is back in the days of like PHP, BB, all these sort of like, online forums and stuff. And my idea was, was to, to see if I could make my own. So that was another project. I had going I remember bouncing between those two. I had some other interesting ones in college. And like Another thing I'd love to point out about side projects is, you know, for me, at least, part of keeping things interesting sometimes is being a little subversive, right? Doing something that feels a little bit like you're like breaking the rules or hacking the system or something. And so, in college, I started this this group called the hacker club. And we, we made a couple things. One of them was a little widget that would notify you if somebody unfriended you on Facebook, which is something that Facebook doesn't have a feature for, but you can the way it worked was it would you would log in and it would get your list of friends and then it would check back and if anyone was gone from the list and meant that they had unfriended you right?
Parker Phinney 11:00
We also built something that would text you, or I think it emailed you if 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 you know if like eggplant parmesan was on there or whatever. So a bunch of a bunch of things like that, that like felt a little bit like they were like, Goofy and dumb and like, the kind of thing that I think at first glance, you might bring a back to like recruiting, you might feel a little bit embarrassed to talk about in a recruiting context. But I actually think that most companies, most engineers love to hear that kind of story. They love when folks just sort of like bend the rules a tiny bit or like come up with creative ways to do to kind of get get around things. In fact, I remember one of the companies I interviewed with they literally asked me the question, what is an example of a time that you did something really devious? Like something really kind of naughty, that you were surprised sort of worked? And so I had like all these stories from from my college hacking days that I think kind of made a made an impression.
Laurence Bradford 12:29
Oh, those are really awesome stories. And I have to ask, did you charge for either of those or any of the things you've built in the past?
Parker Phinney 12:37
No, at that point, and I was very, I was really kind of like an anarchist. And like, I was like, not an entrepreneur at all I thought entrepreneur was was kind of a dirty word. So it was, it was like very important to me that all this stuff was was free for everybody.
Laurence Bradford 12:52
Got it? So I'm thinking of like, the notifying you when someone unfriend you from Facebook, I could see people paying for that. And perhaps even the cafeteria one maybe. Because I was going to add that, for me at least whenever I can make money from something that always motivates me a lot more. So in the context of a side project. I think, like if I was able to have a way to monetize it and make some money, even if it was a little bit like 100 bucks a month, it's still kind of extra motivation to finish it or to maintain it. Yeah, if you're able to make something from it, but anyway, thanks. So yeah, thanks for sharing those. So those are those are great. And I think really creative for like a college student. No one I feel like I've heard of the notifying friend thing before like maybe other people built something somewhat similar A while ago or other little apps, but the cafeteria one that's definitely sounds really interesting.
Parker Phinney 13:50
Yeah, I was really, I was really into called web scraping, right and this idea of like writing scripts that Either just pull down information from websites, or, in some cases, like actually make POST requests, right, like fill out forms for you or something on websites. There are all kinds of things you can do with this. And it's, they all feel a little devious, which I think is like really interesting. And so for me, at least, it like really tickles me and is really good fodder for, for a side project ideas. So some examples are like, you know, if if you really like going to concerts or whatever, you can try to write a script that automatically tries to buy tickets to, you know, the next Radiohead show, the second that they go online, right, because we've all had that experience of like trying to get tickets and like having five browser windows open or whatever. But you can automate that whole like five browser windows open thing with software, right. You could also you could like write a script that like downloads all of Wikipedia Like stores and offline copy, you could write a script that takes all your photos off of Facebook and imports them into iPhoto or something, so that you can, you know, if you're one of those folks that like wants to get off Facebook, then you can kind of do that without feeling like you have to, you know, leave your, your, your pictures behind these just kind of some ideas to to get people thinking of, again, for me, at least, I think web scraping is like a really cool place to look for kind of devious side project ideas.
Laurence Bradford 15:34
Yeah, and thanks for sharing all those examples. I'm sure they'll be really helpful for the listeners. I was also wondering, you mentioned the question that you were asked about, you know, talk about time you did something devious. Were there any other ways that your side projects helped you get like a quote unquote, real job at a tech company?
Parker Phinney 15:57
Parker Phinney 17:39
That's like a lot of time to invest like, just to maybe kind of get that that moment of, you know, peeking your your interviewers interest. I think the bigger thing is just ideally, you know, and again, I would say like, the most important thing is that it's actually exciting to you But beyond that, it is helpful to have at least one of your side projects be something that's somewhat technically complicated, right. And in other words, the kind of thing where you could sit down with a whiteboard, stand up at a whiteboard, or like, sit down with a piece of paper and a pen, and kind of walk someone through, okay, here's how the system worked and, like, make a little flowchart thing of how data moved through. And, you know, like, what the database model was, and, you know, is something that kind of has some interesting technical design some sort of architecture to it, because that is something that that will come up. Initially, just about every coding interview.
Parker Phinney 18:41
One of the first things that most companies like to do is look at your resume and say, tell me about this, right? Or like, you know, just explain something technical to me or explain a project that you think is interesting or whatever. And in fact, even if they say If they point to something specific on your resume and say, tell me about this. They would be happy if you say that actually wasn't that technically interesting. But here's this other thing that that I can talk about that like was really cool, you know. And so that's kind of like another side tip I would offer is the thing that you have the most interesting story about the thing that you can kind of tell a neat story where you're again, like dry diagramming out like a technical design. You should put that at the very top of your resume. So that so that it comes up in in that kind of beginning chitchat part of the interview.
Laurence Bradford 19:38
Sit tight podcast listeners, we're taking a quick break to hear a word from our sponsors.
Laurence Bradford 19:44
If you want to build apps that look great on every type of device, Xojo makes it easy even if you are a beginner. The cross platform app development tool lets you code your app in just one language, then simply click a checkbox to generate versions for other platforms. coton app for Mac OS and have a Windows version in one click. You can also use the drag and drop tool to seamlessly create a user interface. Since Xojo uses native controls, the app will automatically look and perform as it should on every platform. sojo is perfect for anyone who wants to build an app even if you are an expert. Build an app to make your job easier or as a hobby. Xojo is also used by professional developers who want to build apps faster and even fortune 500 companies want to give it a try. Learn to Code With Me listeners get 20% off with the coupon code, ICanCode. Try Xojo free at xojo.com/learntocode. That's Xojo, x-o-j-o.com/learntocode.
Laurence Bradford 20:51
Laurence Bradford 21:50
The thing with building your own projects your side projects is you can create your own story to tell so even if you had you know work experience that maybe isn't as As a chat about what you just said, you can instead use another example of something that you built and take them through that. And really, you know, paint the story of what you have what you built. So and I also like that tip, too, about putting it higher up at your resume, like the things you want to talk about more or the things that were more technically complex, and positioning it that way. Because I think and I'm kind of switching gears. I wasn't even planning on talking about this, but I know a ton of people always are just unsure of how to talk about side projects on their resume. Or if they have a personal website or their LinkedIn or whatever. Do you have any thoughts on that? Like how they can include those in the best way?
Parker Phinney 22:46
Yeah, you're saying on the resume or LinkedIn specifically?
Laurence Bradford 22:50
Parker Phinney 22:51
Yeah. Um, that's a good question. You know, I'm, I'm I can offer some tips. From my perspective. I've never been a person who screens resumes. So some of this is going to be a little bit outside my wheelhouse. But my guess is, yeah, I think there are a couple different, this is maybe a helpful kind of angle for the game on, there are a couple different audiences to play to with that. So the first person is someone who screens resumes, right? So this is the phase where you're just trying to get an interview at a company, okay? And that person is screening resumes, and a lot of cases is not going to be an engineer, his or herself. And so, there are a few things that they may be looking for, but but in many cases, they're kind of doing sort of advanced keyword matching, right. So there's kind of looking for words that match up with with the job description. So that might be specific languages or frameworks, they may be looking for rails, they may be Looking for karoku they may be looking for, you know Postgres Do you know, whatever, React whatever's whatever kind of stack they have.
Parker Phinney 24:12
And then they may belooking for. Yeah, well, I guess everything else that's coming to mind is just more examples of vocab words that are like tools or frameworks could even be things like agile development or test driven development or something, right. So whenever you describe either work experience or side projects, put all those vocab words in there. And in fact, just put them right on the top. Right. So just like give the name of the job or the name of the project and then right under just say, you know, Django Heroku, you know, whatever, like what the stack was right? And then you know, any other potentially relevant vocab words like test driven Development, continuous deployment, whatever, right? So that's kind of the first person that you may want to think about with with your resume, including side projects. Now, the second person is a person who's running an interview. And so she is going to be technical almost all the time. And in in those cases, they're coming at things a little bit differently.
Parker Phinney 25:29
So in a lot of cases, she's gonna have your resume in front of her and in a lot of cases, like you know, she's been working. She's trying to like ship some code, she's behind on something and like, Oh, right, I have an interview scheduled for two o'clock. And so they she runs over to a conference room to meet you or like hops on the phone to get in touch with you and like, they're either there's just like a copy of your resume sitting there on the table, or they like pulled up from From their email real quick, like during the call, and so they're looking at it for the first time, right? So they're not even probably going to read all the way to the bottom. So you're gonna want to put the most interesting stuff right there on the top. And that's why I suggested this idea of putting the thing that you're most excited to talk about, right there on the top. Because in a lot of cases, they'll just like point to that and go, Oh, that sounds interesting. Like, tell me more about that.
Laurence Bradford 26:28
Oh, awesome. Thank you for sharing that. And, yes, there's definitely different people that will be that'll be reading the resume, whether it's someone who's like the person you'll work for, like your manager, other people that are gonna be conducting the interview, that could be your colleagues one day or coworkers are working on the same team. And then of course, as you mentioned, the person who's the screener, who could be someone that is like on the people ops team or someone else that you may not even be on the same team on or ever work with one day but they're just the ones that are going through the applicants. Yeah, one thing that I just want to mention is one thing that I found. And I wish I had an answer for this. And I think this is something I need to think about more in the future and maybe put other content around this on. But I do think just having the side projects on the resume can be difficult because I know because I used to do a lot of the 20 minute phone interview, like before the person comes into the office. And there's been times because you go through resumes so fast that I didn't realize that something that was a side project like something they built themselves, the way they kind of framed it on their resume. I thought it was like an employer because it had like the company name and it said what they did, but it wasn't clear to me that it was like something they built. Of course, there are other Yeah, there are other people who had sections, you know, side projects. So they made it very clear. It was something they built. So I would just say for anyone listening who's doing this, definitely try to have it be clear that it's something you build and not a company worked for because you could throw the person off then right if they didn't notice Send your resume or is a little vague how it was worded, and then you're chatting to them on the phone, and then that becomes clear. But anyway, that's the only thing I can I can add to that. Um, but I also loved what you talked about before, when you're going through having this example in mind that you could run through with the whiteboard and your story back when you are college when you are working with the YouTube API. I know back when you were working with that you had no intentions of it helping you later on during an interview or something. But I think for those that are listening that Do you have a more specific industry they want to work in or they have a clear sense to work with the different services and third party tools and API's available like for in that in that realm?
Parker Phinney 28:47
Yeah, I think that's a good idea. If you know that you want to be working in a specific space like definitely get working with those tools. But if you're more open then you know again, like don't, it's hard to predict what is going to happen. Like what's gonna resonate with, with the companies you talk to? So, again, my biggest thing is work on something that actually seems fun, because then you're gonna make more progress. You're gonna be more excited to talk about it. All that stuff.
Laurence Bradford 29:17
Yeah, hundred percent. So like, what are your thoughts on just like throwing in the towel and giving up on a project? I know you mentioned a story earlier about the Sudoku app that you build and how you gave up for a while and then you return back to it and finished it. But if a person just loses all interest, or they get really, really stuck, should they give up? Or like how, what are some tips on them to push through if you think that's what they should do?
Parker Phinney 29:44
Yeah, I think, um, you know, finishing a project is definitely better than not. But I know I also think that there shouldn't be too much shame in giving up cuz I think that the truth is, is, you know, for recruiting specifically at least, you know, a company individual engineer who's like going to interview you or like a resume screen or whatever. Like, if they actually go to the URL where the project is hosted. That already is kind of a miracle, right? And then if they really get in there and like kick the tires, a whole bunch, that's like, that hardly ever happens, right? For the most part, they'll kind of like look at the landing page, and then you know, go like, Oh, I have to log in, okay, whatever, and then bounce, you know what I mean? So, you can, I would say, in a recruiting context, don't be afraid to like fake it a little bit, if that makes sense. So if you have to like hard codes and stuff, kind of throw in some fake data.
Parker Phinney 30:59
You know, Kind of mock out some features so that like, they don't really work, but you kind of have like, the flow built out for how it would work. You know, you don't have to be dishonest like in an interview, if it comes up, you can say like, yeah, I didn't finish it. But here, here's what the design was like. And here's how I was, you know, working on building it out whenever. I think that's going to be enough, right? So I guess, put differently like, think think about the demo, right? If that's what if that's what's important to you is having the side project like do some lifting during our recruiting process, think about what the demo is going to be like. And in fact, like, it's less important that the project fully works and doesn't have bugs and all that stuff. Then it is that it's very easy for someone to see the demo. So in fact, a better product for you to have like linked to on your resume. They are on your LinkedIn or whatever is like a screencast of you using the thing, right? And when you record that screencast, you could mock out features and put in test data and like, you know, kind of smooth over some stuff that you never quite finished. Because otherwise, again, if you like, make this whole website no one's gonna log in, no one's gonna like actually, and then you know, they'll get to like, the dashboard and, and be like, okay, like now add your first book to your reading list or whatever. And then they'll be like, I don't want to do that, you know, and then they'll bounce or they won't even really get to see the product anyway.
Laurence Bradford 32:39
Yeah, yeah, I think that was great advice. I've never heard anyone actually share that before. So thank you so much for talking about that. And when you were chatting, I was just thinking about like, kind of the plague of perfectionism and I succumb to this all the time, in a range of ways, but sometimes it's like, you know what, it doesn't have to be perfect. If you wait. For something to be perfect, it's never going to be done. And what's more important, as you said, is like, kind of like faking it until you make it and showing the demo showing you use it having certain parts done, but not all of it has to be done. And exactly as you said, if you're an interviewer, or you know, potential teammate who's going to be talking to you like on the phone and vetting you, they probably aren't going to go through the entire thing. Like they may just go through a small bit of it. I think, though, like, the further you move along in the interview process, there could be a bigger chance that they may go back and check it out in more detail. But still, like, especially when you're just getting the attention and just getting the interview. There's no way they're going to spend that much time going through it because they don't have that much time to go through the thing. Right. So all really awesome advice. So is there anything else before we leave that you could share with those who are just stuck on figuring out what kind of project to build I know you talked about like the interest the technology He's thinking about, you know, if they know what realm they want to work in taking that into consideration, is there anything else you could leave people with that are just stuck on what to do?
Parker Phinney 34:10
Yeah, I guess I would offer kind of a few ideas. The first is think about web scraping, you know, this is just just me. But like, I love web scraping projects. It's like just just the right amount of like devious and a little subversive and fun and technically interesting and kind of involves the web, but also kind of more programming. And you get to learn how like a web browser works a little bit better, and how web server works and all that stuff. So I love web scraping stuff. So I shared some examples about that. Another is, yeah, you can start with a piece of technology you want to learn and you know, come up with something that would do well with that kind of technology. So if you If it's like a front end web framework, for example, you know, something that's really front end IE.
Parker Phinney 35:06
Another thing is, you know, think of either like a product that you really want to use yourself, right, like maybe a web browser extension that you really want or a web app that you really want. Or, you know, think about just just make yourself a reminder put like, put put a calendar reminder, every hour tomorrow, so that your phone buzzes once an hour to tell you like to remind you to think of a problem that you're having, or to like look out for if you're having a problem with something, there's something that frustrates you or whatever. See if you can come up with some ideas for problems that you have that that could be solved with, with software. And then the last suggestion I would give is, if you can't come up with a good problem to solve, just reinvent the wheel, right? So take a piece of software that you really like and see if you can build yourself. So yeah, for me like an image board and an online forum was a was a good example of that. Nowadays people might be more excited about like something that's more of a social network. But even you know, something as simple as like a to do list app, right? Or you know, whatever you nerd out about if you're really into if you're really into reading, you know, maybe a good Goodreads i think is the name of the app that people like to use to track. The books they read and stuff. If you want to make like a Goodreads clone, yeah, just just kind of whatever you like to use. See if you can build yourself.
Laurence Bradford 36:46
Oh, great stuff. Parker. Thank you again for coming on. Where can people find you online?
Parker Phinney 36:50
Best place to find me is on Twitter. Interview Cake, as in the handle is @interviewcake. Facebook.com/interview cake.
Laurence Bradford 37:01
Perfect. Thanks again for coming on. Thanks. I hope you enjoyed my conversation with Parker. Remember, you can find the show notes for this episode back on the Learn to Code With Me website in the podcast area. And as I hinted to in the beginning to go along with this episode, Parker is giving Learn to Code With Me listeners 50% off his Interview Cake program for this week only. This special 50% discount is going to end on Friday, November 11 at midnight eastern time. And to take advantage of this special offer, go to this URL, learntocodewith.me/interview. Interview Cake is an amazing product that will help you Ace technical interviews. People who have used Parker's product have landed jobs at companies like Amazon, Facebook, Google, Apple, Snapchat, Hulu, LinkedIn, Spotify, and so many more. Again, the special URL is learntocodewith.me/interview, go there and get 50% off of Interview Cake. If you're listening to this episode in the future, after November 11, I'm sorry, but this deal will no longer be available. However, make sure to sign up for the Learn to Code With Me email list so you can learn about these deals when they happen and not after the fact. And you won't miss another way. Thanks so much again for tuning in and we'll see you next week.
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 ideas are ones 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.
Another way to challenge yourself and stay inspired is by freelancing. If you're interested in taking your coding skills to the next level, freelancing is a great way to build real-world skills, as well as making some extra cash on the side. I've got a whole course all about how to start your own tech side gig – click the image below to check it out!
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 (note: LTCWM podcast listeners get 20% off using this link!)
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.