CodeNewbie Community 🌱

Cover image for 10 Things I Wish I’d Learned Sooner After Being a Developer for 10 Years
Alex Lakatos 🥑🇬🇧
Alex Lakatos 🥑🇬🇧

Posted on • Originally published at alexlakatos.com on

10 Things I Wish I’d Learned Sooner After Being a Developer for 10 Years

Exactly 10 years ago today, I was starting my first job in the software industry. I’ve spent my career being a Software Developer in Test, Performance Engineer, Lead & part-time CTO, JavaScript Developer, Contractor, Entrepreneur, Developer Advocate & Manager. I’ve also worked for companies on 4 continents, on products that were used by hundreds of millions of people. You could say I did a bit of everything. But I would say my career was anything but boring.

I’m prone to reminiscing, especially while being stuck in the house in the middle of a global pandemic, so I sat down and revisited my greatest hits. I’ll always be grateful my very first job was working with Mozilla, that shaped the way I approached software development in so many ways. I’ve got my love of open-source from there, and my drive to always learn from the people around me. It did help that everyone I worked with was amazing! I’ve also thought about my 3-month stint as a CTO, after which I rage-quit on the spot because money isn’t everything. Or the nine months I spent with my partner, living out of a suitcase, through hotels and AirBnBs in Asia.

This trip down memory lane also made me realise, there are a bunch of things I wish I would have known before I started. Or at least I wish I would have learned them sooner than I did. I made a list with the top ten, but I’m fairly certain I could get to 100. So if you’ve read them and want to know more, ping me on Twitter, and I’ll oblige.

Soft Skills Are the Toughest Skills

Everyone calls things not related to writing code soft skills. And here’s the most mind-boggling thing. It’s easier to teach someone a skill, like coding, than to change their behaviour, the way they communicate. And yet, communication is considered a “soft skill”. So when companies look for a developer, most of the time, the differentiator is in those soft skills. There are only so many ways you can code your way out of a tech test. When the field is narrow enough, it all comes down to those extra bits. Acquire as many soft skills as you can, it pays off more than adding another programming language or framework to your toolbox.

Google is Your Friend

I come from a culture that values memorisation over creativity and problem-solving. Fuck that. To this day, I still Google how to bubble sort. I’ve probably used it no more than five times in 10 years—and that was because I had to pass some sort of interview test. It doesn’t pay to memorise everything, as long as you know where to get the answers from. In this day and age, that usually means Googling stuff. It’s not a weakness, even if some people are ashamed to openly admit it. With my memory not being what it used to be, I Google even simple things I’ve probably done dozens of times in the past. And there’s no shame in that!

Ask for Help

This might have started as “Don’t be afraid to ask for help”. But that’s because I’m stubborn like that, and asking for help doesn’t come naturally in my culture. Again, that damn upbringing.

Asking for help is not something you should do only in dire need. Ask for help as often as you can get it. It frees you up to do the things you’re most passionate about. And the whole reason you work in a team and not on your own is so you can help each other! Hence, ask for help from day 1, not only when the shit hits the fan.

Keep Learning

Like most things in this world, the realm of Developers, or “Software Engineers” keeps evolving. So you should evolve with it if you want to stay relevant. Or employable. Sure, you see the odd news about people looking for COBOL developers in 2020. But you have to think about it this way: How many COBOL developers are still doing COBOL 60 years later? So yes, keep learning new things.

It doesn’t necessarily have to be “work-related”. The purpose here is to develop a process for learning. Because as a whole, our learning mechanism (also known as the education system) is fucked up. I mean, most things you learn in school are thought by an average theoretician. And that’s supposed to give you the practitioner skills you’d need. It doesn’t work like that, especially in the world of Programming, where dedicated Experts are few and far between. But figuring out what method of learning works for you means you can literally pick anything up in a matter of time. You want that fancy new job? Start learning, acquire the skills you need, and get it! But if you don’t even know how to approach it, then the whole task of learning a new skill, any skill, becomes insurmountable. And you’ll find reasons to quit before you even begin.

What’s my way of learning? Well, I find someone who’s a bit further ahead than me, listen and then start asking questions. They don’t need to be an expert, just better at it than me. Eventually, those questions become discussions, and that’s when I look for the next person to help our discussions move along. Rinse, repeat, voila!

Say No More Often

This is one I struggle with the most. And the reason I can’t seem to say No is because deep, deep down, I’m just a nice person. Or that I would like for people to like me back. Or that I love helping people. Or that I’m just a pushover, and I’m not confrontational. Pick whatever reason makes this more relatable to any particular situation. Not saying No has made me a lot of friends along the way, but at the same time, it has meant I disappointed just as many people as I helped along the way. And that’s because it was physically impossible to do all the things I agreed to.

It also meant I might have accomplished some irrelevant feats, in the grand scheme of things. For example, I’m a registered casino dealer. Sure, it’s a cool party trick, but I could have spent that summer graduating early. I could also have said no to writing a book for a project that died just before the book was supposed to be published (R.I.P. Firefox OS). In the same vein, I could have also said No to living out of a suitcase for 9 months, and missed out on amazing memories. But hey, you live, and you learn.

Build a T / Create a Brand

If you’re not familiar with the concept of T-shaped skills, or T-shaped people, don’t worry, most people are not. It’s an HR metaphor used to describe the skills of candidates. So if you think of your skills as plotted on a graph, you’ll notice you’ve got different levels in each. And if you unite those levels, you’d want them to create a T-shape instead of anything else.

