I need to preface this to say that this isn’t one of those technically enlightening Medium or Hacker Noon articles. It’s not even an unnecessarily controversial hot take that garners status raising attention. It’s a reckoning of software development culture shock, and encouragement for those of you scoping out the career landscape. I’m just a boy standing in front of a job market…
The web development world is always roiling with progress, change, and an odd amalgam of democratization and corporate influence. Goliaths and Davids playing in the same sandbox.
It’s more important than ever to stay up on the latest and greatest, and the good news is that there’s no end to available resources. You can read, watch, and experiment in online playgrounds to your heart’s content.
Confession: I did not stay up on the latest and greatest.
I was laid off a few months ago. The one sentence that I heard the loudest, mostly because it was inflected with a hint of warning and sympathy, was this: “The job market is very different these days.”
I took some time to regroup and relax, and then jumped into the web development world. Paradoxically, it’s fragmenting and coalescing at the same time. Everyone is rallying around a few frameworks created by mega-corporations. Meanwhile, smaller libraries are popping up like mushrooms in a forest after a rainy season.
The standards consortiums, including browser makers, are doing righteous work and iterating quickly. Except for IE, for the reasons that IE lags behind and frustrates us all. IE Edge is evergreen, though.
I’ve been a sponge absorbing as much as I can. Of course, when standing in front of a firehose or maybe an open fire hydrant situated under a waterfall of information, absorb may not be the most accurate word.
Online articles, resources, magazines, code repositories, videos, classes, workshops, meetups, conferences, bootcamps, etc. What a time to be alive and coding. The churn is insane. There are so many clever people doing clever things, many of them contrarians. There are even more people with the time and energy to argue with conviction about — everything.
To semicolon or not to semicolon.
Before the lay off, I have to admit that I had my head down for a while. We were working on one project for years and then many projects and proposals, one to another, modernizing things that needed modernizing, relatively speaking. We had restrictions based on our clients’ tech needs. For a good long while we had to support IE6. IE6, damn it!
I used to be good about keeping up with the UX design and web development communities. I would start off every day reading. Working remotely, I lost touch with a lot of that tech chatter and water cooler conversations. I was no longer immersed in developer culture, aside from the occasional UX and web dev meetup.
I got complacent. The landscape was changing. I was an isolated outpost not noticing the dwindling supply runs (of communication). I missed the window to hit up some of the cool conferences on my wish list.
There’s also the harsh reality of working at a company on specific projects with specific clients or bidding for contracts. You can’t just make changes on a whim or use the latest coolest technique or import that open source library you just read about. There are hoops to jump through, bureaucracy to navigate, sometimes there are forms to fill out, and approvals to wait for. A clever use of ES6 syntax might stand out like a sore thumb and not pass muster in a code review, or adhere to your organization’s current coding standards, or lint settings.
During code reviews, I started seeing things I had never seen before. Ah, I remember the first time I saw => and was trying to figure out how to google it. I heard new terms that I’d never heard before. AJAX calls suddenly turned into Promises. Then came whispers of Angular and lunch talks about React/Redux. During scrums, people started talking smack about jQuery. How dare you, sir. How dare you.
My first brush with Angular was a fire drill and it was, if I’m going to be honest, not my finest moment. It was culture shock. Components and modules everywhere. Every UI element compartmentalized and unaware of the others’ existence. Component level CSS. I missed my good ol’ jQuery dollar sign. Dolla dolla signs, y’all. Whatever happened to $(“#container”).doSomethingWickedSmaht()?
The dev team was chomping at the bit to use the latest and greatest on viable projects. I was looking forward to that, but unfortunately, that’s when the layoff axe fell.
I found myself in a completely different world, as you can imagine. I don’t have the keywords and buzzwords on my resume, and the online job sites are all about the keywords, for better and for worse. It is overwhelming, to be sure.
Literally every day — and this is no exaggeration — I’m seeing and hearing things that I’ve never heard of before. Frameworks, libraries, techniques, concepts, etc. I’m like Treat Williams in “Deep Rising”. My new catchphrase is a sardonic, “What now?”
What do you focus on? How do you prepare for interviews these days? I’m still trying to figure that out.
Should I be studying algorithms? Apparently, that’s en vogue, especially since the big boys — Amazon, Google, Apple, Facebook, Microsoft, etc. — with their status and unimaginable scale, have to raise the bar. I suck at algorithms.
Give me a view, give me the state of an interface, and let me make it stand up and dance.
Algorithms on a whiteboard? Meh. Not so much. They’re beautiful and even artful. When you figure it out, optimize it, and clean up your code, it is immensely satisfying. They’re the computer science version of learning knots. Not my bailiwick, though. Then again, I’ve never devoted much time to them, although I do take a “What knot to tie” class a few times a year. Hmm.
Adobe Brackets was popular on the team for a while. VS Code won out, of course. It’s an extendable beast of an IDE. I dig the built in CLI terminals. Speaking of which, npm, webpack, grunt, yarn, etc. Those are things, too.
For design, there’s Sketch, Figma, InVision. I’m sure Adobe XD is in the mix, maybe? I haven’t seen many job listings looking for Axure. You only have so many options when working with a defense contractor; apps written by foreign nationals and in other countries is suspect. Applications nowadays are constantly communicating remotely back to their respective motherships. Even though it’s a pain from my point of view — I just want the latest kick-ass tools and features — it must be a cybersecurity nightmare.
A framework/library like React, Angular, or Vue is in my sights. I need to learn some of those. Stat. Like, a year ago, I need to learn. Those seem to be the big three, with React pulling to the fore in popularity. Maybe I should do a bootcamp, but I don’t want to drop $15,000 out of my own pocket for a three or four month course and accrue that debt. That’s like a college tuition. Supported online training? More reasonable. I’m strongly considering it.
Should I be refreshing my muscle memory, brushing up on Bootstrap, Material Design, jQuery, and some templating library.
Content Management Systems are huge around DC and government contractors. It’s been a long time since I’ve dealt with one and they’ve come a long way. Look at WordPress doing responsive design like a champ. You go, WP.
Speaking of government contracting, I’m seeing security clearance categories that I wasn’t aware of. Aside from a DOD (Department of Defense) clearance, there’s a CBP (Customs and Border Patrol) clearance that may be even more rigorous. Security+ Certifications are also in demand, whatever they are.
Lots of amazing advances. Some of it even works in most browsers. Luckily, there are polyfills and transpilers to help us out.
caniuse.com for the win.
So … functional programming. I can focus on that for a few days, although, dynamic programming may be a hurdle for me when it comes to technical interviews — recursion, memoization.
Of course, if I wanted to be a full stack dude, then things get a little involved. I hear NoSQL is the way to go. Heck. GraphQL is taking over. Thanks, Facebook.
You know what? I think I’ll just stick to the front end of things. I like being as close to the User Experience and Design world as possible.
Assuming that you need to know everything all the time, I’m thinking that the way to go is to learn a big ol’ framework and you’ll find that a lot of these other techniques and tools will be on-topic. Of course, the reality is that many companies are still getting up to speed as well and their needs are as varied as our skill sets, but they also want to be relevant and on the cutting edge. Many of them are looking for, say, React talent because they want to make the leap themselves.
Okay, let’s focus here. It’s easy to be overwhelmed out here in the wilds. Sometimes I am. Luckily, there are a lot of options to explore, career paths to focus on, and many ways to learn and grow.
There are good websites where you can practice interview coding exercises.
There are so many YouTube channels. Here are a few of my favorites:
- CS Dojo
- Fun Fun Function
- Kevin Powell
- Layout Land
- Traversy Media
Meetup.com is chock full of coding groups (and bootcamp purveyors providing introductory workshops).
Pro-tip: To find what you want on meetup, search via google. Meetup’s search is pretty ineffectual and downright frustrating, to be blunt.
You’re not done yet.
Keep learning, my friends. Stay curious. Stay sharp.
And don’t forget to come up for air every now and then.