Don’t let the stereotypically laid-back atmosphere at technology firms fool you, because being a web developer is stupidly hard work. At least it is for us normal folks who have problems with abstract concepts like fundamental math and remembering hotkeys.
In fact, I don’t think it’s unreasonable to say programming is like the Contra of careers. Fortunately, much like Contra, it’s also really easy to
cheat give yourself an advantage.
So hold onto your seats, because I’m about to blow your mind. That advantage? Taking really awesome notes. Boom. How is your mind? Blown to bits? Thought so.
I know what you’re thinking. Take notes? That’s your amazing advice? But just trust me. When I joined the News Apps team, I was a self-taught developer with only front-end web development experience. I had to start learning programming languages, and to do that, I had to take notes.
The idea behind taking good notes is a simple one, but sometimes it’s helpful to be reminded of those simple things, especially when you’re dealing with really complex problems you don’t totally understand. Well, soon after I started with News Apps, Ryan Mark reminded me. I got into the habit of taking really detailed notes every day thanks to his advice. Of all the awesome advice our fearless leader has given me over the past couple years, this has proved to be the most valuable.
Of course, if you’re just starting out with programming, it’s only natural for your programming notes to be terrible. (In one of my early notes, I literally told myself to take better notes next time. Thanks for nothing, Past Ryan.) That’s because, as Alex Bordens mentioned more eloquently in his recent post, sometimes you’re going to have to do things you don’t totally understand. It’s scary but it might just be the only way to learn. Most of the time you don’t break things anyway. Most of the time.
When you do break something, that’s also where Alex’s advice of crying or drinking a beer comes into the fold. Emotional outbursts and alcoholic beverages are a natural part of programming, and I’ve had more than my fair share of frustrating days. But I’ve also avoided exponentially more frustrating days by having really detailed notes as a reference.
All told, I’ve got about five documents on file containing over 33,300 words (not including links). That’s a lot of words, so if you’re going to be a programmer for an extended period of time, or–heaven forbid–make a career of it, it’s a good idea to have a method to the madness.
First, I have a file dedicated to the majority of commands I’ve run on the command line, along with a description of what each does. It’s a pretty straightforward file that acts as a handy cheat sheet when I need it.
Then I have a file full of all of the fancy links that are shared in our group’s tech chat. This includes everything from cool tutorials to posts on interesting new tech. If you can, find yourself a good group of nerds who will share these things with you. You’ll stay on top of your tech, and even if you don’t understand some of it now, it could help you learn something new in the future.
My final set of files are my most important–they’re what I refer to as my daily diaries. These are files where I record what interesting things I did or learned in that day, as well as share my innermost secrets about all the cute boys at work. I record by date so I can match tasks I’ve completed to changes in our Unfuddle tracking system (and to my own recollection). For example, I’ll vaguely recall doing some work on a particular project last fall; since I’m recording by date, I know what section of my notes to check first if I need to reference that work again.
I put commands and particularly relevant chunks of code in bold, so they’re easier to spot as I scroll through the abhorrently long files. The writing is keyword rich for the same obvious reason (CTRL+F is the best). I take entire error strings I received and paste them into the file; if I come across this error message again, I can easily find it in my notes and see how I fixed it, before having to resort to Google and wading through Stack Overflow threads for solutions that might not even apply to me.
Most importantly, I put a little bit of pressure on myself to record notes each day and not slack off, even if I try to convince myself I “mostly understand” everything I did that day. It makes it more of a ritual and part of my standard workday.
I know this all sounds very simple, but trust me when I say that you’re going to need all the help you can get as you start programming. Taking good notes is paramount to your success, otherwise you’re going to be asking your nerd friends/coworkers way too many questions and, unless you funnel constant streams of coffee into them, they’re likely to get agitated with you.
Take notes. Don’t agitate the nerds.