Hi friends.
It’s May, and I’m thinking back to my teaching years, watching my students graduate and move on to start their careers. I remember how hard it was for many of them as they competed for a handful of jobs in the area. It got me thinking about advice I used to give them, and I’ll share a little of that in this issue.
I’m also excited to share a little CSS library I’ve been using on a project I’m building. I’ve been frustrated with the state of CSS lately, and this library came at just the right time.
Let’s get into it.
Choosing the most popular technology and investing heavily might seem like the obvious right move, but you may miss out on many great opportunities to find a great job, carve out a niche, and build a great career.
I’ve advised many people to spend time looking into other, less popular languages. Here are a few reasons you should consider learning something a little less popular:
Software developers often focus on popular technologies when they decide where to put their effort and energy. Boot camps and college programs enforce this because they’re trying to place their graduating students into programs that are hiring. The problem is that nobody stands out because they have the same experience.
I’ve reviewed somewhere around a thousand résumés over my career as a teacher, mentor, and hiring manager, and I’ve seen first-hand how similar these résumés look. It makes sense, though; If you went through the same programs and did the same kinds of jobs as everyone else, it’s tough to stand out during the application process. This is why career coaches tell you you must emphasize your accomplishments rather than your work.
According to the May 2023 TIOBE index, the most popular programming language is Python, followed by C and Java. Less popular languages like Rust, Ruby, Elixir, and even Go aren’t on that top ten list. But there are plenty of well-paying opportunities to work with those languages. In fact, some people will even tell you how hard it is to find quality candidates for those roles. Everyone’s chasing after the popular technologies, and that’s an opportunity for you.
By investing your time and energy in learning something off the beaten path, you’ll have more job options and a smaller applicant pool to compete with.
Learning less popular languages in addition to the ones everyone else is using shows that you invest in yourself and your trade. It also shows you can and will learn things independently, which is crucial to growing your career.
Learning less popular languages also helps you see problems from a different perspective. As Abraham Maslow said:
If the only tool you have is a hammer, you tend to see every problem as a nail.
Every time I’ve invested in learning a new language, I’ve been able to apply what I’ve learned to my job. Either I’ve used that new language directly to solve a problem or changed how I write code in my current language. Learning Ruby made me a better PHP developer, and learning Elixir made me a better Ruby developer.
In my current role, I’m jumping between Python, TypeScript, and Go, languages I had never worked with professionally before this job. Each language I learn exposes me to new patterns and approaches, making me better at my job.
Of course, I still have my favorite programming language. But I also have other tools in my toolbox I can reach for with confidence.
Programming languages don’t die. They just become less popular as something else comes on the scene. jQuery just released a new version, much to the surprise of the JavaScript community.
Larger businesses tend to wait to adopt new and shiny technology, and they may not update their libraries and frameworks because things work well enough. That frustrates some developers who want to work on newer, more popular tech, so those people move on to new roles. But the systems remain, and companies need developers to maintain and extend them.
Some people I know who work on those legacy systems command a much higher salary for those skills, thanks to the law of supply and demand. Instead of moving on to the newer popular things, they found their niche supporting these systems.
And don’t worry about getting stuck working on legacy systems. Some languages are less popular because they solve specific issues that are less common. You may find a great fit with a company working on one of those problems.
A developer with a unique skillset can weather more challenging economic times better. They may survive layoffs because they stand out in the organization. This goes double for developers who’ve spent time learning multiple languages and tools. With more tools in your toolbox, you have more opportunities to slide into different roles.
Finally, as you gain experience, you become known as a specialist in your area. This leads to people seeking you out, which is a much faster way to get through the application process.
I’ve watched many people I’ve mentored forge impressive careers for themselves by digging into lesser-known tech stacks and becoming experts. They speak at conferences, consult for small businesses, or work for startups solving fascinating problems using a tool they enjoy.
It’s never too late to learn how to use a new tool. And I have just the thing to get you started: a bite-sized CSS framework.
I’m building a website for a book I’m updating. I’m comfortable doing layouts with pure CSS, but I’m also a pragmatist. I want something fast and lightweight because I need to work on the book, not wrestle with CSS.
I stumbled across Pico, a tiny CSS framework that ends up being smaller in size than some of the code I’d write if I was implementing a layout with Flexbox and CSS Grid by hand.
Pico uses a handful of classes you apply to define grids and containers, similar to other frameworks. It also offers a “classless” version that uses pure HTML elements. This version makes header,
main,
and footer
into containers. That means you can write solid semantic HTML and get a page that looks nice and works on multiple screen sizes without additional effort.
Here’s an example signup form using the classless version on CodePen. It pulls the Pico library from a CDN and only uses HTML.
You’re not stuck with the default styles. You can use the customization tool to change the colors Pico uses, and you can extend it with Sass.
Give Pico a try on your next project, especially if you’re a purist like me who doesn’t want to add tons of classes to your markup.
Summer is almost here, and mine’s packed. I’ll be editing a couple of books and writing my own, and I’ll be headed to That Conference in Wisconsin to see friends, learn about new tech, and talk about Temporal. Maybe I’ll see you there.
Take a few minutes to think about these things:
That’s it for this issue. See you next time!
I'd love to talk with you about this newsletter on Mastodon, Twitter, or LinkedIn. Let's connect!
Please support this newsletter and my work by encouraging others to subscribe or by buying a friend a copy of Exercises for Programmers, Small, Sharp Software Tools, or any of my other books.