Happy New Year!
For this first day of 2018, I’m publishing my 101st post: time to look at my developer career in retrospect. You would THINK that a retrospective like this would be the 100th post and it usually would, but here’s what happened:
As mentioned many times, I lost my entire blog by mistakenly deleting its database. With some help from the Internet Wayback Machine, I recovered all but two blog posts.
I planned on rewriting the unit test one but kept writing new posts anyway, eventually totalling 99 posts in all. As I began to write post 100, I checked my site on the IWM…by chance.
So this retrospective post ends up being Post #101. It happened…OK…off to the review.
The MAIN thing I've learned as a web developer
At the time of this post, I’ve been a professionally-employed web developer for just over 12 years. The fundamental thing I’ve learned in this time is, the only way to get better as a developer is to “JUST CODE.”
I’ve written about this before but it bears repeating. Simply sitting down at your machine and writing code is the best way to learn the code you’re writing.
More so than reading books about code, or watching videos about code, or paying for coding classes. You have to literally write code, encounter problems along the way, then figure out how to solve them.
I’ve paid for books, watched videos, paid for code courses. I’ve even shelled out tons of money going to conferences…For example:
JSConf 2013? Where a majority of the web developers in the world were first exposed to React? Almost immediately after Facebook open-sourced it? I was there!!!
On one hand, it was great that “I was there.” On the other hand, being “there” didn’t teach me React, and I didn’t even use it until three-and-a-half years later!
I use React almost daily now and I’m proud of my knowledge of it…knowledge I got by trying it, building with it, failing with it, and nothing else. I’m not a React guru (yet), but I can take a React project on now with a high level of confidence.
This isn’t just true with me and React: I’ve written CodePens and GitHub repos of stuff I’ve thrown away. I wrote a Node command-line tool that I never used after I built it…despite publicly saying I would.
I don’t care: I learned stuff from all those throwaways and got to be a better developer. “Just Coding” for the sake of “Just Coding” upped my confidence as a developer.
To be clear: I’m not saying don’t learn from books, videos, classes or conferences. We all learn in different ways and as individuals, we should use whatever resources help us learn the best.
I’m saying be sure that you write code more than you do those things. Doing the opposite is a major mistake I’ve made.
Change was good...and it was necessary
Evolving as a developer goes beyond learning the new, hip front-end framework. It also includes seeking challenges in your work.
My leaving Revlon is the primary example of my seeking out such challenges. And it was the right thing to do.
I blogged about that here and as I said then, leaving Revlon was a necessity. I was certainly writing the code I wanted to write, but the need for that specific code started to lessen in terms of what the company needed.
All true. But it was also true that Revlon, at that time, wasn’t the modern code shop I wanted to work in.
I wanted to work in a JIRA-powered agile environment. I wanted to work with JSON APIs more often. I wanted Git to be the one and only source code management system I used. I wanted to work with content management systems less and less.
I got some of this at Revlon but had leave the company to get it as a whole. And while leaving them was not something I was happy to do, I’ll concede that I had to do it to grow as a developer.
Change made me appreciate teams more
While I may not have been able to use the tools I wanted to use while at Revlon, it goes without saying that I worked on one of the best teams ever while there. From management on down, there were WAAAAY more strong links in that team chain than weak ones.
This was hard to find when I left. I’ve been on two different teams at my current employer and have found it there, but I never got the “teamwork vibe” at the spots in-between because they weren’t as collaborative.
As a result, I had less fun as a developer during this time. Every day before going to work, you should be able to say to yourself, “Yay!!! I get to go to work today!”
I lost this for a minute due to the teams I was on. They were all made up of good developers, I just didn’t vibe with as many as of them as I’d hoped to.
My best work and best learning happens when I’m on a team that works as a unit towards a common goal and shares knowledge with one another. If a team has impatient “cowboy coders” that prefer to work alone, I’ll leave the team.
My worst moment as a web developer was the best learning experience in my life
A confession: there was a really bad, mentally strenuous week when I thought I didn’t want to be a developer anymore.
I’d been struggling with a project using code I didn’t fully understand, and the project’s deadline was fast-approaching. This led to the realization that I would ALWAYS have to be learning if I remained a web dev, or run the risk of not knowing something I should know.
And I didn’t know if wanted to deal with this anymore. This led to my having an anxiety-induced panic attack as well as going through four days of clinical depression.
Then I got off my ass and made some changes.
The first change was to rediscover to the pleasure of learning new things that I had when I started coding. React combined with Redux is a totally different way of doing front-end dev…working with those two things helped me recapture that pleasure again.
Next, I made my home workspace more comfortable. A clean, uncluttered desk actually made me WANT to sit and learn new stuff when I needed to learn it…ironically, it looks almost exactly like my old Revlon workspace.
But the biggest change I made in my life was to start mindfulness-based meditation with the help of the awesome Calm app. This, more than anything, changed my head (and life) for the better.
Staying in the context of being a web developer, meditating made me recap what family, friends and colleagues said about my skills in the past. Almost all of were positive: I started carrying this fact around in my brain, revisiting it when I had to.
Bottom line: I’m a good developer that doesn’t know everything and needs to ask for help sometimes. Remembering this fact along with consistent meditation didn’t end the anxiety, it helped me control it when it appeared so I could move forward as a web developer.
This was, quite possibly, the biggest learning experience in my life…ever!!!
I have embraced web development pragmatism
The article discussed using multiple web development tools instead of using a single integrated development environment (IDE). Many of the tools and techniques were command line-based: Git and its basic tasks, using Bash and aliasing its commands, testing tools, CSS preprocessors, template engines, etc.
I shared the article on my Facebook page. My boss at the time read it and commented:
"Isn't it easier just to license professional tools?"
And with him being my boss, I respectfully responded:
"Command line rocks...IDEs are for pu**ies."
This was my attitude for quite a while: that the “cool” tools are always better than the “practical” ones. My attitude has evolved: the coolest tools are actually the ones that get the job done.
Lots of developers goes through a period of loving just the cool stuff and quite frankly, it’s needed. There must be a segment of the dev community that thinks outside the box and creates tools that push web development forward.
But a developer needs to embrace practicality in the long run. Right now, I’m much more focused on using tools to get the job done…whatever they are.
And if those tools get criticized on Hacker News, so be it.
I have a lot to learn, and always will. That really is the life of a web developer.
But I’m totally happy with this. I definitely had some rough patches along the way but I wouldn’t try to undo them since I learned from all of them.
Writing Post #101 confirmed to me that it’s great to be a web developer!