Lambda School - Week 3: "Hello, World!"

“Debugging is twice as hard as coding itself. Therefore, if you write code as cleverly as possible, you are, by definition, not smart enough to debug it.”
Brian Kernighan & P.J. Plauger

Week 3 of Lambda School is done. This week was all about JavaScript!

For those not in the know, I’m a student at Lambda School’s Full-Stack Web Development program (Read more here). In short, Lambda School is an online learning company offering 30-week programs in programming that are free until you get a job. If you don’t get a job, they don’t get paid.

As usual, I've done a write-up of my experiences, ups and downs, shenanigans, and curriculum this week. I intend to do the same over the next 27 weeks! If you’re not yet caught up from Week 1 or 2, you can read it here and here.


So Long CSS! Hello, JavaScript!

Monday morning of Week 3, I felt pretty good. We'd just finished up everything to do with LESS and styling. That week's Sprint Challenge must've taken some years off my life. It was tough. I figured that since Week 3's topic was JavaScript, they'd start off at a relatively gentle pace. They didn't want to scare off the students too much, would they?

Fast-forward ten minutes to me getting hit in the face with the hardest coding challenge to date.
To say I felt humbled would be putting it lightly.

There's never been a better use of this Gif. Ever.

There's never been a better use of this Gif. Ever.

It turned out Lambda wasn't going to be pulling any punches when it came to learning JavaScript. Again and again, they'd remind us that JavaScript will be one of the foundational skills that will make or break our career; especially when we move on to using React, Node, and Express.

From minute one, the instruction sessions were filled to the brim with new concepts and theory, interspersed with the occasional practice assignment. After a while, you become oh-so-grateful for a quick five-minute break. Trust me on this one. Of course, not everything stuck with me as well as I'd like, so W3Schools and I became fast friends over the course of the week.

If I were to summarize Lambda's approach to learning, it would have to be ‘Practice Makes Perfect. So Practice A F*ckton'. And if practice somehow doesn't make perfect, at least it doesn't produce Syntax Errors. Which is good enough for me. I feel like a monkey most of the time when stuck behind the keyboard, so I might as well make sure that I'm a damn good code monkey. ¯\_(ツ)_/¯

I personally enjoyed the change of pace compared to the first two weeks. The immediate gratification of having your console log the correct result or your function returning the desired array is very visceral after the countless hours spent on HTML and CSS during the first two weeks.


Enter The MacBook

As I mentioned last week, my current laptop was struggling to keep up with even the most basic functions. Opening a code editor would take the better part of a minute. No bueno.

Lambda School actually gave me a MacBook Pro! Sure it's refurbished and it's a loaner, but who the hell cares? Honestly, I'm not in a position to shill out $800+ for a new laptop at this point in time. One of the Student Success Coordinators, Kevin, reached out to me. He explained Lambda's loaner-policy and he encouraged me to apply. For a bit, I felt too proud to admit I needed it. I also didn't want to take the opportunity away from students that might need it more. As soon as it was clear the situation was untenable, Kevin and the rest of Lambda was right there to help out. Thanks Kevin - if you ever do make your way to the Netherlands, I owe you a beer!

Perhaps now's a good time to mention that I had never used a Mac in my life up until last week. But what a change it's been. The first few hours, everything felt alien and clunky to me. The weird swiping-motions, the pop-up toolbars, and the keyboard layout all took some getting used to. One tutorial and four Apple fanboys helping me was all it took to get me up and running.

Now that I've had a couple of days to get used to it though, I can definitely tell what the hype is all about. Once you get the hang of it, the entire operating system is really intuitive and sleek. Not to mention that it makes dealing with the Command Line Interface infinitely easier.


Learning To Say ‘Hello, World!’ And More

As most people are curious about the exact things we learn at Lambda, I’ve listed them all down here. I guess it also makes for a good roadmap for others trying to do something similar by themselves.

In Week 3 we covered:

  • Var, let and const and their differences;

  • Objects and object literals;

  • Arrays and array methods;

  • Scope, closure, and callbacks;

  • .forEach(), .map(), .filter(), and .reduce();

  • Declaring and using this;

  • Prototypes and Constructors;

  • (Pseudo-classical) Inheritance;

  • ES6: Classes & Arrow Functions.

In addition, I did some studying of my own, covering the following topics:

