What I did after I completed the Launch School Core Curriculum

Olly Chadwick
8 min readOct 7, 2019

--

In August 2019 I finished the Core curriculum at Launch School, quit my job, and began the final phase of my quest to become a web developer. This blog sets out what I did to try and get my first job.

I think this is a pretty typical period for people looking to get their first coding job. They finish some sort of formal programme like a boot camp, then they start pulling together everything they’ve learnt, building a portfolio of projects and applying for jobs. Hopefully this post will be helpful for others in similar situations, coming out of Launch School or similar programs, and looking to get their first software jobs.

Launch School’s Foundation

Launch School is an online school that teaches full stack web development for beginners, with a real focus on learning fundamentals. You can learn more about their pedagogical approach here. I strongly recommend the programme.

Launch School provided a great foundation for my career change. I had completed the course over 2.5 years part time, and now felt ready to start looking for a software job. From completing the Launch School curriculum, I had a good background in a number of key web development technologies (Ruby, SQL, HTML, CSS, and JavaScript).

I also had a good understanding of a lot of the fundamentals of how the web works, such as:

  • The Document Object Model
  • The theory behind relational databases
  • HTTP and how the internet works

What I thought would probably set me apart from other boot camp graduates though was countless hours I had spent working through coding challenges, and taking a structured approach to solving problems through code. This focus on problem solving systematically is one of Launch School’s secret weapons.

Essentially, I thought I was ‘job ready’, but I just had to prove it. My definition of job ready is someone who can build a functioning web application from scratch. Consequently, I felt pretty confident that I would be able to get up to speed on any new languages or frameworks that an employer was looking for.

But how could I prove this to sceptical recruiters?

The jobs I was going for

It’s worth saying that I was very tempted to apply for Launch School’s Capstone programme, but decided it wasn’t for me. Capstone is a programme for people applying to jobs at top software engineering firms. This is why it’s a requirement for Capstone that students are able to carry out their career search in NYC, SF and a handful of other global tech hubs.

I do live within commuting distance of a global tech hub: London. However, I had just quit a job in London (an hour’s train ride away) in order to find a career closer to home!

I was really looking for a job in my home town of Brighton in the UK. There are a load of great tech companies in Brighton, but these are mainly smaller firms and agencies. No Google, no Facebook.

This meant that what I was looking to learn was quite different from the Capstone curriculum, which is more focused on algorithms and system design. I decided to focus on getting a good understanding of front end and back end technologies and start building some real projects.

Front end or backend?

At this stage I was reasonably agnostic between being a front-end or backend developer. I knew that my favourite part of web development was structured problem solving. I also knew that I hadn’t enjoyed trying to achieve pixel perfection with HTML and CSS, and have never shown much talent or enthusiasm for design. However, I also knew that there was a lot of client-side logic in modern web development, so at this stage I decided to keep my options open.

Having been led by the hand through the world of self-learning with Launch School, I was now out in the world on my own, with a baffling number of things that I could try and learn. What was my best next step?

Building a piece of CRUD

I had heard a lot of criticism of boot camp graduates that their projects are simply CRUD apps. However, whenever I heard this, I always felt a bit of a fraud, as I didn’t feel that I had actually built a CRUD app myself. At least, not one that I had planned out and built from scratch.

While the Launch School programme involves a number of projects, these tend to be discrete projects designed to teach you a particular skill. For projects in the backend courses, the HTML/CSS and JavaScript are often provided for you. For projects in the frontend courses, you’re provided with an API to interface with. However, there is often quite a lot of complexity in bringing these different pieces together. I felt like I needed to build my own projects from scratch to be able to talk about at interview.

My first objective was to build a CRUD app. If I could complete this task, then I could move on to do some more complex things.

My first web site

My first site was a New Year’s resolution tracking app. I’d had this idea for years that this would be a good first project. Tracking It was classic CRUD stuff, getting a bit of data from users, storing it on the server, and then making it available again to others.

