I think the best personal projects to show off are things you use yourself. The process from idea to implementation as a way of simplifying or enhancing your own life is what shows that you use...
I think the best personal projects to show off are things you use yourself. The process from idea to implementation as a way of simplifying or enhancing your own life is what shows that you use code to solve real needs.
As you say, of course it's even better if you make a personal project that not just you, but someone else also benefits from. Example: on reddit a lot of the folks who code reddit bots/scripts/tools while modding use that as a professional platform. One of the subreddits I've moderated has its own chrome extension with a host of different tools and an associated web portal. Even if only the mods use such a portal, that's something amazing to put on your resume.
Data visualization or interfacing is always both useful and seems very impressive. That's the most useful way for most people to have large data sets become accessible to them. It's also often a way to cut huge costs or risks.
For example, I developed a testing environment for seeing the impact of different regex expressions to actual conversations. How do you prevent an internet fight by cutting the comments that cross the line and spark them?
If you can gauge false-positives for automod conditions on reddit, and identify phrases that cross the line and lead others to do the same, that's powerful stuff for a mod team. My testing environment is visual due to the volume of data: A display of a bunch of reddit comment trees with a simple but powerful interface that shows what branches would have been prevented by your suggested automod conditions. It also lets you filter and sort the comments affected by a condition in other ways, like by the phrases right before and after a tag, number of users using each phrase, upvote counts, number of children etc.
I could present the working framework, and how this in real life actually functioned and impacted a large subreddit's moderation. I pitched the idea for expanding the test environment to my employer. The idea went up the corporate ladder and they bought the code/idea I'd written on my free time.
A development team has essentially built it into a proprietary testing environment for various moving parts of our code as we deliver complicated tech/networking solutions to business customers. None of this would ever have happened unless I had both a real-world application to show to, and code working in practice. The benefits weren't a pipe-dream; the proof-of-concept was right there.
Needless to say, both the initial sale and then ensuing raises/promotions at work have helped my career quite a bit. Pretty much whatever I'll do in the future or however many employees I oversee/manage, this story is what'd be the topic of future job interviews.
Creating something you use yourself is what will make a project fun.
Data visualizations are a huge area where almost any company could benefit from proprietary tools to quantify and make use of information they already generate.
Real-life applications where others use/benefit from your project are a big strength.
This means that you'll have to find a project idea for you.
I find myself in the same boat all the time. The best times I've had programming were when I fixing a problem that I myself had. The main place I've drawn ideas from for projects is my hobbies,...
I find myself in the same boat all the time. The best times I've had programming were when I fixing a problem that I myself had. The main place I've drawn ideas from for projects is my hobbies, namely gaming.
I first started programming for other people by making Minecraft service plugins for Bukkit. I started with a simple plugin that punished people who logged out in the middle of a fight to get past getting killed, and moved on to more complicated things, eventually to a plugin that allowed creating scripted events (i.e. user hits block, some other blocks move, message is played, etc., before command blocks were a thing). I spent years and years working with EVE's multiple APIs, which is also where I got into webdev.
Maybe an awesome mobile app for Tildes? Or a command line interface, like the Reddit Terminal Viewer? I don't know if those are sexy enough, but they'd certainly be cool for tilders (I'm referring...
Maybe an awesome mobile app for Tildes? Or a command line interface, like the Reddit Terminal Viewer?
I don't know if those are sexy enough, but they'd certainly be cool for tilders (I'm referring both to you and your potential users).
Are there any projects you wrote before that you look back and think "oof, that thing was a big mess of code"? If so those might use a rewrite. That's not always fun, but it's rather satisfying to...
Are there any projects you wrote before that you look back and think "oof, that thing was a big mess of code"? If so those might use a rewrite. That's not always fun, but it's rather satisfying to see how much you improved since then.
In addition, I always found it to be fun to work with game modding and console hacking (as long as you don't interact with the toxic communities). The techs you use and plan to use don't make this as easy, but if you're okay with learning C, C++, C#, Lua etc, you can get pretty far and have tons of fun.
Perhaps look through your daily workflow and see if there's anything you can simplify. I noticed one today: Authy is great (esp with the backups to server and sync between devices), but it's not open source and doesn't support custom icons, search or folders. So I might make a project like that that solves my problems. If you want to make something like that, go ahead.
Maybe you can take your coping skills and tinker with Robotics? Pretty wild stuff going on with Raspberry Pis, Beaglebones and other intergrated computers, plus it's fun to show friends something...
Maybe you can take your coping skills and tinker with Robotics? Pretty wild stuff going on with Raspberry Pis, Beaglebones and other intergrated computers, plus it's fun to show friends something that you made that's not entirely on a screen.
If you use a computer for work and don't have a million things that you hate about your own workflow then you need to get mad. Then get on solving those problems.
If you use a computer for work and don't have a million things that you hate about your own workflow then you need to get mad. Then get on solving those problems.
PDFs are an interesting point of attack. Well, kinda. You can have some PDF readers execute javascript if the user click a link or button of some sort. However, most PDF readers will give your...
PDFs are an interesting point of attack. Well, kinda.
You can have some PDF readers execute javascript if the user click a link or button of some sort.
However, most PDF readers will give your users scary warnings if you include such a feature.
Tracking PDF reads without user interaction isn't supposed to be possible, but is possible ocassionally when security bugs appear in reader implementations such as Mozilla's PDF.js.
Tracking downloads on the other hand, is dead simple.
Open source projects that needs some love in the area of video surveillance. Looking into Shinobi which appears quite immature over Zoneminder which is mature and set in their ways.
Open source projects that needs some love in the area of video surveillance. Looking into Shinobi which appears quite immature over Zoneminder which is mature and set in their ways.
There's been a lot of good discussion already, but I'll add that a project doesn't have to actually be useful to anyone other than yourself to be fun, informative, or make a nice addition to a...
There's been a lot of good discussion already, but I'll add that a project doesn't have to actually be useful to anyone other than yourself to be fun, informative, or make a nice addition to a resume.
My favorite personal projects are things I've done purely for my own education and entertainment, like implementing some procedural tree-growing algorithm I read about in some paper, or later re-implementing the same program in functional Clojure instead of Java. To me, projects are most interesting when they have the capacity to really surprise me as I work on them, or go off in different directions as I find new angles to explore, so I tend to find that procedural generation, simulations, and chaotic systems make for good subject matter to pick a project from.
Interested in web development or some front end framework? Maybe try implementing a 2D game of life engine, and then generalize it to other 2D cellular automata, you can focus on slick presentation and styles, or clever technical solutions to detect recurring patterns or improve performance for extremely large simulations. Bonus points if you decide to try letting multiple users interact with the same running sim via websockets or similar, or go out of your way to be slickly responsive to mobile and desktop browsers.
3D graphics or game development? There's lots of material online about procedural content generation, ranging from simple textures to complex maps or 3D models, and the generator can be as simple as a command-line utility spitting out a PNG or as fancy as a real time interactive simulation. Ray tracers are a popular project for good reason, and if you've never tried to make one it's a fun experience to see everything coming together.
The most important thing is that the project is rooted in some topic that you find deeply interesting, or else you may find it becoming tedious well before you've invested enough time to feel that it's worth showing off to someone.
Some added bonus points for the 3D graphics idea: Blender uses Python as its scripting language. I'd love a plugin that makes adding a grass field as simple as pushing a button.
Some added bonus points for the 3D graphics idea: Blender uses Python as its scripting language. I'd love a plugin that makes adding a grass field as simple as pushing a button.
I think the best personal projects to show off are things you use yourself. The process from idea to implementation as a way of simplifying or enhancing your own life is what shows that you use code to solve real needs.
As you say, of course it's even better if you make a personal project that not just you, but someone else also benefits from. Example: on reddit a lot of the folks who code reddit bots/scripts/tools while modding use that as a professional platform. One of the subreddits I've moderated has its own chrome extension with a host of different tools and an associated web portal. Even if only the mods use such a portal, that's something amazing to put on your resume.
Data visualization or interfacing is always both useful and seems very impressive. That's the most useful way for most people to have large data sets become accessible to them. It's also often a way to cut huge costs or risks.
For example, I developed a testing environment for seeing the impact of different regex expressions to actual conversations. How do you prevent an internet fight by cutting the comments that cross the line and spark them?
If you can gauge false-positives for automod conditions on reddit, and identify phrases that cross the line and lead others to do the same, that's powerful stuff for a mod team. My testing environment is visual due to the volume of data: A display of a bunch of reddit comment trees with a simple but powerful interface that shows what branches would have been prevented by your suggested automod conditions. It also lets you filter and sort the comments affected by a condition in other ways, like by the phrases right before and after a tag, number of users using each phrase, upvote counts, number of children etc.
I could present the working framework, and how this in real life actually functioned and impacted a large subreddit's moderation. I pitched the idea for expanding the test environment to my employer. The idea went up the corporate ladder and they bought the code/idea I'd written on my free time.
A development team has essentially built it into a proprietary testing environment for various moving parts of our code as we deliver complicated tech/networking solutions to business customers. None of this would ever have happened unless I had both a real-world application to show to, and code working in practice. The benefits weren't a pipe-dream; the proof-of-concept was right there.
Needless to say, both the initial sale and then ensuing raises/promotions at work have helped my career quite a bit. Pretty much whatever I'll do in the future or however many employees I oversee/manage, this story is what'd be the topic of future job interviews.
Creating something you use yourself is what will make a project fun.
Data visualizations are a huge area where almost any company could benefit from proprietary tools to quantify and make use of information they already generate.
Real-life applications where others use/benefit from your project are a big strength.
This means that you'll have to find a project idea for you.
I find myself in the same boat all the time. The best times I've had programming were when I fixing a problem that I myself had. The main place I've drawn ideas from for projects is my hobbies, namely gaming.
I first started programming for other people by making Minecraft service plugins for Bukkit. I started with a simple plugin that punished people who logged out in the middle of a fight to get past getting killed, and moved on to more complicated things, eventually to a plugin that allowed creating scripted events (i.e. user hits block, some other blocks move, message is played, etc., before command blocks were a thing). I spent years and years working with EVE's multiple APIs, which is also where I got into webdev.
Use programming to further you other hobbies.
Maybe an awesome mobile app for Tildes? Or a command line interface, like the Reddit Terminal Viewer?
I don't know if those are sexy enough, but they'd certainly be cool for tilders (I'm referring both to you and your potential users).
There is no API at this time. It's planned, but there's a lot of work that has to be done before it enters a planning stage.
Are there any projects you wrote before that you look back and think "oof, that thing was a big mess of code"? If so those might use a rewrite. That's not always fun, but it's rather satisfying to see how much you improved since then.
In addition, I always found it to be fun to work with game modding and console hacking (as long as you don't interact with the toxic communities). The techs you use and plan to use don't make this as easy, but if you're okay with learning C, C++, C#, Lua etc, you can get pretty far and have tons of fun.
Perhaps look through your daily workflow and see if there's anything you can simplify. I noticed one today: Authy is great (esp with the backups to server and sync between devices), but it's not open source and doesn't support custom icons, search or folders. So I might make a project like that that solves my problems. If you want to make something like that, go ahead.
What do you enjoy doing outside of programming?
Maybe you can take your coping skills and tinker with Robotics? Pretty wild stuff going on with Raspberry Pis, Beaglebones and other intergrated computers, plus it's fun to show friends something that you made that's not entirely on a screen.
If you use a computer for work and don't have a million things that you hate about your own workflow then you need to get mad. Then get on solving those problems.
Track who opens your resume!
PDFs are an interesting point of attack. Well, kinda.
You can have some PDF readers execute javascript if the user click a link or button of some sort.
However, most PDF readers will give your users scary warnings if you include such a feature.
Tracking PDF reads without user interaction isn't supposed to be possible, but is possible ocassionally when security bugs appear in reader implementations such as Mozilla's PDF.js.
Tracking downloads on the other hand, is dead simple.
Open source projects that needs some love in the area of video surveillance. Looking into Shinobi which appears quite immature over Zoneminder which is mature and set in their ways.
Why did you get into programming in the first place? What excited you about it? You could try working on something like that.
There's been a lot of good discussion already, but I'll add that a project doesn't have to actually be useful to anyone other than yourself to be fun, informative, or make a nice addition to a resume.
My favorite personal projects are things I've done purely for my own education and entertainment, like implementing some procedural tree-growing algorithm I read about in some paper, or later re-implementing the same program in functional Clojure instead of Java. To me, projects are most interesting when they have the capacity to really surprise me as I work on them, or go off in different directions as I find new angles to explore, so I tend to find that procedural generation, simulations, and chaotic systems make for good subject matter to pick a project from.
Interested in web development or some front end framework? Maybe try implementing a 2D game of life engine, and then generalize it to other 2D cellular automata, you can focus on slick presentation and styles, or clever technical solutions to detect recurring patterns or improve performance for extremely large simulations. Bonus points if you decide to try letting multiple users interact with the same running sim via websockets or similar, or go out of your way to be slickly responsive to mobile and desktop browsers.
3D graphics or game development? There's lots of material online about procedural content generation, ranging from simple textures to complex maps or 3D models, and the generator can be as simple as a command-line utility spitting out a PNG or as fancy as a real time interactive simulation. Ray tracers are a popular project for good reason, and if you've never tried to make one it's a fun experience to see everything coming together.
The most important thing is that the project is rooted in some topic that you find deeply interesting, or else you may find it becoming tedious well before you've invested enough time to feel that it's worth showing off to someone.
Some added bonus points for the 3D graphics idea: Blender uses Python as its scripting language. I'd love a plugin that makes adding a grass field as simple as pushing a button.