By June 2014, it had been 2 years since I resignated from my first company.
Several months later, I started working on a startup of a friend for about one year. It was like a part-time job, that I worked half a day.
After that, I was idle at home. I read novels, and technical books, wrote interesting code, went to library once in a while, and even cooked sometimes. That was fun.
The thing was I was not under pressure, so it was no push for me to learn more, and become better. Self-discipline was not working for me well. And then, I realized I need to get to work. It was my first time to job-hunt as an experienced developer, not like a just-graduate freshman.
So I applied jobs on several different companies which I like, and got a few chances of interviews.
In the interviews, I was asked technical questions. Some were things I know, and others I didn’t. That is a good way to know what I’m lack of. I met some good interviewers, who digged things up. I thought I knew things well, while in fact I didn’t. Lacking of practice makes me mistake shallow understanding for a better one. Though some are not used often on daily work, it shows the ability and the enthusiasm to know more. Unfortunately, I failed some.
Part of the reason, I guess, is the arrogance. In the old company, I did a bit better than majority, which got me overvalued praise. It made me spend more time having fun, and less time improving. And I thought I was pretty good, which is not true.
Another reason is, though I’ve been interested in low-level programming, and how things work, I haven’t got chances to learn and apply. Nowadays, with all these flashy technologies, and so many interesting libraries and frameworks have been appearing every single day, I’ve been kinda lost in the distractions.
I end up working in a startup introduced by a colleague. I’m not 100% satisfied, but I’m gonna hang in there, working, learning, getting better. The good thing is, I do learn a lot from those interviews, and I know the weakness of myself, and I have the motives.