A few years ago, I had attempted to track my friend’s progress against their New Year’s resolutions manually. Each month I had emailed them to get updates on how their resolutions were progressing, then I had emailed a spreadsheet containing all these updates around the whole group. This was quite a lot of work, and at the time I wished I had a website to automate it all for me.

I decided to use a front-end framework to speed up the development process. I chose Vue.js as it seemed the easiest to learn for someone new to front-end frameworks.

I implemented a serverless backend in Google’s Firebase. Firebase is kind of a ‘Paint-By-Numbers’ API, which makes it really easy to interface with a database from the front end. The site had a number of features: it required user authentication and sharing data between users depending on their relationships (the ‘teams’ they had signed up to). You can see a version of this project here.

Having completed this, I had something to put on my CV, but it was still looking pretty flimsy.

Do you need to learn a backend language?

Coming out of the Launch School front end programme, and having mainly programmed in JavaScript for the past year, I was keen to learn a dedicated backend language.

In my local area, it seemed like the most commonly requested backend language was Python. I had learnt Ruby in the first half of the Launch School curriculum, but my knowledge of the language was now pretty rusty (click here for an account of my journey through the Launch School curriculum). I thought it was better to try and learn Python and the Django framework, rather than attempting to get back into Ruby and picking up Rails.

It’s an interesting question though as to whether people in my position need to be proficient in a backend language.

One option would have been to double-down on JavaScript, and build everything in the backend using Node and Express. I was keen to have more than one string to my bow though and, especially as I wanted to specialise in backend development, I chose to learn a dedicated backend language.

With a few weeks hindsight, I don’t think this is necessary. I could easily have proven my backend abilities in JavaScript, and shown that I was willing to learn any dedicated server-side languages on the job. There is a very good chance that I’ll spend a while learning Python/Django, then get a job where they expect me to work in some other language completely.

Chris Lee (Launch School’s founder) talks about ‘Just-in-Time Learning’ as a model for how developers should focus on what to learn. Essentially, learn the fundamentals that will be necessary for your chosen career path, and everything else pick up as you need it. You want to be proficient enough in the principles of web development that you can quickly pickup any libraries or frameworks and get them working.

Focusing on the backend

For my backend project, I decided to adapt a project that I had created while in Launch School. I had already created the frontend of a simple Todo list app in Vanilla JavaScript. When I had first built the frontend, it had interfaced with an existing API. So my task was to recreate this API using the Django web framework. You can see a working version of this project here.

I now have two projects, using a range of different technologies, that I had built from scratch and could talk about. I now felt ready to start applying for jobs?

Will this be enough? We will have to see.

What I haven’t done (but would like to)

The last couple of months has actually felt like something of a mad scramble to get some working code online, so I’ve not felt in the position to take my time and do some broader learning. This is a real shame, as I’m sure it will be a long time before I have another opportunity to spend time doing open-ended learning like this.

I haven’t been working on my problem-solving chops through Codewars challenges Nor have taken the time to learn some broader computer science content. I hope to solve these issues in the weeks to come. I’ve bought a couple of books that I intend to read through.

  • “A Common Sense guide to Data Structures and Algorithms” by Jay Wengrow
  • “Clean Architecture” by Robert ‘Uncle Bob’ Martin

Next Steps

This blog post has essentially laid out my opening strategy. But the strategy hasn’t been battle tested by a job search yet. I’m sure I’ve made a lot of missteps, and that when I start getting feedback from recruiters, I’ll realise what I’ve been doing the wrong. Once I’ve completed my job search, I’ll write a follow up blog post setting out what worked and what didn’t. Watch out for that.

Other bits and pieces

  • I reviewed the entire LS curriculum. I’ve written a series of blog posts on this project which you can find here.
  • I built my own personal website, to list my CV, a few blog posts, and the projects that I had built.
  • I started assiduously networking, joined a local co-working space and infiltrated a few local regular technology meetup groups. This has proved really useful in getting contacts at companies where I would like to apply for jobs, and getting a sense of where the best places to work are.

--

--