Got a job in London

This week I accepted a Junior Developer job at a very cool creative agency near Old Street in London. It’s the culmination of over two years of work (on and off) and I’m extremely excited to begin this new chapter in my life with so many possibilities.

My Background

I’m 31, have a History degree and work in the advertising industry in London. Mostly sales, but with more of a recent focus on project management of branded content partnerships (videos, photography, articles, social media, TV etc). I’ve worked for some really cool companies and brands on some really interesting projects, but I’ve been unhappy with my careers for a good couple of years, and have always wanted to do something more technical and intellectually rewarding.

Learning

I started with FCC a couple of years ago, but went through a couple of spurts where I’d consistently progress for a few months before life got in the way and I’d stall and do nothing for months. This summer I really sat down and pledged to dedicate myself to programming and it’s now finally paid off!

I followed the set course on FCC for the Front End Cert before branching off by myself. A few bits of advice here.

  • Get off Codepen as quickly as you can. Learn git, learn the command line, learn how to structure a professional looking front end project, learn gulp or grunt, learn how to manage dependencies with npm, learn Sass, get your projects hosted on GitHub pages. None of these skills/technologies are especially complicated to learn, they will make you far more attractive to a potential employer and will very likely be skills you’ll be using on the job. One of the biggest reasons I was able to speak confidently about my abilities in interviews was because I had made the effort to learn and use the modern front end eco-system in a reasonably professional way.
  • React isn’t hard to learn (as much as it might seem hard on first glance), it looks great on a CV, and is massively in demand right now. I didn’t find FCC that great for learning React (this may have changed with FCC Beta?) - but this is a good place to start - https://www.udemy.com/react-redux/learn/v4/overview
  • Be consistent. I set myself blocks of time every day in a calendar to learn and build projects and most weeks was working 25 hours or so outside of my 9-6 job (waking up at 6am to study for a couple of hours, studying in evenings and weekends). Be smart and fit study time around your life in a way which is sustainable for your own circumstances.
  • Codewars - this is a great way to learn JavaScript fundamentals and really stretch yourself. Do it as much as you can, while realising that it is your projects which will get your foot in the door for an interview.
  • Structure your learning. I went through job listings early in my learning path to list out the technologies that were most demanded by employers and built a plan to learn and showcase most/all of them in projects. Having 90% of the technology boxes ticked against a job description makes it much easier for you to get that interview. Tailor to local market conditions.
  • Find other developers or people learning to code to chat to. I’m lucky to know quite a few people in tech (ranging from junior to senior devs, product owners, systems architects and tech managers) who were invaluable in helping me with problems, keeping my morale up and providing advice. Speak to as many people as you can!

Applying to Jobs

  • People saying job boards are worthless are talking nonsense. Yes, your strike rate will be very low, but who cares when you can apply to scores/hundreds of jobs extremely easily. A good CV and resume template which you can tweak slightly for individual job applications will allow you to apply to jobs very quickly and easily. Why not get your CV out there as much as you can and see what the reception is?
  • That being said - leverage your connections and try to speak to hiring managers directly. Cold call them if you have the confidence, and send them speculative emails telling them briefly about your experience and what you could offer their team. This is my sales background coming in handy, but the reality of job hunting is that you are selling yourself, so act like a salesperson. Don’t wait for opportunities to come to you, be proactive. The worst that can happen is a polite email saying “No thanks” or you get ignored. No big deal.
  • London specific - in my limited experiences, this is a candidate’s market. I started searching on January 4 and got my first offers on January 15. I ended up with 4 offers, removed myself from contention prior to final interviews for 3 more companies, and had to turn down numerous other interview offers.
  • Emphasie transferrable skills. I have no technical professional work experience or qualification, but interviewers still found a lot of value in my professional background and skills (relationship building, presentation and communication skills, project management, other sales abilities) and this helped me a lot in getting interviews, succeeding in interviews and negotiating. Don’t think your non-technical skills have no value as a programmer!
  • Don’t only apply to junior positions. Most of the jobs I interviewed for were advertised as mid-weight positions. Plenty of companies will be open to looking at juniors!

