Accelerate your software career without burnout

This morning I read a post where an engineer in his mid-forties gave his views as an "old-timer" in the industry. He aired his frustrations with what he called churn in technologies: having to learn the new latest-and-greatest thing because our industry is so fast-paced and fickle.

He spent his early career working long hours with little sleep, in hopes of hitting the lottery on startup equity. Now he has little energy or patience left for the constantly shifting landscape of new frameworks.

Unfortunately, this story isn’t unique. Plenty of engineers burn themselves out in their early careers only to find that their startup equity isn’t worth millions.

We’d all love to get fabulously rich in just a few short years. But that’s unlikely to happen. So it’s wise to think about how you can set yourself up for long-term success in your software career.

Below, I’ll discuss the learning path that I’ve personally laid out for myself after giving it a lot of thought. I’ll discuss which skills I’m focusing on and why.

I hope that you’ll find this helpful and that it helps you plan your own learning path.

Focusing on the constants

It’s true – there is a lot of churn in tech. Frameworks change, technologies shift, and we often find ourselves learning something brand new.

But I believe that by focusing on the technologies that don’t change, you can kick-start a flywheel that will make you a more productive engineer today and make it easier for you to learn new frameworks when they come out.

In particular, I think web developers should focus on deepening their understandings of two technologies: SQL and JavaScript.

I’ll go into more detail below, but here’s the short version:

  • Almost all your internet experiences involve databases, and most databases use SQL.
  • Browsers represent a massively adopted platform, and JavaScript is their bytecode.

By focusing on the constants, you’ll master the foundations of modern web development and set yourself up for success in your career.

With that, let’s dive in.

Databases, databases, databases!

When technology historians look back at the period of history we’re living in, it’s going to be all about databases.

Basically every action that you take on a smartphone or computer involves a database operation. Whether you’re sending a text, checking the weather, or setting an alarm - that’s all using a db somewhere. Hell, you’re even using a database when the advertising overlords listen to your conversations.

If you put your reductive-thinking-cap on for a second, you’ll see that all of your favorite websites and smartphone apps are basically just beautiful interfaces for database interaction.

That trend isn’t going to change anytime soon.

Companies don’t just rely on databases to power online experiences. They also use them to store critical data like revenue metrics, marketing performance, and the dietary restrictions of their employees.

In short: databases are the backbone of the web – and of businesses! – and they’re here to stay.

As web developers, we should know how to use databases. And, in particular, we should invest in learning the most common way to interact with databases: SQL.

What about NoSQL?

Yes, there are databases that don’t use SQL.

However, if you’re picking a paradigm to really dig your teeth into, SQL is the way to go because it’s more widely used and very standardized.

Edit from 2023: Because of its popularity, AI models like ChatGPT are very good at helping you write and understand SQL.

SQL isn’t going anywhere

Okay, so databases aren’t going anywhere. But what about the way we interact with them. Could that rug get pulled out from under our feet?

To answer that, let’s look at where the innovation is happening in the database space. (pun very intended)

Database technology is flourishing right now. It feels like there’s a new database coming out every day.

But despite all this newness, there’s a lot of stability in the interfaces that databases expose. Database creators continue to choose SQL in large numbers.

Take CockroachDB, for example. It promises scalability with a simple SQL interface. The db can be scaled up to many servers (aka "nodes") without the user experience changing. Apparently the founders worked at Google, where sharded MySQL clusters were a huge pain.

The message from the CockroachDB team is pretty clear: let’s keep the best parts of databases and fix the broken parts. And clearly they think that SQL falls in the "best parts" category.

This brings us to our first long-term bet for web developers...

Learn SQL and the Underlying Concepts

You heard it here first, folks.

You can get all of the goodies of a booming database industry through the tried-and-true query language of yore.

Databases are the backbone of the web, and a ton of ’em speak that good ’ol Structured Query Language. It’s likely that every company you’ll ever work for will pay top-dollar to someone who’s good at SQL.

