Learning programming on Khan Academy
Normally, we teach on Khan Academy using videos, but here in programming land, we teach with something we call "talk-throughs". A talk-through is like a video, but it's actually interactive- you can pause at any time if you want to play with the code yourself, and you can spin-off if you want to make your own version of what we made. Here's an animated GIF of a talk-through (there will be sound in the actual talk-throughs!):
Animated GIF of a talk-through about variables.
After a talk-through, we'll give you a step-by-step coding challenge and guide you through them with messages and hints. If you feel like you're spending too much time on a challenge and getting frustrated, try re-watching the talk-through or just keep going and re-visit the challenge later. Here's an animated GIF of the Bucktooth Bunny challenge:
Animated GIF of a learner working on the variables challenge called Bucktooth Bunny.
When you're learning to program, you've got to practice-practice-practice. The challenges are a good way to try out what you've learned, but we want you to go deeper. That's why we now have projects in the course, opportunities to spend a lot more time and be more creative than you can be in the challenges.
Screenshot of the "What's for Dinner?" project.
Besides the projects, you should also make up completely new programs, whatever's in your head. Just click "New program" on the programming homepage, and look at the documentation to remember how to do things.
And hey, it's totally okay to make mistakes. That's what programmers do all the time - we break things, we make mistakes, we learn from them.
Screenshot of a ProcessingJS program and an error message popped up on the canvas.
Once you've made a program, you can save it and share it with your friends and family. It'll also show up in our community programs area, and other programmers can comment on it or ask you questions about how you did something. You can do the same for any interesting programs you find, too, and if you have an idea for customizing a program you see, just click "Save as spin-off" and you'll have your own copy of it.
All in all, there are 40 talk-throughs, 35 challenges, and 9 projects in this course, and it takes about 15-40 hours to complete, depending how wild you go with your projects. That might seem like a lot of time, but it's worth it, because at the end, you'll know the fundamentals of programming that are common across all programming languages.
Welcome to programming land: we're a community learning together and inspiring each other to turn the visions in our head into reality. Onward!
Want to join the conversation?
- Is there a way to search for a specific community program, either by title or by author? Currently all i see are categories: Hot, Recent, Contests, or Top. The search function at the top of the page seems to be limited to official content.(1635 votes)
- Currently you can use the search bar at the top (magnifying glass) to search for programs by title and also users by nickname. However, there seem to be some limits to the search. I was able to find many but not all of the programs on the high end of the hotlist. When I tried to search for some of my older programs with as many votes and spin-offs, only the most recent one from about 7 months ago was included. Also, if the program title was related to a subject on KA, I did not find the program, only the videos/articles on KA.(16 votes)
- I've finished the Intro to JS, but I am not sure what exactly is the "fundamentals of programming that are common across all programming languages." Could someone explain?(462 votes)
- Programming and programming languages are totally two different things, If we know programming we can work in any programming language. One should learn concepts of programming ( like variables, loops etc.) to make algorithms for problem solving. Then these concepts could be applied to any language.(27 votes)
- Is it possible to learn java s. and c# at the same time? if so I need help who can assist me.(306 votes)
- I've found that when I have students trying to learn multiple programming languages that share syntactical elements, it is much more confusing for them. Usually they forget what language allows or prohibits certain behaviors. I'd suggest getting the fundamentals down first and then add new languages. Otherwise, you may find yourself giving up in frustration or at the least struggling way more than is needed. JMHO.(476 votes)
- I would like to program an ebook to be read from a web browser. I already have the following files: MP3s of read text for each page, text to be placed at the bottom of each page, JPG image for each page.
I would like to put all these files into one folder and write some kind of html/xtml header file that tells the web browser how to display the individual pages of the ebook: when to play the MP3 of the page text, when to turn to the next page, etc.
My question: What type of programming do I need for this? Can it all be done in HTML 5, or do I also need to incorporate a CSS style sheet and/or bits of Java Script.
Thank you for whatever direction you can point me.(224 votes)
- You are doing Java script, a famous and most common script. If you use Java script for some other one, such as HTML 5, or more, it won't work. If you want to use others, you will have to learn them. I was wondering the same thing. I hope they teach others like PYTHON!(5 votes)
- How does programming work exactly?(96 votes)
- Programming is how you tell computers to do things. Without being programmed, a computer would be useless. People have to program it to respond to user interaction with a mouse and keyboard, show different things on the screen, and access the internet. So, computer programmers give the computer instructions on how to do that in their programs.
However computers can’t understand words and number that are used in programming. When you run the code, what is actually happening is that the words you type are converted into binary code (also called machine language). It basically looks like a bunch of ones and zeroes. The ones and zeros specify if certain “gates” in the hardware of the computer are either on or off. The electric current can flow through all the gates that are on and whatever path the current takes makes it do something on the computer (ie make the screen light up a certain way, add some numbers, or send a message)
People used to do programming only with machine language. However it took a very long time, and if just one mistake was made it would be nearly impossible to find it, since all the programs were just thousands of ones and zeroes. Eventually programming languages were invented so programs could be easier read or understood
Hope this helps!(258 votes)
Will working through the Intro to JS and/or Advanced JS courses here on KA prepare me at all for my school's Java course?
Thanks in advance!(30 votes)
But there are similarities, like some of the syntax, and in both you can have sequences, loops and conditionals, so some fundamentals of programming are the same for all languages.(37 votes)
- where do you go to program?(22 votes)
- If you want to start a program from scratch, you can go to this link to start one. https://www.khanacademy.org/computer-programming/new/pjs(41 votes)
- is khan academy offering lessons on programming languages? i would really like to take lessons on C(22 votes)
- No. Khan Academy is not offering C yet. But you can learn C++, more up-to-date version of C, in Codecademy. Hope it answers your question.(35 votes)
- How do you find projects created by other people? On the screen in the video, there seems to be a menu with a tab called 'Browse Programs', but I'm not sure where to find it.(21 votes)