Alec McEachran majored in Philosophy but was able to get hired as a Software Engineer after teaching himself to code. He even worked at Google! In this interview Alec shares his experience and tips for people who want to learn to code without a Computer Science degree.
Hey, so can you give us a short introduction for people who want to know more about you?
I live in Edinburgh with my wife Lindsay who grew up here. We have moved around a lot in the last few years, but bought a house and settled back here last year. I’m working for a small company called KPV Lab, working on a project that hasn’t been released to the public yet.
I came up to Edinburgh for university from Lichfield. I studied Philosophy, then I did a two year PGCE in Mathematics Education and became a Maths teacher in a high school in England. I pivoted into Software Engineering after writing some educational software in Flash that I gave away online. I was approached by Sherston Software to build more professionally.
I ended up working for a few companies in the UK, and eventually got the opportunity to move to California in 2010. In 2013, I got a job working at YouTube (Google), and stayed there for 5 years as a Senior Software Engineer. But my wife is an academic scientist, and trying to balance my job with opportunities for her meant I gave that up to move back home.
Can you tell us what an average day looks like for you just now?
Right now we are at the end of March 2020, so like everyone else my day looks like everyone else … we get up, we don’t leave the house, we work remotely at our respective jobs, and we try not to worry about the future too much. I am lucky. As far as I know, my job is safe and my workload is relatively unchanged.
Work consists of writing code, discussing code design, reviewing code, prioritising work and discussing bugs. I have a balance of about 70% heads-down coding with 30% other stuff, though that can vary a lot. I have a team of three developers right now, and I review their work, talk to them about the decisions they are making, and try to keep us all working towards a common goal that is changing as we go.
If you don’t have a CS degree, how did you learn coding? Did you do any particular courses or bootcamps?
I bought books and tried to read them, but I found that how I learned was mostly trying and failing to build things, again and again. And, as the web started to emerge, asking countless questions on forums.
How did you get your first programming job/ freelance work?
I built my own website as an educational blog and to share some Flash apps with fellow teachers. That took off, and I was approached by Sherston Software, who paid me to build a version that they would sell. I tried to do that and teach in a 70% teaching, 30% software split. That didn’t really work out, and I ended up over-worked and under-paid. I gave up teaching, then failed with my second software project.
I was extremely close to going back into teaching, but managed to get a job as a contractor on the basis of my Flash work, and once I had my foot in the door, I was able to prove myself. The interview was a code test. They sent me a zip file of some code with instructions, and I had to send them back what I came up with two days later. I don’t remember the details, sadly. It was many years ago!
How has your life changed since becoming a professional programmer?
The most significant change for me has been that coding has let me travel the world. I lived in San Francisco for six years in the 2010s, and I consulted with a company in Beijing for a few weeks too. I could have gone anywhere and done anything to be honest. I have friends who lived in Brazil for a while, or tried out working from a beach in Thailand for a few months (it turns out, it’s hard to stay productive…)
Programming has given me financial stability that would have been difficult to achieve as a teacher. I’ve been able to buy a house on the outskirts of Edinburgh where I live with my wife and cat. We have been lucky.
Prepare for technical interviews with Algo Expert- "NOCS" gets you 15% off.
Has anyone ever asked about your coding qualifications when you have been talking to clients?
I haven’t worked as a contractor since 2007, so this question doesn’t really apply to me. The main thing that surprised me was that my experience gave me an opportunity to get an interview for Google. They sent me all the things I might be asked about, and I studied intensively for a month. At the interview though, all my interviewers were mainly interested in how I thought about the problems they posed, and qualifications were never discussed.
What advice do you have for someone who wants to get their first programming job but they don’t have the time or money for a CS degree?
For me, the most important thing is to build your own software. If you’re interested in front-end development like me, build a website, build your own games or web apps and put them up for people to look at. If you’re interested in machine learning, learn TensorFlow, build an app, write a blog. Remember that the journey - the process - is as important as the destination. If you can show that you can do the work, then most people won’t care whether you have a certificate.
Have you ever had imposter syndrome and if so, how have you dealt with it?
I had a significant case of imposter syndrome when I joined Google. Until then I had always felt among my peers, but suddenly I felt like I was surrounded by people smarter than me. It took a while to find my feet and my voice.
I worked with lots of better engineers than me, but few of them could communicate about a problem the way I could, or help new developers get up to speed. I had to find my strengths; the aspects of my personality and the particular aspects of my background that made me valuable and different, and use those to become valuable to the team and the company.
It helped that both my first manager then my second manager had both left school at 16! Luke was an extremely talented coder who had been a US Marine mechanic, where he had learned to code. Paul was a fellow Brit who had gone into business, proved himself smart and successful and had quickly risen. They proved that honest hard work could drive success, and they helped to reassure me that I deserved to be where I was.
What are your coding ambitions for the future?
The most important thing for me is that I work on interesting projects with interesting people. I don’t want to waste my time building something that nobody ever uses, or has no value. I don’t want to work on my own, or with people who don’t want to learn and improve. One day I would like to write down what I have learned about code, though I’m not convinced anyone would want to read it ... and anyway, I still have so much more to learn first!