From biology to computer programming: review after 6 months with Launch School
It’s been a while since I wanted to write an article about my recent career shift and how I believe, Launch School has been the perfect match to fulfill this objective.
Why choosing Launch School?
In the final steps of my postdoctoral research fellowship in Immunology, I was considering switching career towards a field that always attracted my curiosity: computer programming. In this regard, I started last summer to kind of benchmark the possibilities through which I could study this field, get skills and be as fast as possible ready to get a job in the market. Consequently the idea of entering an intensive bootcamp was somehow attracting me as it fitted some of my expectations given the mindset that I had at this time. Nevertheless and while reading and bench-marking curriculum of online and in-person bootcamps available here in Lisbon (Portugal), I started to really think about my objective. What do I want: a quick and “dirty”learning? or a more deep-learning approach in order to master the new skills I wanted? The first way seems interesting as many people managed to go through intensive bootcamps and then get a fairly good job. However to what extend they master the fundamental principles of computer programming is something that is not evaluated. Can they be flexible and adapt to any kind of programming languages, technologies? Do these bootcamps give you the skill set that will allow you to be somehow really flexible, independent and autonomous in real-life jobs?
I first heard about Launch School, summer last year, while reading some posts in Reddit about bootcamps. I saved the webpage in my bookmarks and only start reading about the curriculum a few days after. While going through it, I have to say that I was a bit surprised. The tone was honest and blunt. Their program “is not made for everyone”. One might think that these kind of arguments are only for marketing. Nevertheless empty speech is not the motto of Launch School. In complete opposite to the majority of bootcamp out-there, they base their program on a mastery-based learning approach. Instead of a “quick and dirty” learning process which can work for some people, we are here in a more “slow and deeply” learning process. Launch School wants to teach you the fundamentals, the things that don’t change in a field where technologies change regularly. And they expect you to take time for it. I was seduced by this approach and decided to give it a try and started the free preparatory course around mid-September 2018.
The preparatory course gave me the best reasons to jump into the Launch School program.
The preparatory course was very interesting. Instead of directly diving into introductory computer programming concepts, I had to follow a MOOC on Coursera named *Learn how to learn* and read a book called “Mastery” by George Leonard. I really enjoyed the online course and the tips they give you to enhance you approach to learning new concepts and fields. More than tips their course is articulated through and supported by extensive scientific data. Definitively, applying some of their methods will help you going through the Launch School curriculum and learn efficiently. I have to admit that I was a bit reluctant about reading the book. Unexpectedly my attention got captured by it and made re-discover some concepts that I actually applied when I was younger in school but also through all the sport I practised. Reading this book also made me realized how much goal-oriented I became especially as a scientist, my goal being essentially to publish articles as fast as possible. While reading this, I decided to avoid doing the same mistake, take my time and also try to enjoy as much as possible the journey I engaged myself into.
The rest of the course was more programming-related with notably a nice introductions to Terminal Command Line, Github. The last part focused in giving you the basics of the Ruby programming language with the possibility to do more than 100 exercises. I would like to emphasize here something that I think is one of the strength of the program: the amount of exercises and practice you get. The material is really engaging and intellectually stimulating. I enjoyed every time spent on each exercise performed in the frame of the preparatory course plus, the fact that you can have free group study sessions with one Teacher-Assistant and other students, which is a good opportunity to ask any question regarding ruby, general programming but also to actually train on new exercises. Overall and after 2 months and a half, the preparatory course gave me confidence and definitively convinced me to start learning programming with Launch School.
If like me you had no programming experience…go slowly but surely.
Once I was officially a Launch School student I start diving into the first module: Programming Foundations… and it was tough! Learning how to program comes with learning how to reset you way of thinking and articulate your reasoning while going through problems to solve. The program actually guides you very well into adopting the good attitude. Their teaching notably relies on the use of the PEDAC method, an approach that permits you to genuinely breakdown a problem before solving it. My advice: read this if not already done and use it.
The programming concepts that you learn in this course are intellectually challenging and stimulating. I really enjoyed topics around local variable scope, loops, flow control and their courses about data structures with strings, arrays and hashes. You put in practice all of these concepts through some in-course exercises (around 60), by building three small and later two bigger programs and finally by practising on 139 small problems from easy to advanced levels. Do them all. And once you finished do them all again. Additionally while going through all of these exercises, you might get the same syndrome as me: the “problem solving fever”! I really liked solving problems and started using a bunch of extra resources to practice my coding skills in Ruby: let me advise you to practice as much as you can on CodeWars, Edabits and Problem Euler.
I also digressed out of the topic of the course and started to learn the basics in Algorithm and Data Structures. I was a bit shy to do that but after reading this article from a previous Launch School student, I decided that indeed some excursion out of the core curriculum may be beneficial if appropriately done. Although it is not required for the first course of the program, it helped me a lot to improve my problem solving skills. In this regard, I read and am still reading these two books. I also started a Coursera MOOC about algorithms that I found to be difficult but very rewarding. Good side of it, you can do all assignments in Ruby. Overall, I practised on around 600 coding exercises before taking the final assessment of this course. As a final note while exercises indeed sharpen you coding and problem solving skills I cannot help but really advise every new learners to spend time reading the documentation, testing and learning new Ruby (or whatever language you learn) methods. As I am an old school guys I wrote many flash cards and spent time with a pen and a book writing code and methods and trying to figure out what will be the return value of very small portions of code.
After 4 months spent on the first module, I finally passed this morning the last assessment: the technical / problem solving interview. And I succeeded. This is a huge accomplishment for me especially knowing how far from programming I was 6 months ago. I am very happy and really look forward to diving in to the new course about Object-Oriented Programming. Overall I am confident that I made the good choice with Launch School and that it will be my best partner in my career switch that promises to be a challenging but rewarding journey.