The official course repo for The Software Essentialist course students.
This is the course repo which houses all of the assignment start/end checkpoints, labs & exercises we'll use in the program.
- Install Git
- Install Node v16 or higher on your machine
- Git clone or fork this repo
Check out the lessons in the "Exercises & Assignment Setup: How to Complete The Phases of Craftship Homework" module.
- How to Complete the Phases of Craftship Homework (Assignments, Exercises)
- How to Setup & Complete Assignments
- How to Set Up & Complete Exercises
- 5 Ways to Use Feedback to Improve In This Course
- How & Why to Provide Helpful Feedback on Assignments & Exercises
- How to Manage Your Completed Assignment PRs
- You'll eventually find demonstration modules for each of the assignments. You can use these to compare designs.
- First, get the assignment hashtag: Each assignment has a hashtag to identify it (ie: #palindromeChecker) uniquely. You can find this in the readme for each assignment and exercise. Grab this.
- Create PR: Create a PR containing your commits for an assignment or exercise.
- 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!
- 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.
- 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.
- 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.