 And we come up with a rating of zero, and got the semi-cold. Now I've been wanting to incorporate a new segment into these vlogs to spice them up a little bit. I'm not sure what to call it, maybe it's just story time. I don't know, but you guys saw the title of the video. You know what we're getting into. This video is actually inspired by a video that Devin Crawford did quite a while ago, so I thought I would share my experience at Yale. Obviously when I look back on college there were highs, there were lows, but there was one semester in particular that really just beat me down, and it was all because of one class. I want you to envision a computer science class so difficult that a single assignment took me 43 hours to finish. That's a full work week for a single assignment. Welcome to Computer Science 323, computer architecture and systems programming at Yale University and just saying that name sends chills down my spine. Before I get into my own experience though, I want to thank Data Camp for sponsoring this video. I love it when companies whose products that I've actually used and benefited from me reach out to me for a sponsorship, and Data Camp is no exception. I made a lot of videos about programming and data science and I constantly get the question what's the best way to start learning AI and machine learning, and I can say with full confidence as somebody who's used the product for years, Data Camp is a phenomenal way to start learning, and it's not just for beginners either. They have a massive array of courses at all different skill levels. We're talking over 350 courses designed by top experts in the field. Hey, and if you're not sure where to start, what to learn, Data Camp has free personalized assessments that will give you recommendations of where to start. I first used Data Camp during my senior year of college for a machine learning class. Although I was super familiar with Python at the time, I had no experience with a lot of the data science libraries like NumPy or Pandas, and I was pretty rusty. Data Camp not only made it super easy to pick up these new skills, but it felt like a game. There's these like learning levels and XP points that you can earn. It's very, very fun, and it's all integrated into your browser, so you don't actually have to set up a whole data science development environment, which is always a pain with all the different practices and stuff you have to download. Since my first time using Data Camp, I've become particularly interested in their career and skill tracks. For example, the deep learning for Python skill track was especially useful for the AI that I built that cracks passwords that I talked about in the last video. So if you're interested in giving it a shot, I mean, I don't know why you wouldn't be. Unlock new career opportunities and become data fluent today by using my specialized link in the description, and check out the first chapter of any Data Camp course completely for free. Now that we're back to the main video, I thought I would do some dramatic readings from some of the course reviews for CS23 just to kind of set the tone. No! Run away. Don't take this class. Seriously. Don't take this class. I've had no life or social interaction for the past four months. Only majors and masochists take this course. No. Stay away. Stay away. God no. And lastly, as a result of this class, I'm pleased to inform you that I am no longer a computer science major. So honestly, there's multiple things that make this class the behemoth that it is. So I'll just start going down the list. No. 1. All the programming assignments are in C, which immediately makes your life miserable. Gone are the days of, you know, list.append and say hello to Valgrind, SegFalz, and searching hundreds of lines of code that you wrote from scratch to find where the memory leak is at. No. 2. The class is basically two different classes. There's very, very little overlap between what you were learning in the lectures and what you were coding in the programming assignments. It actually used to be the same amount of credits as two classes at Yale, and for some reason they changed that. So in addition to the 40-hour programming assignments that you had, you know, every other week, you also had to learn the content in class and study for exams that were the same week the programming assignments were due. Oh, and that's that's in addition to the, you know, three to four other classes that you've taken that semester. A couple of them probably also computer science classes. So, good luck. No. 3. There's no boilerplate or starter code or really like any guidance other than, you know, a massive, massive page of HTML text to go off of when you're starting these assignments. And I'm not, you know, somebody that needs boilerplate code, but for assignments this complex would have been nice to get, you know, something started, you know, you begin building up your own library of functions and stuff that you can use from previous assignments, which is fine. There's not a lot of overlap beyond like the basics. You go from an empty file to probably four to six files, all of which at least a hundred lines of code. You have to make the make files and everything from scratch and link it together and yeah, by the end of it it's a complete mess. If you're like some of my friends, you just put everything in a single file and it's like 800, a thousand lines long or me, you know, I'm a little more organized, try to separate everything out, modularize, object oriented as much as you can, but it's still C, so try your best. And the funny thing is you can spend, you know, tens of hours, hundreds of lines of codes, writing something and then still get a zero because you're not awarded any points until you have a fully functional program that can pass at least some of the public test cases. Oh, and that's the other thing. Yeah, more than half the test cases that they're actually using to grade your assignments are private, so if you think there's not gonna be a bunch of sneaky little edge cases that they're going to try to ding you on, you're just completely wrong because you pass in the public test cases doesn't mean anything and that's just the starting point when you're, you know, 20, 30 hours in. If you're not getting the vibe already, this class destroyed me and I don't like talking about it, but I thought it would be an interesting video idea. Just to give you an idea of some of the program and assignments and what they actually look like. The very first one that we started off this semester for was, if any of you have ever coded in C or C++, you know, you have to link the files using something called a make command, which, you know, takes all your files, builds it into, creates the object files so you can actually compile it. We had to make, make. We coded the entire bash command from scratch. There were definitely harder programming assignments, but that one was probably the most time consuming just because I was so rusty with C. And if you thought just coding like a single bash shell command was bad, well, the final program assignment of the class is actually, you know, just making a shell, making bash from scratch using system calls and everything else that's, you know, so fun, you know, bash in the terminal, that little friendly black box that sits on your computer, the two type commands into that we all see as people love so much. Well, yeah, we just made it from scratch. So fun, fun stuff. I can't tell you how many nights I stayed up until the wee hours of the morning, just searching and searching for bugs and edge cases. Oh, and the worst thing is, is when you would make some last minute changes to your code right before the deadline, and then it actually ends up breaking everything that you spent so much time working on, and then you end up getting like a 40% on an assignment. That's, that's always the best. Anyways, I'm getting way too worked up over this, but that is the story of how I survived the hardest computer science lesson, probably arguably the hardest class at Yale. This was fun to reflect on some old memories and some old lines of code. I don't plan on doing it again though, but I would like to make similar videos in this vein, so let me know what you guys thought down below in the comments, drop a like, it helps me and supports the channel a lot more than you think. If you're new to this first video that you've seen, subscribe, there's a lot more similar to this. And with that, I guess I'll see you guys next time.