Freelance web developerSelf Taught Web Developer

From Animation Degree To Lead Vue Developer

Dave Stewart is a freelance Software Developer who learned to code without a Computer Science degree. Dave studied Animation but has been able to make a successful career as a Software Developer specialising in the Vue framework.

Hey, so can you introduce yourself?

Hi I’m Dave, I’m a Lead Vue Developer based in London, UK.

Why did you learn to code?

I had recently completed my degree in Visual Communication Design at Ravensbourne Uni, specialising in Moving Image Design, focusing primarily on 3D Animation using 3dsmax and After Effects. During the months after finishing I wanted to collate my animations in some kind of online portfolio, likely a website.

At the time CD-ROMs were the main way people viewed interactive content on computers because modems were so slow, so building web pages using HTML and laying out designs in DreamWeaver felt very “bare metal” indeed.

I knew what code was, as my course had an Interaction Design stream, but I had never done it. I didn’t know what the DOM was, or why a site that ran fine on IE would fail so spectacularly in Netscape!

Later I knew 3dsmax could be programmed, so I had a crack at that. That lead to trying Flash (pre-ActionScript), then ActionScript, then later PHP, JavaScript, VB Script (Office), Node, TypeScript, and all kinds of extensions for different frameworks and packages.

Once you pop, you can’t stop!

Dave

How did you learn coding if you did Animation at university?

I learnt coding through the good old fashioned medium of books! Having learnt 3dsmax and After Effects by book, we learnt coding the same way. It was a little weird at first, but I was 20 and enthusiastic with loads of free time, so just got on with it.

Once I felt I understood the HTML side, I thought I would have a go at MaxScript, the coding language which powered 3dsmax and you could build scenes, write plugins, or script controllers.

Programming a visual environment I had been so used to control using a mouse seemed equally abstract, but after creating and rotating my first cube in two lines of code, I was hooked!

Luckily, the 3dsmax scripting docs were distributed as part of the Windows Help system (so were really just web pages) and were absolutely amazing; a brilliant structure, amazing examples, and completely thorough. I just started at the beginning and took months and years to just go through them.

3d work

Later, when I learned Flash and ActionScript, it was back to books. There were some brilliant ones by inspirational Flash artists such as Kieth Peters (Making Things Move, still a classic!) and Jared Tarbell (Flash Math Creativity) who is now one of the co-founders of Etsy, so clever, creative people.

This was an incredible time of unrivalled creativity. I miss those days!

How has your life changed since learning to code?

I was very, very lucky to have learned Flash when I did.

At the time, creative agencies were huge, and if you could create an all-singing, all-dancing, animated, interactive Flash applications or games you were set. Animation was satisfying when you created a great sequence, or saw it all come together, but was a lot of work, and you really only saw your work holistically a few times if it was a TV titles, for example. With a site it would be there every day, being used by 1000s of people as a living breathing entity.

I worked hard to straddle both disciplines and literally LOVED going to work; it wasn’t like work (and still often isn’t!) and I got to create amazing, fun campaigns every day, and feel really proud of the work we created. When work doesn’t feel like work, you really have it made.

These days I am solely a JavaScript developer, so no animation or timelines or such like, but all the hard work learning the foundations has really paid off. ActionScript, like JavaScript is also based on ECMAScript, so frontend / Node JS /  TypeScript is just an evolution really.

It may interest you to know that I have never had a full time job; I’ve been freelance since I graduated more than 20 years ago.

What does a typical day as a software developer look like for you?

My typical day depends on whether I am contracting or working on my own projects.

However, I tend to treat my own projects professionally, so I will be sitting in front of the computer using WebStorm, SourceTree, Chrome, DevTools, Terminal, and Slack.

In a project, GitHub’s “issues” will drive what you have to do; I generally write my own “tickets” and I make sure I know what the background / context of the task is, what the proposed work should be, and any notes or links.

I’ll then plan out the work as a few bullets if a small task, or a larger plan in WorkFlowy. I may also draw or sketch ideas, or if my own projects use Sketch or Figma to build graphic assets or UI mockups.

Of course I’ll be on Slack, Twitter etc as the day goes by, trying not to get too distracted by all the noise and discussions and shiny things.

Like any job you’ll be working to some agreed goal, and you generally own that vision (or your part of it) and aim to deliver the best work you can learning new things along the way, readying yourself for the next challenge.

