Infrastructure Preface
In the following notes, we will dive into a selection of software and technology that will be the foundation for all the work we do in this course. This setup process is similar to onboarding steps you might go through as a new addition to a research team or hire at a company. There’s often a lot of ground work that has to be done before the “real work” can begin.
As part of this process, you may be overwhelmed at first with all the new technologies, terms, and software we’re about to throw at you. That’s to be expected because we are covering a lot of ground very quickly here in Week 1 and 2. Rest assured, though, that once we get through this infrastructure process, we will be able to slow the pace down and focus our attention more specifically on coding itself.
Another key thing to understand about this onboarding process is that all these steps we are about to follow are the start of our journey to honing that programmer’s mindset we want you to focus on in this course.
Knowing that, keep the following tips in mind as you go through this infrastructure setup:
Tip 1 - Be meticulous
Follow instructions carefully. Skim through instructions first for a bigger picture understanding, then double back and complete the steps. Make sure you’re thoroughly reading all steps and not missing anything.
Tip 2 - Ask for help
When you get stuck, don’t spin your wheels for hours on end on a problem - reach out for help by asking a question in the course forum or visiting instructor office hours. Sometimes even the process of articulating a problem you’re having will help point you in the right direction (see: rubber duck debugging).
Tip 3 - Go easy on yourself
If things don’t work as expected or as we demonstrate, try not to get discouraged. Resolving issues when they occur is all part of the process, and it’s also entirely possible that something not working on your end is related to some difference in your computer/setup that we did not anticipate in our instructions. All that being said, it's also entirely possible that the problem is of your own creating, and that’s okay too! 🙂 In this course, we place more value on how you overcome problems rather than some assessment of how many problems you encounter.
The big picture
Before you jump in, it can be useful to have a “big picture” view of our goals in this infrastructure setup, so here is a summary of the technologies we’ll be tackling:
- Markdown - A simple syntax language used to style text. Used a lot in programming and will be used in this course. A good place to start to get a feel for coding.
- Command line - A program we use to interact with our computers via commands. It’ll seem cumbersome at first (why type all these meticulous commands when we can just point and click on things?!) but with time you’ll learn that command line is an important tool to be comfortable with because it’s used in lots of contexts. You might hate it at first, but you might come to enjoy working in it by the end of the semester (maybe 🙂).
- VSCode - The code editor we’ll use in this course. We’ll explain what a code editor provides, and how to get VSCode set up.
- Web server - To run experiments online, we’ll execute our code via web servers.
- Git - Git is a version control system we’ll use to track changes to our code over time and share our work with one another. VSCode has Git functionality built right in, so that will make our lives easier when it comes to integrating it into our work flow.
With all that preface behind us, you’re ready to jump in with Markdown...