Top 10 pieces of advice for rookie software engineers
What you should know to ease your college hangover :)
- Work life does not start and end in semesters. The only way to complete your work early is to start early. Don’t procrastinate or wait for others to start first. Be kiasu. No one ever complains about starting a task too early or having too much time to do something.
- Work life does not start and end in semesters. Semester breaks no longer exist. But don’t let others squeeze you dry. Don’t burnout and drop out of the tech industry, like many others that I have seen. This is only the start of your marathon. Love your work and work darn hard at your sustainable pace — In the first three years of my work life, I worked/read till 12 am-1 am almost every day. That was sustainable until my baby girl came along :)
- Avoid binary thinking. Good software design is about making a series of good trade-offs. If it’s so clear-cut, our industry will not have so many programming languages, design patterns, architecture and opinionated people. The answer is often along the continuum and to make the right trade-off, you need to …
- Read voraciously. Start with these three books — Pragmatic Programmer, Code Complete 2 and The Art of Computer Programming — and you will be better than 60% of the developers in the market. Read these and be better than 80%. Every solid developer reads voraciously.
- Be prepared to spend lots of personal time learning. The acceptable pace of learning depends on industry trend, regardless of your convenience. Be on your toes and learn to learn. Find a good teacher, mentor and/or a coach. They have a multiplier effect on your learning. Work in a team. Attend meetups and share what you have learnt — you truly learn when you can teach. This is the commencement of learning, not the end of it :)
- Understand that opportunities do not come in a curriculum package with modules and known credits. They are like dots that you can’t connect looking forward. Introspect your intellectual humility and follow your heart because …
- Every opportunity has its fair share of fun moments, grunt work and challenges. Unless you believe in the cause, you will lack the mental perseverance to carry through the grunt work and overcome the challenges. Grit is the key to success.
- There’s no reality in reality and perception is everything. You might be darned good at X but if no one knows, it doesn't count. Volunteer for tech spikes, share your knowledge in tech retros, chapters and meetups, blog about the design and technical intricacies of your project. Get people’s attention and make your contribution felt — For better or for worse, your performance is more than your professor’s or boss’s perception.
- Understand that organisations will maximise the total outcome by allocating resources based on meritocracy, not equality. Equal is not fair and fair is not equal — Self-entitlement will give you grief.
- Don’t despair when the going gets tough. Programming is a team sport. An effective team harnesses the individual’s strengths, not weaknesses. Learn to compensate your team’s weaknesses with your strengths. May the Force be with you :)