Interviews

  • Almost all companies required a take home technical test. These varied from multiple choice front end technical questions, to building a simple front end responsive homepage, to building more complex applications using data, AJAX calls, building in interactivity etc. If you get a take home project - make sure to comment as much as you can, document the challenges you faced, things you’d improve, additional features you could include and so in with the readme.
  • In general interviews, this is the message that you want to get across - “I am passionate about coding, I can problem solve effectively, I have a hunger to pick new skills and develop existing ones, I’m open to new challenges and new approaches, I can communicate clearly about what I’m doing and when I need help.” This is what companies want from juniors. They don’t care too much if you don’t know the exact name for an inbuilt method (I forgot what Math.random() was called in my final interview :joy:), but they do care that you can think your way through a problem and that you have an ability and method for finding out how to do something if you don’t know it.
  • Interview them! I probably spent more time asking employers questions about their team, what they wanted from a junior, what their tech stack is, how success is measured, what I’d be doing etc than they spent interviewing me. You really want to make the most informed decision possible about the company you’re going to work for, so probe them. Interviewers like this - it shows you have real interest in the role.
  • Be patient. Don’t just take the first role which is offered to you. Figure out what you want from a role (technologies, progression opportunities, education opportunities, access to senior devs and mentors, salary, commute time, work culture etc) and make an informed decision which compares these factors. My main decision factors were (in rough order) - access to senior devs/mentors, technology, progression opportunities, salary, and I’ve been very lucky to find a role which ticks all of these boxes more than I thought possible coming into this search!

Thanks to FCC and @QuincyLarson for building such an amazing platform for people to learn, build a community and spread the message about the possibilities of learning to code without having to spend many tens of thousands of dollars on university courses or expensive bootcamps.

52 Likes

Well Done Mr James!

Very Inspiring story, thank you.

My Plan is to start applying for jobs by end of May.

If you can, can you please tell me which language was the hardest for you to learn?

Tom

If you can, can you please tell me which language was the hardest for you to learn?

Redux has a pretty steep learning curve, but once you can wrap your mind around the way data flows then it’s not too bad. None of the languages are particularly hard to learn, but certain aspects of them will always be challenging or difficult, and you’ll always be learning something new about them. Working on the fundamentals of vanilla JavaScript (not jQuery!) is one of the most important things to be doing in my opinion.

1 Like

Congratulations! Thanks for sharing all this actionable advice!

When you get a chance, please take a look at https://beta.freecodecamp.org/en/map and let us know what you think of the new React and Redux challenges. We’re getting very close to shipping these and hundreds of other new coding challenges.

Also, are you on Twitter? I’d like to add you to the #DevAfter30 list.

5 Likes

Hi James, congratulations and thanks for sharing!

How did you go from 0 to 25 hours of coding per week? Did you create a specific planning for the weekend as well? I’m doing coding-related activities 17 hours a week now and increasing 30 mins each week, but it’s becoming more and more challenging, commuting and work take away 10-11 hours of my day. It’s becoming difficult to have time for leisure activities.

How did you pick which Katas to do on Codewars?

Cool! I’ll check out the React/Redux courses when I get the chance. I’ll definitely be using the new Beta platform for some of the courses - Data Vis (I’ll be working with D3 in my new job), and testing especially. It’s looking great!

I’m on Twitter and happy for you to add me to the list - my Twitter is @JamesRiall. That and other articles about that topic really put my mind to rest about the age thing.

1 Like

I tried to create a specific plan for the weekend yes. Block out time you know you can commit to around work/family/social commitments and stick to it. 25 hours a week would typically be something like this (example week with one morning before work off and two weekday evenings off for social/girlfriend/family/work event)

Monday - 2 hours before work, 2 hours after work
Tuesday - 2 hours before work, 2 hours after work
Wednesday - 2 hours before work
Thursday - 2 hours before work, 2 hours after work
Friday - 2 hours before work
Saturday - 5 hours in the morning
Sunday - 5 hours in the afternoon/evening.

Plus I’d often do an hour of CodeWars at lunch during the week.

I’m helped by the fact I’m an early riser and had a short commute, so I could do 2 hours before work most days and do something like 7am-12pm on weekends and still have a fairly balanced social life, make time to spend with my girlfriend, exercise etc. I definitely had to scale back my leisure time during this period though. Part of committing to this is making those sacrifices though, and to be honest, it often didn’t feel like a sacrifice as I actively wanted to stay at home to code.

