Matias Beckerle

Non-conventional advice for Software Engineers

There is a lot people out there willing to learn how to code or enter this profession. Some of them might not have the resources. Some of them might not know where to start. Some might already started but they are struggling to keep their head out of the water.

It will be easy for them to find details on programming languages, and even about architectures, processes, methodologies. But there’s some stuff most people won’t tell you. This is where this post comes in.

I would like to think that the presentation I did some time ago helped some people out there. I learned more things since then so I thought it might be a good idea to expand on what I said that time with what I learned these last couple of years.

Please, if you find this post useful feel free to share to whoever you think it will help.

#1 Learn English

Alright, you can skip this one if you are an English native speaker.

For all those out there that are born in a country where English is not the language people use, consider this. There’s no way you can work on this profession without communicating with other people, probably from any side of the world. Try learning English since it’s a widespread language, being taught as a secondary language in a vast majority of countries.

Can’t afford a course or training program? Don’t worry. You can see your favorite series/movies without subtitles. You can try to learn the lyrics of your favorite songs. You’re a gamer? That’s it, complete that game in English. You have a phone? Set it up in English.

Distributed teams is pretty much a standard today, you will need a common language to communicate between you all. Language is another tool in your belt.

I will never forget about that guy from Brazil who showed me how to fix an issue on a game I was working on. “I’m sorry. I don’t speak Spanish.” he said. “Don’t worry, I don’t know Portuguese either.” I answered. Think about it: without English we could have never been able to communicate. That guy, a complete stranger, dedicated his Sunday morning to help me out troubleshoot my problem. Thank you, my anonymous friend!

#2 How you communicate is more important than you think

I’m not a person who talks a lot, I’m quite an introvert. I thought programming would be a profession where I would spend most of the day programming. Well… you will need to talk with teammates, customers, managers, investors, business partners and a lot of people who doesn’t even know what programming is. It will be part of your job, if it’s not already.

Learn how to communicate properly. Be respectful, treat people nicely. Identify when to talk and when to hear. Learn to give the right level of detail. Look out for cultural differences between you and your interlocutors. What’s normal in your country might be offensive in other places.

#3 Ask and absorb feedback

I heard people taking feedback negatively more times than I wish, myself included.

If you have performance reviews don’t get mad when someone remarks something you can improve. Use it as the fuel you need for waking up tomorrow and be a better profesional.

Code reviews? Yes please. Take all the feedback you can have. Improve what you do every day.

Everything is nice and quiet, no reviews? Maybe is time to ask for some feedback. Look around, ask people to tell you what they think about your work. Make questions about how they think you participated in the last meeting or how you handled the last couple of refactorings.

Not in the mood when receiving feedback? It happens, just walk away so you can think peacefully.

#4 Learn from your mistakes

Guess what? You will fail. All the time. There are infinite opportunities where you can do something wrong. That’s ok, but you have to do something about it. You have to learn from it.

First of all, don’t lose yourself. Take it easy, we all make mistakes. Don’t panic, clear your mind, there’s probably something you can fix.

Something went wrong in production? Do a follow-up. Do a postmortem. There’s a chance you can prevent the same mistake from happening twice.

When you fail there is a huge chance that someone else helps you out. Learn from that person. How did that person proceed? Did that person do something you couldn’t understand? Ask about it. Learn.

Observe other people. It doesn’t matter if that person knows more or less than you. It doesn’t matter if that person does nothing related with what you do. There’s a chance you can learn something from it. Seriously, I saw people missing the opportunity to learn because they thought they knew more just because of their positions. What a waste!

#5 Don’t marry any language, framework, library, design pattern, methodology or whatever

One of the best ways to learn is just taking something new and assimilating it.

Learn a new programming language every year. You don’t need to rock at it, just try it out. If you understand the basics of programming then you have the tools to learn any language imposed by yourself or your project.

You know frontend technologies? Come on, try to debug that backend API that doesn’t answer what you expect. You do backend code all the time? Then help the frontend folks some day. Feel comfortable by changing your shoes frequently. It’s one of the best ways to learn.

Not all problems need the same solution. You might have a project where a SQL Server database is one of the best options out there. However in a fairly small and offline mobile app, an embedded SQLite database could fit better.

And remember: what is hot stuff today can be the outcast tomorrow.

Bonus track: read The Pragmatic Programmer book

This book is really good and most of the advice in it (if not all) is valid up to this day. I did a review if you want to know more details. You can buy a copy right away.

Last words

Remember: these are the things that really helped me a lot. I wish someone would have told me about these things the first day I was a junior programmer. You might find none or just a few of these apply to you. That’s ok. Feel free to share your own thoughts too. :)

Thanks to all the people who helped me through this journey. And I still have a long way to go.

Keep learning.

Thank you JD for helping me A LOT with this post.


comments powered by Disqus