As a whole this week was a change of pace. Even nostalgic - in a way. Ironically enough, Lambda almost resembled a university in their approach this week. We actually had exercises to make and homework to do - a great change of pace from another design-project!

I know nothing.jpeg

Given the fact that students need a thorough theoretical understanding of the ins and outs of JavaScript, a lot of time and effort went into the instruction sessions. Our teacher, Gabriel tried to be as thorough as possible in covering all the peculiarities of prototypes, this, and ES6 syntax. Most days, we went well over time. Luckily, recordings of previous lectures are available to the students for revision, with lectures by the legend himself, Josh Knell, being one of the crowd-favorites.

Luckily, all Lambda School students have covered the basics of JavaScript before enrollment. As a matter of fact, you have to pass a JS code challenge before even being eligible to participate! (Note: this is for Web Development students. The other tracks have different requirements.) It became clear that this wasn't just to lower acceptance rates. You had better paid attention during the free bootcamp or, God help you, you're going to have a difficult time! Four two-hour long instruction sessions barely managed to cover the material listed above, without having to cover basic for-loops and logic.

This week, the challenges and assignments definitely ramped up in difficulty. During the first two weeks, I pretty much assumed I'd have finished the morning code challenge in fifteen minutes, giving me plenty of time to lounge around for a bit. This week, not so much. I spent a good fifteen minutes solely reading the challenge requirements during a particularly-tricky challenge. This was for the best, though. Starting your day off with using JavaScript array methods and prototypes pretty much ensures that you're good to go for the rest of the day.


Starting this week, I'll also be making a list of topics I want to check out during the next week. As part of Lambda's curriculum, we'll mostly be focusing on the Document Object Model (DOM) and components. Since I'm pretty comfortable with those as is, I want to push myself a bit. For Week 4, I'll look into:

  • FreeCodeCamp's ‘ES6’, ‘Regular Expression’, ‘Debugging’, and ‘Basic Data Structures’ modules.

  • Review Week 5 of Harvard's CS50;

  • Get on Khanacademy and start progressing through their math curriculum. Though it won't directly benefit my programming ability, it'll probably help me with algorithms and logic. Besides, I've always sucked at math so it's about damn time.

  • Review the ‘Learning How To Learn’ course on Coursera. I completed this one some two years ago, but can't recall all that much of it. A friend recently mentioned it so I decided I ought to jump in.

One of the doodles I made in SASS. I'm kinda proud about these.

One of the doodles I made in SASS. I'm kinda proud about these.


Questions & Answers

If you have any questions regarding the student experience at Lambda, hit me up on Twitter! I’ll try to answer some of them every week.

Is it possible to attend classes in-person?

Not at the moment. But they might do it in the future. There have been some joking suggestions of Lambda buying a campus now that they've raised $30M in venture capital, but building out their existing remote learning-environment seems to have the highest priority. Every month, Lambda hosts what's called ‘Lambda Meetup Day’, wherein they encourage students in or near major metropolitan areas to meet up and collaborate. Taking the classes together during these meetups is the closest you can get to in-person collaboration and learning. For the European cohort, no plans have been made for Meetup Day, what with the entire European student body being some 20-odd people. Maybe later

Do you know what courses Lambda will start teaching in the future?

Unfortunately not. The founders and staff are relatively tight-lipped about future expansion plans. It seems sensible not to broadcast your future plans to a Slack channel of 1000+ people. Lambda School seems to be convinced about their ability to apply to their methodology to pretty much every vocational training. Recently, scuttlebutt has it that Lambda is looking into security, design, and nursing. Not sure how they're going to pull off that last one, but I'm curious to see!


STATE OF THE LAMBDA UNIOn

This week was somewhat relaxed. It felt good to stimulate the left side of the brain for a bit. I know; left-brain/right-brain is just a wive's tale, but it's a good analogy, no? A lot of students struggled this week and I wondered at times if everyone would make it. However, most people seem to have pulled through and gotten a thorough understanding. There were quite a few cheery faces after successfully completing this week's Sprint Challenge.

Finally, if you’re interested in signing up for Lambda School yourself, please consider using this link. With it, you’ll receive $250 after you attend your first day and Lambda will give me $250 for sending you there! Win-win!

And remember, the average pace is for chumps!

Until next week!