5 (Non-Code) Things I Can Do Right Now To Be A Better Developer
As I spend more and more of my life coding, I have realized that there are a few pitfalls I keep falling into. As the codebase for my app gets bigger and bigger, I have found myself spending hours going over code that I wrote 72 hours ago trying to figure out what I was doing and how things fit together. Sometimes I even spend a couple hours rethinking code I’ve already written and rewriting parts just to find out why the original plan was better. The result is a lot of wasted time and a lot of wasted code.
I have come so far and improved so much, but now that all the basic skills are in place and I am hitting problems that stem from scale and complexity I know they must be addressed. I realize that putting my weaknesses out there is a risky step, but I think that it is worth it if someone else can benefit from knowing they aren’t alone in their frustration or unproductive habits. So here are some things I’m working on right now to better discipline myself and make better use of my time.
Make More and Better Comments
Probably the most critical thing to work on in the near future is making more comments in my code. Up until now I have mostly been commenting on parts of my code that I think are particularly dense. However, as the number of files and lines grows and grows and grows, the density and mechanics of some particular function is less of an issue than understanding how the program fits together as a whole. So from now on I am not only going to annotate the how of my code, but the why. Of course, I’ll be adding more comments everywhere.
Leave Reminders as to What I was Working On
A related problem is picking up my code and figuring out where to start next. I leave TODOs, but I’m often finding that I spend quite a bit of time figuring out what the next thing I should do is. So what I have settled on is using sticky notes on the desktop where I keep my xCode window. I’m going to write on those sticky notes what I just finished working on and what I think the next thing will be. Then I’m going to plop them right on top of the xCode window so that I read it before I even touch the code. This should get me straight back into coding and doing exactly what to do.
Bring a Book When Commuting
I have two issues. First, I won’t use my laptop on the train. Second, I need to read more about code. So what I’m thinking of doing is buying an actual, paper-and-ink book on advanced coding practices and reading it on the train. It’s a simple fix that’s going to fill a big dead space in my life. With a physical book I can save phone battery and listen to music while I read, which is great because I value my commute as music listening time. Having convenient public transport here in New York City gives me a pretty big advantage in that I don’t have to actively drive or worry about carsickness. I suppose if you live somewhere where you have to drive you could listen to audiobooks or podcasts as well (if you do, please take care to avoid distracted driving).
Manage the “Coding ADD” Properly
Oftentimes when I’m in the middle of navigating to another place while in the middle of a task, I’ll come up on something else that needs to be done. Whether it’s a badly written line, an unfinished or unnecessary method, or something that really needs to be added, I often find myself sidetracked and fixing that instead. In more forgivable cases, I run up on a dependency that needs to be put in place before I can continue with what I was doing, then while adding the dependency, forget what I was originally working on.
The solution here is a combination of practices #1 and 2. If I spot another task while working on one problem, I must try to make a TODO comment and push on with the task at hand. If I need to implement an unplanned or unexpected dependency, I will leave a comment at the beginning of the work being done, which will also serve as a clarification for future ability to trace back over these dependencies. Also, I might employ another sticky note to keep track of tasks I am working on, in a simple stack — last-in first-out.
Take Better Pomodoro Breaks with Pops
Coding is fun, but it’s stressful and frustrating as well. Because of the fun, the stress can really sneak up on me and catch me unexpected, like when I stand up after drinking for a while and stumble because I feel the effects all at once. Of course, the solution to getting drunk too fast is pacing myself by drinking water — the coding equivalent is to take quick, timed breaks. One famous procedure for productive breaks is the Pomodoro method, three five minute breaks split evenly across 120 total minutes, then a 30 minute break at the end.
Pomodoro’s proponents recommended using an egg-timer (or the eponymous tomato-timer) but some of my classmates at Flatiron School came up with a better solution that lives on your iPhone.
Pops is an app that gamifies the Pomodoro break by racking up points called “props” for every second you spend not looking at your phone. You set the time from some predefined limits, which will have predefined breaks in proportion. To keep the props piling up, you have to keep your phone face down so that it can’t distract you whilst working. When your timer is up, Pops will set off an alarm and your camera flash to notify that it’s time for a break. During the break, Pops or another character will send you curated links to entertain you on your break. Props go toward purchasing other characters, which will each have their own work/break proportions and set of curated links.
Programming isn’t just a job, it’s a lifestyle. The mindset that I need to create is one that won’t help me just in coding but in every area of my life. That is: to be organized in my approach to problem-solving, document everything, never stop learning, and know when to step back. Your weaknesses may be different from mine, everybody’s different, but everyone deals with setbacks and in programming (especially when working solo) it’s on us as programmers to compensate for whatever is holding us back. We can, and will, get there. In the words of the Forsaken:
“Remember: Patience, Discipline.”