3 ms·
This is mediocre course. You get lots of information, but without hows and whys which are absolutely necessary in CS. Compare it to MIT's course on the same pa
by dschiptsov 14y ago
This is mediocre course. You get lots of information, but without hows and whys which are absolutely necessary in CS.
Compare it to MIT's course on the same page - they spend lots of time to explain you whys and hows, so later you nave no questions when faced with crap like PHP.
They not just taught you coding in Python, they explain how it works and why - they teach you environments - how all those classes are implemented, so, when you see Ruby, your educated guesses (note language usage) will be correct.)
So, Berkeley's CS61A by Brian Harvey is where to start. After this course you need data-structures and algorithms (MIT has good ones).
Then it doesn't really which crap you have to face in industry - PHP, Java, something from MS or SAP - you will be able to pick up in on the go, because you have learned those fundamental hows and whys first.
- objclxt 14y agoI think you misunderstand the purpose of the two courses. The overwhelming majority of students taking CS50 on campus will never take another CS course. Harvard undergraduates are required to take a quantitative reasoning course regardless of major, which CS50 fulfils. Both Harvard's CS50 and MIT's 6.00 are intended to introduce people with little or no experience to programming. However, the former has far more students with humanities and arts backgrounds. This requires a different approach to teaching. Neither course is 'better' than the other, and the student evaluations bear this out. The feedback I hear from contacts at edX is that both courses are being very well received. The assumption you seem to be making is that the majority of people taking CS50 care about working in the industry, whereas they just want to find out more about programming. And that's not a bad thing.
- dschiptsov 14y agoI cannot look at it from a freshman's point of view, so I'm biased, but I definitely don't want it to be my only CS course. This is because I just know, that to understand, say, SQL (and NoSQL) there is excellent Database course from Stanford and it worth taking because it will pay back later. To understand programming you need CS61A (because it teach you whys) and then Data Structures and Algorithms. Then you can pick up everything you need from books. So, let's say that this is an Introduction To Coding (without deep understanding).
- nachteilig 14y agoI'm not sure that _any_ intro course goes much into this stuff. That's why we take more courses beyond this one if we need more information.
- rartichoke 14y agoI think you're way off base. I took both 6.00x (the MIT course) and cs50x side by side. Only half way done with cs50x at the moment but 6.00x is over other than the final exam. I feel like cs50x explains the "hows" and "whys" in much more detail, mainly because we're dealing with a lower level language. For example, I know exactly what's happening on the stack now and what role the heap plays and how to balance my data between the 2 to tweak the performance and make trade offs. You don't learn this stuff on MIT's course. Also MIT's course spent half the semester running simulations and dealing with statistics using pylab. This to me seems very specific to what you want to do. If you want to do statistical analysis that's great, but a lot of people do not.
- dschiptsov 14y agoYes, pylab stuff is boring, but it seems like prof. John Guttag loves it. Python and pylab are popular in medical and biology departments, and simulations is what they do a lot. But the other half of the course, which explains you how classes and methods were implemented (as frames of environment) is important. It comes from early (and much better, in my opinion) courses, based on Scheme. The main point, I think, is that they teach you that there is no magic in OOP, and if people remain sane (not stuffing 70 methods to a List class) everything is simple and straightforward. Another realization should be that OOP is not necessary, unless you're doing some very specific kind of programming - simulations. It is not just an opinion, they show you that it is nothing but a bunch of conventions. It doesn't really matter how I glue procedures and data together and how I call them - via this arrangement of pointers or that. Much more interesting things happen when I have a general way to do it - list structure, first-class citizens and macros, so code is data, but they don't teach Lisp anymore. They used to teach fundamental concepts and the canonical ways to implement them. Then you can add (or avoid) any complexity you wish.) At least, after this course you probably could realize that there is much better way to do OOP than Java, and it is already a big deal.
- intellegacy 14y agoTo be fair, this is simply a contrast in different pedagogical approaches to the first Intro CS Class. You learn the hows and whys in later MIT courses when you cover binary and C.