Lessons from the Core Curriculum

I always enjoy hearing someone’s take away from their experiences at Launch School, so I thought it was appropriate that I share mine. These are a list of observations I’ve made throughout my 10 months in the Core Curriculum.

The case for the Ruby track

The question of which Track should I take comes up a lot now and I think that there are two main factors that push someone towards the JavaScript track.

  • Time: The JS track has 2 less classes. If you want to finish Core as soon as possible then go through the JS track (It’s worth noting that the two classes it omits are relatively quick classes to complete and I think it only added about a month extra to my studies). Often when you’re looking to switch careers you’re looking for the fastest path to get your foot in the door. Launch School isn’t that path (you’ll get in both feet, both hands, and most of your body instead) however the JS track does give you a slightly accelerated mastery based approach.
  • Relevance: Ruby gets a lot less press than JavaScript and JavaScript is impossible to avoid these days. Is one language more important than the other? Maybe. But once you’re deep in the process of learning you realize it’s not so much about the specific languages you learn but about the problem solving approaches you learn using those languages. It’s like cooking, you have your preference of pans to use for a certain meal (and some even make more sense to use than others) but what you’re learning here is what ingredients go into putting a meal together and different techniques to cook them. The language is the platform you use to learn the concepts, but the concepts you learn are often language agnostic.

Now that that’s out of the way I want to talk about why I think the Ruby track is more appropriate. It’s more in sync with Launch School’s pedagogy to learn a second language. The key here is circular learning. Time and time again you come back to a topic so that it cements in your head. If you only learn JS, then you don’t have the experience of learning a second language when you you’ve got a good grasp on programming concepts already.

It really humbled me to learn JS once moving to the Front-end portion. I felt completely new to programming again. I think I would have struggled a bit to do this on my own so it was great to have the curriculum walk you through everything, reminding you what you should pay attention to when learning a programming language again.

“But I want to learn back-end JS like Node/Express that the JS track offers” you may say. You can go back (it’s even encouraged!) and complete the JS-backend courses that you missed out on in the Ruby track. Going back through both of them only took about a week (because the concepts are incredibly familiar at that point).

That being said there’s nothing wrong with the JavaScript track, it’s there for a reason.

Use the resources Launch School implicitly and explicitly offer

One of my biggest regrets about my University experience was not taking advantage of all the extra services and resources they offered. You’re paying for Launch School and this is your future, so use what it offers you. Reach out to people and take opportunities to make human connections.

  • Ask questions — on Slack or in the Forums, everyone is incredible helpful and will do their best to help you succeed.
  • Make friends — this is going to be your home for the next while, people here are friendly, everyone is from different walks of life, everyone has a different story. Learning programming in this manner can be isolating, so take care of yourself.
  • Build a network — these people may be the ones who you’ll build something with in the future, or will help you get an interview at that company you’ve always wanted to work at, or will tell you when you’re using too many ?: statements.
  • Attend study sessions — it’s a great way to put faces to your fellow students, and it’ll help you ease your nerves. It’s part of the services that they offer, like I said, you’re paying for it, get the most out of your experience. More types of study sessions keep popping up, clearly they’re doing something right!
  • Get code reviews — There was never an instance where a code review didn’t help me focus and improve at least one thing. It’s vulnerable to share your code, especially if you may be self-conscious about it, but this is how we improve.
  • Read code solutions — It’s good to see how other people solved the same problem, often I would learn interesting solutions this way or discover a new method/function I haven’t come across. You also practice reading other peoples code, whether it’s messy or beautiful, which is often what the real world entails (and it won’t always be clean code). Don’t get discouraged if your answers aren’t as concise or clean, you have no context to the person who solved the problem (they could be in 101 but have a programming background, or maybe this is their second time solving the problem, etc).
  • Watch the Tech Talks — A lot of these talks are suited better for certain parts of the curriculum, they’ll usually let you know. Or you can figure it out by looking at the topic. I don’t think there was a single talk that I didn’t enjoy or take something useful from. One of my favourites was “Accessibility 101: What is it, why does it matter and how is it implemented?”. I hadn’t seen accessibility in programming discussed like this in such a practical and actionable way (it’ll help having some HTML knowledge before watching).
  • Listen to the podcast — I’m starting to feel a bit like the Launch School marketing department, but really, the podcast is great resource to hear students and graduates talk candidly about their experience during and post Launch School. These podcasts really helped motivate me earlier in Core and keep me excited to keep on pushing. I think they have more value the earlier you are in Core, but that’s not to say it’s not enjoyable to listen to later on as well.

Save the special interest topics for later

The majority of topics you’ll dive into will be sprinkled with underlying concepts you’ve learning throughout Core.

Don’t get bogged down with side projects, especially if you’re aiming for Capstone, the project that you’ll come out of that with is enough. Even if you’re not going for Capstone, the projects you create when you’re much later into the curriculum will probably be a lot cleaner. Save the portfolio projects for when you’re a better problem solver. You’ll look back at some of the projects you’ve created earlier on and cringe.

You realize that once you’re out of Core, most topics are accessible to you. You’ll have strong foundations to learn those specializations you’ve been dying to jump into.

Communicate to others what you’re getting into

When you first start out in Core you’re still getting your feet wet, “do I enjoy this?”, “Is this what I want to pursue?”, the risk seems higher, so you’ll put less hours into it. As you progress you’ll see a shift where you’ll want to put more hours into studying and make it more of a priority in your life.

