Learning Calculus, and why one should learn Git

Jan 28, 2014 • Robert Flight

Being Motivated to Learn Calculus

As part of my undergraduate degree, I was required to take higher level mathematics, either calculus or linear algebra. I had previously taken introductory calculus in high school, that consisted mainly in learning how to do derivatives of functions. Unfortunately, I tended to coast in high school, and my first year of university I did the same. I got a C in my first semester of calculus (differential calculus), and then a D in my second (integral calculus). I tried a different course, and recieved an F. This was my first (and thankfully my only) F in all of my school years. By this time I was in my third year, and was slowly starting to figure out how to study effectively. However, this class was required if I was to be awarded my degree in my chosen majors (biology and chemistry double major). So, I buckled down, and started truly trying to understand the material. I did the problems, and when I couldn’t figure them out, I went and got help. I asked questions, I worked with others in the class, and I kept trying, and trying, and really trying to understand the material. I finally finished that class with I think a B grade, and a much better understanding of why integrals, and calculus, is important.

 

Personal Experience with Git

I do bioinformatics type research for a living, which necessarily means writing code, because I need code to do my analyses. As part of writing code, in the last year I have started heavily using the git revision control system. This past year, I was co-author on a publication about software that I had written. That software project is in a git repo, and I am very glad it is. The reviewers of my manuscript requested many changes to the underlying software package. Because I had it in git, I was able to create a new branch and start making requested changes, all without worrying about breaking the current codebase. Due to keeping the code on GitHub, I was also able to point to actual commits that address the reviewers concerns.

In addition, some of the reviewer’s points required writing entirely new analyses. As I worked on that, I needed to write over 500 lines of new functionality, as well as the new analyses. All of this went into the git repo, allowing me to keep track of progress, and easily revert or branch off as necessary when things went wrong. I don’t think I could have done the work that I did in a timely manner without version control.