Feb 06, 2019
why do programmers have a tendency to be so confident about our abilities to complete tasks or build certain things? it seems to have something to do with the fact that the skill of programming is less about knowing how to do specific things, and more about knowing how to find out how to do those things. anyone who’s done a decent amount of programming has at least the basic skill set of perusing tutorials or documentations and finding necessary libraries to complete the tasks assigned to them.
while this kind of confidence is perfectly logical especially amongst relatively inexperienced programmers, i’ve come to be rather wary of it, because it tends to lead to aggressively glossing over details and optimizing for substandard results that “just work” over a cogent delivery. additionally, i’ve learned through my own experience, that this kind of confidence has the unfortunate aspect of having programmers rush into unclear projects and poorly-defined implementation paths that only leave them burned out. in hindsight, the most useful type advice or caution i got from mentors during my internships, was around taking a step back and thoroughly considering whatever plan (or lack thereof) in my head for accomplishing a task, lest i get burned by it. one of my mentors at coinbase would always give a drawn out “are you sure? i’ve been burned by that before”, whenever i suggested an library or tool for implementing something, which at the point seemed limiting but probably saved me from a lot of pain. indeed, more experienced programmers tend to have more of this kind of caution than those with less experience.
further, this type of caution-over-confidence attitude is one that really helped me understand the value of my creative time as an engineer, because productivity is useless if being applied in the wrong direction. i’ve been gradually working myself out of a state of burnout from the intensity of my two internships in 2018, and as i’m getting back into the grind of creating, i’m taking serious considerations about how to better utilize my time in how i pick out tools, and how i iterate on projects.