There are times in our lives when we have to make important decisions and start doing something significant for ourselves. Those life-changing moments include starting a new career, parting ways with long term bussines partners or starting the work for your dream application. We often go through the experience, either good or bad, learn a lot and, in the end, be more knowledgeable and wise. Then the cycle repeats, with more and more experiences, opportunities and important moments making their way into our lives, changing and shaping us forever.
At some point though, we stop to catch our breath and, more often than not, think: what if it could be different? What would have been if I knew all the things I know now, but 5 years ago when I started college? When I got my first job? Instead of feeling helpless and dissapointed, would I have treated myself better when Jacob left 50 comments on my first pull-request, scrutinizing my lack of skill? (We, programmers, all had our Jacob at some point. No offence, Jacob.)
I don’t know about you, but I do this sometimes, pondering on the idea of having done things different. But then, I wake up from my reverie and continue my life, improving it bit by bit, day by day, learning from my mistakes and being more forgiving with myself.
Today’s blog article will be about what to do after starting off your tech career. It focuses on 3 things I wish I knew, when I lived the first months as an intern, and then as a junior software engineer. I’ve been in the industry for the last 7 years. I got a thing or two that I truly believe could help you, especially when taking the first steps on the long road that is computer science. And the long road of a good life, too.
1. Read, read, read… then read some more
There is one thing I like to brag about, and the most important one I wish I could have started sooner. That is reading. Reading books, of all kinds, whether self-development, bestsellers, history or economics, or simply whatever you like, has evolved my mind like no other thing. Books just have something magical about them that will make you whole. They grow your imagination, your visualisation and your vocabulary. They allow you to understand yourself better, to calm down and to laugh. They bring you closer to yourself. I dare say that you level up your spirit (a bit philosophical here).
But let’s return to programming. As a programmer, it is not enough to know one programming language and be done with it. Or prizing yourself as a backend developer on one technology and that’s it. It’s more than that. You need to know how to learn a new language whenever needed. You need to be able to build architectures, understand security, be able to offer feedback to your colleagues and don’t get mad when your code doesn’t work.
Experience certainly helps in attaining those above, but only to a level. As Immanuel Kant said, “Experience without theory is blind, but theory without experience is mere intellectual play”. You need both to succeed.
Books allow you to delve into the deepest pits of programming, granting you access to the experience of the best. There are people with more than 50 years of experience in the industry that put their ideas in 300 pages. You can take all that that in a week. And use it as you see fit. Trust me, it will help.
The more you read, books make you more whole, more complete.
Recommendations: Clean Code Series by Uncle Bob, Refactoring by Martin Fowler, The Pragmatic Programmer by David Thomas and Andrew Hunt.
2. Networking. No, not talking about routers and cables here
The second thing I wish I knew when starting my career was how important people are. I went a long time without going to networking events, conferences and similar stuff. I also didn’t engage more with my colleagues.
When you are just starting, it is important to get to know people. Go to conferences, go to events and go wherever you find people from your niche. Exchanging ideas, having fun together and crafting new friendships will bring you opportunities that you cannot think of.
Don’t be afraid to start a conversation or joing a group. Worst thing that can happen is to get ignored or see no interest from the other party. And that is ok, they too have the right to talk with whomever they choose. But this seldom happens, as most people in that event are there for the same reasons as you: to know more professionals and craft new relationships.
There are many free events that don’t require paying up upfront. Usually at the beginning, people don’t have the money to invest in those events. This is also ok. There are a lots of free places with lots of people that you can learn from.
Also, you can get into volunteering clubs and help the local community. This will also get you to know many people.
Recommendation: Follow your local community for networking events. Every now and then, if your pocket allows you, invest in going to a conference.
3. Technology-tasting and wine-tasting. Always a different one
Technology advances very fast. The programming language that you are using today may be replaced by a more performant one in 1 or 2 years. Thus, it is important to be up-to-date with what happens in industry. Most of the time, I waited to change my job in order to learn a new technology. Happily for me, it didn’t take 5 years. But this was not an excuse not to learn something on my own earlier.
Find what you like. Maybe you like creating websites. Mobile apps. Servers. Or just embedded stuff. If you like it, work on it in your free time. Block some hours, every 2-3 weeks, to watch the trends that are going on and see what’s new on your niche.
The benefits of this is that, forcing yourself to learn something new, will help you be more proeficient in what you are doing already. It will forge new neuronal networks that will strengthen the already existing ones when it comes to programming.
Learning something new also opens up more opportunities. It is easy to stall on your first job, practicing only the stack you were thought at the beginning and waking up after 2-3 years that the only thing you know is C and the best jobs need Rust. Defend against this by always learning. Adopt a monthly approach where you book some days in which you grab a new technology and implement an application with it. It could be anything.
Remember, just as wine tasting implies finding out new aromas and sensations, a new technology could do just the same, but to the nerd side of you.
Recommendation: Set a few hours every month to choose and learn a new technology. It will pay off in the long term.
Finding your own path
In the end, it all comes to you finding your own path. Through trial and error, experimenting and taking what life offers you, you will find the things that help you most. And that you enjoy doing for a long, long time.
I hope the points described above thought you something new, or at least made you think on what you could improve to make your life easier. And reduce the amount of times you think “what could have changed?”.
Remember: growing takes time, and not having fun won’t make it shorter. Make it count.