CS373 Spring 2022: Nathan Whyte
1. What did you do this past week?
I made a lot of progress on Project 2 with my group. I’m working on the back-end side of things, so I learned a lot about APIs and JSON files. Other than that, I got a great grade on my first Japanese midterm and wrapped up the first project for my Distributed Computing course. As far as weeks for me go, this one was especially productive. And I still got my workouts in the morning.
2. What’s in your way?
I’ve been having some issues with confidence in myself when it comes to academic things. I often feel that I can’t possibly finish all of my work in time and maintain my grades, which leads to anxiety, which leads me to not even start or work on things. It becomes a self-fulfilling prophecy. I notice, though, that putting in the effort to just start working on something restores my confidence as I make progress, so I need to work on finding the easiest way to start doing work.
3. What will you do next week?
Next week, I will wrap up Project 2 with my group on Tuesday, continue to study for my Chemistry class, start my next Distributed Computing project, and complete all of my assignments for Japanese.
I’m also hoping to have more time to work in some time to play guitar since I haven’t been able to for a couple of weeks. I’ve found some new songs that I would like to learn.
4. What did you think of Paper #6: Open-Closed Principle?
The concept introduced was interesting to me since it requires a lot of prior planning but pays off in a big way further down the development line. It also showed one of the huge advantages of object-oriented languages, which are much easier to use when trying is follow the open-closed principle.
5. What was your experience of for-in statements, reduce, object models, and operators?
The ‘for-in’ statements are fascinating to me since the statement unpacks on the lower level to a much more complicated statement that even catches exceptions. Python is a blessing if you’re trying to save time when writing some code (although maybe not so good when you’re trying to save time actually running the code).
Reduce is something that I haven’t seen before, and to be honest I don’t see myself running into a place where I would need it. However, it adds to the incredible amount of built-in functionality that Python comes with.
I like the way that Python handles the double-underscore functions. I also like the flexibility of how you can call class methods.
Many of the operators in Python are familiar, coming from other languages that I have learned, but the extra that are there are useful shorthand for more complex operations. The one I am most thankful for is true division and floor division. Since Python isn’t statically typed, it’s sometimes ambiguous what type your variable is, so having operators that are consistent in what type they return is nice for visibility.
6. What made you happy this week?
My favorite game (DOTA 2) got a new update and my favorite character got an improvement. The gameplay meta has been shaken up a bit which is nice since it has been pretty stale for a few months.
On Friday, I did more homework in a day than I ever have before, which was a nice feeling.
7. What’s your pick-of-the-week?
For programmers, saving time when writing code is the name of the game. If you can code quickly, you have more time to go to events for free food and chances at a job, for instance. However, just knowing how to code isn’t the only way to speed up. Using an editor that has a deep keybind allows you to save time by not having to reach for your mouse or arrow keys if you want to edit your text. The editor in question is Vim. I use Vim for all of my programming (and even my writing) and from personal experience, it has sped up my ability to write, edit, and debug code.
An interactive tutorial for Vim (that requires no software installation on your part) is linked here: https://www.openvim.com/tutorial.html
If you like it (and are willing to endure the steep learning curve), most editors have a way to use Vim keybindings.