It’s been a month since I last posted, but in that time, from my last post on July 14, I’ve finished both Data Structures and Algorithms classes (C949 and C950), and I’m about halfway through with the Zybook for Operating Systems for Programmers (C191).
Right now, I’m writing this to give myself a break from studying operating systems (as fun as it is!). I think there has to be a good balance between consuming content and creating, or else, you’ll get burned out from doing either one too much.
Time Spent
I began C949 (Data Structures and Algorithms 1) on July 8, which was the same day I finished D197 (the version control class), and passed the OA on July 20. That class took 12 days. I tried to study at least three hours every day.
C950 (Data Structures and Algorithms 2) took longer than I wanted. I enrolled on the class on July 20, but didn’t start working on anything until July 23. I passed both of the PAs (performance assessments) on August 10, so that class took 21 days.
I didn’t keep track of the time I spent for DSA2, but I would assume I did at least three hours a day, just like I did for C949.
Thoughts on C949
I had to psyche myself up to take the C949 OA when I wasn’t sure if I knew absolutely everything that could be covered on the test… I passed, but I definitely didn’t know everything that was covered. Some of the questions asked I don’t even think were mentioned in the Zybook for this class, but I gave those my best guess. I passed the OA with an ~83%.
I had 77 questions (I had a mishap with my computer during proctoring, which led to a BSOD, which I’m guessing was due to the probably-faulty RAM sticks I put in… but they seemed to have been working fine until then), so I aimed for about 53 or 54 questions I was certain I was going to get correct, so I could get to that ~70% threshold to pass the exam.
All I can say is to read “A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills”; I believe that in the course search for DSA1, this book is provided for free. Doing that, and testing yourself with the questions throughout the Zybooks I think will help, as well as filling in the gaps that those books may not cover by checking the study guide out (and Googling/taking notes on those concepts not covered).
If you don’t know Python already, you should study that as well since there seemed to be a lot of Python-related questions on the test. And watch the videos as needed. They were very helpful for visualizing the various algorithms and traversals!
I recommend that if you don’t fully read the Zybook or the book mentioned above that you read it afterwards to have a deeper understanding. The topics themselves I believe are fun, but you might want to shake up your study materials since you might need the layman-friendliness of the book mentioned above while having the animations and exercises in the Zybook, as well as having Youtube videos at your disposal for the things you have a hard time visualizing.
Thoughts on C950
This was one of those classes where you need to “eat the frog”. I spent the first three days trying to figure out how to approach this project since it seemed so intimidating.
I came across this reddit post. This person explained what they did to break down the coding portion of the assignment into smaller steps, so I did the same thing: I made the Excel files into CSVs, made my hash table, created my classes for package and truck objects, read in the CSV files, created my algorithm, and then built the command-line interface.
As I mentioned above, I spent more time on this class than I wanted to. My goal pace for these classes was to finish one class every two weeks; I had 11 at the beginning of the semester, and I’ve finished three, so I would say I’m still matching the pace I wanted?
At the same time, I’m glad that I did spend a good amount of time on this class.
I was not too familiar with Python syntax, keywords, and classes, so this gave me the much-needed time to learn about them.
I wouldn’t say I’m an expert with them, but I feel like I’ve come a lot farther and learned much more by actually applying these concepts to a project, rather than following along on a tutorial.
I did have to do a revision since there was a portion of the output that wasn’t displaying the result expected for one of the project requirements, but it was a quick fix; that was done in under an hour.
It reminded me of how I felt after I finished C482 and C195 (Software I and II, respectively). When I first took a college course in Java, I was extremely frustrated. That was back in 2018. The next time I used Java was in 2023, with the two software classes, and by then, I felt like it was much easier to code in the language.
When I began a Python course on Udemy some time last year, I felt as if I wasn’t understanding the material. What was the purpose of __init__
? What were list comprehensions? I used those in C950, and now, I know what they are and how to use them.
offshoot
I keep mentioning app/Academy Open, but I seriously think that and C173 (Scripting and Programming Foundations) helped me understand how to solve problems in code. I didn’t understand what args
was in Python, but when I learned about “rest” and “spread” syntax in JavaScript, I saw that they had a similar concept, so it finally clicked for me.
Looking Forward
I’m hoping to take the OA for C191 by the end of the month, which I think is possible.
At first, I wasn’t sure if the material would be interesting enough for me to sit down and read for several hours a day. But it turned out that my desire to know how things work pushed me forward. Seeing the explanations for how the operating system deals with processes and file systems made me appreciate what the OS and computer do to make it easier for the user to get work done.
It’s going to be a lot of work to get the other classes done before my term ends.
After I pass the OA for C191, I’m planning to take D281 next, which is Linux Foundations. I think going from C191 to D281 is a good transition since they’re both operating systems; the Linux one is more comprehensive on Linux, while the C191 is more for understanding how operating systems work at a lower level. I’ve come across some portions in the textbook for the class that have been “a-ha” moments for me, and it’s such a gratifying feeling!
progress on konvert
I’ve honestly not made that much progress since I’ve been busy with school and work. But like WGU, I want to be able to finish both all of my classes and the first draft of the book by the end of the year.
art
I’ve been drawing a little more recently. Here are some drawings I’ve done on the computer in July/August.
I decided to draw each character for when their birthday comes up, so I’ve done Ambriel (July 14), Melonia (August 3), and Kanna (soon, August 22).
final words for now…
I’ll try to finish up C191 by the end of the month and include it in its own write-up or with the Linux class.
Until next time!