Interesting, very interesting. Now, I haven't watched any programming-specific videos other than the one linked, but my immediate thoughts were something along the lines of "But you need to know [that a program executes from the top-down] first!" where  is pretty much everything I know about programming.
But I think that I might be wrong. I think that Sal might be right, and just go. Python is easy enough that some people might pick it up just from following along - not to mention that you don't want to fill people's heads with crazy words they've never heard before. That's only going to stop people from trying to program.
The problem is that I'm a fairly experienced programmer by now, so any thoughts I _do_ have are going to be skewed. I can't look at these videos from a beginner's eyes because my mental model for programming is already set, and no matter how I look at something, I'll try to fit it into my existing model.
Either way, this is fantastic. Absolutely excellent. I think it's wonderful. Honestly cannot shut up about it. I'm going to tell my sister to watch them, just to see what she thinks.
Given that Sal focuses an awful lot of time on getting Khan Academy in schools, this may be the next step in teaching the entire world how to program. I can't wait to see where this leads.
He's just straight up wrong about putting the filename in a comment at the top of the file. It's true: files change names all the time, why make someone change them in two places every time? Moreover, he should be describing the module using PyDoc, not comments.
I'm worried: Sal does not seem like a professional software developer or someone who's done significant software maintenance. Like Visual Basic, he could end up just teaching bad practices that people who watch his videos will just have to unlearn later.
Personally, I'm still going to recommend that people read Learn Python the Hard Way, not watch this video.
When you teach basic math, do you start with introducing the student to proof theory? In any field, the natural process is to relearn how to do things. I certainly have had to change how I program, how I document, etc., and I think I am a better programmer because of learning to adapt to those things when I've found a better solution.
LPTHW looks like a great book and may be a much more thorough introduction to Python for someone who is committed to learning the language; these videos are not really focused on that demographic. LPTHW is great if you're already a programmer or go in knowing you really want to learn how to program; hopefully where these videos can succeed is bringing in new people who are mildly interested and getting them started while showing them how fascinating programming can be. One day, hopefully Khan Academy will have enough videos and interactive exercises that a programming education will be as thorough as LPTHW, but that doesn't happen overnight.
He's not simplifying things by putting the filename at the top of the file: he's just wrong. This is stuff which is clearly learned because people who don't know how to program correctly pass on little pieces of code like secret incantations without really thinking about them.
I'm not saying that adding extraneous comments at the top of your file is the end of the world: I'm saying that Sal violated basic programming practice in one of the simplest 10 line programs that can be written. This is a canary.
What makes good teachers so good is that they know their field so well that they can use all of their gathered knowledge to help clarify and guide people who don't know any better. It doesn't matter how good a teacher you are if you really don't know what you're teaching.
He's not upset about the filename-comment per se, he's worried that it's an early warning--it indicates that Khan isn't very experienced with software development (which, in my opinion, is a valid conclusion), and that that'll cause more serious problems in the future.
Remember when people started slamming him for oversimplifying history, or getting other minor facts wrong on non-programming subjects? Everyone on HN just said "it's free, it's interesting, and who cares as long as students get the basic idea?"
Now that he's making minor mistakes on programming, HNers are upset he's not a software engineering expert.
I'm not being hypocritical: I think that he should start consulting experts for all his classes. I'd much rather have a site that crowdsources experts to teach topics than have one guy with a shallow depth of field on a lot of topics do it.
exactly. if the viewers of these videos intend to become serious software developers then they can just correct whatever wrong shit they learn. if they don't care about best practices then it is still better that they know how to do the basics to automate mundane tasks then not know any at all.
Like what? (Seriously; more people getting interested in programming, candidates after Khan's video's somehow "slipping through" the interview process for a Jr position? Or, (where I can see your point), setting up bad practices?))
I don't know how much code Sal has written, but, depending on the project/coding standards, I've seen a lot of code with filename comments at the top. It's not really an indicator of experience or skill.
I'm saying that Sal violated basic programming practice in one of the simplest 10 line programs that can be written. This is a canary.
I didn't think that the video (now dead) was particularly good, but I think that this is a bit of an overreaction. LPTHW doesn't seem to use PyDoc comments either. Would I be upset if he used C# and put a // comment at the top of a method, instead of a /// comment? Probably. Would I regard it as evidence that he wouldn't be able to teach programming? No.
He's not simplifying things by putting the filename at the top of the file: he's just wrong
Maybe this is a Python thing, but there's a semi-official, but fairly popular tool from Microsoft called StyleCop that forces C# code to have a comment with the filename at the top. Bottom line: putting a filename at the top is not regarded universally as a bad practice, even among professional programmers.
Will you be putting up your own website of free programming tutorial videos done the way you think they ought to be done? Will you offer to volunteer your time to Khan Academy.org to produce programming videos the way you think they should be done?
When I referred to simplification, it was more in reference to the comment about not using PyDoc than to the filename issue. Regarding the filename issue, I think you are blowing it completely out of proportion. I don't personally believe in it, but it's definitely a style thing, and it's definitely not something that only people who don't know how to program do.
When you teach basic math, do you start with introducing the student to proof theory
I know that it isn't your main point, but I when Sal inevitably moved to CS, I was hoping he would start with theoretical CS first. He seems strongest on mathy topics, and I think his style of teaching could be very useful in that area.
Talk about nitpicking. You are clearly missing the point here. These videos are not aimed to tell everyone everything there is to know about a topic. They are there to lay the basics or spark some interest after which the person should go off on their own with a basic understanding and learn more. Can you can honestly sit there and tell me that commenting would be a major focus on an intro to [insert language here]?
I don't think the OP is asking Sal to throw in multiple PEP explanations in each 10min video. But looking at it from an absolute beginner's point of view, you're going to assume that Sal is (at least at this point) the authoritative source of how to do things in Python. You're going to comment all your programs this way. It's going to be a habit you have to unlearn later, or worse spread to others.
The real issue is that there is already a clearly defined way to do these things. If you've got any meaningful experience with Python, you should be following at least the spirit of the PEPs. I don't think that's unreasonable for Sal to do.
Khan is doing several things at once -- teaching about comments, teaching that the program's file name can change without changing its functionality, and underscoring that this is a program that computes factorials.
These type of efficiency tactics enable him fit a meaningful lecture in under 10 mins.
I agree with you about the filename, I think PyDoc is probably overkill for something so simple. There's no reason to confuse new people with PyDoc. (Does Zed use PyDoc in LPTHW? No. (Except for the pydoc command suggested for reference.))
There was a recent essay taking Khan to task for what the essayist saw as superficiality in Khan's coverage of world history. I am interested to see how the Hacker News community assesses the quality of materials that are related to subjects that are within the areas of expertise of many of us.
On a related note, what many people here found a helpful introduction to Clojure was viewed with circumspection my some in the #clojure Freenode community. Assessing the quality of materials is made even more difficult by the challenge of finding the critics whose opinions are worth paying attention to.
This is a legitimate concern and I fear whenever I hear of people lauding things like the Khan Academy without ever having used the KA themselves significantly yet. Bandwagon praise is not good and I think constructive criticism is needed lest we fall into the irrational exuberance trap again.
I think Sal and the rest of the crew at KA have been keeping this at bay by acknowledging all the good will and keeping on with the daily load of videos, enhancements to the site, open source initiatives with the exercise dashboard, and maximizing exposure with the press while not loosing vision of what they're doing or the quality of the material. That's a good thing.
But I do agree, the material on KA is a little too soft and I would appreciate more higher level material but at the same accessibility and ease-of-use as KA. OCW efforts seem to be filling this gap for awhile, but I think there still needs to be something better. Thankfully, there's Youtubers like commutant who does the same video style lectures as Sal on partial differential equations, numericalmethodsguy who does lectures on numerical analysis, real analysis by Francis Su on the Harvey Mudd channel, UNSW lectures on engineering math, algebraic topology, and digital signal processing, JimBobJenkins who does a fantastic and intriguing lecture series on Game Theory, TheIntegralCalc's great videos on early calculus, as well as MathDoctorBob's clips on a wide-ranging list of higher maths. Abstract algebra by Benedict Gross is also another class I am currently going through, really fascinating.
Criticizing Khan's videos on history is shooting fish in a barrel; the videos are short and concise and history is long and complicated. I could write many paragraphs of what is neglected or biased in just about any introductory books on mathematics, but I wouldn't really be making a statement about their quality. Quality would be determined by evaluating these resources by their effectiveness at fulfilling their purpose.
This is actually the root of the controversy in my opinion: the real purpose of all this online educational material (Khan academy, various youtube channels, MIT OCW, etc) is still pretty multifaceted and ill-defined.
I'm making my videos because I think that well-crafted videos make material more appealing and accessible to a lot of people on the internet. My hope is that people who are already learning the material will supplement with my videos and people who are introduced through my videos will get interested and seek out other sources. In this sense I would hope that they provide a window OUT of the "Skinner box", as would any other reasonable piece of educational material that stokes the desire to learn.
I guess the accusation of superficiality is warranted if Sal is expected to weigh in with value judgements and instead he takes a hands-off approach. I think many of the soft-science topics ( econ, finance ) etc. aren't as value-neutral as two plus three equals five hardcore math.
The above video is supposed to be a discussion of virtues and vices of short-selling, but depending on who you are, you will tend to read it differently, because its impossible to be value neutral on that topic.
I guess finance geeks such as myself will find the question "Are hedge funds bad" itself a nonsense question. Its like asking "Is recursion bad ?". Unless you qualify it with more metrics, such as "bad to whom/what", what is "bad", as opposed to what is "good" etc.
I don't think Khan claimed about teaching expert level material.
`Superficiality` is a strong word. Zed Shaw's LPTHW is for beginners, but not superficial. Similarly, most of Khan's lectures target a particular audience. Some of his lectures are advanced, some are intermediate, some are for beginners...just the way it should be.
Khan himself responded to one of superficiality claims here on HN(the one about history lessons).
If it's the essay I'm thinking of, it was basically complaining that in a video that will billed as an overview of history, some things weren't covered in excruciating detail. I was not impressed by the argument.
thenewboston has owned this space for a little while now and has been doing really awesome vids on things like Python, C++, Java, Obj-C, iPhone dev, PHP, gamedev, Cocos2d, and Adobe CS software.
It's funny because he's coming from the opposite end now, since he's been doing mainly programming and technical content vids and has recently started making series on things like Biology and mathematics, the forte of khanacademy. Pretty awesome to see it all play out.
When it comes to great screencast videos for Python (+ software engineering), I think Software Carpentry (http://software-carpentry.org/) is really nice. and funny.
This might be a different from Khan Academy and thenewboston, which seem to aim for a different level/audience. But for what it is and does, I feel like SWC is one of those hidden gems that I wish would get discovered a little more...
I like Sal's stuff. I've used his videos on math to review stuff I didn't quite get during a lecture (given the quality of math professors I get, this is often). I've watched his other stuff because they're generally interesting (and really cool, I wish I could draw/write like he can).
I watched the video, and enjoyed it. I'm going to recommend it to my friends. It's rather high quality (not going to talk about the download that goes with it, I didn't look at it), and it gets across a good thing about computer science: You can easily verify the results with your own computer.
I see that their's a lot of criticism on this, but this is already loads better than what current uni students are getting (I just went through my first year of uni, and I can tell you that I've not learned anything  in my CS classes).
As I've stated previously, I would recommend this to my friends, as well as to people just getting their feet wet in programming. Good job Sal, you're pretty awesome.
 Except for an x86 assembler class. That class had an excellent professor, and I now understand pointer arithmetic.
It is really cool that Sal is trying to do everything himself, but this method does not scale. There is no way he can create the breadth, and more importantly, the depth, needed to cover all the topics a student will learn. As long as Sal continues to produce all the content himself, I believe the Khan Academy will be relegated to complementary and supplementary content.
I use Sal's material quite abit, well mainly his finance and mathematics material, specially if i need to remind myself of things i did back at uni. I think Sal is most strongest in those areasgiven his background. However looking at the rest of what he produces if your a beginner in any of the topics his stuff is a GREAT place to start. My weapon of choice is actually python so it would be great to see how those tutorials look like :)
Just gotta say great job to Sal though, he spreads his knowledge and i'm sure many people around the world are greatful for it.
Introduction to programming languages and constructs are a great fit, especially if they emphasize and build upon the concepts discussed in the other videos. Writing and understanding the logic behind the factorial program is a great way to reinforce that concept -- with an introduction to Python as an added benefit. Looking forward to seeing how this develops.
I feel weird about suggesting this kind of stuff to my friends and family because after writing code for basically ten years, I have absolutely no idea whether a given tutorial is clear to someone who's never done it before.
And as someone noted, with Resig there, this is just a matter of time.
Honestly, for me, if they're interested in the web or hobby dev, I think JS is the better choice, even download aside. The path from HTML to JS to JQuery and CSS in there somewhere seems like a more useful path for most people nowadays. Once they get that, Ruby/Python will come relatively easy.