It’s been such a LONG time! I must start with an apology: I stopped updating here for about a month and a half by now. Previously work was a bit too much that I couldn’t spare enough time for blogging and I didn’t want to write anything not worth reading. Since I have finished work by now, and I will be moving into my new place in a couple of days, it seems right to get back to the site, and we will have our weekly posts as usual from now on.
So today I would like to write about what I did in the summer. For those of you not that familiar with me, I was working at Google London for 3 months this summer, working in the Adsense team. My project is to help people sign up in Adsense easier, to put it briefly. It was hard work all around, since this was a new team for me, with different code conventions and new technologies to learn. But in the end I was able to complete the project and produce a working demo, and hopefully my feature would be rolled out into production soon.
Even though I was glad to finish everything in time, there are a few things I definitely wish I would have known in the beginning. Fortunately, these tips might be helpful to you.
We developers are stereotyped to be unsociable, and I do have to admit that it comes with some grounds. Yes it can’t be easy to squeeze yourself into an already well-built circle, and it may feel left out. I certainly have this problem: during the internship I didn’t connect well with other interns, both for practical and mental reasons.
One day I was confiding this to a good friend, and she gave a quite profound yet meaningful response:
"You are not what you think you are; you are not what others think you are; you are that you think others think you are."
A bit twisted I know, but let me explain. Naturally we care about what others think of us, and sometimes it is hard to do something because it may come off as stupid and we would feel embarrassed. However, a big part, if not the most important, part of “blending in” is put yourself forward. It may seem desperate and pathetic, but you must realize that these are not what you are, they are things you feel like people would think. As long as you keep a sincere interest in people and be brave to start talking, making friends is less daunting as you think.
And for what it is worth, this will be helpful to you, both professionally and in life in general. I was not aware of the importance of communication in software development until quite recently. Even though software is something to reason about, more then often you need to present your ideas well so others can understand and therefore agree with, or bring up concerns. Take this as an example: I had a problem with a front end component during the internship, and I was explaining this to a colleague. He didn’t quite get the problem at first and asked me to elaborate further, so I did. Literally in the middle of talking I suddenly realized something I hadn’t considered before, and problem solved itself. If I were to sit silently and think about it on my own, it could easily take hours.
At first I thought this may just be something I have to watch out for, but it seems that it is more prevalent than I thought, so I want to explain this a bit. It originated from work again, when I was thinking about how to design UI for my project, I got into a debate with a colleague. We each had a different plan of implementation, and as the debate went to it was clear that his plan was better in the long term, with less maintenance and high extensibility. Yet, as stupid as it may be, I wasn’t quite ready to drop my plan, kept stating it would be easier to implement and the potential problems are only potential, and we have other mechanisms to guard against them.
In the end, I was persuaded to adopt the other plan, but there’s something quite interesting to discuss here. Even though my idea was logically suboptimal, it was still hard for me to completely discard it, simply because it was my idea. We all have, more or less, some self-righteousness to insist on our ideas, whether or not they are actually good ideas. And this goes back to what I was talking about earlier, if we admit our ideas are bad, that kind of implies we are not clever as we claim, and that hurts our faces.
But there’s a caveat here, ignored by many people: you intellect, if can be reflected, should only be reflected by your best idea, not worst. Therefore, if you do come up with a bad idea, it doesn’t mean you are stupid as well.
Take Google as an example. Over the years they have made some bad decisions as well, investing on products that never actually got on. Yet, nobody can denied the brilliance of its search algorithm, and few competitors are even present in this field. Certainly it is a bit off to compare a company to a person, but you get the idea.
Last few words
Hopefully the things I discussed above helped you in some way. Let me know if you have something to add, or if you disagree with some of the things I mentioned. Next week we should be back with a technical post. Have a great week, and I will see you soon!