This post is a form of self-motivation
I want to get a programming job. So far I've taught myself programming, but I've always wanted to try programming collaboratively with other people in a job place. I think I'd grow a lot, and I think I could be involved in more ambitious projects that way.
To get a job, I need to have a portfolio so that when prospective employers skim my work they see evidence of some amount of desire and ability to program.
I also need to be good at algorithms to actually land many of the fancier programming jobs. But I can start practicing those again when I'm in the midst of applying for jobs. Right now, I think I need the portfolio to get a foot in the door.
I've picked four projects to do, because they're my favorite projects right now. I've thought about them a lot, started / stopped working on them in a million different languages and frameworks. But I haven't ever declared any of them "good enough" to share with the world. This month I will!
Here are the projects.
Code on tape
Everyone says it's good to read code in order to learn how to code. Code On Tape is a tool that makes it easy to record audio notes about a piece of code, in sync with highlights of the code you're talking about. Traditionally this has been done with screen recording, but I think there's an opportunity with audio and a minimal recording format to make smaller files for distribution (akin to podcasts) and a more mobile-friendly viewing experience.
With most calculators, you provide the data and the algorithm. To get the area of a circle, you enter the radius (the data, in this example), you square it, and then you multiply that by pi. Most of what you just did was algorithm input. With Calculator 2, you only provide the data and the app provides the algorithm. So now, instead of remembering algorithms, you just pick them from a list, insert your variables, and you're done. It's a "declarative" rather than an "imperative" calculator, if that makes sense.
My favorite application of all time, Notational Velocity, is dying. Fragment Notes is designed to replace the key functions of Notational Velocity (searching, skimming, and creating notes), while punting on the text editing part. Like Notational Velocity, Fragment is filesystem-friendly. Which means backup is simple, syncing is simple, and you can use any regular text editor to open the files. Database lock-in is evil!
My Own Personal Blog
Static site generators are a solved problem, but by building my own I believe I can eventually create a user interface for a static site generator that can make this amazing tool available to more people. Right now, the main requirement for this project is that it can easily build my own personal site, hence the name: My Own Personal Blog.