Attitudes and habits

Green plants growing upward
Photo by Christian Bisbo Johnsen

Before diving in to the class content, I think it’s helpful to spend just a few minutes thinking about the attitudes and habits that’ll help you succeed in this class.

Attitudes

This class is for everyone

Never coded before? Awesome—neither have most of your peers!

For most of you, NMIX 4010 is your first software development course. There will be plenty of opportunities for more experienced or ambitious students to learn more and go deeper, but we’ve also built this class with beginners in mind. You’ve got this!

You’re a Computer Person™ Now

Ever felt like you’re Not Good With Computers? That’s fine! But, good news: this class is an officially-sanctioned chance to become a Computer Person, even potentially someone who is Very Good With Computers.

This course is about front-end web development, and we’ll certainly develop that skill set throughout our time together. However, we’ll also learn much more: how to make your way around a computer efficiently with keyboard shortcuts and system tools, how to accurately conceptualize how a web server works, and much more.

By the time you’re done with this class, you’ll hopefully have strongly-held opinions about the minutiae of using a computer, and you’ll be slightly embarrassed for people who don’t. 🤓

Software development is a skill

Related to the above, software development is a skill, just like riding a bike, playing a sport, or close-up magic. With consistent effort over time (more on that below), you—yes, you—can and will get better at it.

If you commit to the class, in just a few short weeks, you’ll be creating with ease things that seem utterly incomprehensible to you right now. It’s going to be awesome.

Everyone will feel stuck and frustrated from time to time

There will multiple, if not many, times throughout this course that you will feel like throwing your computer through a wall / off a tall structure. This is normal.

Modern consumer software has, for the most part, gotten pretty good!1 Talented programmers and designers have worked hard to make things intuitive and forgiving.

However, you’re crossing to the other side now: you’re a developer. Development tools have gotten better over time, too, but they can’t overcome this fundamental truth: computers are very fast, but they’re extremely dumb. They often lack even a toddler’s understanding of context or intent.

A big part of this course is learning how frustratingly precisely computers demand to be spoken to when writing code. You will work on a problem at length, only to find that single errant piece of punctuation was the source of your anguish. This does not mean you’re bad at this—it happens all the time to professionals with years of experience. The more you can accept and embrace this part of the process, the happier you’ll be.

Comprehension over completion

If all you want to do is complete all the assignments for this course, you can do so incredibly easily and with minimal effort. Many of the solutions to daily lessons are freely available online, and I’d really have no way to tell if you just copied and pasted the answers.

This isn’t an invitation to cheat, or to coast: rather, it’s a call for you to prioritize comprehension over completion. Don’t just finish your daily lessons—seek to truly understand the concepts they’re communicating. The skills in this class are largely sequential and additive. If you don’t understand something early in the class, the impact of that gap in your understanding will only be magnified as we go on.

I’d much rather move a bit more slowly to achieve deeper understanding. Always feel free to ask me or your peers for clarification or help. Which leads to our first habit…

Habits

Make friends

Getting to know your classmates is essential—and fun! It’s great to have a friend or two alongside you as you work through a bunch of new concepts. The best way to make a friend? Be a friend! Help someone who’s stuck—or just commiserate with them in being stuck!

Think, Search, Ask

In a twist on what FreeCodeCamp suggests, I’d encourage you to Think, Search, Ask when you encounter a problem:

  • First, think: see if some sustained reflection (a couple of minutes) brings clarity. Talk out loud to yourself, or experiment with a few potential options.
  • Second, search: I am absolutely not joking when I say that learning how to effectively Google for solutions to problems you’re facing is one of the most essential skills you’ll develop in this course. Develop a sense of what sites and sources are helpful, and learn how to quickly test potential solutions
  • Third, ask, and ask sooner than you think: if you’ve been trying to overcome a problem for more than fifteen minutes or so, chances are you’ll be stuck for a long time. Ask me, or your peers, for help, and don’t apologize for doing so—we’re all here for each other!

Work consistently over time

This class has a fair amount of schedule flexibility built in to it. This is by design—all of us have varying demands on our time.

That said, the most successful students in this course work consistently over time. Doing so gives all of the new concepts time to settle in and fully develop in your brain. This isn’t just a nicety, but rather an essential habit. What we create in the second unit of the class requires a thorough understanding of everything in the first unit, and everything in the third unit builds on the first and second units, etc.

Create a consistent time to work on this class, and make sure to have good systems for keeping up the pace of assignments.

Hey, another Easter egg! If you made it this far, send me a DM in Slack with the name of your favorite place to eat in Athens.

Comic by Sarah Andersen via this Free Code Camp article.


  1. Except for ELC. What a 💩show.