The key, though, is to learn more than just the query language that databases use. When I say "learn SQL," what I really mean is: build a strong understanding of SQL and the concepts used to build well-designed database tables.

That’s right! It’s not just a syntax thing. If you want to master this skill, you’ll need to invest in understanding relational database modeling concepts.

Once you understand these concepts in depth, learning new Object Relational Mapper (ORM) frameworks will be a breeze. These frameworks include the likes of Rails, Django, and SQL Alchemy. They provide nice abstractions for working with SQL databases, and they’ll be much easier to pick up if you properly understand SQL.

Now that we’ve uncovered the first long-term bet, let’s move onto the next one.

Your Browser: A Window to the Web

Browsers are so ubiquitous that we don’t even think of them as a platform to build for.

It’s common to ask: Should I build for iOS or Android? But it’s very uncommon to ask whether you should build a website. For most businesses and organizations, the answer is an obvious hell yea.

Most people think of their web browser as being synonymous with the internet. We often say "open the internet" when we really mean "open a browser."

That’s how powerful this platform is.

JavaScript: The bytecode of the Internet

The internet is absolutely exploding as more people and experiences come online, and basically every website is powered by JavaScript.

It’s been that way for a while, and it’s likely to stay that way for a very long time. I’m very confident that every company you’ll ever work for will pay top-dollar to someone who’s good at JavaScript. (Are you sensing a pattern here?)

If you’re not sure whether JavaScript will stick around, let me walk you through my reasoning.

Essentially, there’s a network effect at play here.

Browsers will continue to support JavaScript because they want to be able to render existing websites.

And web developers will continue to build with JavaScript because that’s what browsers support.

The language and syntax will definitely evolve over time. But honestly, you’ll be unfazed by most of these changes if you have a deep understanding of the language. You’ll pick them up very quickly.

There are a multitude of frameworks built using JavaScript: React, Angular, Vue, Svelte – and even meta-frameworks built on top of those: Gatsby, Next, Nuxt, Sapper. It can make your head spin. But at the end of the day, they’re all built on top of JavaScript. If you understand JS, then you’ll pick up these frameworks much more quickly.

What about TypeScript / WebAssembly / PHP / etc?

Technologies like TypeScript, WebAssembly, and PHP have their own merits and use-cases, but that doesn’t necessarily negate the staying power of JavaScript.

TypeScript is actually a superset of JavaScript and aims to enhance it, not replace it.

WebAssembly is designed to work alongside JavaScript, offering performance benefits for specific tasks but not entirely usurping JavaScript’s role.

As for PHP, it’s largely server-side and operates in a different realm than client-side JavaScript.

All these technologies can co-exist and even complement JavaScript, rather than pushing it out of the ecosystem.

Learning JavaScript in depth

The key here is to develop an in-depth understanding of the language. I’m talking about understanding things like Scopes, Closures, Object prototypes, IIFEs, and the likes.

If some of those terms were unfamiliar, rejoice! There are a ton of great resources out there for deepening your understanding of JavaScript. The community is pretty rad too.

I highly recommend the You Don’t Know JS Yet series (which is free to read online). Tony Alicea’s Udemy course on JavaScript is also a great resource (currently costs $12).

What should you learn first?

I recommend you tailor your learning plan to your career goals. Keep in mind, though, that career goals are not the same as what you do day-to-day.

Focusing on underlying technologies like SQL or JavaScript may require you to take a step back from the frameworks that you’re using in your day-to-day work, which I think is well worth it. You’ll be investing in more foundational skills that are likely to apply to your work long into the future.

If you’re choosing between focusing on SQL or JS first, consider which part of the stack you want to deepen your understanding of. For backend, learn SQL. For frontend, JavaScript.

Write down your goals

Personally, I find it incredibly helpful to write down my goals.

Research has shown that people who write down their goals are more likely to achieve them.