Hacker News new | comments | show | ask | jobs | submit login
Sal Khan has started videos about Python (youtube.com)
323 points by paufernandez 2062 days ago | hide | past | web | 83 comments | favorite

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.

I am going to try and take advantage of your comment's popularity and post a link near the top of the page to the new video that seems to replace the one that he took down:


Hopefully a mod can change the link.

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.

Sorry, but this comes off as typical nerd-rage, nitpicking about things that don't matter.

This video isn't trying to make people into professional developers any more than his videos on algebra are trying to teach research-oriented mathematics.

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.

I'm willing to cut the guy a break. ;) However now that donations (I assume) are coming in, its probably about time to start consulting with experts before starting a class.

Willing to cut the guy a break, huh? How big of you.

Are you willing to actually do any work to improve it, or give a big cash grant so KhanAcademy.org can hire those professional programmers to help out?


Yes, its obvious that he hasn't written a lot of production code. Again, so what?. That's not in any way an early warning that he isn't capable of teaching basic programming skills to others.

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.

Yeah, that's an odd gripe. Check out code igniter for example. One ofthe popular php frameworks...filenames in comments.

I guess I can understand why people criticize Khan but it seems so wrong. Just pretend that khan is for the other 7 billion people!

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.

More proof that no good deed goes unpunished.

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?

Yeah... that's what I though.

First, your argument is a logical fallacy. There's no reason why I need to give a better solution in order to point out that an existing one is not good enough.

Second, I feel no need to replicate LPTHW.

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.

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 wonder, has it ever been tried? (starting with proof theory)

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.

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.

The dude's got so much knowledge on such a large breadth of topics. I wouldn't be surprised if he didn't know or care what a PEP was.

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.))

I'm not sure why PyDoc is so complicated: just explain it like a comment that you only put in certain places. You don't have to explain build tool integration or anything.

The video was trying to show a simple program; it's better for less syntax (often confusing for beginners) to have to be explained, at least at the start.

He could have just used the syntax for PyDoc and explained comments later.

Curious – Zed didn't use PyDoc, does that make his book bad too?

Nope. I shouldn't have put those two things together because one is bad programming practice and the other is just a disagreement I have with his style.

He is not wrong about the filename. Filenames in comments are useful when you print a program - as is often the case for students.

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[1] who does the same video style lectures as Sal on partial differential equations, numericalmethodsguy[2] who does lectures on numerical analysis, real analysis by Francis Su[3] on the Harvey Mudd channel, UNSW lectures[4] on engineering math, algebraic topology, and digital signal processing, JimBobJenkins[5] who does a fantastic and intriguing lecture series on Game Theory, TheIntegralCalc's[6] great videos on early calculus, as well as MathDoctorBob's[7] clips on a wide-ranging list of higher maths. Abstract algebra[8] by Benedict Gross is also another class I am currently going through, really fascinating.

[1] http://www.youtube.com/user/commutant

[2] http://www.youtube.com/user/numericalmethodsguy

[3] http://www.youtube.com/user/HarveyMuddCollegeEDU

[4] http://www.youtube.com/user/UNSWelearning

[5] http://www.youtube.com/user/JimBobJenkins

[6] http://www.youtube.com/user/TheIntegralCALC

[7] http://www.youtube.com/user/MathDoctorBob

[8] http://www.extension.harvard.edu/openlearning/math222/

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.

These look great. I have been looking for more Kahn-style videos that were more advanced, but still not from an actual class like the MIT OCW stuff.

BTW, this is an incredible list. I've been coming back to it over and over for the past week. The Abstract Algebra lectures are great -- very fast, very interesting.

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.

eg. http://www.khanacademy.org/video/is-short-selling-bad?playli...

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.

Here's another one: http://www.khanacademy.org/video/are-hedge-funds-bad?playlis...

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[1] 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.

[1] http://www.youtube.com/user/thenewboston#g/p

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...

Never knew about that. Thank you. I should also mention http://codeschool.org/ as another video-format series of lectures on topics in CS.

I'm glad I'm not the only "thenewboston" fan on HN. He really does a great job of making objective C approachable. Watching his videos were a huge help to me.

If only he had an Android dev tutorial when I wanted to learn it. Does he still have like only 4 Android tutorials? Because that's too bad. I really liked his Python and Java ones.

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 [1] 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.

[1] 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.

Seems like the video has been removed...

Looks like he replaced it with this one:


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 didn't look too much at this, but I've done thenewboston's Python and Java tutorials, and they are AWESOME!

Anyone else getting a "This video has been removed by the user" message?

Yeah, http://www.youtube.com/watch?v=ZyYp1V84Xqc seems to be a redone video.


I'm going to try this on my mom :)

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.

How do people evaluate this kind of stuff?

That's why I want to do this experiment.

I wish he would do javascript, would be uber cool if he suddenly had a fascination with Node.js

Hopefully John Resig (now working at Khan Academy) will help with that :-)

Given that Khan is hosted entirely on App Engine, I wouldn't count on a Node.js-specific tutorial series starting any time soon, but JavaScript in general is possible.

I don't see why our hosting choice has anything to do with the tutorial content, Señor Benjamin

Para enseñar se requiere de experiencia con lo que uno sabe. I assumed that the lack of experience with Node.js would at least somewhat preclude teaching its best usages.

On the other hand, what the fuck do I know. I'm a Smalltalk developer leading a .NET front-end to a Python project.

We miss you, kamens. :(

Your assumption was correct. And same to all of you.

Seriously. If you come back, I'll give you a Golden Retriever. And I promise it won't try to jump of any ledges.

It's not fun until you've broken some old lady's thumb. I wonder if this is deep enough in a comment thread for the downvoters to not punish me for an entirely worthless inside-joke comment.

That's what I'm banking on.

(The parent post is by the Khan Academy lead developer.)

True, but the great grandparent post is by an old friend -- and he's probably still right about node.js in the near future ;)

I may need to use http://news.ycombinator.com/item?id=2708222 to understand the relationships discussed here.

Glad someone chimed in, because i didnt have a clue who was what and what was who

Not only is Javascript possible, but its the simplest for average kid to start with. No download required. I love Eloquent JS for further study. Just browse the web and have an interactive tutorial that goes into pretty good depth.

And as someone noted, with Resig there, this is just a matter of time.

Designing with JavaScript by Nick Heinle was one of my first book purchases. I studied the crap out of it in middle school.

Javascript is great as intro. Kids are naturally drawn to shiny things and you can create plenty of shiny stuff with Javascript with minimal setup.

Once you hit the natural limit("how do I save the scores!"), you can move on to PHP/python etc.

It's cool that everyone has a JavaScript environment on their machines, but I think that if you want to learn programming downloading Python is not a problem.

JavaScript is great for me when friends ask me: "Hey you know programming right? Show me something on my computer" but if they want to learn programming, I'd just ask them to download Python or Ruby.

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.

I wish he would do Python; it would be über-cool if he suddenly had a fascination with Twisted. :3

FYI, looks like the video has been taken down...

Vids removed ?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact