My name is Enzo and I am part of Batch 94 Le Wagon (Batch 3 of Le Wagon Tokyo ). Our bootcamp started on September 4, 2017 and it will end on November 3, 2017. I am currently on week 6 of the bootcamp and this will be the first entry of a three part series on my experience.
A little background about myself: I used to be a project manager in the humanitarian/development field. My degree in college was Economics and had not taken any computer science classes. I have a little programming knowledge from some online courses in Udemy and Udacity, but in essence, I am a novice in coding.
You’re probably wondering why I joined LeWagon. I chose LeWagon Tokyo for the following reasons:
Note: I was a bit wary of the reviews because they seemed too good to be true (5/5 stars from a majority of reviewers in coursereport.com and switchup.com. It felt like a gamble when I enrolled, but three weeks in, I am beginning to relate to the many positive feedback about LeWagon.
2. The program is oriented towards building a startup. During the latter weeks of the program, the students will develop and pitch their own startups or web application to an audience. It would be a great experience to work on a project as a team and eventually sell it to an audience. So its great its not all about programming, as there is an entrepreneurial side to the bootcamp. Look up “LeWagon DemoDay” on youtube to see some examples.
3. The program is shorter compared to other popular bootcamps. This is a good thing assuming graduates of the bootcamp are job-ready developers in a shorter time frame. On the flip-side, the shorter course duration also means having less time to go in-depth on some topics. More on this topic later.
4. It basically fit my budget. I thought it seemed like a good balance of price, time and quality. The program is significantly cheaper compared to other popular and highly-rated bootcamps, mostly based in the US. The duration of the program is a likely factor to this.
5. Tokyo is awesome! I love Japanese culture and I have some friends I wanted to visit.
How to join the bootcamp?
You need to apply online and choose which batch and Le Wagon location you want to join. They have camps all around the world.
Afterwards, the directors of the bootcamp will interview you. In my case, they asked about my programming background, past work, and my motivation for joining the bootcamp. No tech or coding background is required, but its important to show that you are serious about learning. I can’t stress enough that you must be truly motivated to learn. In the first three weeks, I had moments when I struggled to understand and apply some subjects. While there are coding instructors to help students out on roadblocks, it is critical to have some grit and not get (too) frustrated on coding challenges.
If you pass the interview, you will be required to complete the Ruby Programming tutorial on codeacademy.com. After that, you can reserve your slot in the bootcamp by making a downpayment.
LeWagon also gives you access to some preparation material for the bootcamp such as live-recorded bootcamp lectures and some quizzes.
Friday before the Bootcamp
The Friday before the start of classes, Paul Gaumer and Sylvain Pierre, the bootcamp directors invited the current batch of students to a welcome party in Brussels Beer Project in Shinjuku (do check it out if you’re into craft beer!). It was an excellent opportunity to meet classmates, teachers and graduates of the bootcamp. I met Doug of Batch 1 Le Wagon Tokyo who gave us a lot of encouragement and advice. “Do the flashcards!” he said. We also met Rob, our instructor for the latter weeks of the bootcamp. He told us to really focus on getting a good foundation in the early weeks. He said he was always surprised about how much the students learn in the bootcamp. Before joining Le Wagon as an instructor, he thought it was unlikely for the students to learn the curriculum in a few weeks. Fortunately, his past students have surpassed his expectations.
Classes are held from Monday to Friday, so we have weekends to review, explore Tokyo, or just chillout. Our days all begin with a lecture from 9am until 1030am. Then we spend the rest of the day until 5–530pm applying the lessons on coding challenges. We are free to take as many breaks as we want.
The challenges all vary in difficulty. Sometimes it takes me a few minutes to complete one. While others have taken me hours to complete. It also really depends on a student’s coding prowess. Oftentimes, there are optional coding challenges a student can try if they have enough time.
The coding challenges really encourages us to look up information on our own by searching the internet. While it can be frustrating to seek information on a problem, I find that it is good training to be independent from our instructors and learn how to find the answers on our own. It is crucial to understand your problem and phrase it properly in your search string in order to get the precise solutions(doh). Ruby documentation and stackoverflow quickly became my go-to sites. However there is the risk that reading documentation can turn into an endless search, and inefficient. In my experience, its better to ask the teacher if I am struggling too much on a topic. They are there for a reason, after all.
LeWagon has an online repository called KITT which contains all the lecture materials (slides, videos and review materials) and coding challenges. We get to access the KITT thru our github accounts. I think its an excellent system because everything is accessible before and after classes. I can study in advance, or review at my own leisure and if I need to miss class, I can access the videos and keep pace with the class.
Everyday, we are randomly partnered with a fellow bootcamper as coding buddies for the entire day. The idea is to get us accustomed to working with peers or pair-programming. In my experience, having a buddy who was better than me accelerated my learning because I could ask him questions when I was stuck. Alternatively, helping someone who was struggling with the exercises also really helped me consolidate all the new knowledge. They say the best way to test your understanding of a subject is to teach it to others. It also gives us an opportunity to get to know our classmates and make valuable connections.
At around 5–5:30, we have a live-coding session where the students tackle a coding challenge as a class, with the help of the instructor. The coding challenge is usually a spin-off of the most difficult challenge for the day.
Note: for proprietary reasons, I will only give brief descriptions on the topics we tackle for the bootcamp.
1. Programming Basics
2. Flow and Array
3. Iterators and Blocks
4. Hash and Symbols
The first week went by quite fast. Day 1 was all about setting up our computers and getting familiar with our tools: terminal, git, sublime, slack and the Le Wagon bootcamp web interface. Windows laptops were required to install Ubuntu. Paul and Sylvain also introduced us to the staff of Impact Hub, the co-working space that hosts Le Wagon Tokyo bootcamps. Misaki, the community manager of Impact Hub Tokyo gave us a presentation on what Impact Hub was all about and gave us a short tour.
After the setup, Dimitri, our instructor for week 1, gave us a lecture on the basics of the terminal and how to use git. Then we did some short exercises to practice the different commands. We ended early that day, and were told to take it easy and prepare ourselves for the real bootcamp.
From Tuesday until Friday, 9am to 7pm, our days were spent programming in Ruby. We reviewed subjects that were tackled in the ruby tutorial of CodeAcademy. While some may think that reviewing Ruby was a waste of time, I found it to be very helpful because I forgot many of the things I learned in the CodeAcademy tutorial. In hindsight, I should have applied the CodeAcademy lessons on some exercises to ensure I remembered them. Practice practice practice. The coding challenges really help in drilling down all the new(and old but forgotten) knowledge. At the end of the week, we were given a quiz that checked our knowledge of Ruby. Those who did poorly in the quiz or those who wanted to review had the option of taking a refresher course next week.
1. Regular Expressions
3. Object Oriented Programming — Classes and Inheritance
4. OOP — Inheritance and Self
5. Coding Exercise — Cookbook Software
I found this week particularly challenging because I had difficulty grasping the ruby commands for parsing and the syntax for regular expressions. Rubular.com was very helpful in the exercises for regular expressions where we had to write code that determines if a phone number is a valid french number, or write a function that determined a valid email and returned various messages depending on the email provider they used.
For parsing, we were introduced to csv, json and xml — the three most common file types heavily used in web services. We were taught how to parse and store data in them using Ruby and the Nokogiri gem or library. A challenging exercise we had was to parse json data from a web dictionary api and use it to make a game similar to countdown. For the live coding session, our instructor, Nicolas, guided us how to make a webscraper for getting tech articles from a website. Fun stuff!
Half the class took a Ruby refresher course and skipped the exercises on parsing and regular expressions. The refresher was optional, but my classmates told me that it really helped consolidate their understanding of Ruby and prepare them for object oriented programming in Ruby.
For Thursday and Friday, we took up the Ruby object-oriented programming topics of Classes, Instances, Inheritance and Self. We had to experiment making our own classes, and the various ways of customizing them with attributes and methods.
2. Food Delivery
3. Schema Design and SQL
4. CRUD with SQL
I found the third week pretty intense. We had to apply everything we learned by making two working applications: a cookbook app and a meal delivery app. Nicolas taught us about the MVC — Model, View, Controller software pattern and we had to apply it in making our apps. The idea is to have separate files for the model, view, controller, router, repository and execution files for easier debugging and management of code. It was fun and extremely challenging to be able to put together the different components of an application.
The cookbook was able to list stored recipes in a csv file, add recipes, get recipes from a website and delete recipes. The food delivery app was a delivery tracker and database that captured meal orders by customers and assigned delivery persons. The user can view all the meals, add customers, view all undelivered meals, add an order for a customer, etc. It was obviously more complex. I found it to be more challenging to build because it had more objects (meals, customers, employee, etc), and options involved. It was certainly engaging.
After the long days making apps, we spent the last two days of the week learning how to design or draw database Schema and how to use SQL. We did a lot of exercises involved in querying databases using sqlite3. Then we tried our hands on SQL CRUD — creating, reading, updating and deleting data in the database.
Three weeks down. So far so good. We’ve had awesome teachers and I feel like I’ve learned so much already. Stick around and I’ll keep you guys posted!
Thank you so much for reading! Please share your thoughts or message me if you have any queries.