# Always Something New

The thing about software development, as opposed to the myriad other jobs I’ve had, is that getting competence at the job is a long process. With so many other jobs, you show up, you work hard -- lifting things, typing things, moving paper from one side of your desk to the other for someone else to sign... Education and training isn't really a huge part of those jobs. Programming, on the other hand, is a never-ending series of learning moments and curveballs that leave you scratching your head. At some point, though, you start getting a handle on things. You stop going to co-workers with implementation questions so often, and they start coming to you with more regularity. The thing is, even thirteen years in, you can learn something so basic, so "Development 101"-y, that you will feel like a complete rookie.

My first mistake in dealing with cookies was thinking I knew something that I'd never researched or even asked anyone about. I assumed they were stored on the user’s computer and inaccessible on the server side. It’s way too easy to feel comfortable with your level of knowledge - your "mastery" - of programming concepts and go forward with a solution, thinking you have all the answers.

The problem is, reality doesn't bend to your confidence level, how many years you've been a programmer, or your title on the org chart. Really, that's the beautiful thing about programming. It's possible to know the right answer, to arrive at a correct solution and be able to show, to prove, that it's correct.

Fortunately, I work with some very smart people, and when I was lamenting the lack of cookie information on the server side, one of them said to me, "Oh, I think that comes through on the request header." Which it absolutely does, and which sent me off on a three-hour coding session that put to bed a really thorny problem we were having in a server-side-rendered Nuxt app.

The mistake I quite often make, which I didn't make here, is that I'll sometimes take a programming problem, tuck it away, and guard it like my Precious. Like it's a point of pride to spin my wheels on something, holding up everything, as long as I'm the one who gets to solve it. I'll admit, there's a certain level of satisfaction, and even a little thrill that comes with a good solution to a hard problem, but over-use of the hermit hat is a self-defeating cycle that I know from experience is a one-way trip to anxiety and self-doubt.

It sometimes feels like there's a masochistic futility to trying to master software development. Most of what you get is an understanding of some patterns you can apply, and the ability to ask the right questions -- which is an underrated skill and will likely be a topic for a future article. I guess mastery has to be about progress rather than a destination, because things do get easier, but even when you think you're getting there, someone will tell you cookies get sent on the request header and shatter any illusion of mastery you had.

Posted on Tuesday, January 15, 2019

Posted under