5 things I wish I knew before I started
IT’S ALL ABOUT THE PEOPLE.
Programming has been at the core of my career. But I’m not a programmer; I’m a developer. I build for people, with people. The people who I surround myself with and build for are all important to who I am as a developer. They all have something to teach – especially those gracious enough to serve as mentors. Learn from them. And then surround yourself with people that will make you better. I didn’t know until I started working, that I am in the business of people.
THE IMPORTANCE OF DESIGN.
I never appreciated the power of design until I started with Xero. Design isn’t just about the way something looks; it’s about how easy it is to use, the information hierarchy, the flow, the feel. In other words, the complete user experience.
And it’s not something that should be owned by just “the designers”. For me a lot of it comes down to empathy. To my point about people - having empathy for your customers (and those who work with you) is crucial to delivering the best user experience possible.
SOFTWARE DEVELOPMENT IS HARD.
There’s no magic bullet. Even with the best planning and education, it’s going to take a lot of trying, failing, learning and retrying to get there. Having said that, building software is a skill that can be learned. Like learning a language, there’s grammar and vocabulary to acquire. Like math, there are processes to work through. Like all forms of craftsmanship, the field evolves and you’re free to use – or discard – the evolutions in thinking and tools that have emerged.
DON’T JUST LEARN HOW TO USE SOMETHING, LEARN HOW IT WORKS.
There are many patterns, practices, toolkits and frameworks in the modern world of programming that have been developed to make things easier for other programmers.
A beginner will often use what’s easiest to access (or cheapest to use) without understanding what tools best serve their aims. Spending a little time up front to learn what exists can save you tons of time in the long run and may deliver a better outcome.
SAVE MONEY AT A YOUNG AGE.
Money wasn’t a consideration when I got into software development. The Dotcom boom was in its infancy when I started university and I was in a fortunate position to have some disposable income at a young age. At 23, buying a 61” television (in 1999!) and a complete home theatre (even while living with my parents) seemed fun and important. In retrospect, I’m not sure it was the wisest use of my income. Building a financial base early that you can lean on when you’re older will not only build a safety net for you and your family, but also permit career flexibility later on.