Richard Ng
5 Key Takeaways from a 5 Week Code School
25/11/20193 Min Read — In Programming
Should I read this post?

I think that you are more likely to find value in reading this post if you are:

  1. Early on in a journey of learning about programming; or
  2. Thinking about taking on some Software Engineering Apprentices; or
  3. Interested in coaching/mentoring those early on in their developer careers.

I have recently delivered five weeks of training for some Software Engineering Apprentices, right at the start of their 18 month apprenticeship. (More context on this at the bottom of this post.)

Reflecting on those five weeks, I've come up with five key things that I hope my apprentices take into their workplace:

1. Resilience is key

Learning can be difficult, slow and demoralising.

The first time I seriously encountered a programming language, R, I remember having a really sustained period of time where I was not making any noticeable progress. It seemed possible that I was never going to be able to do anything.

There wasn't a magical 'click' moment where I went from 0 to 1 in a binary fashion, but, over time, there were a series of jagged steps forward where I began to get the hang of things.

Now, when I encounter something which I can't immediately figure out, I am able to trust that, with sustained concentration, effort and application, I will find a solution.

I've seen you all have those moments and you've all gotten through them - remember that the next time you have that "I'm never going to solve this" moment!

2. Error messages are your friend

I know it can sometimes feel like errors are total villains. However, they are friends who are trying to help you!

Sure, that doesn't mean that they are always very helpful. Some friends are better at helping you than others. Some friends will say one thing and actually mean something else entirely. We probably all have a friend who says "Meet there at 3pm?" and actually means "I will turn up no earlier than 3.17pm".

But over time, just as you learn to calibrate to things that your friends say, you'll learn to calibrate to these error messages. Stick with them and learn what you can from them.

3. Conventions are important

Your team will have certain conventions that they follow and are used to interacting with. Get onboard with these - your code will be more valuable to the company if it can be understood more easily by your teammates.

In the absence of a team convention, you can follow a style guide, such as the Airbnb JavaScript Style Guide.

4. Value clarity of your code

Consider the sanity of whomever might be working with your code in the future - this might be a teammate, or it might be your future self. They will appreciate it if they can work with code that is well-named, documented and laid out.

If you are finding it difficult to name something clearly, that might be because something in your approach is unclear even to yourself. Take a step back and break the problem down into smaller chunks until each chunk is very clear to you.

5. You own your development

There will be people around you - your teammates, managers and coach (hi, that last one is somebody like me!) - who will be investing time into you and your development, because they have a stake in you succeeding. Ultimately, though, you have the single biggest stake in your own success.

Self-belief is a predictor of success - believe in your own ability to develop and learn, and you will be more likely to successfully develop and learn.

You can do it!


At WhiteHat, we're building an outstanding alternative to university, starting with apprenticeships. Our Software Engineering Apprenticeship gets diverse talent into great startups and leading multinationals.

As a Software Engineering Coach, it's my great privilege to guide a diverse group of future leaders through bootcamps and their first jobs in coding.

We're one of Europe's fastest growing scale-ups - get in touch to learn about being a coach or taking in our diverse talent.