What’s your goal for learning to code?

Forget hype, FOMO or rewards and ask yourself the right questions.

Boris Paillard
Le Wagon
6 min readDec 21, 2017

--

Students learning to code at Le Wagon

I tried to learn to code on my own back in the days. I was a fresh grad from a good engineering school, not too bad at mathematics, so I just decided to learn to code, like I would have decided to learn quantum physics, without very clear goals.

I didn’t know what I should learn exactly or where to start. I ended up doing a a bit of HTML/CSS, a bit of Rails reading Michael Hartl’s book, a bit of machine learning on Coursera, a bit of SQL, a bit of everything following friends’ recommendations. Of course, I had the wrong approach because I was trying to reproduce the pattern I was following at school:

  • You select a topic (like quantum physics or mechanical engineering).
  • You start studying it using books or online until you grasp core concepts and you can nail exercises and exams.
  • Then you get a good grade 🥇 from your teacher or a green test ✅ from your tutorial and you feel happy, like a dog getting treats.
Why we learn things at school? Truth is: often to get rewards…

This very scholar approach is terribly frustrating when it comes to programming or hands-on skills. Here is what happens when you start applying it:

  • You complete a Python online course or read a book about Ruby on Rails.
  • You understand the main ideas and concepts.
  • You solve the coding exercises of your book or you get a green test on your online tutorial ✅
  • Then what?
  • Well, you realise this is not school anymore 😅 No one cares about candy.
  • At some point, you just give up because you can’t seem to connect the dots and don’t grasp the big picture.

Seven years later, I am running Le Wagon, one of the most recognised coding bootcamps in the world, present in 27 cities, with an amazing community of 2000+ alumni. So it begs the question.

What was the learning switch for me?

Code is here to build products and solve problems

At some point, my friend Mathieu, one of the initial co-founders of Le Wagon, asked me to code with him on side-projects. This guy was always learning stuff with a very clear objective in mind. At that time, Mathieu was for instance trying to collect data from mobile text messages to build interesting visualisations (working on TxTo).

So I gathered a bit of my scattered programming knowledge and started working on side projects with Mathieu. From then on, I learned much more and much faster. Most importantly my learning goals switched! And I realised one thing. You don’t learn to code to play with the latest technology, grasp difficult concepts rewarding for your ego, or learn weird syntax and shine at cocktail parties.

Learning to code is not an end in itself, just a mean to solve problems.

Obviously many developers like Le Wagon’s CTO Sebastien have been driven by this philosophy since their childhood. But for me as a coding beginner without a real goal or passion, that was an incredible discovery. Since this day, I’ve decided to focus on teaching programming the best way I can to make people build useful products and solve problems. That’s where Le Wagon comes from.

Nowadays, when I read all these posts about “Which programming language is the best?”, “Which technology you must start learning?” or “Which tech program will get you a 6-digit salary?”, I just feel this is introducing hype, FOMO, rewards, and wrong incentives for coding beginners.

So here are some insights I wish I had when I started learning to code. Maybe that would have accelerated the switch of my ”learning goals”.

You will get lost without concrete goals…

Programming, data-science, web-development, UX design, product management, growth marketing, AI, machine-learning...

There are tons of “tech stuff” you can potentially learn.

Python, ruby, PHP, JavaScript, C++, Rails, node.js, HTML, CSS, React.js, d3.js, etc…

There are tons of languages and technologies you can play with.

edX, Coursera, Freecodecamp, Codecademy, Treehouse, Udemy, Lynda, Udacity, not to mention hundreds of coding bootcamps worldwide

There are tons of ways you can learn all this.

Even experienced developers get lost

A lifetime is not enough to learn all this. So it’s just normal if you feel lost (even anxious 😱😱😱) and ask yourself questions like:

  • What technologies and skills should I learn exactly?
  • How can I learn it properly? Where should I start?
  • What’s the best option (online, offline, part-time, full-time)?
  • Can I find a job after doing this or that program?

Well, maybe you’re just like me when I started to learn programming. You haven’t set the right goals for yourself. You’re distracted by hype, FOMO, rewards. So take a step back. Forget “what’s best”. Forget “what’s hype”.

Focus on what’s driving you.

  • Do you want to play with data? Predict trends from political tweets, detect patterns from airport flight schedules, recognise shapes from pictures, extract feelings from email, etc…
  • Do you want to build tech products solving people’s problems? SaaS applications to invent the future of work, new social platforms, tools to disrupt finance, politics, transports, education, etc…
  • Do you want to join Google as a software engineer? Optimise SQL queries, develop advanced infrastructures for scalable applications, etc…

Either way, learn about it earnestly. There is no shortcut.

Whether you go the data, the product, or the engineer way, there is no shortcut.

Learn the basics. And learn it to the fullest.

For instance, if you focus on web-development, learn to build a robust web application applying good coding practices, whatever the underlying language you choose (ruby, python, javascript, etc…). Learn this honestly before you decide if you want to build a 10 million user real-time mobile game or become a React.js expert because a friend told you it’s swag 😎.

What you want to build, what you should start learning.

For instance, let me describe the way we articulate the first weeks of our coding bootcamp at Le Wagon:

  • We first teach students to write one-file scripts manipulating data. Doing so, they understand core programming concepts like variables, loops, methods, assignment, file parsing or storing.
  • Then we show them how to create software by splitting the code in different files, each one having a specific responsibility in the software (modelling the data, injecting information in the user interface, routing a user’s request to the correct piece of code, etc..)
  • After that, we teach them how to persist and query data from a real database using SQL queries.
  • Finally, but only at this point, we start building “web apps”, e.g. softwares that respond to specific requests (HTTP requests) and inject their data in a specific interface (web interface coded with HTML and styled with CSS).

For us, this is the only honest approach in teaching programming and web-development. We could start by making students code small HTML/CSS websites that they could show to their friends when they come back home. Of course, this might be a more immediate reward for them.

Well, we are not at school anymore. Students are not here to get immediate rewards but to learn to build things. Even if they find this approach hard and sometimes frustrating, eventually they’ll realise this and thank us at the end of the bootcamp for teaching them core concepts in a structured way.

And after developing their final project, they know they can build products with solid foundations, from which they will keep learning.

That’s the only reward that really matters at the end.

--

--

Boris Paillard
Le Wagon

CEO at Le Wagon. Bringing tech skills to creative people and entrepreneurs.