Main content
Course: Unlisted resources area > Unit 3
Lesson 3: Other removed computing contentPhilip Guo, Python Tutor and Writer
Hi, I'm Philip Guo!
What do you work on?
I am a computer science researcher and teacher specializing in human-computer interaction and educational technology. I am now finishing up a postdoctoral research position at MIT and will soon be moving to upstate New York to start my new job as an assistant professor at the University of Rochester.
One area I am super passionate about is creating tools to help people learn programming. Since 2010, I have been building and maintaining Online Python Tutor, which is now the most widely-used program visualization tool for education. Over half a million people from over 165 countries have used it for learning Python programming, often as a supplement to textbooks, online tutorials, Khan Academy videos, and MOOCs (massive open online courses). Here is a one-minute YouTube video intro:
How did you learn to program?
I grew up in the 1990s right as the Web was in its infancy. I loved playing computer games, making silly Photoshop graphics, and putting together ugly-looking personal websites with animated GIFs.
However, since neither of my parents knew how to program, and there were no role models around to teach me, I didn’t learn programming until AP Computer Science class in 11th grade. That brief exposure got me hooked, and I decided to major in Computer Science in college. I learned most of my programming through college classes, summer internships, and on-campus research projects.
I recently wrote about my programming backstory on my personal website, and the story got picked up by Slate, NPR, the BBC, and a few other news outlets. Read more here.
What do you do when you’re not programming?
If I'm not programming, then I'm writing about programming, of course! :) No, just kidding, I don’t actually write that much about programming.
But I do quite enjoy writing. I write a ton on my personal website, mostly as a way of clarifying my own thoughts. Writing is how I think. I don’t truly understand something until I get it down on (digital) paper.
What’s your one piece of advice for new programmers?
Find a mentor. This is so easy to say, but often so hard to do. No matter how awesome educational technology becomes, it’s still impossible to replace a good human mentor.
Want to join the conversation?
- I can't find the python track here on khanacademy. Can somebody help me? I've check under computer programming and computer science tabs but I just can't find the python course. ?(49 votes)
- I don't know the official answer to the question, but I did find the playlist on youtube here: https://www.youtube.com/playlist?list=PL36E7A2B75028A3D6(16 votes)
- He says at the end "Find a mentor"
What is a mentor?(16 votes)- A mentor is basically someone who is like a teacher/coach.(2 votes)
- How do you recommend finding a mentor for programming? The programming teacher at our school barely knows more than us so i don't know how he could mentor me. It feels like there aren't interested people around me, any advice?(3 votes)
- Go to science,computer and math advents. If you find of other passionate then you can either become the mentor,find a mentor or a friend. Also, online clubs and chats are great. That is if they are meant for computer "geeks".(1 vote)
- I am a mature student who is about to start an Engineering degree (2nd career). My tutor has suggested that I learn Python as he says it will be very useful to know at University. Can anyone point me to the Python track here on Khan Academy?(1 vote)
- There used to be a few Python videos on Khan Academy, but I think they were removed as they didn't really fit in with the rest of the computer science here. You could try Code Academy, which is pretty good (and free): http://www.codecademy.com/en/tracks/python(6 votes)
- what does the "^" operator mean in python? What does it do?
the results from it are making me confused...
say for example:-
In[1] - 9^1
Out[1] - 8
In[2] - 9^2
Out[2] - 11
In[3] - 9^9
Out[3] - 0
Please answer this question...I'm really struggling to get this.(1 vote)- First of all, you may have been looking for the exponential (power) operator, which is
**
.
The^
operator is the bitwise XOR operator. Put simply, converts both of the numbers into binary, makes them the same length (if not already), and for each digit, if that digit from the first input is different to that digit in the second input, then that digit receives a1
in the output, otherwise it receives a0
. This output is then converted back into decimal and returned from the operation.
For your examples:
Example 1:9^1
1001
0001
1000
=8
Example 2:9^2
1001
0010
1011
=11
Example 3:9^9
1001
1001
0000
=0
Another explation for this is that if one digit in a column is1
, then the output digit is1
, but if both digits are1
, then they cancel each other out and the output digit is0
. So naturally, if you put two of the same number in this operator, it's always going to return0
. Also, if both digits in the column are0
, then the output digit is0
.
Sorry for the late reply, but hope this helps :)(6 votes)
- Am confused ...
What's the difference between Java and JavaScript ?
And since I am learning to code from Khan Academy where can I write these codes apart from KA?
Thanks a Billion! :D(3 votes)- Java is to Javascript as Car is to Carpet.
You can write Javascript in any HTML page as long as you also load a copy of the Processing.js library (whcih KA graciously loads for us). Follow this recipe: https://www.khanacademy.org/computer-programming/processingjs-inside-webpages-template/5157014494511104(4 votes)
- I am struggling with the variables and arithmetic operators like += in Python. For example, how can I add or subtract one variable with another variable and print the exact answer?
I would appreciate it if someone with a bit of programming knowledge and/or with some expertise in Python programming language could help me.
Thanks in advance.(1 vote)- += is just to shorten your code.
For example:
x = 3
x = x + 1
This is adding 1 to the variable x.
However, you can shorten it like this:
x += 1
which will give you the exact same result.(1 vote)
- What does
In
do and how can you use it in JavaScript?(2 votes)- Dude, the In function let's your computer know that that code is in that function.(2 votes)
- Can a person who wants to learn programming start with Python directly??Or which language would be the best for a beginner?(1 vote)
- Python is definitely a good way to start. In terms of learning, its probably the easiest out there.
Personally, I think people should start with a more difficult to learn language first, such as C or C++. That way, you both know that language and how it works, and as well figure out other languages much easier in the future.(4 votes)
- I need help to learn programming, I have problem to get the right way to learn Programming, What langguage should I start? I want to make things, i love art..Please help me(1 vote)
- I think you should try JavaScript. It's not hard to draw with it, and with the Processing.js library, it's very easy to learn. Start here: https://www.khanacademy.org/computing/computer-programming/programming(4 votes)