developers[]: Ian Barker

Twitter: @punctuation

Website: https://about.me/ianbarker

Born in London, England now based in Dallas, Texas. I’ve been a professional software developer for more than 35 years and can code in most programming languages although these days my COBOL is a little rusty! I spend most of my working days, headphones on, loud music ruining my hearing by nicely provoking the flow which only other professional coders know and understand. I’ve worked at several large blue chip companies in various managerial or senior develeoper capacities but I prefer to hammer out code on a specially-purchased clicky-clacky keyboard. I’m also a poet — code and poetry share a lot of characteristics. I can also pick locks, for similar reasons.

What is your favorite programming language and why?

Well, not one to buck a trend, my favorite programming language is Delphi. I’m competent in plenty of other languages (and get paid to work in them too, especially C#) but Delphi is the choice, every time. It’s due to the stability, it works forever and doesn’t go wrong, doesn’t require a bunch of odd dependencies or huge libraries and pre-requisites to download just to get the program working. Even my biggest flag-ship client-server product can run off a USB ‘thumb drive’, simply by plugging it in and running the exe. Using the same language and tools I can create apps which target Windows, MacOS, iOS and Android with very few considerations or hoop-jumping. It’s a world away from the 1980s; or even just maybe ten years ago.

What one piece of advice would you give to a rookie developer?

Learn how to use Google searches. Find mentors. Copy/emulate people. Don’t be discouraged on days when you think you’re just not going to make it – EVERY developer feels ‘imposter syndrome’ from time to time. With the internet at your fingertips you have access to the knowledge of quite literally millions of developers. If I’d had that when I first started out I would have pulled fewer all-nighters and have a lot more hair. 🙂

What is the most difficult programming challenge you’ve ever encountered?

Interesting question. I don’t really think like that. Coding means sometimes you have to do difficult things, often with no resources available from people who have met that challenge before. I work with a lot of hardware such as fingerprint readers, face recognition and hand scanners and in these days of globalization this means dealing with foreign manufacturers of varying quality, often in languages I don’t speak. Trying to work out why something isn’t working when the documentation is either incorrect, non-existent or incomprehensible is a pretty challenging state of affairs when you have a deadline to meet, especially when there is a 12 hour time difference between you and the hardware supplier. That, for me, is a common issue – plus trying to prevent sales and marketing people from writing marketing materials which are factually incorrect (which is more of a management problem but it’s quite prevalent in various companies I’ve dealt with so I’m guessing it’s a widespread problem).

What is your favorite open source project and why?

Oh, there are SO many and that’s one of the greatest things to have come about in recent years. If I was to pick one I’d say Heidi SQL as I work a lot with MySQL and it helps me with that plus it’s written in Delphi. I’d also choose Notepad++, VS Code, GitHub Desktop, CnPack and GExperts – they’re all the first things I install on a new development machine after Delphi.

What would you say to the developer that was you five years ago?

Buy Bitcoin, sell GB pounds. 😉 But seriously, I don’t think there’s much I would need to say to myself; I’ve been lucky enough to make good decisions and they’ve turned out well. The great thing about our industry is that it’s constantly changing and there’s always something new to learn or better ways to do things. I remember the exact day I decided I wanted to be a computer programmer (I was 14 years old and in a very boring Physics lesson) and I do that job every day and get paid to do it. The adage of “find a job you love and you’ll never work another day in your life” (paraphrasing Arthur Szathmary) – is absolutely 100 percent true in my case; I love being a developer and that hasn’t changed.

What one book should every software developer read?

The Design of Everyday Things by Don Norman. Don talks about things like “Norman doors” which is a door you approach and can’t work out how to open, push or pull, due to the design. Well, in software the trend is that software is containing more and more Norman Doors; screen controls we must discover by experimentation; essential behavior ‘hidden’ by such things as right-clicks. Before we are all lost in an abyss of flat things which should have ‘affordance’ (read the book) then I suggest that Don and his ilk should be an essential stopping place in any developer’s education. If you’re serious about development then you need to first get serious about design and human interaction.

What is the worst advice that you commonly hear given to developers?

A lot of webinars and ‘how to’ videos are given showing things like dependency injection and MVC with a ton of extra code which props up the technique the demonstrator is trying to show off. Very few guides try to emphasize efficiency and compactness in coding which is still, to this day, extremely important despite Moore’s Law giving us more and more basic grunt force. It’s not uncommon for me to meet a recently graduated developer who writes horribly sprawling apps with massively intrusive dependencies covering gigabytes just to do something really simple. My advice: keep it simple, understand when and why you need vital basic techniques like dependency injection but don’t shoe-horn them in just because it seems that’s ‘how it’s done’. It’s not.

Describe your favorite or most memorable “aha!” moment that you’ve had as a developer.

When the reason why object orientation was a great idea suddenly became clear to me it was like the clouds parted and some kind of deity boomed “welcome”. Not everything has to be an object – but objects, classes, interfaces and their ilk are how the cool kids go from being people who write programs to people who are programmers.

What is one weird or unusual thing you always do when you code?

I always wear headphones and drink frightening amounts of caffeine although this is not uncommon, I suppose. I do use the Pomodoro technique which is not as common. The formula works like this: hardcore drum and bass + caffeine + 8 Pomodoros = mucho mucho code productivity. I also take regular breaks to walk my dogs. Dogs help fix many bugs.What have you done as a developer of which you are most proud? Our industry is a moving target – and I’ve been in it long enough that everything I was proud of 10, 20 or 30 years ago now looks absolutely, devastatingly shameful. I’m only ever as good as my last 100 lines of code.

Bonus Question: What is the question and the answer to the one thing that I should have asked you?

How old were you when you first got paid to write a program?

I was 15 – and they paid me despite the fact I wasn’t asked to write the program for them. More on this another time. 😉