5 ms·
I honestly don't understand why people keep recommending CS50. Maybe I'm just a slow learner, but I really think that if I had had to learn programming with tha
by cloogshicer 4y ago
I honestly don't understand why people keep recommending CS50. Maybe I'm just a slow learner, but I really think that if I had had to learn programming with that course, I would never have learned it - the learning curve is really steep, and it crams way too many languages into a very short amount of time, making you a jack of all trades and a master of none. I also don't understand the obsession of CS curricula to have people implement things like sorting algorithms by hand. This would've really put me off as a beginner.
- nojito 4y agoThat's the whole point of the course. It's designed to be a catchall introduction to CS. Learning Programming != Learning CS
- jstx1 4y ago> making you a jack of all trades and a master of none. - it's not about learning a language - I don't think it's crammed either - it covers a lot but everything is explained in a very accessible way from first principles - if an introductory course was using only one language, you still wouldn't master the language - being exposed to different ways to do the same thing is very valuable and very underrated for beginners imo because it teaches you to abstract over concepts - when you learn how to read a file, write a loop, sort an array in each one of C/Python/JS, you develop better understanding of the concept of reading/looping/sorting instead of thinking that the only way to do it is the way your first language does it; you begin to develop a sense of which concepts are language-specific and which ones carry over across languages. I think it's better if this understanding happens early instead of late.
- Aperocky 4y ago> making you a jack of all trades and a master of none. Master of a single programming language is a moot concept, it either boils through to other languages or you just memorized the syntax really well.
- bidirectional 4y agoThis is going too far in the other direction. There are absolutely people who have mastered e.g. Java, CPP or whatever with language-specific knowledge. Being an expert on JVM internals won't boil through to Haskell.
- Aperocky 4y agoJVM is essentially project knowledge, if you're writing code that requires you to understand JVM internals really well, unless you're working on JVM directly, something is wrong within the division of labor. Programming with java requires no internal JVM knowledge bare the bare minimal surface ones (execution args, etc).
- bidirectional 4y agoWhy? If you're working on a performance critical application, you need that knowledge. Plenty of HFT firms use Java.
- markdestouches 4y agoWhat's the reasoning behind picking Java for a performance critical application over something like C or C++?
- tester756 4y agohttps://news.ycombinator.com/item?id=12051639 https://news.ycombinator.com/item?id=12051639
- BossingAround 4y agoWe do have CLR, BEAM, HaLVM, and LLVM. Understanding the JVM translates to understanding similar architectures.
- nightpool 4y agoWell, being a master of JVM internals does give you a very strong grasp on a very useful basket of concepts for GC and programming language implementations, so I'm not sure I would necessarily agree that there's no transferable overlap. But regardless, neither of these are applicable metaphors for a 101 level CS class—at the introductory level, you're better getting a broader survey of lots of different languages, because learning the transferable fundamentals is more important than learning the specific "trivia" of any particular language.
- nverno 4y agoI remember learning mergesort as a beginner was a really eye-opening experience. Going through the progression of sorting algorithms seems like a perfect way to showcase the power of algorithms- they are easy to implement and are used everywhere. It's easy to forget how magical recursive algorithms are to the uninitiated.
- lolinder 4y ago> making you a jack of all trades and a master of none This is exactly the point of any introductory college level course. They're never intended to be the end of your education, they're designed to be a broad introduction to most of the different concepts that you will be learning throughout the program. Even if you're not taking the rest of the program, having a broad overview as a starting point is valuable. You won't "master" anything in 3 months no matter what you do, so starting by going deep just needlessly limits your perspective on how much there is to learn.
- paulcarroty 4y agoCS50 is really good, and the instructor is real rockstar, not a shame to recommend it too. Guess many people expected a course like Codecademy with `print 'Programming is fun!'`.
- BossingAround 4y agoThe instructor is definitely great. Me, however, I prefer to learn in a bit of a slower style, with less distracting acting/performing.
- noSyncCloud 4y agoAll of these are compelling reasons to take this course. I do believe you've talked me into it.
- jacurtis 4y ago> I really think that if I had had to learn programming with that course, I would never have learned it This is one of the most common misconceptions in general with educational institutions and the general software engineering job market. Programming is not Computer Science. Computer science teaches you how computers work, concepts of how encryption works, concepts of security, concepts of memory management, and so forth. More recently computer programming has been added as a part of Computer Science degrees, but actually just a decade or so ago (when I was going through it), you could graduate with Computer Science degree without programming experience at all. There is no doubt that learning computer science makes you a better programmer, but it is different and it is possible to be a good programmer without it. Programming is one of the practical applications that benefit from strong computer science knowledge. Just like how taking a human anatomy course or a biology course doesn't train you to become a doctor. But it's pretty important knowledge needed for doctors to be good at their jobs (so much so that we don't let people practice medicine without it).
- BossingAround 4y agoQuoting someone else in this thread: > Harvard’s course seems to be aimed at people who are coders or want to be better at coding, so you learn about different languages, algorithms/data structures, SQL and such. CS50 is definitely somewhere between "comp sci course" and a "get coding quick" bootcamp.
- scott_s 4y agoWhat Computer Science programs were you aware of where someone could graduate with no programming experience? I am unaware of any.
- l33t2328 4y agoI’ve never heard of one. I refuse to believe a self respecting CS program would let people through without taking some kind of computer organization/low level programming type class where you _at least_ program in some C.
- 4y ago
- deleted 4y ago[deleted]
- BossingAround 4y agoAgreed. I also didn't like CS50 very much, and I wouldn't recommend it to folks. I think people love it because it's entertaining.
- lolinder 4y agoHas it occurred to you that your dislike for it may be due to the fact that you're not the target audience, rather than that there's a problem with the course? In your previous comment (since deleted), you noted that you had been programming for a few years before you tried it. It's an introduction to the subject, so you were bound to find a lot of it to be beneath you. In my own experience working with a lot of brand new programmers, making the subject entertaining is 80% of the battle. Most introductions to CS are unbearably dry and do a very very poor job of motivating further study. The job of an introductory course is to give an overview of what you'll learn going forward and make you want to learn those things, and by all accounts (even yours) CS50 does that.
- BossingAround 4y agoIt absolutely has occurred to me that I'm not the target audience. That said, I still think there's a problem with the course in as much as I don't agree with the method selected. In other words, CS50 is probably great if it is the one and only course a new person would take. This is due to the broad focus on so many concepts. However, if it is the first out of many courses, I would not choose such broad focus. I would (and have done many times) create a curriculum based on the student's needs and desires. That's why I don't like CS50. It's not because I'm not the target audience necessarily, it's that CS50 is overhyped and, in my humble opinion, not suited to be the first course for serious self learners. By not suited, I mean that there are a number of specifications on Coursera that are a) also free, and b) will lead one better to the goal if the goal is known (which is where most newbies need a mentor). I do not mean that CS50 is unsuitable; I mean that it is suboptimal. In my experience, that is.
- lolinder 4y agoThanks for the substantive reply! It's good to get a different perspective. I think you may be right about it being suboptimal for self learners. It was, after all, not really designed for that. I disagree that the breadth of the course is a flaw. One major problem I consistently see with self-taught individuals (including myself before college) is that they have major blind spots, places where they don't know what they don't know. A broad introductory course that intentionally doesn't restrict itself to topics the student is already interested in is the best way I know to quickly turn those unknown unknowns into known unknowns. Whether or not the student chooses to fill those gaps in later with further courses, they'll be better for knowing where the gaps are.
- cardy31 4y agoMy experience was the opposite. I went in with absolutely no programming experience. It took me a week to figure out how to do the first problem set (boy are loops ever amazing). CS50 got me interested enough in programming to pursue it as a career. I have a CS degree now, and work at a well known tech company. I don’t think the audience is “people who know some programming already.” It is designed for absolute beginners and assumes very little about your prior programming knowledge. I recommend it to any beginner looking to see what computer science is about.
- wawjgreen 4y agoyou are right, CS50 is just a mish-mash without a clear focus and a timeline and action-plan for "what's next".