Open Source 101
So now that the semester has finally ended for me, I will finally have time to really dedicate to some more studies, and I will be working full time this summer at NineFx Inc in Columbia, SC as a Software Engineer. I wanted to talk about my time at Open Source 101 in Columbia. The main event for me was, the talk about Machine Learning, where an engineer Dan Zaratsian, had shown that a trained neural network was able to tell if patients had cancer, or other diseases solely through images. It was extremely eye opening, to actually see what I’ve been hearing, and the fear that computers will soon be able to do many if not all of our essential jobs. Other than that, I enjoyed many of the talks given at the conference.
In a similar vein, I’ve noticed through my undergraduate career, that there is a movement of the Computer Science degree to continue to devolve into a high volume, low skill degree. I believe that this degree needs to remain rigorous. It is unfortunate that we have been seeing this all across the country. It’s the main reason I picked up a Math major while I’m in University as well. Hopefully it will fill the void of rigor and difficulty that is absent in the Computer Science departments at many universities. Hopefully through continued pressure and lobbying at my university by many of the students and professionals that are either board members or lobby the IAB(Industrial Advisory Board) at the University of South Carolina.
If I were to get into a specific issue, at my school that is likely widespread, it would be many courses put the rigor in the wrong places. Operating Systems, a fundamental course in a CS degree, has become here’s pseudocode and here’s OSP, write and test your implementation. I understand that much of Operating Systems have been researched, developed, and is old news. But without transferring these thoughts to the students, they never develop the skills to solve these problems. According to students I have talked to, we still have very rigorous Compilers, and Theory of Computation classes at my school. Which is a cornerstone, just as Operating Systems were for many students in the nineties. One class that I have first hand experience with, has been Networks. This course is by definition rigorous in all the wrong areas. The course focuses on every protocol under the sun, but not in depth enough that we actually learn anything. We learned HTTP, TCP, DHCP, UDP, Slotted Aloha, Unslotted Aloha, Ethernet, and those were just the protocols. The only thing I realized is they have a core ideology(which is where we should’ve placed the rigor), a set of parameters and hardware, and the implementation is arbitrary. If you have some question about how say XMPP worked, you can just look up RFC6120, or any other protocol. Knowing these little trivial details made this class into an extremely hard trivia class. I went into the class, wow they have a slide of a UDP server partially implemented. I wonder if that’s our final project. Instead our final project was finding obscure details in Wireshark assignments where finding the correct segment was difficult as there were 2-3 thousand other segments in some assignments.
This needs to change nationwide if we’re going to continue to have skilled developers, and researchers. I do not want to see the skill of the US market fall to such as Reddit Interview. Just in case, I will save the image below. .