DEV Community

Cover image for I Wish I Never Learned to Code
Tyler Hawkins
Tyler Hawkins

Posted on • Updated on • Originally published at levelup.gitconnected.com

I Wish I Never Learned to Code

I write code for a living. You might say I'm a professional software engineer, but really software engineering is much more than just a profession – it's a lifestyle. The hoodies, the ping pong, the endless snacks and soda… it's all true. And yet, as rewarding as this field can be, I have a confession to make: Sometimes I wish I never learned to code.


Quirks

Ever since I started learning to code, browsing the web has never been the same. No longer can I simply accept the errors I encounter on other sites as I use them. Whenever something strange happens, curiosity gets the best of me, and I have to open up the browser's developer tools and start debugging.

Cryptic error message when trying to submit a form? You'll find me delving into the JavaScript console looking for error messages, digging through the source code, and observing the network requests as they come and go. UI looks a little bit outdated, or has a really good-looking page layout? Either way I'll be resizing my browser window just to see how well it handles screen size responsiveness. Comic Sans as your font of choice? I'll probably never trust you or your company ever again.

Please don't use Comic Sans

Please don't use Comic Sans

Professional Life

If you think those browsing habits are bad, just wait until you hear about the kinds of conversations I have with other software engineers. As a whole, engineers tend to be fairly opinionated. Pedantry runs in our blood. Do you indent your code using spaces or tabs? Are you more of a Vim or an Emacs fan? Chrome or Firefox?

In wiser circles these conversations will ultimately lead to someone asking "Does it really matter?". Bikeshedding is a real phenomenon and needs to be carefully kept in check.

xkcd - Real Programmers

xkcd - Real Programmers

As more and more companies adopt agile methodologies, from time to time we have to weigh the comparative trade-offs between using Waterfall, Scrum, or Kanban development lifecycles. We all enjoy bashing on Waterfall as an artifact of the past used by old-fashioned and inefficient corporations. However, the Scrum versus Kanban war rages on.

"You're a believer in Scrum, you say? I'll bet you love your artificial time boxes that cause hurried code to be imprudently shipped in order to meet an imaginary deadline before the sprint ends."

Dilbert - Scott Adams

Dilbert - Scott Adams

Speaking of agile, what is a story point, anyway? A measure of time? Effort? Complexity? Risk? All of the above? You and I could likely spend hours debating the merits of each definition without coming to a mutual understanding.

At some point this may devolve into more bikeshedding, but being able to understand one another and communicate effectively is critical, and that includes having a shared understanding of the terms we use throughout the day.

Frontend development opens up a whole other world of talking points, most notably: "When are we finally going to drop support for Internet Explorer?" I have to walk the fine line between hating on Internet Explorer and wanting to drop it and simultaneously understanding the need to support it for those of our customers that are stuck using it. (Those poor unfortunate souls…)

Internet Explorer meme

Internet Explorer meme

Continuous Learning

Continuous learning is a big part of software engineering, as the technological landscape frequently changes. With practically hundreds of new libraries and frameworks being released every month, JavaScript burnout is real.

The outside observer probably thinks I'm making stuff up when I tell them I spent my day configuring Webpack, Rollup, and Babel in order to use the latest ES6+ syntax. Or that Angular and AngularJS are two vastly different things. Or that LitElement, Svelte, and Stencil seem like promising web component solutions. Or that Deno could be the new Node.

When someone asks me what I do for work, it's hard to respond without spewing acronyms at them: "I usually work with frontend technologies, so things like HTML, CSS, and JS. Occasionally I have to use PHP or SQL, but I'm more of a MEAN/MERN stack developer. Sometimes I use PaaS technologies like Heroku, but other times I'm using IaaS providers like AWS or GCP."

Developer spin-off meme of a Poorly Drawn Lines comic

Developer spin-off meme of a Poorly Drawn Lines comic

Personal Life

In my free time, I read books with really dry titles like Clean Code, Refactoring, and Domain-Driven Design. When I'm not reading a textbook, I'm reading articles online that often contain questionable hit-and-miss advice or watching someone's coding tutorial. Podcasts about programming are even more enjoyable, because what could be better than listening to someone talk about code on my commute to work where I then get to spend the day also talking about code?

