~~
picture of me
~~

Productivity Report - September 2019

This month's banner features a photo I took on one of my bike rides.

Broad Overview

September 2019 is the 37th month in which I have tracked my productivity.

  • Fitness: 36.75 hours
  • Software Development: 66.50 hours
  • Music/Art: 0.00 hours
  • Other: 1.75 hours
  • Total productive hours: 105.00 hours

My average amount of productive hours per day (from all categories) was 3.50 hours. As far as I can recall, September 2019 may have been one of my most productive months of all. I was a bit worried that my motivation would suffer from having taken the semester off school, but that seems to not at all be the case.

Software Development

My goal for the month of September was to continue working through Nand to Tetris, and that is what I spent the majority of my software development time on this past month. Over the course of the month, I made it from Project 2 to now starting on Project 7. There are 12 projects in all, so that means I am about halfway through.

So far, I throughly enjoy the course. If you recall from last month, I decided to work on Nand2Tetris rather than take Computer Organization and Software Engineering Capstone classes through the University of Illinois Springfield. I definitely feel confident I made the right decision. The first 5 chapters/projects of Nand2Tetris is essentially a computer organization class, and I find it highly unlikely that the UIS Computer Organization course would have been as beneficial tom me as the work I have done over the past month. Nand2Tetris begins with a simple (in retrospect) project in which the student must build several types of elementary logic gates out of nothing but Nand gates (or any gates the student has previously built). Of course in this context "building" logic gates really means simulating the logic design in a hardware description language. From there, the projects get progressively more complex, tasking the student to build higher and higher level hardware components until project 5 in which the student must complete the build of full-fledged computer. As that student, I can honestly say it was an immensely rewarding achievement for me, and this is only half-way through the program! The instruction and material provided by the course do just the right amount of hand-holding to force the student to actually learn the material without leaving the student helplessly lost.

So now I have a much better understanding of how a computer actually works. Nand2Tetris has really demystified for me what has been essentially a black-box to me my entire life. It is too early for me to quantify to what extent this experience will benefit me in my career as a software developer, but I'm pretty sure that extent is non-zero. And remember, I am still only talking about the first half of Nand2Tetris. I've only just begun on the second half. This latter half, it seems so far, is focused on how we go from low-level machine language to higher level languages. That means designing an assembler, virtual machine, compiler, and for the final project - an operating system.

Although focusing my efforts 100% on Nand2Tetris would no-doubt be a fruitful educational experience, by the last week of September I had really gotten stir-crazy with a longing to build something of my own again. Ultimately, the whole reason I got into programming in the first place was to build something(s) tangible out of the myriad of ideas swirling in my head, and I worry that my skills with tools like Unity and Android Studio may atrophy if I do not practice soon. Nevertheless, I find my excitement constantly shifting to new learning opportunities. "What should I do?" is a question that I ask myself a dozen times every day. There are so many individual avenues of computer science and programming that I want to delve into, but there is only so much time in a day. Anyways, I sort of went off on a tangent there, but the point is - for now, I decided to split my time between Nand2Tetris and learning graphics programming with OpenGL and C++. That may have been an unexpected conclusion to this paragraph, but there it is.

Specifically, I am working through >UC San Diego's CSE167 Computer Graphics course through Edx. I may decide to discontinue my efforts in this course before I get through all the material, but I figured I would give it a go and see how I like it. I feel that a lower-level understandiing of graphics programming will be beneficial for me in any future game development endeavors, and I have been wanting to get my feet wet in C++ for a while now.

Right away as I began to go through the first several Computer Graphics lectures, I got sidetracked when I found this youtube series by 3Blue1Brown. This is easily the best introductory (or review) resource for linear algebra that I've come across. Not that I've spent any time looking for linear algebra learning material, but either way, this is good stuff.

My goals for October 2019 will be to continue working through Nand2Tetris and also to work on the Graphics Programming course on edx.

Fitness

In September 2019, my overall fitness hours totalled to 36.75 hours. I spent 19.00 hours lifting weights, and I spent 17.75 hours on cardio. My average lifting hours per week was 4.43 hours, and my average cardio hours per week was 4.14 hours.

After a lazy August, I came back strong in September with 36.75 total fitness hours. My cardio is in peak condition right now. My diet has been mostly on point, and lifting is going well. I aim to keep it up next month.

Music/Art

Nothing to see here.

Other

In this past month, I spent 1.75 hours doing other productive stuff.

Goals for next month (September 2019):

Software Dev Goals:

  • Continue working through Nand2Tetris.
  • Work through Graphics Programming on edx.

Fitness Goals:

  • Keep the momentum going.

Other Goals:

  • null