I decided to write this post before being aware of the recent hit pieces against Lambda School (LS) that have been published around (particularly this one by The Verge and this one by New York Magazine). In the light of these two pieces, I think the timing is perfect to take a journey of what going through LS was like for me. I was enrolled last year in the 19th cohort of the WEB course and just graduated last November. I hope this post can help other potential students make a more informed decision.
In college, I did a double major in Industrial Engineering and Economics. Economics, however, wasn’t my first choice for a second major. My first choice had been Software Engineering (SE). I had picked SE because, as part of the Industrial Engineering curriculum, we had to take two JavaScript courses and, while most of my classmates had hated those courses, I’d loved them. I found coding challenging and very rewarding at the same time. So I decided to give Software Engineering a try.
What happened, then? Why did I end up taking Economics instead of SE? Well, apparently destiny would let me know that SE wasn’t for me. As I began a new semester, now as an Industrial Engineering and SE student, most of the classes I was going to take were from Industrial Engineering. One, however, was from the SE curriculum.
I don’t remember the name of the class right now (wow! I’m just realizing it’s been more than 10 years since then), but I expected something related to the previous JavaScript classes I had taken. Instead, what I had gotten into was the most abstract and boring class I had ever attended. It had nothing to do with code or programming — it was one of those typical university fill classes that end up adding little to no value to your life. I never understood what the hell was going on. It was hell. Being that that was my welcome class to SE, I got frightened and decided it wasn’t for me.
In retrospect, I think I could have given SE another chance back then. Maybe with another class. I had assumed most of the curriculum would be like that when maybe that wasn’t true. In any case, I decided to switch from SE to Economics for my second major.
A feeling of what would have happened if I had done SE, however, always stayed with me. And the feeling grew as time passed and tech became more and more prominent. Had I missed an opportunity?
That’s why when I heard about LS I jumped at the opportunity. Learning to code in just 9 months was a proposal I could not let go. If it had been 4 years, as a traditional university degree, I would have never done it. 9 months, on the other hand, was nothing. Especially taking into consideration that LS graduates were already being hired at tech companies, which signaled to me that it wasn’t a less-time, lower-quality kind of deal, but rather something different. And so I embarked in the LS journey.
To understand LS, you need to understand their business model. In contrast to how a traditional education works, LS doesn’t charge anything upfront. They only charge once you get a job. They do this through a figure called an ISA, which basically is a contract in which you agree to pay Lambda School a percentage of your future earnings once you get a job.
For me, this aspect is the most important differentiator between LS and other bootcamps and also between LS and a traditional education. It aligns the incentives between LS and its students in a very direct way: if students don’t get hired, Lambda doesn’t get paid. Quite different from how traditional education works.
In one of the recent hit pieces mentioned at the beginning of this article, the author argues that incentives between LS and its students are no longer aligned, since LS has started selling the ISAs to investors.
Even though at first sight this practice may seem troublesome, the reality is that it doesn’t change Lambda’s incentives in any meaningful way, especially in the long run. Basically, if investors notice that LS students are not getting hired, they will stop buying the ISAs. Thus, for Lambda to be able to keep selling the ISAs, it needs to guarantee its students keep getting hired.
Furthermore, at least in my experience, the effort to get students hired permeates every aspect of the Lambda experience. It is very noticeable that that’s the main goal of the whole organization. From what they teach to how they do it, every decision seems to be geared towards getting students hired in the most efficient way possible. In the next few sections I’m going to explore why I think this is the case and how it shapes every aspect of the Lambda experience.
Simply put, the stack you learn at LS is the stack most companies are looking for. Most of the available jobs I’ve looked at require the stack (or parts of it) you’re taught at LS. No ugly surprises here! At least in the WEB course, which was the one I was enrolled in, there’s a very good match between technologies taught and technologies looked for.
Specifically, the WEB course is divided into 5 topics: 1) HTML and CSS; 2) Applied JavaScript and introduction to React; 3) Advanced React; 4) Backend; and 5) Computer Science.
Let’s delve into each one of these. During the first part, you’ll learn the building blocks of the WEB: HTML and CSS. Without these two, there would be no WEB — they’re literally present in every website you use. They’re maybe not that sexy, but completely fundamental.
Next, you learn some basic JavaScript and how it is applied to the WEB and you get an introduction to the most popular framework for building websites: React. This section, in my opinion, is where things start getting interesting. I found React to be an amazing tool. At this point, you start getting a glimpse of how complex, scalable and dynamic apps are built. To get an idea of the importance of React, check out some of the websites or apps built with it.
In the next section you basically get deeper into React, learning some skills needed to develop complex apps.
In the 4th section of the curriculum, you learn what’s called backend development, which basically means how to store the information your app uses. For this part of the curriculum, you get to choose the backend language you’d prefer to learn: Node.js or Java. I chose Node.js because it’s basically JavaScript for the backend, but you’ll be free to choose whichever you want. For me, the backend portion of the curriculum wasn’t as magical as the frontend part (all the previous sections) since I’m more design inclined. A lot of my classmates, however, preferred backend development.
Last, but not least, Computer Science. I truly loved this part of the curriculum. And I loved it for two reasons. First, because you get to learn Python, which is a beautiful and very useful language. It’s great with numbers, very useful for backend development and also getting a lot of prominence within the Data Science field.
Secondly, because you get to learn some more complex stuff such as algorithms, data structures and computer architecture which, for me, where eye-opening. This stuff isn’t for everyone though — most of my classmates struggled during this part of the course. Computer Science, however, is absolutely needed to get a job, and that’s why it’s taught. Basically, most interviews are filled with Computer Science questions and problems you need to know how to solve.
Because time at Lambda is so short, talking about a semester or a quarter doesn’t make sense. Instead, the curriculum is divided into Units and Sprints. Each Unit lasts one month and represents a big block of knowledge — i.e. HTML and CSS. Further, each Unit is divided into four Sprints that last one week each and represent smaller chunks of knowledge that add up to that one big block that encompasses a complete topic.
At Lambda, you get evaluated at the end of each Sprint and each Unit. Each Friday, which represents the end of a Sprint, you’re asked to do a Sprint Challenge, which basically means a practical evaluation in which you show you’ve grasped the topics taught during the week. In my experience, Sprint Challenges closely reflected what was taught during every week and were relatively easy to pass. If you don’t pass, however, it’s not the end of the world.
At Lambda, when you don’t pass a Sprint you get into what’s called Flex, a program that lets you repeat the week before going on to the next Sprint. It’s basically a second chance. I find this to be particularly important for learning to code, since repetition is so important to grasp all these concepts. The second pass you give these topics feels completely different from the first one.
At the end of each Unit you get evaluated as well. This time, the evaluation lasts a whole week and is called a Build Week. During a Build Week, you’re assigned to a team comprised of students from different courses (you can get into a team with UX and Data Science students) and cohorts within Lambda, to build an MVP for a given product. You learn a lot through these Build Weeks, and not just about the topics of the given Unit, but also about working together with other people to build software. Build Weeks give you a glimpse of what the real job looks like. Additionally, the products built during Build Weeks can serve as the initial projects of your portfolio.
As said before, time at Lambda is very short. This makes the days long and packed with knowledge. It’s not easy. At the end of the day, Lambda packs almost 4 years of knowledge into 9 short months. During this process, it is common to feel overwhelmed by so much that’s going on; by so much new information. Imposter syndrome can become a common feeling. At the same time, however, you learn so much that each day that passes you feel like you’ve accomplished something.
At the end of each Sprint, it’s hard to recognize the developer you were at the beginning of the week. And at the end of each Unit, you’re amazed at what you can now do; at what you’re able to understand and code. The process is hard, frustrating and requires a lot of hard work, but the rewards are worth it!
Lambda Labs is a program that intends for Lambda students to experience a real life, professional software development experience. Labs happens at the end of the first 4 Units of your curriculum (before Computer Science) and lasts 2 months. As opposed to Build Weeks, in which the objective is to develop a rough MVP, in Labs you get to develop a polished product — or at least a polished first version of a product.
This product might be developed for an external (real) client or for an internal client. In my case, I got to develop the first version of a Data Visualization tool for an ONG that operates in Africa. This product was so important for the ONG that we had a meeting every week with the CTO to report on updates.
Throughout these 2 months, the way in which you’re asked to develop the product intends to closely resemble a professional environment. For the first few weeks, there’s no code involved in the process, as everything you do qualifies as meta-work. What happens during these first few weeks is all the planning, scoping, strategizing and thinking needed to do so that the product gets delivered as intended. During these few weeks, you get to learn some of the best practices for software development planning and scoping available out there, such as product cycles, feature canvases and user stories.
After this planning phase is done, you get to start coding. Problem-solving becomes a necessary ability for your team as it’s common to need to learn new technologies to be able to deliver what was planned. For my project, the data we received was in such a convoluted format that the first step for us was to develop an ETL that took that data and translated it into something we could work with. Before getting into that project, we had no idea what an ETL was, but we had to figure it out to be able to deliver, just as in a real life professional setting. That process took almost three weeks and was one of the highlights of my Labs experience.
Throughout this whole process, additionally, you are assigned an Engineering Manager (someone with lots of software development experience at Lambda) that’s in charge of overlooking product development. We had meetings with our Engineering Manager once or twice a week to put him up to speed on the state of the project and also to strategize and ask him for directions about aspects we weren’t sure about.
Frequently, these meetings became problem solving sessions in our Engineering Manager’s whiteboard which felt (in my mind) like part of the early stages of a new and exciting startup. These kinds of details made the experience much more enjoyable and real life-like to me.
In addition to its curriculum and practical approach, another way in which LS prepares its students to get a job is through Career Help, which functions as a department within LS. From the first few weeks of your time at Lambda to the moment you get a job, you don’t stop interacting with them. Their goal: to get you into the best possible shape to land a job.
Throughout your life at Lambda, Career Help assists you with your resume, LinkedIn profile, portfolio page, interviews, networking and many other career related aspects. I found their help particularly valuable for polishing my resume and online presence. In my case, the advice and suggestions received amounted to those little, but very important details that take a resume or LinkedIn profile from average to very professional.
With regards to their interviewing and networking advice and lessons, I personally found most of the material common sense. To other students with less professional experience, however, these services might be more useful.
I haven’t gotten a job. In part because I haven’t gotten into the task of fully looking for a job — I’ve been occupied with some important personal matters, but also because I’m not sure whether that’s the path I want to follow. I may start my own company instead. Let me say, though, that after graduating they put A LOT of effort into getting you hired.
Since graduating from Lambda, however, I’ve done other interesting stuff which I couldn’t have done without the knowledge I acquired at LS. I developed my own app using a novel backend technology called Blockstack, for which I get paid monthly for being part of their App Mining Program. I got a sponsorship for Jimmy Song’s Programming Bitcoin course in San Francisco. I wrote my own Bitcoin library on Python (based on Jimmy’s class), which means I can now use the Bitcoin network using only my own code (this blows my mind!). And most recently I’ve been involved in contributing to BTCPay Server, which is one of Bitcoin’s most important open source projects. All this in just a few months since graduation. All this, impossible without Lambda.
Lambda is a marathon. A 9 month marathon with lots of ups and downs. It’s hard, exhausting and frequently overwhelming. Reaching the goal line, however, is so rewarding that makes the experience 100% worth it. And not just because you reach the goal line knowing how to code (and are probably close to land a job), but also (and most importantly in my opinion) because when you reach the goal you realize you have become a new, better version of yourself than you were 9 months before.
Being able to go through such an arduous experience gives you a self confidence boost not much else can. It feels great! I would do it again and recommend it 100% to anyone willing to put in the effort.
Please don’t hesitate to contact me if you have any questions or comments regarding my experience at Lambda.
Previously published at https://medium.com/@jj.erlich155/going-through-lambda-school-6545597bdd92