In addition to consuming content online, software engineers also spend a good portion of their personal life creating content online. My personal hobby is building simple apps and games no one will ever see, like Crossy Block, this Flappy Bird knock-off, or this corporate BS generator. Is this a waste of time? Maybe. But does it bring people joy for about two minutes when they see these apps? Absolutely.

Corporate BS Generator app

Corporate BS Generator app

The Truth Is…

And yet, the truth is, coding gives me an opportunity to create and to be creative. It helps me bring ideas to life, almost quite literally building something out of nothing. Software engineering allows me to solve interesting and difficult challenges, ideally to make people's lives easier in some small way. My profession helps me stretch and grow intellectually. I have the opportunity to be continuously learning, and I even get paid to do so!

The truth is, I love to code.

Top comments (27)

Collapse
 
rfaugusto profile image
Rafael Alberti Cantoni Augusto

Tyler, you've managed to sum up all the feelings that I have on a daily basis. It's funny how we go from "I hate this thing" to "that's fantastic" in a matter of minutes.
But, in the end, we end up enjoying the process... even with something like a decade dealing with the software area.

Collapse
 
kretaceous profile image
Abhijit Hota

This. 👏👏

Although I'm curious to know who are those people who are stuck using IE?

Collapse
 
thawkin3 profile image
Tyler Hawkins

In my experience, it's often been large corporations that have been around for a long time. At my current company, IE users make up about 10% of our customer user base, which is way higher than the global averages of 2-4%, which is really interesting.

Collapse
 
tardisgallifrey profile image
Dave

We currently use a Preventive Maintenance program at work to track work orders and PM's. It is a Four Rivers product called TMS. It only runs on Internet Explorer because it is a Java Web App and TMS won't update it.

Collapse
 
jeroengoddijn profile image
Jeroen Goddijn

Usually larger corporations that are running (older versions of) SAP or other outdated backend systems that only work properly (or: 'as expected') in IE.
Most likely because they have no need to upgrade to latest version and the insanely high invoice that comes with that.

Collapse
 
ivan_jrmc profile image
Ivan Jeremic • Edited

All companies still in 2020 use it all over Europe, very sad but true.

Collapse
 
kretaceous profile image
Abhijit Hota

Thanks to everyone who replied for the insights! I really did not think IE still holds a share this big.

Collapse
 
wannabehexagon profile image
ItsThatHexagonGuy

While at work today, I ragequit while writing some styles (not really good at it) and told myself I'll never write a single line of CSS again, then after about 5 minutes it clicked and I was just happy to continue. Developers go through this cycle often, and some frequently than others :) Happens to the best of us

Thanks for the post!

Collapse
 
michaelcurrin profile image
Michael Currin • Edited

I got fed up with the new ES6 syntax, callbacks vs promises vs async, choices in compilers like Babel, JSX, and things like fn.bind andfn.call... I gave up reading JS articles and writing new JS code.

I'm still upset with how much one has to know about JS. Which is a barrier for learning and using it.
I'm trying to use JS more as a tool to solve problems rather than something to get frustrated at in an attempt to master.

Collapse
 
mjgs profile image
Mark Smith

Nice article, well balanced and pleasant read, I’d say your not just a writer of code.

Collapse
 
thawkin3 profile image
Tyler Hawkins

Thank you Mark! That’s a high compliment. :)

Collapse
 
matrixmike profile image
Mike Hewitt

I have to say that you probably mean 'you are' ! I liked the main post but lots of errors creep into code when our in built compiler aka brain does not spot these errors. I love coding too...

Collapse
 
mjgs profile image
Mark Smith

Yep - thanks for the typo correction Mike

Collapse
 
zdev1official profile image
ZDev1Official

I like the internet meme

Collapse
 
ac000 profile image
Andrew Clayton

To answer the important question!

tabs, vim, firefox

Collapse
 
agathebadia profile image
Agathe Badia

A lot of developers can relate to each point you shared. Thanks for sharing! As a junior developer, it helps a lot to read that from experienced ones :)

Collapse
 
ajsmithsw profile image
Alex Smith

My thoughts exactly! Particularly on the merits of different agile methodologies 😂

Collapse
 
cirphrank profile image
🎧Cirphrank👣

Splendid read.

Collapse
 
thawkin3 profile image
Tyler Hawkins

Thank you!

Collapse
 
karlkras profile image
Karl Krasnowsky

You had me at "Sometimes I wish I never learned to code."