For example, know a little bit of everything, with 2-3 core skills where you’d be considered an “Expert”. And there are quotes there because “expert” is a relative term. Relative to your other skills. For example, when I was a JavaScript Developer, the reason I kept getting job offers was because of my level of knowledge around performance optimisations, and Angular. So while I could do vanilla JS to a passable degree, I had a lot more to offer when it came to Angular applications and optimising the performance of most websites.

Now you’ll wonder. Why was I a JavaScript Developer, and not an Angular Developer? And that’s because I had more than one JavaScript skill under my belt, as opposed to just that one tool, Angular. Hence, I was a lot more employable because of that T shape.

In the world of Developer Advocates though, that also translates to building a brand. The same way you’re building that T, you can create a personal brand. Start writing about Angular and Performance Optimisations, and that would be my “personal brand”. If you follow me around the internet, you’ll have noticed I don’t do that, and I don’t have a personal brand though. I guess it’s something I have to work on.

People Can't Read Minds

Especially yours. So if you don’t tell people what you want, or what you need, then it’s pointless to get upset when they don’t give it to you. Because they can’t read your mind. You think you deserve that promotion? Tell your boss. You want to get promoted in 6 months? Tell your boss, and if they’re any good, they’ll tell you how to get it.

In most cases, people are more than happy to give you what you want, as long as you tell them. Most managers don’t really have a clue on what they’re doing, so they’re more than happy to get it done when they actually know what it is they need to get done.

Vote With Your Feet

This is one I’ve learnt late in my career. Turns out, when you don’t agree with something, you can always leave. Practically, voting with your feet. Instead of huffing and puffing, or worse, picking a grudge, it’s a lot better to just walk away.

Don’t like your new boss? Just quit. Enough people do it, and their boss will fix it. You don’t like your company’s policies around privacy, diversity, inclusion, human rights? Quit. In an industry where there is more demand than people available, you can always find a better deal.

There are such things as golden handcuffs, but if you’re part of the few that have them, you’ll understand that you can find them anywhere you go.

I’m not saying you should quit without a plan here, in a tantrum. That’s not voting, that’s rage quit. No, by all means, treat this as a rational endeavour, and not emotional. Line up the next gig first.

Know Your Worth

It pays to know exactly how much your skills are worth. Sure, you have a salary. But if you got that salary more than 6 months ago, it’s not an accurate representation of how much you are worth to your employer. And it probably means a yearly review is just around the corner. That’s the perfect time to make your compensation accurately reflect your worth. You could come up with a formula of how much an hour of your time is worth to your employer, make your case, and hope your boss can do something about it.

Or you could shop around. Maybe you’re worth more to the next employer. On top of the fact that interviewing helps you stay in touch with the market, it also helps you practice at it. Interviewing is a skill, same as anything else you do. It’s good to sharpen this particular skill, especially since it’s a significant factor for your initial compensation package. Without actually testing your newly acquired skills, and their relevance in the market, it’s hard to gauge your worth.

It's Not All About the Money

I know, I told you all about how to get paid more until here. But those skills also translate into options. The more you can make, the more options you have. And because of those options, getting paid more stops being a factor. I know, it’s counterintuitive. But after a certain amount, money doesn’t account for happiness just as much. You’ll value the mission, or the work-life balance, or the empathetic boss, or the cool team a lot more than an extra 10% on your yearly salary.

I’ve kept yo-yo-ing between high paid jobs and keeping my soul happy, and I’ve finally settled somewhere in the middle. Sure, I could make an extra 10% every year, but would that make me happier than working from home, on my own terms?

Top comments (4)

Collapse
 
aaron profile image
Aaron McCollum

"Sure, you have a salary. But if you got that salary more than 6 months ago, it’s not an accurate representation of how much you are worth to your employer."

Alex, I had never thought of it this way but this is incredible. Coding or not, growing in a role and knowing more increases your value. But also, your last point on money is very true. It never satisfies and you always want just a little more.

Collapse
 
r002 profile image
Robert Lin

Thank you so much for sharing this post, Alex! These are all wonderful life lessons!

If I may, here's one life lesson that I think has helped me along my path-- it relates to your "Keep Learning" point: Often times in our programming careers, in the beginning everything starts as being fresh and shiny. And the excitement is abundant. But as the months (and maybe even years) drag on, we might fall into a rut. Maybe we work in a pretty specialized silo in the company somewhere and spend all our days working with proprietary APIs. Of firefighting/log-scraping/playing a lot of "hero-ball." Or whatever. Of course, it's wonderful if you're a weekend code warrior and love to dabble in side-projects. Or maybe in one's spare time, you love reading TypeScript documentation or the latest ECMAScript annual release notes. But for others juggling families, other priorities, newborn kids (or other parental unit responsibilities), one trick I've found that's served me well is to always keep trying to think of new ways of accomplishing old tasks and asks. We don't always get to choose how we spend our free time. (Or have the mental wherewithal to open up another front, so to speak.) But during our work time while you're sitting there in your tiny cubicle facing the ventilation shaft or wherever, if you have some free rein, maybe you can write a clever parser in JavaScript/learn regex better in Google Sheets to do that data entry drudgery. Or try using vanilla JS instead of React when you're building that next login/navbar component. So on, so forth. The world is full of wonders and marvels; it's all right there! Sometimes, we just need to reach for it to keep the spark alive. 🙂

Collapse
 
mcwachira profile image
mcwachira

Nice post learn a lot as an up and coming developer

Collapse
 
thebuilderekes profile image
Ekeopre Beredugo

I like this. Nice post, very inspiring.