My 10 biggest career mistakes that you should avoid.
In today’s letter, I want to reveal to you the biggest mistakes I made during more than ten years as a software engineer professional, five years studying for a bachelor’s degree and a lifetime trying to become a better programmer.
I have been four times an immigrant, and being an immigrant is hard regardless of the country, you always feel with hope in your heart that a new place will fill all corners of those empty spaces that your soul has when you leave your motherland.
?
The truth is that nothing replaces that litter living room that you use to smile and play with your family.
Being an immigrant transforms your soul in such a way that your biggest mistakes and painful experiences never let your alone.
But every change in life if embraced with hope, also bring a lot of learning, luckily for me being an immigrant despite the pain made me a better professional and scientist, and did bring me the love of my life, the mother of my children and exponentially helps me grow my skills as a software engineer.
I met hundreds of good and great people, worked in more than nine companies, I fail built one SaaS company, learn to do sales in real life, and ran once a ‘delete * from [DB]’ T-SQL query without a ‘where’ included in a production database table that made a bank system went down for hours.
Yes, I have a lot of mistakes to reveal to you, but since your time is precious I will let you today with my biggest ten biggest career mistakes.
?
1.???Not optimizing my learning with systems.
Computer science is always in constant change, changes always bring complexity and complexity brings challenges, and learning is one of them, I spent years of wrong learning because I did not understand how our brain learns, how to learn faster and longer, and the importance of memorization.
2.????Not memorizing computer science fundamentals earlier and often.
While studying for my bachelor, I had to study a lot of concepts but since I was using the wrong learning strategies, mostly all of them were forgotten after each exam.
Pay attention to these specific mistakes and avoid them at all costs, knowing the fundamentals can bring a huge difference in the type of scientist you become.
In general computer science fundamentals are behind these main nine topics (I’m planning to send you a letter for each of them in the future):
a.????Programming
b.????Computer Architecture
c.????Algorithms and Data Structures
d.????Mathematics for Computer Science
e.????Operating Systems
f.??????Computer Networking
g.????Databases
h.????Languages and Compilers
i.???????Distributed Systems
?
3.????Only caring about smaller components and not the big picture.
Depending on your type of expertise or specialization companies let you focus on any of these below areas (see image), as a junior software engineer you will be mostly focusing on component developments task, more seniors can understand the product and software architecture better.
领英推荐
But think about this, regardless of your type of seniority, what will happen with your wisdom if you care about every piece of the puzzle?
Please do not be confused, of course, you can’t understand all components of the company at first instance, but still, you can try, and you will get bigger rewards than just trying to do a few PR every day.
Learn about the industry, learn about the business, the competitors, the types of products, learn about how your company structure, what makes their culture great (or not so great), learn about the CEO, and their other work experiences, learn about your team members, about the type of architecture and the why each product was built like it is.?
By then, you will be able to contribute more, understand more, and every job experience will always let you a huge number of insights that will make you a better scientist or engineer.
4.???Listening too much from too many people.
The more you grow the more you understand that you need a mentor, not a few of them, just one great mentor.
Listening to many people is not optimal for decision-making, find one great mentor that is already where you want to go, be authentic with your questions, respect their time, help him/her for free, and one day let it go but just when your result and outcomes are greater, then go and find a new challenge and of course again the next great mentor.
?
5.???Helping others less than I could.
Bugs are software engineers’ best friends; they teach you every day and there will always be everywhere.
But think about this, by yourself your bugs are too litter compared with other people’s team bugs, so try to help everyone you can, this advice will bring you a lot of knowledge, maybe as a reward also good friends and internal peace.
6.???Being silent when I had to speak.
Be careful here, is still hard for me to know when I should talk less or more, but ever be silent, express your ideas and concerns to everyone with respect and professionalism, and understand that your words are powerful, but your silence sometimes holds the great power of your entire life.
7.???Poor level of actions.
Oh, there is so much to talk about this, that I think I’m going to let a different letter for only this item. The only thing I can tell you here with no intention of offending and disrespecting you is that you can do more today.
?
8.???Not a personal commitment to greatness.
If you are not committed to greatness you will never be great, the principles of greatness hold the same for everyone, an athlete, a quant, a teacher, or a scientist.
There are principles you can use to be great, but none of these principles will work if you are not committed to living a life thru resistance and comfort, that decision needs to be made inside you.
9.???Not specific coding routines.
In the book, ‘The Genius in all of Us’ author David Shenk talks about the greatest single thing that makes Beethoven one of the greatest pianists, specific and restricted practice routines.
10.??Not using marketing and distribution channels.
It does not matter how great or good you are, is your responsibility to show up, to get out of obscurity, to teach, to share, and impact more engineers or scientists with your experiences and knowledge.
Use simple marketing principles and practices to show your work and your contribution to the world.
Team Lead / Software Architect .NET
1 年I can't belive you included that episode of DELETE without where ??. Great list by the way.