Current Topic Filters

Welcome to r/technology

Vision

/r/technology is a subreddit dedicated to the discussion of all things technology. This subreddit is for technology-related submissions only, but we allow articles which are of a political nature provided they are also significantly related to technology.

Definition

Technology is the making, modification, usage, and knowledge of tools, machines, techniques, crafts, systems, and methods of organization, in order to solve a problem, improve a pre-existing solution to a problem, achieve a goal, handle an applied input/output relation or perform a specific function. (Wikipedia)*

Rules

1. Allowed Submissions

Submissions must be a technology related article or self post.

Self posts must contribute to /r/technology and foster reasonable discussion.

2. Follow the Rules of Reddit

3. Titles

Link submissions should use the article's title or a quote describing its content. They must be free of personal opinion and accurately represent the content of the article. Posts that fail to meet these criteria may be removed at moderator discretion.

4. No Image or Video Submissions

This does not include articles with supporting videos.

5. No Mobile Sites

These URLs are usually prepended with "m." or "mobile." Please link to the desktop versions of sites instead.

6. No Personal Information

No personal information or Facebook links.

7. No Petitions or Surveys

Also no crowdfunding submissions.

Transparency

Reforms

The moderators of this subreddit are dedicated to transparency and building trust with the community. /r/technology is currently undergoing reform to increase moderator transparency and openness. Currently implemented reforms:

This is awesome! It really drives me nuts that with all the advancement we have made in technology/interconnection and it's potential in facilitating learning, very little has been applied directly to main stream education.

The only real change I've seen since I went to high school is that instead of drawing everything out on the blackboard every semester from scratch, the teacher uses a power point.

When you have choice it becomes a bureaucracy, which slows any process down. It's a flaw of any democracy but it guarantees that an idiot won't be in control for the long term.

What I love about Khan Academy is that they can cut through all the red tape and cater to the interests of any person at any age. Accessibility has always been a major problem in education. Khan is a giant step forward. As it is, there are not enough children who know how to code.

Unfortunately, they may code like rocket scientists and still have difficulty in getting a job due to people still requiring a degree. The sad thing is that most degrees now days are only indicators that a person spent some time and money. They no longer are indicators that the person has the skills. I support Khan Academy. We need a way to make it so proven skills can land you a job rather than requiring a piece of paper which in many cases is meaningless (other than getting you through the door and costing a fortune to obtain).

coding is completely different though. if you've got a kick-ass portfolio as a programmer, no one cares what school you went to. it's not like other jobs where you need experience before your talents can be recognized; you can work on your own projects and use that as experience.

As someone else posted in response to me what you are saying is basically true provided you can get around HR. HR usually is the entity within the company that screens based upon degree and the other people may never see your application due to that reason.

EDIT: That has been the problem I usually encounter. That or being considered "over qualified"

