What code really teaches you
After having trained 500+ amazing students at Le Wagon, our Paris-based coding bootcamp, I’ve decided to gather my thoughts on how code changes your way of thinking and makes you a better entrepreneur.
By Boris Paillard, CEO at Le Wagon
I often struggle to explain what we teach at Le Wagon. I mean, I know how to pitch my company and convince people. But that’s not explaining exactly what we teach.
In this case, either I end up with a very practical statement
You’ll learn to build web-applications with ruby on Rails, collaborate on Github using the right flow, implement features and push your apps in production.
a bit as if I were reading our program or listing student achievements from our website. Or I try a more inspirational insight
You’ll learn to think and solve problems like a developer. You’ll learn a new mindset that will guide you above the only scope of programming.
The guy in front of me would nod with a sincere “Hmm Hmmm. I see”. But I’m always feeling like I haven’t made any effort to really make him understand. Let’s try it now together, shall we?
Focus, re-use, invent
When I talk with entrepreneurs pitching their idea, I’m often surprised with what I hear. Things like, “I want to build a media platform for artists where they can post videos/audio/texts…” Ok, Ok, but wait 2 seconds, why don’t you create a Facebook group for that?
Non-tech entrepreneurs sometimes think they NEED to build a product because otherwise they don’t OWN any startup “for real”. Well, ask any accelerator/VC to choose between a guy gathering 100,000 artists on a Facebook group and another one struggling with 4 users on his home-made platform. I am sure you can guess who will be the winner.
When you dive into programming, you start building lots of projects, apps and scripts. Doing so, three things happen.
- First, you don’t feel any more of this “urgency” to build a tech product. You have coded dozens of apps so the only question that starts bothering you is, “Is this product relevant? Is it addressing an existing need?” Without the pressure to build something, you also get more creative.
- Second, you know that some features are very easy to code and others will make you sweat for days. Naturally, you develop a good habit to look for existing resources you can re-use to save time.
- Third, you boost your “technical creativity”. You see lots of patterns that create connections in your head and feed your product vision.
Code shapes your way of thinking as a sharp entrepreneur, a person who focuses on the value proposition of his product, tries to re-use existing tools and stay creative at the same time.
The incremental approach
When a child builds a LEGO tower (or spaceship), he instinctively adopts an algorithmic approach. He takes the first brick, puts it on the bottom, takes a second one, adds it to the first one, and so on… In programming, this is called a loop.
Sadly, adults tend to loose this simple approach after being spoilt with “theory” during their education. Let me tell you a typical conversation we have with some students on the very first days of the bootcamp, while working on simple ruby challenges:
us: How do you build the average of grades?
the student: Well, I add them all and divide the sum by their number. Easy ;)
us: Ok, and how do you code it exactly?
the student: hummmm, I just take them and add them all, nah?… Or maybe I take one and add it to all the others… Well, I’m not sure how I can do that after all..
Imagine a child trying to take all his LEGO bricks at the same time and “add them all” to build his tower. Of course that does not make sense, not to mention it will collapse.
Learning to code is a way to rediscover a simple incremental approach that we once had as a kid and that we’ve lost a bit from higher education. Developers don’t write perfect programs from the start. They just take the plunge, start writing simple things that work like kids playing lego. Then they try to iterate, refactor, enhance their program. Good programmers naturally develop this “lean instinct”. And if they can apply it to other fields than code, like product, marketing, design, business, that makes them efficient & pragmatic entrepreneurs.
Adapt to new workflows
Most people have a standard way of working. They use Excel and Word, share things by emails, maybe use Google drive or Dropbox to be more efficient. If they work in startups, they will probably use Slack to communicate and try to integrate different web services on their channels.
More than in any other job, a developer has to adapt to new tools and workflows.
Imagine what it means to work with 5 other developers on a Rails project with 150+ code files. Do you think you can handle it by exchanging files on Slack everytime you make a small change in the code? Who will be the poor guy gathering files, merging changes and handling conflicts in your team? That’s exactly the reason why developers use the Github flow. Github is a kind of Dropbox for developers where they can centralise the source code and all contribute to the project in a very smooth way. Using Github is not just another “geek thing”. This is a completely new way of working that leaves a big footprint for anyone who discovers it.
The Github flow is pretty challenging for a beginner: create branches, commit your changes, push your work, open pull requests, discuss & merge them, etc. Students embracing this way of working will develop a very high adaptability to new workflows for their future.
Be less lazy
Sometimes I hear that developers are lazy because they re-use existing stuff and try to automate time-consuming processes. I feel the exact opposite way:
- I think WE have all become very lazy. Do you read the documentation of your brand new iphone? Do you spend more than 10 minutes to read an article on Medium or a Facebook post? Developers are the only guys on earth still putting great care on reading documentation because they know they can find treasures if they dig into it.
- Code is very rigorous and demanding. A missing comma or bracket will make your code crash. Again, developers must learn to be patient, to read error messages, to dig deep into their programs to try to debug them.
While we all get used to multi-tasking, swiping from one tab / app to the other, developers have to spend time every day to read documentation and errors and debug their code. That’s why learning to speak to your computer is an amazing way to regain patience, attention to detail and concentration abilities. Skills also brought by other practices like mindfulness meditation or yoga, which we also do at Le Wagon.
Be curious & build your learning network
Code is a moving field where you have to keep yourself up to date on new tools, libraries and technologies. Even if you are not the kind of guy opening HackerNews & ProductHunt every day, you will develop this curiosity when coding. Also, joining a network of learning devs is an incredible way to stay connected.
Climb the technical wall
I want to end on this note, because that’s what I find the most rewarding when I discuss with former students.
When you’ve learnt and understood so many things in two months as:
- ruby basic coding structures
- software architecture and MVC
- database and SQL
- collaboration techniques on Github
- Frontend and design patterns
- HTTP, APIs and AJAX
- Rails and coding best practices
When you’ve coded 10 hours a day during those two months.
When you’ve developed several products, alone or in team.
At this point, you’ve climbed the technical wall you were so afraid of when you first enrolled. You discover that you can launch any project without depending on a key resource.
And you start to feel very powerful.