Enrolling in a Software Engineering Bootcamp? Know this before your first day
Reflecting back on my first week with Flatiron School’s full-time software engineering track, if there was one piece of advice I wish I had that would set me up for success, it would be to have a firm grasp on Github. Not far into the day were we beginning to fork and clone repositories onto our local machine, and, not far into the day was I subsequently lost, as a complete Github (and for that matter, code) newbie. Ultimately, I wasted too much time trying to get caught up to speed with Github, and fell behind in key introductory material. If you’re reading this and have little to none experience with Github (or if I lost you at the aforementioned fork and clone for that matter), read on for an outline of some Github basics to get you through the first few days.
First off, let’s talk about what Github is — Github defines itself as:
“a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.”
What I like about this definition is that it gets at what is at the heart of code — sharing and collaboration. Coders learn the most when they can access, read, and compare other coder’s work to their own. Oftentimes, there is not one correct way of writing a line of code, and to be able to conceptualize another coder’s logic is immensely beneficial for your own development and skill.
Not only useful for code review, Github makes it possible for a team of any number of individuals to work on a project together at the same time (again, from anywhere) by merging their own versions into a master copy.
You might be thinking — that’s all fine and good, but how will this come in handy for me for the first week, or day for that matter? You’ll likely be asked to fork and clone a lab, discussion question, or code-along during your beginning few days, where you’ll get to write and test code. So it may be helpful to do the work understanding this now before the time comes.
(Before the following steps, make sure you create an account with Github).
Forking and cloning
When starting an assignment, you’ll likely be prompted to a page that looks like the snippet above. To begin, click on the blue FORK button. This should redirect you to Github repository (repo for short), which will bring you to a new page, similar the following snippet:
(Note, the following instructions are how Flatiron students will be expected to configure their Github…whether you clone via HTTPS or SSH may differ).
Clone this forked repo by clicking on the green Code box, which will take you to a dropdown menu.
If you haven’t already added a SSH key, let’s do that now (this key will keep you from having to provide your username and password whenever you use your terminal to interact with GitHub). You may already have a key if you got your local environment setup — to check, run “cat ~/.ssh/id_rsa.pub” in your terminal. If the terminal prints out a long string of characters starting with “ssh-rsa”, you’ve already got a key (and can skip this next step) —
o To create your SSH key, run “ssh-keygen” in your terminal. You’ll be prompted to select a location and passphrase for your new key.
o Leave everything blank and press enter for the default location and no passphrase.
o If you’re asked if you want to overwrite, then you already have an SSH key, and you do not want to overwrite it.
Now, back to cloning — make sure you click the SSH option, and to copy, press the clipboard icon to the right of your unique SSH key.
Opening the cloned repository from your command-line
Navigate to your terminal. In your terminal, navigate to the folder where you want to save this cloned repo (to navigate into a folder, type cd “your foldername” into your command-line). Once you are in that directory, type git clone, paste this cloned copy, and press enter. Then, open your text editor from the command-line (for example, for VS Code, type code . and press enter).
Congrats! If all goes to plan, your text editor will open, containing all the relevant cloned files for you to start learning and coding.
More basics — Branching, Adding, Committing, Pushing
Those steps should get you up to speed understanding how to navigate and clone exercises to your local environment for the first day. Likely, you’ll soon be working on pair programming, code challenges, and more, where you’ll need a bit more familiarity of Github flow. Here’s a quick vocab rundown of other Github related terms:
Branching — when collaborating on a project, you may have features and edits you’ll want to make, some of which may need more tweaking, and others may be ready for deployment. Branching is a flow that allows for an environment to try new code. You’ll create a branch off of the project’s main version by entering git checkout –b “name of branch” in your command-line.
Adding and Committing changes — To save changes to your branch, you’ll want to add these changes (which stages the changes for saving) and commit, with an associated message. To do so, enter git add . and then git commit -m “write your message here”
Pushing — To upload your local changes to the remote repository, enter the following instruction on your terminal/command prompt:
git push origin “the current branch name in the remote repository you want to push updates to”
This will effectively push your changes over in Github for you and team members to review.
Although this mini tutorial will not prepare you for all the situations wherein you’ll be using version control, this should provide some necessary terminology and flow that will make your first few days with a bootcamp go that much smoother. If you’re looking for more, I encourage you to read on regarding Github flow.