“Please pray for my son,” is my mother’s go-to phrase whenever she comes to visit my condo in San Diego. My home lab is strung up with a web of audio, visual, and power cords. Wandering eyes will find themselves crossing resistors, soldering irons, microcontrollers, drones, robot pets, and even more robot pets. It’s certainly no surprise why she’s a little worried. My mother’s opinion aside; in the developer community, personal projects can be seen as ways to reinforce bad practices and a poor investment of time and money. Even I notice that my Instagram posts on wire organization might be misconstrued as a red flag. But I believe the personal projects I’ve made have helped me become a better, creative, and more resourceful engineer.
In-Plant Plant Monitor — https://www.hackster.io/nick-engmann/1a17f6
Personal projects are things that you invest time and effort in to create outside of your job. The purpose of the project could be anything — to fulfill or automate a task, to prove a political point, to improve your skill set, or to produce art. For example, in order to stop killing my beautiful house plants, I built a mesh network of devices to monitor their water levels called In-Plants. There was also a point in my career where I wanted to better my software developing skills so I helped develop Flashcards For Developers — a free web application that helps developers prepare for interviews using flashcards. However, there are plenty of ignoble personal projects in my collection including my Tinder Auto Swiper, cosplay projects, and of course my Nerf Gun Turret. If anything, having a fully autonomous deployable nerf turret in my condo is a reason for my mom to pray for frail and slow-moving home intruders, not me.
Nerf Turret Defense System — https://www.hackster.io/quodcertamine/a50dd1
Both my practical and completely impractical projects are fueled by the same motivation: it’s a lot of fun. Thinking of cool, unique problems and architecting a solution to solve them in a few weeks is like running a marathon where you design the course. You start fresh and naive, not knowing that your limits of creativity and resourcefulness will be exhausted by the end of the first sprint. The experience or skill gaps you face become obstacles that you learn to swiftly avoid after doing the necessary research to get past them. Oftentimes, there is a supportive community both along the way and at the finish line when you present what you have learned or created. Best of all, you always win because you walk away with your one of a kind trophy — your personal project. And even then, the true reward isn’t the object you are left with at the end, but rather the improved skillset you gained along the way. Many individuals already get this sort of growth, freedom, and creativity at work, but personal projects provide a unique experience that can rarely be replicated.
Over the past 3 years, I’ve worked various full time engineering jobs that have helped me develop the skills that I utilize to make some of the projects that I create. But jobs, especially engineering jobs, are incredibly 2-Dimensional. There are schedules that you have to stick to, budgets that you can’t break, and many times you are limited to the amount of personal creativity that you can add to a project. I currently work on a Research and Development team that is tasked with thinking up and creating unique cybersecurity tools. But at the end of the day, if the ideas that my team has are helpful to the general populous but aren’t marketable, the company can discourage us from working on them. Personal projects give the power back to the individual. The goals that you have for your ever-changing masterpiece can take as long as you like and can cost as little as you like.
Flashcards for Developers — https://flashcardsfordevelopers.com
One of the most frequent questions I get from friends is “How do I get started?”. Here is a list of helpful resources that can help out, most of which have helped me immensely:
For Hardware Project Ideas:
Adafruit — excellent site to not only purchase hardware but also find professionally made project tutorials.
Hackster — great website full of community-sourced tutorials on how to replicate fun personal projects.
Instructables — another tool to find instructions on how to replicate personal projects.
Hackaday — daily blog posts on hardware projects. Ranging from cybersecurity to arcade machines.
Youtube Channels For Hardware Projects:
Instructional Literature For Hardware Knowledge
Mims III, Getting Started in Electronics
Platt, Make: Electronics
Geier, How to Diagnose & Fix Everything Electronic
Kybett & Boysen, All New Electronics Self-Teaching Guide
For Software Project Ideas:
http://producthunt.com/ — lets users discover and share new projects.
https://hackr.io — a crowdsourced collection of tutorials from across the web for learning languages and libraries (ignore sponsored stuff, look at upvotes).
YouTube Channels for Software Projects:
The New Boston — His videos are a bit dated but they provide a solid foundational mindset when it comes to solving problems.
https://www.youtube.com/watch?v=UnTQVlqmDQ0 — Good Understanding of Web Development in 2019.
Instructional Literature For Software Projects:
Awesome Lists — Resources for everything you would ever want to learn about software
https://developer.mozilla.org/en-US/docs/Learn — a good introduction to HTML/CSS/JS and Node.js or Django.
https://www.freecodecamp.org — curriculum including HTML/CSS/JS, React, Node.js, Express, and MongoDB.
https://javascript.info — curriculum providing a strong basis in JavaScript
https://learnxinyminutes.com — quick reference sheets for the syntax of many different languages (generally not sufficient on their own for learning something, but very helpful).
https://pastebin.com/gfBPg24A — Everything PHP.
Communal Learning Environments:
Major League Hacking: If you are a high school or college student, these hackathons are tailored for you!
Meetup: Hackathons. There are plenty of organizational hackathons that exist outside Major League Hacking and Meetup is a great resource to find them.
Code for America Brigade initiative. Many people aren’t comfortable with investing in a project without practical implementations. Code For America is a national organization with developers, designers, and idea-makers who want to get together to create projects to help their local community.
Raspberry Pi Zero W Network Access Storage Device— https://www.hackster.io/135000/3f47be
These resources and communities that I have listed above have all helped me. Over the past three years, I’ve met incredible people, learned a lot, and have been able to complete over 30 personal projects. While I’ll admit my first few projects were something only a mother could love (or DJ Khaled), I believe that I’m becoming a better engineer the more I create. So I’d encourage you to take that first step and start creating, regardless of what you want to make. And know that if your loved ones begin to pray for you and your legion of robot pets, that you are not alone.