Letter to Myself

A guest blog from Code Enigma’s former Director, Steve Cowie

Maygen Jacques
Code Enigma
5 min readSep 2, 2019

--

1950’s man in a suit posting a letter in an American letter box
Letter to Myself
A guest blog from Code Enigma’s former Director, Steve Cowie

Code Enigma’s marketing manager asked for my thoughts on what I’d tell my younger self, getting started in development. As I tried to remember the tech landscape of the early nineties, it occurred to me that the world has changed so much my advice wouldn’t make sense.

In 1992 the Internet was barely available in the UK, there was no world wide web, no search engines, no social media, and only niche online communities using tools like bulletin boards. If you wanted to know stuff, you went to a bookshop and bought very large books, and it was pot luck whether they actually addressed the problems you were encountering. By the mid to late nineties, when Googling was possible, if not yet a verb, the results were patchy.

One of the first go-to to sites I remember, because it consistently provided quick answers in the form of examples, was php.net. It was a decisive factor in taking me down the PHP route rather than ASP because the power and potential of open source community was so obvious.

If changes in technology mean I haven’t got much to say to my younger self, do I have any thoughts for a stranger, who may be thinking about getting into development, and wants the advice of an old gimmer?

Go Open Source
When I started using PHP it was part of a process of moving towards Open Source. I abandoned ASP because it was becoming impossible to find the time to be good at both. That led me away from Microsoft’s suite of developer tools, but it also prevented me from being locked into proprietary software.

Given that it takes a lot of time to become a professional developer, I’d still advise anyone to be cautious about getting locked into supporting a commercial product. Mind you, I’m told that Sharepoint developers make a fortune. So, if money is your thing (more of that later), feel free to ignore me.

Through using Open Source, I started to get exposure to software communities, both online and physical. But, I’d been developing for over 10 years before I went to a conference. In retrospect that was a big mistake. Software development is best done in a group. You need to join in, and be ready to admit you don’t know stuff. Mostly your job is going to be finding out how to do things, so ask! Always bear in mind that when you hit a problem, you won’t be the first person who’s hit it — the answer will be out there. If failing to find the answer doesn’t drive you nuts, software development probably isn’t for you.

While plenty of asking is good, relying on other people to Google things for you is not good. That means you should spend the time trying to find out before shouting for help.

“If you can’t find the answer it probably means you haven’t framed the question right, because you haven’t properly understood the problem.”

When you do find a solution, think about how you can share it back. At first, you might be intimidated by working alongside much smarter developers, or at least it will seem that way. There’s always some way you can contribute; you’ll always be welcome in any software community if you’re up for doing some documentation.

At its best, Open Source represents a way of thinking where you have less tension between the values that you want to live by and the values that govern your work.

Invest in learning
Almost everything I know about development has been learned on the job. That’s fine from a problem-solving perspective but has limitations. I focus on getting something that works but may not be optimised; I don’t apply design patterns consistently; I’m rubbish at building in tests.

So, my advice would be to make time for formal learning. Ideally, you should do some full-time learning because being away from work allows for a different focus. If you do manage that, you’ll still need to make time for regular learning top-ups. Partly that’s because tech is constantly evolving, but it’s also because you slip into bad habits.

Even when you’re working there are opportunities to improve your knowledge. Use peer review and if you can, pair programming. You’ll always learn from having other people look at your code.

The need to constantly learn creates a problem of focus. You can end up being dragged in too many directions and learning nothing properly. You need to be clear about which things you’ll know in-depth and ones where you can either have a high-level understanding or no knowledge at all. As an example, when it comes to running servers, I am very happy to leave that to system administrators. Even if you narrow down your areas of expertise, it’s still easy to get side-tracked so set yourself specific learning objectives and set aside time for pursuing them.

Chase the money
If you’re going to be doing a job where you work all day for a boss and then spend your evenings learning and contributing to software communities, you should at least get paid. If you want to do good quality work, you may need to seek out employers who are ready to invest in software. By the way, that doesn’t mean you have to work in the private sector. In my experience, many charities are far more aware of the cost and value of software development than companies are.

Getting properly remunerated may mean moving to London although things are definitely improving in Manchester and Leeds. Wherever you work, don’t undersell yourself. You are going to invest a lot to become a decent developer so getting properly paid is a reasonable expectation.

Stay healthy
I’m talking about mental health, although there are some obvious risks in a job that has you sitting in front of a screen for up to twelve hours a day. I could say, get a bike, but that’s a separate blog.

Assuming you’re doing something to look after your body, it’s time to think about your brain. A British politician from the past — Denis Healey — used to talk about the importance of having a hinterland. What he meant were the things you focus on outside work. Development can be an obsession so make sure you have some other interests and activities, ideally as different as possible from development.

And now that your body and mind are fine, what about your soul? As you become a developer, you’ll increasingly find that other people don’t really grasp what you do. They may well be in awe of this magical skill and say things like “you must be really clever”. If so, stay humble.

You can learn more about the development work we do at Code Enigma by visiting our website here.

--

--

Maygen Jacques
Code Enigma

Marketing Manager for web design, development and hosting agency, @CodeEnigma. Hold my drink, I’ll be right back…