Dear Khan Academy,
I've made a suggestion along these lines before, however, I did so in the wrong thread. However, A staff member kindly provided a copy of the original message (which I am revising) for the sake of giving some helpful, more mindful, and more effective feedback and suggestions for the Khan Academy team to consider.
Allow me to list simply each item, which I will then go into more detail about:
Lack of (useful) Audio/Music.
(It would teach students some concepts of music writing as well as programming, and as for other sound effects it would allow them to learn sound design, which is important.)
There are few tools for communities.
(Community is surprisingly important when it comes to programming if someone seeks to become a game developer-- and it can be great for encouraging someone to learn and get better (take me as an example), but Khan isn't really designed for that. I'm aware you allow 'sub pages', but it would be nice if you could make some built-in features)
It's really hard to do collaborations.
- There are no lessons on network programming.
(IMPORTANT SKILL MISSING HERE!)
Section 1: Lack of (useful) Audio/Music.
Don't get me wrong, the sound effects you've already provided have their use-- however, arguably, they're almost never used.
I've suggested this in the past, as many others have before me-- but as usual, I was told that adding sounds may be more difficult than I may have thought.
At the time, I (somewhat disappointedly) accepted that, however with my new knowledge from programming independently I've discovered that you can add a sound with one line of code:
var audioNameHere = new Audio("filePath.mp3");
Simple enough, isn't it?
And no, you don't need to add it to the sound picker, simply providing people with a list of the names of the sounds would be effective enough, and the community would thank you.
And if there's an issue with finding sounds that are free-to-use, I'd be glad to provide some general sound effects and musical notes free of charge and free to use.
Yes, you have a lesson for using JS with HTML, which is good-- but it won't teach people how to develop games as they do in your PJS environment without the use of Khan. (Which effectively limits them to Khan rather than enabling them to use their skills in the real world)
Due to my personal experiments and extensive research, I've learned how to do these things independently (without the need for a library), so if you'd like I'd love to do an internship or to simply provide video lessons for Khan Academy's use.
Section 3: There are few tools for communities.
Khan Academy is not and was never meant to be a social media;
However-- Being able to learn about communities and form your own is an important skill for innovators, creators, and leaders. If Khan Academy can make more of those sorts of people, Khan will gain an excellent reputation indeed.
Communities can encourage innovators and creators to improve and become better people overall, as it did with me--
HOWEVER, I can't stress this enough-- it has to be done right or it will be damaging.
Currently, these are the things you do to enable communities:
- Voting System
+ Allows people to see support for their work
- People may get mad at other users for getting more votes on a project that took less effort but was more creative.
- Subscription Projects/Threads
+ Allows people to form a sort-of-stable community
- People can spam/send messages in the threads notifying all subscribed users when they aren't supposed to do so
* You don't allow users to see how many people are subscribed, in this case, I think that's fine.
Those are good and well for the most part, but I can see some improvements:
- Voting system
* Make it clear that creativity + skill is what the votes are for, not just effort.
- Official Subscription system
* Could be as simple as a thread that only the creator can post in, but anybody can opt into and out of its notifications.
- Project Views
* Might help those people who don't get many votes to feel better
(Especially if you subtlely count their own views as well, which is a little sad but it should hopefully encourage them if they don't notice)
Section 4: It's really hard to do collaborations.
Working with others is a great way to create unity and friendships within your community, and right now-- due to the nature of how projects work, collaborations are really hard.
If you allowed users to separate a project into mini-projects that can be imported into the main one (each may be made by a different user), perhaps it could be better?
To be honest, this one is as important as it is hard to figure out (without the use of an online international live editor, which would be a big YIKES to make).
Section 5: There are no lessons on network programming.
Network programming. Whether you want to make an awesome game or a web application-- you'll need to know how to program for the network.
And... to be blunt-- I have no idea how to do it.
Neither your lessons nor the community knew how-- and when I looked it up, I needed to be able to host a website-- which means the costs of a domain and server.
(I don't have the skills nor the money to set that up at the moment)
This is why it's invaluable that you provide such lessons.
Network programming is...
- Hard to learn without a website.
(Khan is a website...)
- An important thing to learn.
(Khan is all about education)
- An insanely fun thing to make!
If you value your learners, this is the best way to help to succede.
This is a long document. It contains all that I hope Khan to be to make the perfect environment for learning programming.
Thank you very much for those that read the whole thing.
If you'd like more information about any part of this, PLEASE contact me-- as Khan Academy is a wonderful place and I'd love to help make it better.
PS: Give Faile Lundberg a raise or something for helping me make this suggestion properly and respectfully. ;)
Respectfully, and sincerely,
~ Ender Haven