This post is part of an Oursky series that introduces nuggets of wisdom and humour from our awesome developers in Hong Kong. These are things they would tell their younger developer selves.
May: In university, we had many applied classes, so we focused on writing code rather than studying foundational theory. At first, it seemed like we were building a good portfolio for job applications, but later on, I realised that I could not improve my programming skills without knowing the underlying concepts. For people interested in teaching themselves, you can go MIT OpenCourseWare to study all the relevant courses.
Patrick: We’re afraid that our code is not good/smart/beautiful enough when other people read it. We want to keep improving and cleaning up and refactor to make the code look perfect. But if you read more code written by others, you start to realise that even code written by really good developers can look like shit. Not saying that we should ship shitty code. But there comes a certain point where the code works and the logic is sound and the code is documented. That’s enough.
Because everyone should read The Hitchhiker’s Guide to the Galaxy.
Joyz: QA is like being a detective. With daily practice, we learn to remember the steps we took. When we see an error or crash, we can spot the root cause quickly. We remember the whole group of buttons we have clicked a few minutes before the crash happens.
This helps us spot the origin of a bug faster than developers, as reading the code usually takes more time to trace back. Although normal users may also experience the same bug, they will not remember the steps, and hardly guess the reason behind the problem.
When facing the same bug:
– Users simply observe the final behaviour.
– Developers start digging and reviewing the codes to find the problem.
– Testers know the condition to reproduce the bug.
For Oursky, building better apps begins with understanding our clients. We always start with a user story and have an extended conversation to understand their needs and goals, and suggest solutions rather than features.
Whats your advice to a fresh grad or aspiring developer? We’d love to hear your two cents!