5 hacks to level up as a developer
There is no such thing as a recipe for success when it comes to climbing the professional ladder and developers are no exception. The lack of a well-defined route can hamper a developer’s journey from novice to master, but there are things you can do to help yourself.
Becoming a productive developer does not occur overnight. Slowly advancing through the intermediate stage and eventually reaching the heavyweight developer stage is something we all want, but the difference between a decent developer and a great one lies in self-discipline. After answering the question “what does success look like?” you are ready to delve into a handful of hacks that will help you level up as a developer.
As Will Hughes, a software engineer, pointed out in a Facebook post, one of the best ways to become a better developer is to learn directly from a productive developer. After interviewing several engineers at Facebook, Hughes concocted a few hacks that can help any developer to level up.
Less is more
Every Facebook engineer Hughes interviewed emphasized the importance of splitting code changes into logical modules and how this small step made it easier for others to understand and accept faster. In short, by decreasing the cognitive load of the diffs that were sent out, reviewers are more confident in accepting changes. According to the software engineer, a Facebook engineer considers that a diff is a differential revision designed using the open-source tool phabricator.
Another way to write ‘better’ diffs is to stack diff changes on top of each other, thus establishing dependencies for their logic as they go. Improving the code quality can be done by going back and dividing a massive diff up into logical steps, according to an engineer who preferred to remain anonymous.
Lone wolves have short-lived success
Developers don’t need to work in teams to become good, but they must become team players if they want to become great. One other important aspect is to be transparent about what you are working on because if people have no idea what you are working on, the amount of information they need to process when assessing a diff will be confusing and troublesome.
Hughes cited Michael Novati, software engineer at Facebook, as saying: “I test the minimum amount to make me feel comfortable.” Regardless of the size or type of company you work for, the best way to ensure that another person does not break your piece of code is to apply its functionality in tests. Plus, according to a Facebook employee who preferred to remain anonymous, people feel better accepting code which has unit tests.
Never lose state
In programming, losing state could be when you are thinking about an issue, someone interrupts you and you forget what you were thinking about. Going through the entire thinking process again will disrupt productivity, so the best way to ensure this does not happen is to “save state” in your head so that you can return and recover as fast as possible, as Novati does.
However, if saving state fails, there is always the option to defer the interruption or to write down your current thought process. Adam Ernst, an iOS developer at Facebook NY, prefers to “stop the day midway through a fairly simple or mechanical task” to make sure he can easily get back in the zone the next day, Hughes wrote.
Admit that you are not omniscient
Pride has nothing to do with admitting what you don’t know. Novati told Hughes that he admits if he doesn’t know much about a part of the codebase -a behavior which should be copied by all developers who want to learn and exceed their own expectations. Pretending to know something you actually don’t is not the correct path to greatness, but being upfront about your knowledge and encouraging people to look for engineers that are more knowledgeable about certain systems is.
Feedback is the missing ingredient from a stellar career in programming, and it has the power to make or break a developer. Not forgetting to create to-do lists, request reviews and split diffs will make you more aware of your tasks and will help you discern between tasks and habits that boost productivity and those that prevent you from becoming a genuinely great developer.