What I learned at Makers.
By: James Forster
Tags: Codingbootcamp, Bootcamp, Makers, Career Change, Coding

1. How to learn. But like, LEARN. Or, the first step is the hardest.

The pace of the course at Makers means that it can sometimes feel as if you are constantly hanging on for dear life. One week you’re looking at databases for the first time, the next you’re learning JavaScript, the next you’re building a full stack app in Rails.

Because the learning is self-lead, you are pretty much left to find the best way for you to develop the skills that you need for the week.

It taught me a lot about the way that I learn best, and I’ve realised that I often need to spend time thinking about a concept independently before I feel like I truly understand it.

For a lot of the second half of the course, we were working to a crazy tight deadline as part of a team to develop a lot of these apps and it sometimes felt as if it wasn’t until I was falling asleep later that everything would fall into place, and I’d finally realise just what the difference was between the Model and the Controller.

When you do actually know something, it always feel so obvious when it’s all settled and sorted in your brain. Before that, it just feels impossibly complicated and as if you could never hope to understand it. But it’s not! It’s like Makers always say, and it’s annoyingly true: it’s not hard, it’s new.

In some ways, the course itself gets easier as it gets harder. You get better at learning as you grapple with more complex issues.

Now that I’ve finished the course, I feel as if I could probably build anything! I would just need enough time to understand it.

Anyway, the big cheesy takeaway: there’s nothing you can’t learn.

2. I’ve learned much more than I think I have.

It’s so easy to feel as if you haven’t actually learned very much. It really is only when you stop and think about how little you knew only three months ago that the sheer amount of knowledge you’ve shoved in your brain is brought into stark focus.

Actually you know what, to make this easier on me just going to list literally as many things as I can in 5 minutes that I’d had no hands on experience with before I joined the course.

TDD/BDD

Agile XP

Pair Programming

Client/Server relationship

MVC structure

Rails

Express

PostgresQL

JavaScript

JS Objects

Immutability

Gem/NPM

Debugging practices

Flow of control

Node.js

Dependency Injection

SRP

Separation of concerns

Fundamental data types

DRY

Object Orientated Programming

Domain Modelling

Polymorphism

How HTML/CSS actually work

work Sinatra

Rspec

Jest

Jasmine

Capybara

The DOM

JSON

Heroku

API’s — Google Sentiment Analysis, Image Analysis, Spotify

Env variables

Class inheritance

Algorithmic complexity

How to really work as part of a team

work as part of a team And a plethora of different functions, methods and ways to solve problems.

There’s probably a bunch of stuff I’m missing, but how cool is that! I’ve never learned so much in such a short space of time. I never would have tried to unless I had been on the rollercoaster that is the course.

3. I can do this!

There are so many points during the course where things can feel overwhelming. Of course they do! I was going from being a relative code novice who struggled to get his head around the idea of a hash in Ruby, to navigating the complexities of a full stack application at the end of the course.

Someone told me that:

Being a software developer is being paid to be frustrated.

That really stayed with me. You are paid to sit in front of a problem until it’s solved. There is always a way to solve a problem, even if it means reframing the question.

But that doesn’t stop problems sometimes feeling like they’re unsolvable. Luckily, you are in a cohort with a bunch of other people in the same boat as you, and there’s a load of understanding and support there.

The coaches are there to help guide you in the right direction without giving you the answer for free, and that really does help you develop the muscle of stubbornness. I think that’s an incredibly important muscle to develop as a developer.

Working remotely can sometimes feel a bit isolating.

Chances are we’re going to be working remotely for quite a while to come, so it’s really good to have a few months effectively working as a developer in those conditions.

It really makes me realise how important it is to reach out if you are struggling, if you need a sounding board for ideas, or even if you are just stewing in a pit of frustration and you want to have a rant at someone about how dependency injection as a concept is the most annoying thing in the world and it should take itself off into a hole and start decomposing, swiftly.

(I actually wrote a little thing about dependency injection after I’d figured it out to help me understand it — something that is super useful).