Celebrating the Day of the Programmer
Programming is the foundation of our modern digital lives. Without the humble software developer, we wouldn’t have technical frameworks to drive everything from social media through to the World Wide Web itself. That’s worth a little celebration we feel.
Good news then. The Day of the Programmer occurs on the 256th day of the year – celebrating the 256 distinct values that can be represented by a simple byte. This year that falls on September 12.
Neural Technologies is a company built on the value of data. Our Optimus platform leverages the power of artificial intelligence and machine learning to drive revenue opportunities for customers. None of that would be possible without the framework of code which underpins our solutions.
In the spirit of the Day of the Programmer, we want to champion those coding wizards who help design, manage, and maintain this opportunity. Welcome to the life of a programmer, thanks to insight from Richard Sinden, a developer with over 20 years of industry experience.
Q1: Can you explain your role as a programmer, and what you do day-to-day?
It can vary a lot. Most days it is something interesting like trying to figure out customer requirements, designing new features, writing new features, tracking down bugs, fixing bugs, writing automated tests, running manual tests, documenting what you’ve done, releasing software, or researching new technologies… and other days there are meetings.
Q2: What kind of technical skills does a programmer need to have?
It really depends what kind of software you are working on as to what language skills are relevant, but there are some basics such as writing maintainable code, understanding how to write good automated tests, knowing your way around an IDE, using source control and issue tracking systems and, most importantly, knowing how to use Google.
In terms of personality traits, I think you need to have the ability to think both logically and creatively, be able to focus on a problem for long periods, have a high attention to detail, and a lot of patience.
Q3: What’s the single most important part of your job?
Irritatingly, it’s testing your work, because that isn’t really the fun bit.
Q4: What does a successful day look like for you?
It can be a really productive day where you get loads of bugs fixed or a new feature implemented. Or you can spend the entire day trying to track down one really irritating bug and eventually you find it. Or it can be a day without any meetings.
Q5: What does a crisis look like for a programmer in your role?
It’s when the software fails in a production environment and users can’t do their jobs. Sometimes this is a configuration issue, but sometimes it’s a user using it in a way we weren’t expecting, a combination of data that hadn’t been properly tested, or even an operating system update that has broken everything.
The hard bit is often debugging the problem, because we rarely have access to the machine where the issue is occurring. We have to reproduce it on our local environment, often with limited information. If we can do that, next we have to find and test a fix and then, if required, release a new version of the software. In some cases we have to turn all this around in a few hours to get users up and running again. Luckily, we’ve automated a lot of our build, test, and release processes, which is what helps make this possible.
Q6: Which superhero character best describes the life of a programmer, and why?
Iron Man seems to be a bit too obvious, but I’ve been through hundreds of them (using that focus, attention to detail, patience, and ability to use Google that I was talking about earlier) and it’s him.
He might focus on the hardware side a bit more, and he does a lot more testing in production than I’d be comfortable with, but he’s basically a developer.
Q7: What would be your one bit of advice to aspiring programmers out there?
Reading about or watching videos on technology will only get you so far. There is no substitute for practical experience. You can come up with your own small projects to try things out, but there are also thousands of open source projects out there.
Find one that sounds interesting, check out the code, see if you can build and run it, and then start trying to figure out how it works. Once you start to understand it, you can check the issue tracker and see if you can contribute any bug fixes or new features. This is also a good way to show prospective employers your mad coding skillz.
Q8: If you had all the time and resources in the world, what amazing programme would you love to design, and why?
Nice try, Mark Zuckerberg…
Q9: Is there anything else you’d like our audience to know or understand about the work of a programmer?
One thing that I don’t think people always appreciate is that the developers often aren’t actually users of the software. They will use it to test it, but this doesn’t always mean that they will use it in the same way a real user does, or even fully understand what the user is trying to achieve.
Developers want to write the best software they can, but sometimes the only way that they can know that there would be a better/more efficient way to do something is for the user to tell them. I think that users are often quite reluctant to do this, but I wish they wouldn’t be.
Have you ever wondered how to become a computer programmer for Neural Technologies? You can find the latest programmer jobs on our website.