I am extremely thankful for all the valuable comments on Hacker News. I want you to know I will take your insights and apply them to my work. I feel like I need to do something with all the advice you have given me, so your comments will be the focus of my therapy-project:
I’m a self-taught developer and I have always been proud of all the stuff I have learned along the way. The list probably looks familiar to most of you.
- ASP (Classic)
- Ruby on Rails
- ASP.NET MVC
I make money freelancing for local businesses and accepting jobs on Elance. I will say I make decent money doing that, but it has never been the end-goal. I feel like I’m Mario and I’m simply picking up coins, cleaning tubes and kicking around turtles. Nothing satisfying.
Until recently I was productive. I still spent a good chunk of my time learning new programming languages and techniques by reading tutorials, watching Pluralsight- and Lynda videos, cloning repos and reading books.
I could afford spending that time, because I have no life beyond my computer and so I had a few extra hours to splash around.
Here is probably something you can relate to. I have tons and tons of ideas for mobile apps, web applications and the next angry animal game. It is those same ideas that are currently sending me into a deep dark place. I wouldn’t even call it depression, because I have battled depression and this is a totally different beast.
Let me walk you through a typical week for me.
It starts out in the weekend (I have no clue why I still call it weekend, because there are weeks I don’t even dress myself, let alone keep track of what day it is). It’s normal for me to be all pumped and hyped because I came up with yet another YCombinator-will-totally-fund-me-app — or an improvement on an existing multi-billion app that I will overshadow with my awesomeness (preferably before the summer so I can use the money to buy myself some fun and sunshine).
I go into this weird mental cycle that ends with me getting so excited that I get teary-eyed and give myself goosebumps.
So first things first, I need a domain name right? Thus I visit expireddomains.net, filter on my keyword, sort by size and pick the first cool-looking name I can find.
When I finally get the name, I ponder my options and wonder if instead I can make a quick buck selling the domain name for hundreds of dollars, before I regain my focus on the “project”.
The rest of the day is then used renting a VPS server, installing Linux (for the cool-factor) and going through the mandatory list of essential stuff I need, like version managers, package managers, vim bundles, custom prompts, terminal colors, and so forth. Somewhere along the way I get sidetracked and I dump the Linux installation and install Windows Server.
Time well spent.
It’s weird, because I am reasonably down to earth, but when it comes to ideas I am like a bird who is attracted to shiny new objects.
After writing that last sentence I Googled the name of those birds, found out they are called Magpies and apparently they found out that these birds have no interest in shiny objects at all.
Normally I would not stop there and I would study Rossini’s opera on the subject called “La gazza ladra”, or “The Thieving Magpie,” which is an exciting tale about a magpie who takes several silver items, but in a tragic chain of events, a maidservant gets executed for the crime.
But not this time, because I am trying really hard to focus and to put my thought on paper so I can get some help dealing with this escalating problem that I have.
Right, I have the server installed (and I probably registered Google Apps and created several email-addresses for later use) and I’m finally starting work on my project.
Or so I hope.
Nope, not happening.
Because I now believe I should first figure out the requirements of my app. I’m a sucker for best practices. So obviously I want to TDD the shit out of this project. And therefore I need some user stories.
But wait, what makes a good user story? No, what makes a good requirement? Lets Wikipedia that first! On second thought, I should just order “Software Requirements (3rd Edition) (Developer Best Practices)” from Amazon and become a requirement-ninja.
At this point frustration is setting in. While I wait for the book to arrive I Google what cool bleeding-edge frameworks are available for my ultra-sexy app. I mean, AngularJS is fine, but been there, done that. I think I want to build this thing in React.js.
I don’t know React.js, but that should not be a problem. I do what I normally do and create a new folder on my Bookmarks Bar and spend about 3 hours bookmarking every tutorial I can find on the subject. I will probably never read any of them, but just bookmarking them makes me feel good. Or less sad.
If I am going to build this in React.js (which I totally should do) then I’ll spend less time in Visual Studio and more time in Sublime Text.
Before I can start, I should first verify that my Sublime color scheme is up to par. I’m still using Solarized, so I feel very dated. I should also add this new programming font I have been using lately. It makes my code look totally pretty. Also, lets Google for trending Sublime packages that I “need”.
Alright, it is only Wednesday so still very much on track. Speaking off tracking… should I use a Time Tracking app? I don’t know. Should I? Lets download and try out a few!
On second thought, I should totally build my own Time Tracker application first. I will use React.js.
And it goes on and on and on …
I am so hung up on design patterns, best practices, bleeding-edge tools, trends and frameworks and all that other noise that I am not getting any real work done. And it is killing me.
What can I do? I have already talked my doctor into giving me ADD drugs so I can force myself to focus, but nothing works and it is becoming hell on earth.