I started my first job as a Professional Programmer on April 21, 2014. I would like to think that I have graduated from being a junior developer to being someone intermediate. If I could go back in time and tell myself what I should be doing, here is what I would say:
- Optimize each little thing with your development environment/editor. Go to your editor's plugin page and look at whatever plugin you can find. If you can't find a good plugin for what you want to have, then create one yourself. Whatever editor you use, learn everything about it.
- Optimize your non-development environment (software). This usually means your browser, and operating system. Browser optimizations: extensions like Shut Down Facebook News Feed. Operating system optimizations: Alfred. Some of my optimizations: Spectacle, Caffeine, Dropbox.
- Be good at Where's Waldo. I mean be good at spotting small logic errors. Things like
if file_extension = 'jpg'versus
if file_extension == 'jpg'drove me crazy. Stupid stuff like editing the wrong file, not reloading the browser cache so I think what I'm doing is not working...
- Optimize your non-development environment (physical environment). Every little thing should be something that helps you. I like hard chairs better than soft ones so I code on this crappy $15 chair. I don't want to prepare coffee when I wake up so I drink one 3-in-1 coffee when I wake up, and then after that I drink the office coffee.
- Go outside once in a while. There has to be some kind of actual study where exercise boosts brain productivity. Run, swim, lift, shoot some hoops, or do anything. Literally anything physical will work. I'm personally addicted to the bike. I try to bike 3 times a week. While biking I've come up with a too many ideas to mention. In fact, this blog is an idea that came from the bike.
- Really think about software development not as a job that you do, but as a service that you provide for others. Thus you want to provide a quality of software development that matches your preferred quality for the people you hire when you do things. You don't hire (and you certainly won't rehire) a carpenter who sucks, so why would others hire a developer who also sucks? This is our craft, we should at least care about it.