乐天投资（Rakuten Ventures）主理合伙人Sae Min Ahn的回答
Answer by Sae Min Ahn, managing partner at Rakuten Ventures
This is not specifically for software engineers but I believe this applies for the many young hopefuls walking into their first company.
Falling more in love with the company than the job:Probably one of the biggest mistakes I made. I truly believed that if I got into the company I wanted, I would eventually find the role that was right for me. What was more painful was that I gave up an amazing role in a different company because I liked the branding of my-then-employer
Believing that my manager had all the answers and provided consistently right guidance: One of the hardest and disappointing lessons I had to learn but soon came to realize was the most valuable. I had a manager that I truly trusted and believed in. Whatever she told me I believed was canon and infallible. It turned out she was just as clueless as I was and had a tenancy for emotional abuse when things got hectic or too hot to handle
Believing that having a black and white viewpoint on business execution was the right path: This was actually an issue – I hope it isn’t anymore – with a lot of the Korean companies at the time. They try to indoctrinate the new grad into thinking that their competitor is “the enemy” or even portray them as “evil” in an irrational mantra. I’m sure it was to gain short-term loyalty, but for a lot of people I know, they picked up a really bad habit of emotionally expending too much time “hating” on their rivals and not thinking enough about the bigger picture of things
Believing that I would start doing “cool stuff” day one of my job: This was a funny time in my life as I thought I could take on the world and make the company revenue chart hit a neck-breaking hockey stick vector. I soon came to realize I had little applicable skills and had to really learn how to plan, prioritize and execute. Each step was like pulling a tooth but hey, I’m here aren’t I?
Answer by Allen Wu, software engineer at Yahoo
Two mistakes I made during my first job in software engineering as a new grad come to mind. Hopefully reading about my experiences will encourage new college grads to be more cognizant of these common mistakes.
The first was grossly underestimating how long it would take to complete a feature. The business requirements suggested that the feature was not very technically complex and would be straightforward to implement. What ended up being responsible for the bulk of the time was cross team collaboration, dependencies on others, and evolving requirements, which led to many iterations of development. There’s an aphorism in software engineering that says that 90% of the work takes 90% of the estimated time, and the remaining 10% of work takes another 90% of time, resulting in a total development time of 180% of the original estimate. Even after some experience in software development, it is still really difficult for me to accurately estimate the development time of a task (see Jan Christian Meyer’s answer to Software Engineering: What is the hardest thing you do as a software engineer?), though it’s getting better.