EDIT 2: My story is this. I began programming in 1981. I programmed heavily and was really young. In High School they stuck me in a little room with glass walls and threw programming problems at me because, I had tons of personal experience and learned "pascal" in this case in a few weeks. By the time I was in College some of the problems he challenged me with I did not encounter again until 3rd year courses. I attended a school that promised a Computer Science degree by the time I got there and it never happened. So, I took all such classes they had and self educated myself as well as taught others about the internet and programming and things like that. I was very active on the internet right before the WWW explosion. My first son was born and I moved to the Denver area for tech work. I actually found it very difficult to break into those fields (early 90s). I eventually worked for IBM and had people with Masters degrees in Computer Science coming to me for answers though I had no degree. They made about $10K/year more than I did. I went back to a school in the Denver area for a Computer Science degree and had about a year and a half before getting it. I had a family, a job, and was spending a lot of money to get educated. I liked some of the classes a lot. I had to retake discrete mathematics since it did not transfer from my previous school. They spent about two weeks on truth tables (which I'd been doing since Jr. High) and we were getting ready to go onto the next section. A lady on the other side of the room basically said what amounted to "I don't get it." The teacher began teaching the section over again rather than taking the student aside. That is when I got up and walked out. There was a class on Comparative Languages before that which the instructor places a language to build a tokenizer for the first process of a compiler or interpreter. The language is fictious and made up. I thought he said it was due the next day. I was thinking FINALLY a challenging class. The prerequisites for the class were Discrete Mathematics. I showed up the next day with the assignment done. IT wasn't due for two weeks. So, I basically had nothing to do for two weeks. My excitement of the challenge quickly faded. I was the only person to use a finite state machine in my design (i.e. discrete mathematics) and my code was 4 pages with comments while everyone elses was 7 pages of if then else.

Out of principle I did something that was likely STUPID. I decided it was a joke and not worth what I was paying. So, I never completed my degree. ANY job I have managed to get past the gatekeepers I have done well in , but there have been a tremendous amount of jobs I could get no contacts from.

As a result I have spent my career doing more IT and Helpdesk jobs than programming. I do the programming a lot on the side though.

So, what you are saying about portfolio is GREAT provided you can get past the gatekeepers who likely have no way of interpreting the contents of your portfolio.

Thanks for your story! I've actually got a friend that's got a well-paid job and was even head hunted by google (though he apparently chose to stay where he is), and he dropped out of college because he, as you put it, was not challenged at all and was pretty more more talented than most of the profs. Though he developed a kickass program that I'm sure tons of people on reddit have used and he still makes money from it from ad revenue sources. I don't want to say what it was, but I'm sure a lot of gamers know the program.

Yes, more people are doing the Show and Prove method, but there are still a ton of places that list the degree and weed people out by that. I think that is unwise of them, but hopefully they'll come around.

Yeah, I had this dicussion on Linkedin a couple of months ago when someone else actually with a degree was asking how to break in due to the huge laundry list of requirements all of the jobs were posting. We basically all came to the conclusion that they use that to thin out the applicants. If anyone actually had all of those things they'd be considered over qualified and not hired. I almost didn't get a job for that reason in the past, but someone convinced them to let me have the job anyway. I did well. I am also of the opinion that "over qualified" but being willing to accept a position that pays less and may be lower should be a good thing for the employer. They get a skilled person for less than they otherwise would. What the person is willing to accept for pay and position should be up to that person. I guess that is likely another discussion though.

yes they just list it for allocating the budget reasons, they don't require it. They usually don't tell HR though and HR sticks by that rule. Applicants have to find a way around HR if they don't have a degree.

I agree, the ability to put a first world education at the fingertips of anyone with an internet connection is going to have some huge benefits and consequences over the next couple decades. We are entering some very interesting times.

I'm just guessing here, but I think what he is getting at is that in the near future, so much of the stuff we have in our homes, cars, pockets, etc... is going to be programmable in one form or another that not being able to automate and program common tasks and such is going to be a huge disadvantage.

I remember a guy that basically automated his entire job and even felt guilty about it since he was basically being paid to sit at a desk while his software whipped every other persons numbers by a huge margin giving him bonuses and such.

That kind of thing is not going to become less common, but almost essential to be considered for most positions. 5, 10, 15 years from now, if you can't automate parts of your job on your own, you may be unemployable for anything except what can't be done by a computer/robot.

edit: left out a word making the last paragraph make no sense and did some spacing.

One important point: Education is not presenting facts and knowledge. It's a two people process.

You can sit through all Khan lectures and not be able to program your way out of a cardboard box afterwards -- you need to get involved by yourself. And the schools are full of people who don't want to get involved, and then not even Khan would really help them.

Am I the only one who unnecessarily gets annoyed when someone uses if(boolean==true) instead of just if(boolean)? Maybe I'm just a dick, but a little part of my brain starts itching whenever I see that.

No insult intended, sometimes that is the perfect response to a really bad question. It just drive me nuts when people post that at people that can't even get "hello world" to run in some language after following a tutorial.

<random rant> If "hello world" won't run, something is fucked up in their environment. They could RTFM for a month and still not be any closer to fixing the problem. Actually, telling them to RTFOSM, (read the fucking windows/Mac/Linux/etc....), manual would be more helpful, but only slightly)</random rant>

Not sure how your rant relates to my trivial little syntax gripe, but while we're on the subject, I'll have to agree with you and say that RTFM should be reserved for people who already know what they're doing and will take up 30+ minutes of someone's time having some function or module explained to them when they haven't even bothered to read the documentation. On the other hand, if somebody is new to programming, and is having trouble wrapping their head around some fundamental concept they've never seen before, rolling your eyes and telling somebody to RTFM is incredibly dickish, elitist, and counterproductive.

Where does a child start if their parents' profession isn't in technology?

How do you keep the inner-city youth involved in their interests instead of following their friends?

What answer is there for the kid who wants to learn but school is out and most teachers aren't available?

What if the kid's family can't afford a computer though he is desperate to learn?

These, and many other questions, are difficult to figure out. I don't want these kids to have to learn programming from hackers on the web who are poisoned with twisted beliefs. They will most likely teach them the wrong path.

We are still at the beginning. The Khan Academy is not meant as a primary tool for any future profession. It's only meant to guide you.

Exactly. I don't think I would have been interested in computers if it weren't for my mom buying one. I would have never gotten into map making or modding if it weren't for my uncle, because he gave me StarCraft. I was programming without knowing what programming was. Map making slowly turned into what I do now: game development.

You miss the entire point. My life could bypass your proposed answers.You cannot allow the online community solely to teach children. I grew up on TV because that's all I had. Do you really want these kids to grow up on Sooki?

These are impressionable people where many are very quick to yell racial epithets. Are you going to take it on your behalf to understand someone however many miles away and many nations they may be?

Some of these kids can't even pay for food in the US and they may even not have a parent.

If you are so bold and wise then take someone under your wing and teach them right. Everybody who can, do it. Most on the web will treat them like idiots which is far from the truth. It raises another generation of people who don't know anything.

Your examples are irrelevant. You're taking the worst aspects of popular culture and saying that they are a bad influence... No shit. The online community is not some singular entity that you can paint with a large brush. Different specialized communities operate, are regulated, and are moderated completely differently.

This doesn't absolve the parents/guardians of their responsibility either, which is why I mentioned it. Something that you seemed to have ignored.

My comments were directed at your specific questions. You seem to be arguing about something that wasn't even mentioned.

You make a statement about the Internet and behaviour. I then respond directly to that statement (about the Internet). Then you state that my response doesn't apply to parenting and households in the US. Like WTF.

If you think think it's best for a kid to learn from the web then, I'm sorry, but you're a fool. The web is filled with all kinds of hate. That will change you even if you don't want it to.

Once again... You are completely misrepresenting my point, taking my comments completely out of context and trying to force them into being attacks against something that isn't even being discussed.

Maybe it's because you're poor (or at least grew up poor), and you're slightly illiterate. But you need to review the comments made, and how they were directed at your specific statements.

There is generally a core amount of material in any class that is presented in a very similar way no matter who is teaching the class. The goal should be to make that core material available to students at all times. Then teachers and class time could be freed up for expanding on it, practicing it, and directly applying it. Kind of like reversing where some of the basic teaching takes place and where homework takes place.

Obviously, this faces some huge challenges, not the least of which is home computer access, but cheap thin-clients and desktop virtualization present some interesting possibilities.

There is still the issue of getting help and having someone to answer questions. Khan academy does have an area for it and a way for folks to volunteer as mentors. But, I think a better route for students would be message boards (like stackoverflow and google groups) and IRC.

Communicating with a variety professionals can yield better answers than a teacher (in this subject anyway).

I have a friend who is the senior product manager at a video game company. He gave me some tips in pursuing a career in computer science. His biggest tip was not to just major in CS, but in business as well. He said you can't be just a programmer or designer or something like that your whole life and expect to get somewhere. You have to grow, to build up, and to do that you have to have a know-how in business. Take the creator of Minecraft, Notch, for example. He made a great product on his own and it blew up without any advertising or marketing. However, if he didn't know anything about business, he would have made the game and it would have grown much more slowly, and have a cap where it would stop growing. To promote Minecraft, Notch has products, t-shirts, vinyl dolls, props, Minecon and Minecraft licenses to make him money, with the rest of the internet doing his marketing for free. If he didn't know anything about business, Notch would have ended up having to give/sell Minecraft away to some big corporation. But Notch made his own company, Mojang, and now he's still expanding. To be successful in computer science, you use your CS skills to make a good product, then use business skills to make it grow.

i plan to take a series of free online CS courses in hopes of teaching myself the skills necessary to pursue a career in programming and/or IT. can someone explain any tips to attaining this goal? how will employers view my alternative education? what can i do to make my goal a reality?

I couldn’t agree more. When learning to program, there is a benefit to figuring things out on your own, but if you are spending more than half an hour trying to figure something out that you think should be pretty easy and not getting anywhere, it's time to ask for help. More than likely, you are either missing something very simple or what you are trying to do is much more complicated than you thought. Either way, spending 2 to 3 hours without accomplishing much of anything, even if you eventually did figure it out, is not very productive and it's a major motivation killer.

Also, when you ask a question, make sure to put in a ton of detail including your thought process and what you have already tried. I've found that more often than not, just getting my thoughts organized and trying to put them down in writing makes the answer pop into my head as if by magic!

I have gotten just as much use of that technique in advanced math and engineering classes, and even a few times when working on cars and IT projects. Sometimes just trying to accurately explain the problem to someone, or something in this case, really helps refocus the mind on what is being asked or attempted and offers up solutions you didn’t think of before.

In math and engineering, if I couldn’t compose a good question and outline what I had already tried and why it failed, it was a sure bet that I didn’t understand something fundamental to the problem. Then it was time to hit the proofs and derivations.

OK, I have an @edu email but I am an alumni having graduated last year. Am I out of luck? I tried but they were smart enough to figure out I was no longer attending school despite having a valid @edu email addy.

Express has the limitation of not being able to become an external one - click editor of code, say if you click a C# script in Unity3D it won't automatically load up in VS with Express. =( I ended up going VS Beta to get around this.

I would hire you if you built working software previously. I'm pretty sure the old guys in corporate HR will always look for a degree since they don't know how to evaluate technical skills.

That said, once you have relevant experience, the degree doesn't matter any more. As for how to get the all important first job without a degree, I have no idea who to go to - I'd just put the resume up on career builder and see who calls you.

Most people in programming and IT are terrible. If you teach yourself well, and sell yourself well, you can make it pretty far. I taught myself over the last 2.5 years and I wouldn't call myself great, but I now own my own business and work with large multinational corporations. Hell, I'm even starting as an adjunct web development teacher at a university this year because their previous professor (who had a masters in CS) was so bad.

They definitely prefer a degree...but most people have had enough bad experiences with people with degrees that they are willing to hire those without degrees if they have work to show. Being able to, and being motivated enough to, teach yourself counts for a lot.

One of the things I am concerned about with this is how many 'self-trained' individuals might swarm the job market in a few years. I hope getting a cs/se job will still be easy enough for me with a degree.

Am I the only one who's feeling entirely underwhelmed by Khan Academy's take on CS? I'm a huge fan of Sal Khan and the Academy, but this is really not very impressive.

I mean, I get that it's early days, but it's not Computer Science at all. It's JavaScript programming, and JavaScript via a specific, learning-oriented framework (Processing) at that. This is not much more than what I was learning as a primary school kid playing with Logo.

Right now it's just a pale imitation of CodeAcademy and probably a hundred other learn2code sites. I really expected better.

I do hope it gets beefed up to be comparable with the Math videos. I get that the same structure isn't appropriate for every topic the site covers, like Art History, but if any field would benefit from the same Math approach, it'd be CS.

Good. I hope to brush up on my CS education. Got a CS degree in 2005 and I try to keep up to date but sadly I've been underemployed at a job that I'm the only computer literate person. I try to teach myself the newest skills outside of work but it's not easy when the underpay day job is an utter waste of time and while current job and project applications seem to be asking for everything under the sun. They ask for application development, web development and database management skills in programs I and many others might have only used half of...and that's for so-called "startup positions."

If you have the time, a great way to brush up on skills and gain relevant work experience is to contribute to an open source project. Pick something in an area that interests you, look at the bug list, and start fixing stuff. It won't help you keep up to date with the more theoretical side of things, but if you do a good enough job that your changes are accepted, it will be a big leg up when applying to a job that wants experience.

wow, thanks. Yeah, I heard that open source projects would be a great way to show your stuff. For example, I reversed engineered a 2D space shooter game in Cocos2D to have automated level select creation from a .plist file, added character types, modularized enemies and enemy AI, etc. I should really use services like GitHub to aid the community and hopefully get a better position than what I have now (it's pretty sad working for a micromanaging computer illiterate who pays bad).

Seems though that employers are asking for way too many programs to have been used throughly before working for them. I looks a some job offers and I go.., "ok, I can code half that stuff but I can learn the rest once given the chance" Maybe my current job isn't the only one run by people who have no clue how to create a team of devs.

I honestly don't know about this. I mean as much as traditional education can be useful in CS (reading books, watching lectures, etc.), nothing is more helpful and useful than actually coding and doing stuff in practice. CS does have its theoretical side, but for the most part its a craft, and to master a craft you have to practice, not read books and watch online videos.

ughh I hate that quote - the reality is most CS neckbeards get the CS degree to write software. If "software engineering" was a more common track then the quote would be relevant. The modern CS degree is pretty flexible - you can take just a few classes of pure theory and load up on programming intensive classes.

If you wanted to learn to program at a trade school, you would take classes with names like "C++ 101", "Pointers and References", "SQL", "Saving and Restoring User Data", "Exceptions", "Handling Errors", "HTML5", "Model View Controllers", "Debugging", "Writing Unit Tests," "Making A Refactoring," "Deciding On A Refactoring," "Estimating", "SCRUM", "Version Control", "Version Control 200: GIT".

But generally people don't respect trade schools, and Computer Science became the most obvious path to success for people who wanted to write software professionally.

It depends on what CS program your looking at. At many schools the program isn't really about the comput(er/ing) science, but rather a software engineering course without the basis of a fundamentals of engineering background.

Are you trying to argue against more theoretical foundations? :| sure you can write software but can you design it well and make sure it isn't complete shit?

That's the biggest shame of the modern CS degree. So many students get it and then at their jobs they rarely use that knowledge unless they join a research lab or join some place like Google or Microsoft.

I'm not arguing against it, I'm just saying how it is (as I've see it).

sure you can write software but can you design it well and make sure it isn't complete shit?

If we're talking about algorithm analysis a CS degree is probably useful, but if we're talking about how to build software or even something as specific as OOP or design patterns - that stuff isn't really part of a "classic" Djikstra-approved CS curriculum.

That's the biggest shame of the modern CS degree. So many students get it and then at their jobs they rarely use that knowledge unless they join a research lab or join some place like Google or Microsoft.

that's the truth - I've completely forgotten most of my automata theory proofs and rarely write my own data structures (never for work). But yeah, I've never used any of the theory I've learned at work that I'm aware of, beyond choosing which data structure to use from the API.

If we're talking about algorithm analysis a CS degree is probably useful, but if we're talking about how to build software or even something as specific as OOP or design patterns - that stuff isn't really part of a "classic" Djikstra-approved CS curriculum.

Dijkstra designed and implemented and worked on practical software. He was the one who promoted structured programming a lot. So software building is most definitely part of the "classic" Dijkstra-approved CS curriculum.

that's the truth - I've completely forgotten most of my automata theory proofs and rarely write my own data structures (never for work). But yeah, I've never used any of the theory I've learned at work that I'm aware of, beyond choosing which data structure to use from the API.

It's a shame you can't be doing profiling of the performance; that would really make use of your data structure knowledge :/

“Computer science is no more about computers than astronomy is about telescopes.” Computer science has very little to do with coding...

That's the context I was using. I'm not literally claiming I know how Dijkstra feels about anything. I'm responding to the quote taken from him that was then used to claim computer science is theory, not practice.

I don't understand the second point, maybe there is a situation when performance profiling could be easier with a formal degree? I suppose, idk

Dudes love that quote, but i think that dijkstra was being overly limiting when he said it. It is a fun way to feel superior to software engineers, but as a CS researcher at a top university, a huge amount of valuable science is fundamentally tied to our physical machines.

Ill give an example. Power usage is a serious problem for our devices. We often want to reduce the density of power consuming instructions more than we want to reduce the runtime and space complexity of an algorithm. But there is no good theory for modeling the "power complexity" of an algorithm because a TM abstracts any notion of differing power usage away. Building such a system for modeling power complexity is absolutely CS but is inexorably tied to physical principles.

That is going to vary widely from school to school, I’ve found. Or at least it did several years ago when I was going back to school. YMMV.

When I was trying to decide between EE and CS, I looked into a number of schools in and around MI, the differences were quite surprising. I found plenty of high profile schools were CS was nothing more than a programming degree. Some didn't require any mathematics courses beyond calculus 1 and discrete mathematics. Others were almost indistinguishable from a CE curriculum.

One of the main reasons I choose EE over CS was because there seemed to be a lot more consistency between schools on exactly what the study of EE was.

Computer Science isn't a branch of mathematics. Sure some of its underlying concepts rely on it, but then again so does every other science. Nobody really considers Physics a branch of mathematics, even though one would not exist without the other.

Furthermore, you're misconstruing what Dijkstra meant when he said that. Computer science may not be fundamentally about computers, but it is a lot about coding (because coding is no more about computers than astronomy...). CS is the study of computation, and many CSs will agree that being able to view an algorithm as code, i.e., as an explicit set of instructions, is often a lot easier to understand than having somebody explain it to you verbally.

No. Math is just a tool for CS. Using math as an underlying base, you analyze computation and make relevant observations. Like I said before, physics and chemistry also use math, but they're not branches of math. (Hell, politics uses math, and I think it's quite a stretch to consider it a branch of math.)

Just because something is the application of something else doesn't make it a subset. Computer science (and other fields) apply math to synthesize original research. Take physics, for example, math is needed for certain parts of experiments, but math alone doesn't do it. You still need to make observations and then make conclusions from those observations.

All of the other Khan Academy curriculum's are accompanied by practice problems. I don't think this would be any different. Something like codingbat would work pretty well for beginners. What's more difficult to teach is good software design principles, but this really just has to be learned on the job.

I'm pretty excited about this. I hope they don't just do introductory courses but some advanced ones as well.

...nothing is more helpful and useful than actually coding and doing stuff in practice.

You have to start somewhere and there are a lot of people, young or old, that don't know where to start. Some people benefit from this style and Khan, unlike most other schools at any level, allows you to view the lecture at any time. I wish I had these luxuries as a kid instead of having my professor be annoyed with me in my youth.

Any added benefits is a gain for education. The goal should be to make information as available as possible so we can find the next Beethoven, Einstein, Tolstoy and Picasso who will influence the next generation to push forward.

Yes and no. I'm a practical coder, everything I know I've learned from doing. Where my knowledge is very limited however is when it comes to things like the DOM, and when you're doing it as a job stuff like that comes up.

That said, I'm still a web developer, DOM knowledge or otherwise. So there's that.

Mhm, but I mean when you're wondering what that function name was or what's the best way to manipulate the DOM, do you usually watch an hour-long lecture on DOM manipulation? Or do you find a relevant StackOverflow question and get advice from other programmers.

I'm not trying to play down the awesomeness of this post (or the importance of formal CS lecture), I just wanted to point out that without practice these lectures mean nothing.

For most people who take these courses this is how they will be introduced to code, so actually coding and learning in practice is just not possible for them yet.

Also, watching videos is only one part of Khan Academy. I assume they will have interactive assignments similar to their math courses, or similar to code academy.

That said, I agree that projects of your own design should absolutely be encouraged. One of the best places online where people learn and show off their code in an open and creative way is OpenProcessing(www.openprocessing.org).

Great news! I am thinking about it. There might be some incompatibility in the format (since Khan Academy is mostly videos), but I really wish they could use some of the stuff we've done on thinktutorial.com (may be for a "light"/beginner version of the courses, I don't know). Just for the love of sharing, screw the ads. Would love to get in touch with them (him?) Anyway, wish them all the best!

This will be the hardest thing to possibly keep up with at Khan Academy. The crap I learned in school back in 2004-2006 is so outdated to today's work. It will be interesting to see how this turns out.

Where have you been all my summer? While I squandered my time on YouTube videos and iTunesU, where were you? While I attempted to read Wikipedia articles? And now I must return to school. I will try to keep up with you, but you will no doubt be neglected.

Is this good news for people who actually want to learn CS, or just for lazy high school kids who want to cram inaccurate Cliffs Notes versions of their texts into their heads just long enough to pass a class?

Don't get me wrong - education needs to be revamped, but the solution is not 1 guy reading a textbook aloud and calling it a revolution.

i would hardly call khan's videos as him reading a textbook out loud. none of his other videos came off as being that to me so i am excited to see what he (or perhaps another instructor) cooks up. in any case, my view point is that this is good news for everyone. the "lazy high school kids" and the people who want to learn CS truly will get a valuable resource. not every higher schooler has the cram till your drop mentality and besides, how a person uses his resource should not be khan's problem. once he makes the video/tutorial, it is up to each individual to use/get from it what they may.

I think it's become clear that public education is woefully inadequate in the US, and its going to be a long long time until it's a political priority.

The other side of the coin is that it's pretty plain now that if you want to learn, you have to do it yourself. This here, this application of what we are technically capable of, is finally coming together to make that possible outside of "normal" school and I couldn't even begin to explain how happy that makes me.

Seeing things like Khan Academy and MIT's OCW come out and improve hand over fist year after year, it's like watching Model T's and A's roll out of the factory so many decades ago. It's a remarkable application of the modern world, and something so simple represents such a drastic revolution of society. A cage with a motor and four wheels literally changed the entire course of global human history forever, and in our day a few websites with a few videos stands to do the same. Beautiful.

Sad thing is how much it blows public schools out of the water and puts them completely to shame. Like the way they teach in public schools is the exact opposite of how you should be teaching someone. A large part of this is the large class sizes though.

I'm not sure I would've covered this topic so soon. There are so many other computer science resources on the internet (because, after all, it is the internet). I'm not saying it isn't worth covering, or even that it wouldn't be helpful in a Khan format, but just saying it should be a low priority.

Though I do think Khan's usual format may not be as helpful for csci in some ways as an automated lab like codeacademy, but maybe that isn't true for everyone. But still, the more available resources the better. If these get a bunch of hits and is teaching people who would not have otherwise learned computer science, more power to him.

Meanwhile, actual CS courses are available for free on coursera. Competing with courses where the teacher is sometimes literally the authority in the field isn't going to be done by a shoddy site like KA.