/essentialism

The course repo for "The Software Essentialist"

Primary LanguageJavaScript

The Software Essentialist (Course Projects Repo)

The official course repo for The Software Essentialist course students.

What is this

This is the repo that we'll use to work on assignments throughout the program.

How to get started?

  • Install Git
  • Install Node v16 or higher on your machine
  • Git clone or fork this repo

How to work effectively

  • When working on a module, cd directly into that module and open up your Visual Studio Code (or respective editor) to show only that module so that you get code completion.
  • Use the Red-Green-Refactor Commit process to track your work and provide for the ability for you to revert back and try new designs

After completing an assignment (how to improve)

1. Watch the demonstration modules

  • You'll eventually find demonstration modules for each of the assignments. You can use these to compare designs.

2. Get feedback on your work

  • First, get the assignment hashtag: Each assignment has a hashtag to uniquely identify it (ie: #palindromeChecker). You can find this in the readme for each assignment. Grab this.
  • Then, get your start/end commits: Your commits to GitHub and then navigate to the 'Commits' page. Find the commits that mark the start and end of the assignment you want to review.
  • Finally, submit for feedback: Post to #course-chat for feedback from myself, the alumni, and the other community members.

Here's an example:

"I just finished #palindromeChecker here. Would love some feedback on my commits. Start (<insert link to first commit>), end (<insert link to end commit>). Cheers!

3. Review a submission

  • Get to the Discord: Go into the #course-chat channel.
  • Find other submissions: Use the assignment hashtag name to find other submissions. While in the channel, you can use CMD/CTRL + F to bring up the finder in Discord. Type in the hashtag to find other submissions. Find one and pull it up.
  • Two things they did well: Read through their commits, from the starting one and look for 2 things you think they did well. Leave a comments to start a discussion.
  • Two things you found interesting or might do differently & why: Look for 2 parts of their design you either found interesting and start a discussion or comment how you might have implemented things differently. Feel free to tag Khalil (@stemmlerjs), Daniel (@iPwnPancakes), or Tony (@TonyToth) for comments as well.

4. Design it twice (do it again)

  • The last thing you can do is something John Ousterhout recommends, that I highly agree with: design it twice. Do it again. You've likely learned things you'd do differently. Drill it again. Programming is very much a tactile & pattern-matching activity. You just need reference experiences.

How to deal with snags

  • If you get stuck or run into any issues, use the #course-chat channel in Discord to discuss so we can refine things and make 'em smoother.