We all committed a lot of mistakes when we were young. Here are my notable mistakes that helped me learned valuable things later in life.
I thought I had unique abilities.
A fresh graduated engineer 17 years ago in Thailand with determination to practice the art of programming , in my stupid mind, should be a rare quality. The knowledge in Java backend programming made me thought that I am unique. I tended to doubt my colleague’s suggestion. I rarely took any programming advise unless I first evaluated it myself.
Obviously I wasn’t that unique. I wasn’t even competent enough for may tasks. It took me years to realized that.
I thought it was all about programming
Shouldn’t the taste of cake be the most important thing in cake restaurant? I thought the quality of code was the only thing matter in a software house. I considered my coding time as the thing that contributed the most to the success of projects. I considered developers as marines. We were the one who win the battles. Everything else was there just to support us. As you can guess, that thought got me to bad places eventually.
I lived in a small world
I felt so good in any good job I did. I mistakenly thought it was extraordinary comparing to my peer developers who I had seen their code. Apparently my circle of engineering career comprised of less then 10 developers. I didn’t read open-source project. I didn’t attend local developers meet up. I didn’t realized there were tons of developers in my country that could do the same as I did with a lot less effort.
The worst outcome of this is that I misjudged my progress. I thought I was acquiring new skills in a very good pace. It turned out that I had learned new things very very slow.
I put too much effort on theory and principal
I often researched and tried various approaches for a day, did actual code for 2 hours and got a minimal functioning feature with nice coding pattern. The urge to becoming guru made me put too much focus on theory. It would be a lot more productive if I researched for 2 hours and used a day to code more features with good enough code.
As a result of this, I ended up coding very little. One of my friend asked me. I called myself a developers but how many line of code I had produced to develop something so far.
I might not seem like an appropriate thing to link line of code with being a good developers. But if you spend very little time producing code in a month then it is unlikely that you are a well practicing craft man.
I didn’t pay attention to the dynamic of work place
Notice that I am not using the word “politic” here. I didn’t pay much attention on what was going on around the teams. I could not care less on who is the current boss and how things might change the the next 3 months. I genuinely believed software engineering is about software an as long as I took good care of my code, I should be very safe and fine.
A work place is a kind of social circle. And the relationship within that circle affect greatly to individual member. This is true no matter the circle is software house or a poker table.
I should paid attention to the incidence of some position in my development center had been moved oversea. I should noticed who get promoted to manger this round and what were his view on teams status. I should knew why a certain project was put on hold and why another new project got more effort. I should be prepared with information since one day I might need them to make an important decision.
I didn’t pay attention to people
My social skill was really bad. I didn’t know how much human factor could changed everything.
The dangerous things in a journey.
Is not the depth of the sea, not the gigantic size of the wave.
It is not height of the mountain, not the steep slope of the cliff.
But it is the twist in human heart.
And a knife hiding behind a smile.