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.
The second was not asking for help when I should have. I was stuck on a bug I discovered for a feature that I was trying to implement. Trying to uncover the root cause of the bug was like opening a can of worms – related problems started popping up everywhere. Instead of properly escalating the issues to increase their visibility to get more resources or asking for help, I spent many cycles trying to find solutions, which was an exercise in futility. My manager at the time noted that a common mistake made by junior developers is to “disappear” to work on their tasks for extended periods of time, and reappear when they’re finished. When I realized that unexpected problems are expected, and a manager’s job is to have visibility and enable a team to operate at optimal velocity, I was able to improve on this.
Answer by Jason Ewing
Be more loyal to your company than the company is to you. I’ve managed too many teams that have entry level employees and I see this too often. You like your first company, they gave you your first real shot! You should be loyal, right?
Wrong. People stay in an entry level position for too long believing their employer will “take care of them” if they just work hard enough, stick around long enough….
Over time, this grinds a person down. I love that people believe that if you just work hard and do well your talents will be recognized and you’ll be promoted, but the truth is this isn’t always the way things work. Companies both large and small have to have a position to promote you to, a budget to pay you more, etc etc….
Once you’ve been at your first job for a bit, begin engaging your manager about what your options are for developing your career. If you start to get the sense that no one ever gets promoted, or that options for advancement are limited, then change gears: Learn what you can where you are and take that experience somewhere else.
Answer by Carson Tang
Ignore the bad habits of your older colleagues – Your colleague who has been working for at least 10 years might be late to meetings often, but that does not imply that it is acceptable to be late. When an older colleague is late, your manager might cut her more slack because she has proven herself to be helpful and employable whereas if you are late, you simply look irresponsible and unemployable.
Seek guidance and help proactively – In school, your professors and teaching assistants often provide hints and guidance on homework and lab assignments without you prompting them. At work, everyone is busy with his or her own tasks, so do not be surprised if no one offers help. It is not necessarily that they are unfriendly and selfish so much as they are just plain busy. The ones that offer unsolicited help are generally friendly people, so those are the ones with whom you want to be on extra good terms.
Be the expert of your assigned task – Even if you are assigned a menial task like fixing minor bugs, swallow your pride, fix those bugs, and understand how you fixed them. If you are assigned a major task, the same underlying principles apply. In software engineering, you are the expert of the part of the codebase you modified and extended, so if your colleagues have questions, they expect you to have the answers. Being the expert achieves two goals. First, your colleagues will think of you as a responsible person, and second, your manager will eventually notice and assign you more meaningful tasks or place you on more challenging and more impactful projects.
Be on good terms with everyone – In school, if you disliked someone, you could ignore him. At work, if you dislike a colleague, you cannot simply ignore him because you will be working together. Instead, be friendly and cordial. If that person is at all a professional, even if he dislikes you personally, he will respect you professionally.
Value quality over quantity – If you can, try to work as quickly as possible, but do not sacrifice the quality of your work for the sake of more output. Your manager and colleagues will remember negatively the time you broke the software build with a code check-in, even if it was delivered a week ahead of time. However, they will remember fondly the success and quality of your polished and completed project, even if it took an extra week to wrap up.
Answer by Patrick Mathieson, VC Associate at Toba Capital
Believing that your first job is highly deterministic of the rest of your career.
I remember being an undergrad and being surrounded by people absolutely pining over particular choice jobs. The prevailing attitude seemed to be that getting the Goldman Sachs (GS )gig would catapult them onto a trajectory of success that would last for their entire careers.
Now that it’s been four years since my graduation, I’ve seen most of my friends change employers at least once, and many (including myself) have also switched industries. While some people loved their first jobs, some quickly found out that another occupation was more to their liking.
Picking a job or employer is important, no doubt. And certain jobs can lead to relationships that DO determine the rest of your career. But to assume that your first job will inexorably lead to one particular brand of career or lifestyle, or that changing your mind or making a mistake in job selection is catastrophic, is the wrong attitude.
Often our first jobs are most useful in teaching us what we DON’T want to do for a living.
Answer by Jeff Rogers, Director of Engineering at Angie’s List
In some pockets, especially tech, it’s ok (and weirdly prideful) to ignore emails, blow off meetings, etc…
But you’re not the next Internet billionaire yet. Someone took the time to write you an email. You should extend them the courtesy of replying as quickly as you can. Or, you know, walking over and talking to them (if possible). If you don’t know the answer, or need more time, just say so. Don’t let it sit in your inbox for days/weeks. I impose a “24-hour” rule on my own mailbox.
Show up to meetings on time. Someone thought your opinion on a topic might be interesting, so you should take that as a compliment. You owe it to them to attend and pay attention. Don’t stare at your phone or laptop, unless necessary. Sometimes things pop up that require your focus to shift to an urgent issue. If that happens, apologize or excuse yourself.
“I don’t know” is a perfectly fine answer. (As long as “…but I will find out” quickly follows.)
This question originally appeared on Quora: What’s the most common mistakes new graduates make in their first job?