Becoming a better developer

Jacob Do
4 min readJan 10, 2019

--

This made top of my new year’s resolution list. Making new year’s resolutions is an emotional thing, at least for me it is. I get all sentimental, acutely aware of my flaws and start writing down the silliest of things, but whatever’s on there after that emotional (and otherwise) high has worn off, is binding. So, 2019 — let’s make me a better developer, shall we?

Where to start?

First, I need to establish the metrics for measuring how good a developer is, find out whether any one set of metrics can be used for all developers or is it a personal thing and whether there is anything at all out there that can be reliably used to measure the progress of becoming a better developer. Let’s do a quick google search to find out.

Now this was not the first thing I search for, but it was the first one that got me somewhere. The first result was a question — “how can I know that I am a good developer?”. The top answer:

A good programmer understands that they have to continue to learn and grow. They strive to do their best at every effort, admit to failures and learn from them.

This seems nice and gives me an “uh-oh I am already doing all that kind of feeling”, however, this can be said about any trade out there, nothing in the answer is developer specific. I will keep the learning part for the shortlist of metrics though, just because it seems like such an obvious thing and a fairly measurable one too, yay.

Second top-rated answer is very concise:

You can’t. Only your coworkers can tell you.

Ok, this one made me think. My coworkers (Team of around 10–15 people at any given time) tell me that I am helpful and approachable, so I guess that makes me a good coworker, but I need to think long and hard to recall any occasion where someone had commended my programming skills. I am also afraid that should I focus on this as a metric, it will have an unwanted side effect of me actively seeking out my coworkers’ praise. Knowing the blabber-mouth that I am and the fact that I already bother the person sitting next to me whenever I make or learn something that I am proud of, I should perhaps leave this one off.

Answer number three is the first one to have real substance. It details something called “The Programmer Competency Matrix”, here’s a link to it:

If you’re like me and too lazy to click on that link, here’s a quick summary — it’s split into sections e.g. “Computer Science”, “Programming”. Each section has a bunch of competencies, each competency has four different levels of proficiency described next to it and I am obviously drawn to rating myself here and now. So this is what I am going to do, I will go through each of the sections and put the description that fits me best under each competency. Then I will tally up the score and call it a day.

Computer science

Data structures

Surprise, surprise, I am level 0.

Doesn’t know the difference between Array and LinkedList

I really don’t.

Algorithms

It’s look good here. I do know how to find an average number from an array of numbers (try me!), hey, I will even use reduce to do it. So not level 0. I am good for level 1 as well. I know and I’ve done Tree algorithm, but the rest of level 2 description seems fuzzy to me. So let’s place me at 1.

Tree, Graph, simple greedy and divide and conquer algorithms, is able to understand the relevance of the levels of this matrix.

Systems programming

Oh god, what is any of this. I mean I could say I know of compilers, but what on earth is a linker. Another level 0 for me.

Doesn’t know what a compiler, linker or interpreter is.

Software Engineering

Source code version control

Level 3 — has tried Git? Ok, this thing feels bit like a low standard — I’ll take it though.

Knowledge of distributed VCS systems. Has tried out Bzr/Mercurial/Darcs/Git

Build automation

Solid level 1 and teetering on the edge of being level 2. I could do this (if my life was in danger):

Can setup a script to build the basic system

Automated testing

Ayy, I have done TDD development, admittedly only during Andrew Mead’s Complete React Developer tutorial on Udemy. By the way, great instructor.

Can setup a script to build the basic system

It’s 11 PM and my wife just gave me that you’re being weird with your new hobby kinda look and that’s my queue to hit a pause and continue with the rest of my grading in part two of this.

Here’s to the first step in hopefully fun and yearlong journey, cheers🥂

--

--

Jacob Do

HTML engineer by day, Meme connoisseur by night