16 Jan 2014
So today we’ve had a group of 15 year old students from Thistley Hough Academy dropping by to get a glimpse of what is work like at a digital studio.
We gave them a tour of the space and presented from various roles: project manager, interaction design, visual design, games and finally development (yours truly).
So, how is it being a developer in 2014?
One of the first things that comes to mind is how today’s programming is a lot more about connecting dots than writing your own code.
Most of what we do these days is glueing together different libraries, frameworks, abstractions, APIs… take this piece of data, send it to this end point, make it persistent through this ORM… Most of the times we are actively encouraged to avoid “reinventing the wheel”, which is pity if you want to learn about wheels.
The skills required to join dots are very different from the skills required to, say, write GPU drivers. For one you need to be able to use a library almost from a glance to the docs, be able to maintain dependencies between libs, write parsers to go from one format to another… For the other one you need a very narrow, but very deep knowledge of a much more limited set of subjects (maths, physics).
Another difference with developers from 50 years ago is cross-functional teams. Back in the day software was made by engineers for engineers, full stop. These days you have a much wider spectrum of roles to interact with: designers, copywriters, animators… Those guys use different tools, speak a different language, they talk about feelings and emotions, they put users first. Fuzzy concepts that sometimes take precedence over what’s best from a technical point of view. As a developer you must be able to understand and respect those other points of view.
Which leads me to another massively important skill for 21st century developers: communication. With all that people around, with so very different backgrounds, being able to clearly articulate your thoughts is paramount. It is in no one’s benefit if during meetings you sit in a corner mumbling to yourself. Speak up, and (politely) let people know why you think something is a bad idea and how it could be improved. This requires empathy, by the way. Being able to understand and respect that people take decisions for reasons other than technical. Guess what? They might have the business in mind, or users in mind, or colour theory in mind. And they are all valid angles.
Being able to clearly express your ideas will also have an impact on the code you write. This is why blogging and public speaking are very good exercises, they training your brain to put in writing what’s in your mind, something that is not always easy.
And I wrapped up with a fact that still today resonates with me: developers make things happen. Please, don’t take it the wrong way, this is not looking down on anyone, it’s just a fact, isn’t it? If I have an idea, I can execute it. It’s the super-power of developers: we make computers do stuff.
Anyway, I hope the kids got a balanced and bullshit-free look at our industry so they know what they would be up to in case they they choose to be part of it.
Worst case they got a day off school : )
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.