I mentioned side projects, and often they will feed into any work I am doing, so it’s fairly typical for me to be working on several things at once, with multiple projects open at one time, pushing to GitHub or publishing to NPM or the like.

What was the interview process like for your first developer job?

Bear in mind I have always been freelance, so interviews will have been different for me (mainly because I need to be more skilled and they can also get rid of me more quickly) but I have interviewed in a fairly basic capacity and my advice would be:

  • Personality: just like any other job, be a normal human being. Remember these are regular people and as well as wanting to know if you are good, they will also want you to be someone they can work with on a personal level. So just relax, and think of it as a conversation!
  • Ambition: show enthusiasm but retain your honesty and integrity. If they ask you a question and you don’t know the answer, that’s OK! It’s much better to hear “I don’t know, but I’d like to know!” or “can you give me a hint?” than have someone ramble on.
  • Opinions: it’s great to have opinions, but being overly-opinionated when you need to work in a team is a massive red flag. Often you will need to work with technology or best practices which may not be your preference. I wish I had known this from the start and had been less stubborn and more adaptable sooner!
  • Research: it is nice when the candidate knows a little about the industry, company, or past projects. An interviewer may not ask you specifically, but if you’re fuzzy on what they do, or have no questions for them at the end, it can feel unprepared and the next guy/gal just automatically looks better. Often for companies it’s not about choosing the so-called best candidate, it can be about getting someone who’s good enough or shows promise.

If they ask you to do an interview project, the task will normally be quite specific (a form, a widget, a plugin) and will aim to reveal both your technical skills (HTML/CSS, UI design, state management) and how you think about a unit of work which – if you join – you may be trusted to carry out on your own.

Keep the following in mind:

  • Practicality: the best programming is actually boring programming. You may want to show off, but fancy code can make it difficult for other team members to work out what you’ve done or pick up on your code. Use your own judgement and express yourself, but remember they will be thinking “will this person’s code be intuitive or difficult to work with?”
  • Appropriateness: try to think about the work you will produce from the point of view of it being an actual “issue” and the code could go into the codebase. Imagine someone else made this and you had to build a feature on top in two months; would you look at it and think “this all makes sense, this was sensibly designed” ?
  • Don’t reinvent the wheel: as an inexperienced developer with bright ideas you will have likely invented ways to do things which already have ways to do them (see next point). Whilst inventiveness can be good, from an interviewer’s point of view, at this stage imagining 100% home-rolled code (vs a trusted, well-known library) being committed to your codebase is worrying. You will certainly be working with these kinds of libraries if you are hired, so best to prove you can do it in the interview. One example is form validation; there is probably a preferred library for your preferred framework out there, so find it, learn it, and demonstrate you can learn 3rd party code and work with it.
  • Best practices: if you don’t know what “patterns”, “standards” or “best practices” are, now is the time to ask someone. As per the previous point, they are generally well-known, documented ways of doing things. Certainly run your existing code past a more experienced developer first and have them point out where you maybe are missing “best practices” and where to go to find them.
  • Tidiness and tools: you will win big points if you present a project which has at least basic scripts and is linted and formatted using standard tools! It may not matter for certain interviewer types (as it can be taught fairly easily) but if a team is looking at a lot of applicants, it’s a way to demonstrate that you actually care about the code you write!

I realise that some of these points may relate more to intermediate developers, so look at this as a heads-up, a look into the future, but if you have the time, perhaps start looking at some Open Source projects on GitHub and see how these points compare.

No-CS-OK-screenshot-August-2021

Do you have tips for people who want to learn to code without doing a degree?

Find something that interests you and double down on that project! Hopefully you are already doing that. If not… coding may not be for you.

What are your career goals for the future?

I am working on something right now called Control Space which is a kanban style tabs organiser with a ton of features and best-in-class interactivity.

The clever bit is that the name is what it does but also the keyboard shortcut to launch it, so getting and staying organised in the browser should hopefully become second nature!

It’s been a bit of a long haul but hopefully launching soon; there is always more to do and finding the right balance of intuitive-enough vs complete-enough is hard for a perfectionist like me.Career wise, I may take on some commercial work this year and grow Control Space in the background. I’m not 100% sure what that would be right now, but ideally it would be something exciting, larger, or fast moving, perhaps building on my fairly extensive Fintech or Open Source experience.