CodeWars I just stuck to one level until I felt like the challenges were becoming too easy at which point I’d progress to the next level. I got to the point of feeling like most 6kyu were easy for me to complete, and completed quite a few 5kyu kata. By the way, the best approach I’ve found to solving CodeWars problems can be read about in an article by Haseeb Qureshi here (Step 2: Prework section). Essentially, don’t just plug away at the algorithms for ages if you’re completely stuck - look at solutions, figure out how they work and then try to engineer yourself blind. It’s a fantastic way to learn quickly and understand new methods and techniques. Far better than spending days stuck on the same problem going nowhere.

9 Likes

Geez, 25 hours a week? And here I’ve only been doing 1 hour per night. I think I might burn out on your schedule. Congrats though.

1 Like

Congratulations @JamesRiall - it’s so cool to see someone about my age from the UK make the transition. I’m fanboy-ing you big time (follow++).

Your website jamesriall.co.uk isn’t opening. I want to inspect, learn and applaud!

I live in Bristol and there is am established and fast-growing tech scene here. I don’t want to watch from the sidelines forever. You’ve inspired me to plan my days better to get my coding in first thing #bae!

Thanks for sharing your story and best wishes.

Jay

I think this is the key part…

Congrats on new job!

1 Like

Good job @JamesRiall!

Do you mean using Vanilla JS for DOM manipulation instead of jQuery?

The website is currently down as I’m rebuilding it, sorry! Will be back up fairly soon!

1 Like

Exactly. Most of the jobs I interviewed for wanted me to demonstrate that I had knowledge of writing applications in Vanilla JS (DOM manipulation, AJAX, styling, events etc) rather than using jQuery. There are a few reasons:

  • Businesses are moving to use jQuery and more and more you’d only use it on legacy applications/projects.
  • Employers want to know that you understand the fundamentals of the language and what is going on underneath jQuery’s syntax and functions. Using jQuery excessively can easily become a crutch inhibiting deeper understanding. Knowing JavaScript deeply will allow you to pick up other frameworks and libraries really quickly. Only knowing jQuery will not provide the same benefits.
  • jQuery is a large library that can cause slow load times of large applications in production and many companies are moving to frameworks/libraries like React, Angular and Vue in which direct manipulation of the DOM becomes an anti-pattern.
1 Like

Congrats London is a great city which I wish to visit once in my life time at least.

Some updates and observations after about 4.5 months on the job.

  • Imposter syndrome is a bastard. It’s getting better as I know more and am more confident in my ability to solve new problems, but it’s still very real.

  • Unless you’ve worked on big, collaborative projects before, git is going to kick your ass for a while. Merging, rebasing, branch management, cherry-picking, fixups etc were all foreign to me from working on personal projects. I sucked for the first month or two, but am really confident now - it just takes a while of working on projects and taking the time to understand what the hell is going on the more complex (but extremely important) commands like rebase.

  • I’ve been put onto building some pretty cool projects very quickly. I built this site by myself within the first month or so (Hugo static site generator and vanilla ES6) - http://cfainstitute.ft.com/, I re-skinned this event site for Google’s presence at Cannes Lions (Angular JS and Google Closure library with Jinja templating) - https://cannes.withgoogle.com/, I have done a lot of work on some big Google marketing sites and am just finishing up a really cool interactive game site for a huge pop star which used Angular 6 on the front end, something I had absolutely no experience in before.

  • It’s been a blast so far and I’ve learned a ridiculous amount in a short period of time. It’s crazy to think about how far my knowledge has progressed in this time. It’s been really, really hard work, but if you put in the time, and most importantly have an open mind towards really understanding the new technologies and processes which are thrown at you, then it will be a really rewarding experience.

  • I’ve benefited a lot from finding a company which has some great devs and really supportive management. I get extremely useful feedback in code reviews, can always ask for help if I’m really stuck or need advice, and get given tasks which are going to stretch me, but not be too crazy that it’s just impossible for a self-taught new dev. I’d definitely recommend taking the time to find a company which will be supportive and a great place to learn.

3 Likes

This is so inspiring, thanks for sharing your story. I myself just finished a long-pending bachelor’s degree on Computer Science but I feel completely lost (this has to do with some personal depression struggles throughout the years). So, I’m just reigniting my passion for coding and web development. My aim is to start fresh here in FCC, and jump into more interesting stuff in Udemy, trying to create some projects and a portfolio along the way.

I hope your life keeps on getting better! :slight_smile:

1 Like