How to prepare for Le Wagon coding bootcamp

Tweet Vote on HN

So you did your research, compared every coding bootcamp option under the sun and finally decided to attend Le Wagon and you are feeling pretty excited and a little bit scared for what’s to come.

Now that you decided to invest your time, money and effort for 9 weeks or more (if you chose part time) doesn’t it makes sense to take full advantage of the experience?

In this post I will be sharing some tips to prepare for the amazing journey you are about to start.

If you follow all these tips you will become better at problem solving and that’s the #1 skill you can have as a programmer.

Generation photo

Learn Ruby’s basic syntax

Here’s a piece of advice that some student’s have told me they wish they had known sooner: Focus on learning all you can about the basics of Ruby.

This is because 80% of the program will be about learning programming using Ruby.

If you don’t have programming experience or a technical background this is even more important for you.

You’ll need to work harder than other more technically minded students to force the ‘programming way of thinking’ to come and you will only achieve that with DAILY practice.

That means that you should really strive to learn the syntax and the meaning of all those weird words used to describe the language.

By now you should already have completed the Codecademy Ruby tutorial and learned about the fundamental building blocks of Ruby:

  1. Data types: Booleans, Strings, Integers, Floats, etc.
  2. Data Structures: Scalars, Arrays, Hashes.
  3. Logical operators: (&&, !).
  4. Conditionals: (If, Unless, cases, elsif).
  5. Loops (while, until, #each).
  6. Common string methods (#upcase, #downcase, #capitalize, #to_s).
  7. Common array methods (#each, #map, #select).

This is not to say that you should know every single thing but you should AT LEAST know just enough to write properly without missing an end or forgetting that a string has to be written between quotes 'this is my string'.

It will be extremely important that you learn the vocabulary and the right naming conventions because you will know how to properly google and find the right solution a lot faster (more on that later).

Why do I need to learn this stuff beforehand, isn’t that why I’m going to the bootcamp?

Remember that this is a bootcamp. A highly intensive fast pased course where you’ll learn hard concepts in one day that colleges teach in 6 months.

You will be going to the bootcamp to learn how to write an essay not to learn the vowels.

This means that you should come prepared and ready because you don’t want to be stuck in the learning to read and write phase but in figuring out how to solve problems using what you learned.

Take responsibility for your own learning

I’m about to tell you something that might sound hard:

Le Wagon’s teaching staff is not there to teach you how to read and write basic syntax or think logically.

They are there to guide you through the program by explaining hard technical concepts in a clear way and then helping you when you are stuck on a challenge that you already analyzed and made an effort to solve.

Adjust your expectations accordingly because the teaching staff will not be acting as your private tutors nor will they solve your everyday challenges for you.

Having said that, you should try hard to study and learn the concepts that they teach on your own. Because now more than ever you will need to take your education into your own hands.

The best way to do that will be to pay attention during the lectures, listen to the teacher, take notes and ask all the questions that you can even if you think they are silly.

I’ll bet that most of the other students will have that question too and you’ll do them a favor by asking it!

After all of that is done be honest with yourself and keep programming.

The only way you’ll start to improve is by coding a lot! Experiment and stop fearing the terminal. Try things on your own and fill in the gaps that you might have after going through the lectures and challenges by investigating more about the topic at hand.

Know your learning style

It is important that you know yourself and your preferred learning methodology.

Are you someone that needs to see what’s happening? Search for a video on the fundamentals of the language.

Do you prefer to learn by reading? Try to search for the most recommended book and practice with it.

It really doesn’t matter as long as you go through it fully and it has practical exercises and examples.

After finishing it you’ll be way ahead and ready for the challenges and exercises that the bootcamp curriculum will throw at you.

Here are some great resources:

Challenges to keep practicing every day

  1. exercism - This platform has a lot of Ruby of challenges (I would recommend one every day before you arrive).
  2. HackerRank - Another good challenge platform
  3. RubyKoans - Great challenges for advanced practice of fundamental Ruby concepts.

Great blogs that explain hard concepts clearly

  1. Rubyguides
  2. Ruby learning

Video explanations

  1. Ruby tapas

Learn to google

Programming is built on the shoulders of giants. Almost every error that you’ll find has been already solved.

That means that the solution to any of your coding problems is about 3 google search terms away from being found.

It’s your job as a beginner to learn how to google the error messages and find the solution.

It’s also your job to understand Stack Overflow answers and read them properly before trying to blindly copy and paste code to solve your problem.

An example

Let’s say I run a command and get the following error:

 /Users/ignacioaal/.rvm/gems/ruby-2.7.0/gems/rspec-core-3.8.0/lib/rspec/core/reporter.rb:229:in require': cannot load such file -- rspec/core/profiler (LoadError)

What would you copy into Google?

If I paste everything, the custom part (the one that specifies my username and ruby version) /Users/ignacioaal/.rvm/gems/ruby-2.7.0/gems/rspec-core-3.8.0/ will limit my search possibilities by trying to search not only for my Ruby version but for my same username!

require': cannot load such file is too general. Lots of different error messages could contain that text. So what should we google?

The best part of the error message to use is require': cannot load such file -- rspec/core/profiler (LoadError).

You probably will get better search results from it than just copying everything and trying to solve your problem that way.

Anatomy of a Stack Overflow question (and answer)

So let’s say that I’m searching for the difference between a 'string' and a :symbol in Ruby.

Since I’m trying to improve the way I search for answers my search query will be:

Google results

whats the difference between a string and a symbol in ruby And as you can see the first result is from Stack Overflow the biggest yahoo answers like website but for programming questions.

So if we go to the website we find this: StackOverflow image

The first part is the title of the question. Then you’ll have a body describing the gist of the problem.

Notice the green checkmark meaning that the author of the question solved her problem with that answer.

Most of the answer’s that you’ll find will not have a checkmark so you should look for the number of votes that the answer has (the number between the up and down arrows/triangles to the left).

Be very careful when choosing the code that you’ll try out and make sure that it is actually solving your problem.

Again:

don’t blindly copy and paste stuff without understanding it first!

Error messages are your friends!

As a developer reading error messages will become your everyday job.

Stop feeling bad about an error screen and start to pay close attention to the format and the way the error is being displayed, bonus points if you learn about the ruby call stack.

You should strive to improve the way you read error messages. If every time you get an error you feel anxious you are doing it all wrong.

You need to change your perspective:

Every error message is a new insight about how you can improve your coding skills by learning something new.

For example let’s say I have this code:

bands = ['The beatles', 'The killers']
bands.upcase!

And when I run it this is what’s being returned: Undefined method upcase

Don’t go and ask someone just yet. Read through the error message. Embrace the anxiety and convert that into curiosity.

The error is telling you the key: undefined method upcase! for :Array. That means that you are trying to use a method that doesn’t exist on that class.

.upcase is for Strings! So how would you fix that?

You need to use .upcase on an actual string. That means that you could first select a string from the array and use the method, like this:

bands[0].upcase!
=> 'THE BEATLES'

Remember that before you get anxious you need to stop and pay close attention to what the error message is saying. Analyze it and get the insight!

Learn to be a great team member

You’ll be working with a ‘buddy’ everyday trying to solve code challenges together and that’s a necessary part of the program that will help you tremendously afterwards.

If you want to work as a Software developer your first 3 months will be mostly spent pair programming with senior devs.

Imagine that you really studied and nailed the job interview just to arrive and be bad when working with another dev!

That’s why you’ll need to embrace the chance to work with another person and try your best to help and solve the challenges together.

I must also remind you that there’s no space for people who are loners or rude towards other people on the program. You need to realize that whatever your goal might be, it will be impossible to achieve it on your own.

You need to have a good attitude towards teamwork and cooperation. So strive to develop your skills:

  1. Read the problem together, analyze it out loud and plan a solution too.
  2. If you are both breezing through it maybe start coding it on your own and agree on a time limit where you will have to stop and explain the solution to each other.
  3. Don’t let your buddy fall behind! Try to be as helpful as you can and explain.
  4. Be a good buddy too, Be helpful even if you think you don’t know what to do at least try to search for the methods or topics you need to solve the problem and offer a solution.

You could also start to practice thinking out loud when solving your own challenges and thinking about coding problems in preparation for the interactions that you’ll have.

There’s a term called rubber ducking. It’s a way to solve challenges by explaining each line of your code out loud to a rubber duck.

3 rubber ducks in front of a computer

You won’t need to get the rubber duck because you’ll be paired with someone else every day so you better start practicing those coding explanations ;)

Get good at problem solving

The more you program the more you will start to think logically and the only way to get good at this is to solve problems everyday.

Analyze them, write them down, break down the big problems into smaller pieces and start solving them in order.

Write everything down

When you go out to the real world you won’t have teachers guiding you through challenges. You’ll have google and your busy coworkers who probably don’t want to explain that error message solution to you for the 6th time.

So write everything down! Part of your job will be to document what you implement and it is really important that you start instilling the habit of writing all that you are doing for future reference.

I personally have a Notion.so Everyday notes book where I write all the things I need to do and before I start to code I usually break everything down into smaller steps, this is how some of it looks:

photo of my notes

You’d be amazed at how much faster you’ll be solving your challenges if you write everything:

  1. What you need to do.
  2. How you think you need to do it.
  3. What problems you find and how you solve them.

And also it will be extremely handy for when you need to go out in a rush and come back to work. Your notes will remind you where you stopped and you can continue without wasting time trying to remember why you wrote that weird line on line 49.

Take a break!

Ok If you got to this point you are probably really serious about your upcoming bootcamp experience and want to make the most of it so congratulations!

Remember that learning to code is hard. So you should take some breaks in between learning sessions to prepare for it.

Enjoy the process I promise that if you give your all it will be one of the best experiences in your life!

Tweet Vote on HN

Join my newsletter

If you want to receive my latest essays and interesting finds subscribe to my list: