What a luxury it is to be a student again! It’s amazing to raise your hand, ask a question, and get a definite answer. Hell, even when our T.A.s (T.A.s!) gave us cryptic answers to our questions, I was ecstatic.
Day one at the Flatiron School was all about Git and GitHub. From the minute we got in (9 am) we worked on creating little student profiles and a a group index page just like this one. We were provided with the CSS and HTML templates– the real assignment was merging all of our individual copies of index.html together. To do this we used Git and GitHub.
I knew day one would be big on Git, so I concentrated on doing the pre-work related to it thoroughly. But actually using it to collaborate with two other people (strangers this morning), was a different ballgame.
Git is a version control software. I think of it as an awesome secretary who can travel backward and forward in time through a project’s history. You tell Git to watch a certain project folder, and it will take “snapshots” of your files whenever you want. You can also make new branches for your project– an example being if you wanted to add social media buttons to your website, you’d start a “social media buttons” branch. What’s nice about the branches is that you can keep a safe, deployment-ready copy saved in the “master” branch, while you go play in the “social media buttons” branch.
If you screw up you can revert to previous changes or scrap the branch all together– and your master branch isn’t affected. If you like your branch, you can merge it with the “master” branch.
Here are a few intros to Git if you’re interested in going beyond my shitty explanation: Atlassian, git-scm.
Collaborating with multiple people working on copies of the same file (index.html in our case) at the same time (as we did today) inevitably leads to merge conflicts, i.e. situations where Git can’t figure out who’s version you actually want to save. Today we did a lot of learn-by-doing managing and resolving these version conflicts.
After lunch, Avi Flombaum, our Dean, had us all introduce ourselves and then gave a general talk about programming and what we were here to do. He reminded us that learning new things can get frustrating, because the path from not knowing something to knowing that thing is really just a constantly-confusing struggle. And I certainly struggled at times today to understand parts of Git. But like I said, it’s a privilege to be a student again– it’s just a matter of remembering what it’s like to be confused most of the time.