Week Two - Let the projects begin!
What did you do this past week?
First off, I learned MATLAB and LaTeX, two programs I never worked with before. The syntax for both languages is not hard, so picked up the basics quickly. Secondly, I finished another week of online Linear Algebra for Programming for Correctness.
Additionally, I spent a majority of my time working in my apartment (something I never did in my freshman year), programming in C++ for my Object Oriented Programming and C for my Operating Systems class. Working with version control in Github is tougher than I thought, and I ended up make 3 commits that made, reverted, and remade files again and again.
What’s promising though is that while reading textbooks, I found a new method in studying and taking notes. Instead of writing notes out on a piece of paper (which was the conventional way of studying), I found that typing and rephrasing the words from the textbook onto a document allowed me not only to process the content, but also quickly organize my thoughts and type out notes that are legible (handwriting is not my forte).
Finally, I spent a good amount of non-school time commuting on my bike (legs for days), cooking dinner (sandwiches for days), learning how to social dance (dance for days), and going to church and college ministry activities (Jesus for days).
What’s in your way?
Being assigned 2 coding-based projects is overwhelming; Learning to deal with errors suchas pull request fails on branches between Travis-CI and github, developing code for a project in C++, a language I only learned about a week and a half ago, and having a 24/7 hour partner project where I have to create a mini-shell with command line features takes up a lot of time.
Furthermore, I had to do readings over Operating Systems, Object Oriented Programming, Accounting, and a 3-week Linear Algebra Course (All approximately 100-150 pages worth of reading). This meant I had to adapt to a new schedule by finding blocks of time where I could focus on readings, or else I would never get through even a page without being distracted.
All these things have to be meticulously organized into time slots that don’t occupy too much time, or else I won’t be able to get any rest or finish all these tasks. If I don’t learn to manage my time wisely within the beginning of this semester, for the rest of the year, I might end up playing catch up with my studies, have a horrible sleeping schedule, and never have time to socialize with friends.
OOP Continued Impressions
I find that the class is very fast paced, yet accommodating enough to not let people become left behind if they try their best.
It was very comforting to me that Project 1’s details did not just end with having to read the instructions online after they were posted on Piazza, but during class, Downing explained to us many significant parts of the project and how we should approach it step-by step.
Even though the class is a firehose of information, and the quizzes sometimes points toward very minute details (like referring to the author of an article read, even though he’s the CEO of something we programmers might use in our daily lives, Stack Overflow), Downing makes sure to go over important aspects of coding efficiently (such as what happens when adding the ‘++’ syntax in C++ before or after an int variable), and nurtures a community (on Piazza) that classmates can go to ask questions, give advice, and request any help.
I also really like the personal interaction that Downing does with calling out people. While it’s intimidating at first glance, especially whenever he takes time to look down at his tablet in order to pick his next “randomly selected victim”, I’ve found that he really cares for his students. He encourages shy students with additional elaboration to questions, gives words of affirmation to those who answer his questions boldly, and never stutters when correcting someone with the correct answer.
What will you do next week?
I plan to execute Project 1 on Docker, test my project against all the test cases on the public repo, and create a pull request to upload my test cases onto the public repo. I need to study more on how Docker is used, because I still don’t understand why I have the software still.
Additionally, for Operating Systems, I hope to implement fork() and exec(), and read up on a lot of ‘man’ documentation for many commands on the command line.
Finally, I hope to finish my online Linear Algebra course for Programming for Correctness and start creating functions and proofs in MATLAB and LaTeX, respectively, for zero, unit, diagonal, and triangular matrices.
Tip of the Week
As a person who values using time efficiently, Video Speed Controller has helped me immensely in learning, watching, and consuming many video and lectures quickly.
It is compatible with many different video platforms, like Youtube, Gifs (knock yourself out with a 5x speed Nyan cat gif), and other HTML5 components (Though not Netflix or Amazon Prime yet, sorry Mr. Robot fans).
If you are interested in looking at how this extension was implemented, here’s the github repo to it. (If you don’t use Chrome, you can search for other video controlling extensions compatible with other web browsers).