Anthony J. Campbell

Lambda School - Week 12: The SQL Sequel

Anthony J. Campbell
Lambda School - Week 12: The SQL Sequel
It’s working!
— Anakin Skywalker (In his whiny youth)

Let me summarise this week for you:

* Working on a project, trying to build SQL queries *

“Hmmm, this is trickier than I thought. I don't know how to get these tables to merge. Let me try something..”

* 30 seconds later *

“Ahhh, I get it! Makes total sense! This goes there and then this other thingy ends up over here!”

* Another 30 seconds later*

“Wait, how does this work?”

Yeah, it was one of those weeks…

If you happen to have lived under a rock over the past couple of months, let me quickly introduce you to Lambda School. Lambda School offers online programs in software development, UX design, data science, iOS and Android mobile development. The best part? It has no up-front costs!

The curriculum is 9 months long with full-time enrolment. This used to be 30 weeks, but has recently been extended. Instead of paying tuition and having to take out a second mortgage just to take some classes, Lambda School uses Income-Share Agreements (ISAs). With it, students pay a percentage of their monthly income after they’re employed. If you don't get a job, you don't pay anything. Depending on where you're based, different percentages and pay-off plans exist. Americans pay 17% for 2 years after graduation, while Europeans pay 10% for 4 years.

If you make less than $50k after graduation, you don't have to pay ‘em anything. Also, you will never, under any circumstance, pay back more than $30k. (Note: you'd have to be making more than $88,000 per year to achieve that) If you happen to make less than that, you simply pay less. What's more, if you don't find a job, the ISA lapses after a couple of years.

Recently, Lambda has introduced a living stipend program. It'll pay students $2000 per month to cover monthly bills while they focus fully on their studies. In return, Lambda asks for 10% of their income over 5 years. It is capped at $50,000.

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!

“But I don't even like puzzles!”

This was a week a lot of us had been looking forward to. Last week, we'd covered how to access and write to a database. Now, we’d cover get the last piece of the puzzle; building databases from scratch. I'd heard of SQL before, but never used it.

For some reason, I struggled with SQL. I had a really difficult time wrapping my head around the way the tables interconnected. The syntax wasn't fully clear to me. I mostly experimented my way through the SQL queries, playing around until I got the desired result. Joining tables would quickly become the bane of my existence.

If anything, I definitely have to practice some more over the next couple of weeks. Use it or you lose it, right? I've heard some good things about the Codecademy SQL course. I might check that out.

This week was heavy on the theoretical side. Refreshing if you ask me. Being able to sit back and ponder the how's and why's of databases is a nice change of pace. Not having to pound out hundreds of lines of code per assignment is a plus too.

As we're nearing the end of the full-stack portion of the curriculum, I've started thinking more and more of what I'd like to do once I finish. I'm still flirting with the idea of building a startup somewhere in the next couple of years. At times, though, I don't feel completely confident in my ability to pull it off. And that's exactly what I wanted to talk about this week.

When pondering the idea, I get intimidated. From the get-go, you have to build a fully-scaleable database, a robust infrastructure, take care of authentication, accessibility and developer environment, right? Well, maybe not.

Building a simple side-project isn't that difficult. Set up a rudimentary database, make sure authentication is in place, and just code away. However, I feel as if though there's this gulf of the unknowable separating my current skillset and the complex sub-systems tech giants like Uber or Amazon would use. Of course there is. That's not to say I don't feel inadequate at times.

I had a good talk with our teacher, Gabriel, and he slowly but surely walked me through what goes into building and designing a fully-fledged startup, from scaffolding and UX-flow to styling and routing. I felt relieved. I wasn't inadequate or not good enough. I was simply comparing something of extreme complexity, with many hundreds of layers added on top of each other, with something one can make in one go.

I realised that, no matter how smart someone is, you're probably not going to build a fully-fledged and scaleable app in one go. Odds are you'll have to reiterate over a couple of features before your MVP is complete. Sure, there are a couple of rockstar programmers who can bang out an email client in an afternoon, but they're the ultimate outliers.

The vast majority of startups started with a very basic, some would say flawed, product. So they reiterated. They updated their databases, making it more scaleable. They hired some PhDs to beef up their security. Simply put, they added layers of complexity until they reached the calibre of Google and Amazon.

So, note to self: Relax.

Given enough time and a good team, it's possible to grow your startup further and further. You don't need to be a genius. Nor do you need to be a particularly great programmer. You just have to be willing to be scrappy and build upon your previous (flawed) iterations.

One step at a time.

The tools of the trade

This week, we covered the following:

  • Relation Database Management Systems (RDBMS);

  • The basics of SQL. It's uses, history, basic;

  • SQLite, migrations, and seeding;

  • Understanding data modelling and different data relationships (i.e. one-to-one, one-to-many, many-to-many);

  • Understanding relational vs. document-based databases;

  • Using Knex, a JS-based SQL query builder for node.

In my (oh-so-scarce) free time, I:

  • Did about two chapters of this React-Native course. For now, I'm putting this on the back-burner. I try to watch some of the videos when I've got the time, but I'm not frothing at the mouth to get into React-Native right now;

  • Read through the docs of MongoDB. Sine the popular MEAN and MERN stacks both use Mongo, I figured I'd check it out. Evidently, there's both great demand for the skill, as well as interest in its applications. I can't say I fully understand it just yet. Nor why it is particularly awesome. Over the next couple of weeks, I plan on reading up and playing around a bit.

  • Finished a small side-project and hosted it on Netlify. It's based on the examples in Robin Wieruch's ‘Road to React’, but I'm planning on adding further modifications. For now, it's just a searchable instance of Hacker News. I plan on adding some extra features to make it my go-to reader. Top articles of the week, categorisation by subject and perhaps some fun statistics like most popular buzzwords over time.

State of the Lambda Union

This was one of those weeks where everything seemed just out of reach. Where you face a new topic as soon as you come close to understanding the previous one. It's not that I didn't 'get’ it. I just kept running into gaps in my knowledge, further exacerbated by the next day's theory.

As a whole, it felt really empowering to finally unravel the last piece of the puzzle. We've now covered the entire stack, front to back. We've built our static websites and added functionality with native JavaScript. We've tackled React, state management and api requests. And now we know how to build and connect databases. It's no longer mystifying or scary. It's become a logical process. One I still struggle with, but can't wait to explore further.

Next week, we'll have to decide on whether or not we want to do a stint as a Project Manager. I still haven't made up my mind, but the idea is definitely appealing to me. We'll see…

Till next week!