Yeah – I’m leaving the default title for this post. It seems oddly appropriate, after all; “Hello World” is often the first thing that someone learning to code creates, and, with this blog, I want to document some of my thoughts about the journey from Hello World to Software Engineer.
I already work as a full-time and full-stack software engineer. I was lucky; I was offered a junior developer position when I was maybe 40% through the CS program, and have been working ever since. That was roughly 5 years ago. I have taken literal eons to finish this program; once I started working full time, it was difficult to balance CS courses with other life priorities, such as hanging with my cat, Baldurs Gate 3, and quality time with my cat.
Though I no longer have the “junior” part of that title, I do still feel junior often. Like, constantly. This is a fairly common sentiment among developers; one doesn’t even have to be “terminally online,” like I am, to see that many, many engineers are plagued with this feeling.
This is a topic that I am profoundly interested in – why do so many software engineers feel that they are mere moments away from being exposed as know-nothing frauds? As fakers, fudgers? Why is it that this sentiment, so common among us developers, isn’t present in every field, at least to this extent? My mom has had a long and storied career as a CPA (that’s Certified Public Accountant for those of you who might enter the same fugue state that I do come tax season). I asked her if, when she was starting out in her career, she suffered from imposter syndrome. She said not really, she didn’t, and found it strange that someone capable would feel incapable about the thing they are literally paid to do. Like, by a company. In capitalism. If you really sucked, you’d be fired, right? “Right,” I said, though in my mind I thought, or maybe my deceit has been so all-encompassing that they have no idea that I suck! Ha!
I want to use this space to explore this idea and others like it: what is imposter syndrome? Why is imposter syndrome? What, if anything, have I learned as I walked the path from Hello World to employed developer? Why are software engineers so cool and attractive? Are hoodies the pinnacle of workplace fashion?
To start, I think one of the biggest lessons I learned when I got a job as a developer is that knowing how to code is only one part of many. There is a pretty big difference between writing code and making software. I work on web apps, and I think this might be especially true in this case. Sure, maybe you can code, but – can you configure a web server? Where and how are you deploying your app? How do you architect an application? Should this piece of functionality be a microservice? Why is javascript so icky?
Unfortunately, I think that a lot of this knowledge – the type of big-picture, how to structure and deploy software type questions – is mostly gained through experience; all apps can be created and configured in countless different ways. In my current job, I don’t get much chance to learn these things, as the devops side was already in place when I arrived. This is something I hope to gain with the capstone project – a greater understanding of how applications work from a sys admin and server architecture standpoint, since we will be doing this for our (albeit small) projects.
There is no real ending. It’s just the place where you stop the story.
– Frank Herbert