Make sure you’ve had conversations with the people close to you so they fully understand what you’re getting into and what this means for them. It’s tough explaining this kind of schooling to people who haven’t been engaged in it. This is where it comes into play having those conversations with your partners or family. They will appreciate it, especially if you find yourself putting in longer and longer hours.

Find/join a study group

I didn’t quite take my own advice until closer to the end of Core when Chris, the founder of Launch School, mentioned he was putting together a study group to go through a Web Security course. The experience turned out to be a highlight of my week (…this was during the start of the Covid-19 lockdown for context…). It was a great opportunity for multiple reasons:

  • We got to take turns practicing presenting on different topics. It’s important to be able to talk about programming concepts in a clear and concise manner which you don’t necessarily get too much practice during the Launch School curriculum. There’s a live assessment at the beginning (120) and end (230) where you need to flex your communication skills, but the more practice the better (it’s also a different beast doing this to single instructor vs. a group of people).
  • We got to put a face to a lot of the names we’ve seen around. This once again goes back to what I mentioned before about creating connections.
  • We got to lay out everything that’s been on our mind about Launch School. For the first couple sessions where our group met, we didn’t even talk about the course material at all, we mostly went on about our experiences about Launch School. It was cathartic to talk about this isolated experience that only people who are also in this program understand. You’re reminded that programming doesn’t usually happen in a bubble, you’ll most likely be working with a team and it’s helpful to get to know your team.

It was mentioned that there was a hope to have more formal study groups like this in the future. I highly recommend signing up and participating if you have the extra time to do so (*focus on finishing Core first and foremost*). It’s worth it not necessarily for the topic you’ll study, but for everything that comes along with it.

Your Core timeline is catered to your life

There are two instances where time seems to be on a lot of peoples mind.

  1. When you first start out, you wonder, how much time out of my life am I going to have to put aside for this? Luckily there’s a really great resource in the forums for that.
  2. When you get closer to end you’ll want to push through the last bit of the material, maybe it’s so you can start applying for jobs out of Core, or maybe it’s to get to that Capstone cohort you’re aiming for.

Understand that for the most part these are artificial pressures to adhere to a specific timeline. You’ll have to weigh the pros and cons of each.

Embrace your anxieties

Often what this looks like is over-preparing. Especially for the first few assessments. If you take a look at the “how long will this take” resource posted above notice the amount of time everyone spends on the first assessment/course. It’s almost a rite of passage to spend the same amount of time on the first course as you do on the first assessment. I think this is our collective anxiety not letting us take the test until we know we can pass.

You’ll hear time and time again that you will perform below your best on tests, this is true, so make sure your best is more than enough. There are comprehensive student articles in the study guides for the first couple assessment and those are great resources, make sure to read them and do as they say.

This leads into what to do for live assessments…

Practice vocalizing for interviews.

It can catch you off guard when you actually have to make sounds rather than just saying everything in your head. It’s awkward, yes, but it’ll pay off. Practicing saying things out loud whether it’s talking through the problem step by step, or explaining a concept out loud. Taking a video of yourself is also a good tactic because it really makes you speak more loud and clear if you know you’re going to watch it after. It’s also fairly uncomfortable to do, and that’s good, you want to be uncomfortable AND still be able to solve problems.

I also explained things to my dog, he’s probably tired about hearing about PEDAC, but I think it’s made him a better problem solver.

Give back to keep this school great

Something happened to me when I was getting closer to the end of Core that hadn’t happened before, someone who was just starting out at Launch School had reached out out of the blue to ask for my opinion on something as someone who had progressed through a majority of the course material.

The thought occurred to me, when did I become someone whose opinion about programming or learning programming held any weight?

I thought back to when I was just starting out. I lurked the Slack channel for quite a while before contributing anything. I would see the people who generally contributed, answered questions, shared insights, were in courses (2xx) or were graduates. I got to know the names of these people even though they didn’t know who I was. These were the people that were there if any of us newer folk had any questions.

I think to where I was then: holding the “2xx” title. I am the person that I looked to for answers. I started to draw parallels to an activist organization I had belonged to. I’ll take a step back to explain how this one group functioned.

Activist work in general is tiring which is why it’s normally younger individuals on the front lines and doing the bulk of event organizing. Everyone is generally doing this on the side to an already full life of work, school, or social living. You can only contribute at that level for so long.

There was this idea that anyone could come forward, who had received a preliminary training (the “teachers”) and they would host “training sessions” for new people who are interested in the cause or community. Once these people were “trained”, they too could host events, and they became the “leaders” of the organization. This contributed to the concept of decentralization of the organization, no one was in charge, and those who had perceived authority rotated constantly. Those who were “leaders” and “teachers” now get to take a back seat as the next generation of “leaders” come into play. This process continues endlessly, so those in leadership roles never get burned out and that the community keeps expanding.

Are there any light bulbs going off yet? This feels very similar to the way the Launch School community functions. Newbies become active mentors then become passive mentors. Launch School tends to mould conscious developers. Keep this cycle going and the community will continue to be as great as it is.

Final Thoughts

When it comes down to it, have fun, stay focused, and be honest to yourself. During this process you’ll learn a lot about yourself and constantly surprise yourself.