Hey, I'm Josh Kayani, a student and fledgling software developer. Here, I rant and rave about tech and other topics.
With the close of Fall 2017, I’m heading into my penultimate semester at NC State - pretty crazy to think about, especially since with each semester, I realize there’s more and more I want to learn. Maybe grad school is worth considering?
These are the CSC courses I took last semester:
Everyone warned me about the first 2: CSC 326 is extremely time consuming; and, CSC 379 is mindlessly boring and feels pointless. After taking them, I’d say these are both fairly accurate descriptions.
In CSC 326, the class is primarily composed of 3 projects, each being a fullstack web application with a Spring back, AngularJS front, and MySQL database; in other words, a basic CRUD stack. Each project is more work than the previous, but ultimately consists of the same sorts of tasks: create new views, adding new API endpoints, bug fixes, etc. None of the work is difficult, and can actually be kind of fun at times - it’s the teamwork that makes things difficult. Each project is worked on in a team, and if you get stuck with a less than stellar team, you’ve got your work cut out for you! Overall I’d say it was a good experience, but there are some annoying reminders that it’s an academic class, and not the real world (like exams, lectures, etc.).
CSC 379 is supposed to encourage critical thinking about ethical issues that involve both software and software developers, like piracy, privacy, and the “ethical duties of a software engineer”. There are good points brought up throughout the course, but it’s discussion based, and most people (myself included) simply don’t have the time or willingness to care that much about the class. This made for a miserable experienece where I took to answering Piazza questions for CSC 116 (the class I TA for) during lectures. I appreciate the grading method though, because it allows you to stop attending once you earn a grade suitable to you - I know I did!
Finally, CSC 401 was…alright. I took it because I wanted to learn how the internet worked, and can definitely say I met that goal. The course took a top down approach to networking, starting at the application layer (HTTP) and going down to the link layer (Ethernet). Digging into the depths of the protocols was pretty dry and boring at times, but overall, I’m glad I took it.