Launch School
Published in

Launch School

Adjusting Learning Styles: The Transition from Launch School’s Core to Capstone

A perspective on learning “just in time”

Enter “Just-in-Time” Learning

Just-in-time learning is about learning just enough, just in time, to accomplish some goal: building a project or crushing an interview, to name a couple. Toyota, an advocate for Just-in-Time production systems, phrases it like this:

Adjusting My Learning Style

Before moving any further, let’s make one thing clear: for someone brand new to programming, trying to immediately jump into a sea of technologies could be disadvantageous. Chris Lee mentions two prerequisites to unlocking Just-In-Time Learning:

Getting My Priorities Straight

Like many other curious developers, I find it all too easy to fall down the infamous rabbit hole. Rabbit holes can be fun and even productive, but they tend to disrupt JIT learning. The remedy for rabbit holes is a clear set of priorities. Defining my priorities looked similar to Jason’s timeboxing strategy.

  • Timebox Length: This app was a Christmas present, which gave me about 10 days.
  • Learning Priorities and Knowledge/Skill Gaps: I wanted to build a React frontend and Express backend deployed on a containerized system, on a manually-configured Virtual Private Server, using AWS services like EC2, S3, and CloudFront. I had some theoretical understanding of those things, but little-to-no practice with them. I already felt a bit more comfortable with React and Express. Since my goal was to work on my knowledge and skill gaps, I decided to focus more on architecture and deployment and less on full-stack development.
“The Smooches” Architecture
  1. High-level concepts worth remembering
  2. Details worth remembering
  3. Details not worth remembering
  4. Procedural/skills-based knowledge

Focusing on the Big Picture

React is a feature-dense library for building a user interface. You could spend a decade on it. My goal was to learn enough React to prepare for Capstone and build a simple CRUD app.

React Knowledge Tree
Topic Tree
Depth-First Search
Selective Breadth-First-Search
  1. It prioritizes the big picture: Not all information has equal value. I should probably be familiar with React hooks, but I might be fine with glossing over the useMemo hook in particular. Additionally, touching on lower-level details after establishing a big-picture context helps to reinforce the big picture. As I began to view details as support for major ideas, rather than things I have to work hard at remembering, I could begin to trek hills of information with a little more enthusiasm and a little less anguish.
  2. It saves time: Fixating on details has a high opportunity cost. The antidote is selectivity. My goal is to build a project, not memorize every command in the Dockerfile reference.
  3. It makes the lower-level details more approachable: If you see the forest for the trees, you can still observe an individual tree — but not vice versa. Even if I soon forget about useMemo, my awareness of React hooks and memoization will make me more likely to reach for that hook when I need it. What’s more, spending time on this high-level stuff first makes it easier to retain pertinent lower-level stuff (learning mentors seem to agree with this).

Gaining Practical Experience

The previous section left one knowledge bucket unaddressed: procedural knowledge. To acquire this type of knowledge, you’ll need practical experience.

  1. Quickly following up theory with practice makes concepts stick.
  2. Practice itself is the end goal: if we can’t contribute to a project, we won’t be useful developers.

De-isolating Learning

Learning collaboratively can boost the acquisition of knowledge in all of the buckets — a phenomenon known as social constructivism. Luckily, my Capstone teammates were all able to set aside some time to meet regularly for technical discussions during Prep.

  • Using TypeScript to type data arriving from external sources
  • The difference between elasticity and scalability

Everything Else

Earlier I mentioned that not all information has equal value. That said, nearly all information is useful in some context. As software developers, we will be tasked with utilizing lots of information that we have not internalized. For this, we can ring up our old trusty friend, the Internet. Google, StackOverflow, tutorials, ChatGPT, or the API reference itself: pick your poison. Or craft your own elegant reference notes.

--

--

Publications of the Launch School Community

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store