标签云

微信群

扫码加入我们

WeChat QR Code

Original QuestionI am currently engaged in teaching my brother to program.He is a total beginner, but very smart. (And he actually wants to learn).I've noticed that some of our sessions have gotten bogged down in minor details, and I don't feel I've been very organized. (But the answers to this post have helped a lot.)What can I do better to teach him effectively?Is there a logical order that I can use to run through concept by concept?Are there complexities I should avoid till later?The language we are working with is Python, but advice in any language is welcome.How to HelpIf you have good ones please add the following in your answer:Beginner Exercises and Project IdeasResources for teaching beginnersScreencasts / blog posts / free e-booksPrint books that are good for beginnersPlease describe the resource with a link to it so I can take a look.I want everyone to know that I have definitely been using some of these ideas.Your submissions will be aggregated in this post.Online Resources for teaching beginners:A Gentle Introduction to Programming Using PythonHow to Think Like a Computer ScientistAlice: a 3d program for beginnersScratch (A system to develop programming skills)How To Design ProgramsStructure and Interpretation of Computer ProgramsLearn To ProgramRobert Read's How To Be a ProgrammerMicrosoft XNASpawning the Next Generation of HackersCOMP1917 Higher Computing lectures by Richard Buckland (requires iTunes)Dive into PythonPython WikibookProject Euler - sample problems (mostly mathematical)pygame - an easy python library for creating gamesInvent Your Own Computer Games With PythonFoundations of Programming for a next step beyond basics.Squeak by Example Snake Wrangling For Kids (It's not just for kids!)Recommended Print Books for teaching beginnersAccelerated C++Python Programming for the Absolute BeginnerCode by Charles PetzoldPython Programming: An Introduction to Computer Science 2nd Edition


s/Reccomended/Recommended/

2019年06月25日33分14秒

I don't understand why this should be closed.At least 295 users have found this question (and the 92 answers) to be helpful enough to up-vote it, with 290 going so far as to consider it one of their favorites.The question resulted in a very useful aggregation of teaching resources.It hasn't really resulted in 'arguments' or 'debates', but really a lot of great advice about how to address one of the difficult 'human factors' in programming.I think closing a question like this is draconian and detrimental to the StackOverflow community.

2019年06月26日33分14秒

JustinStandard Have you considered converting your edits to several of the answers to comments? E.g. here, here, and here

2019年06月26日33分14秒

This is a great guide. Personally, I cannot code my way out of a paper bag (I'd like to see someone do that in real life, actually), so this looks like a good guide for teaching myself too.

2019年06月26日33分14秒

This is a very good answer. My only objection is that Tetris not a good choice for a first or second game. At that level, the collision detection can be a hard problem - it's great if they can solve it.

2019年06月26日33分14秒

phkahler I see your point, but I believe Tetris is interesting because there are so many OSS/demo implementation you can analize before and after writing your code.

2019年06月25日33分14秒

I came to know of it through Randy Pausch's last lecture. The reasoning behind this project blew my mind.

2019年06月25日33分14秒

Actually, you don't fully manage the memory in C.You get to have malloc, etc, and free manage it for you.You just have to tell the system when you want more memory and when you're done with memory that you've been using.

2019年06月26日33分14秒

Good for just after they've learned the basic concepts. Creating visuals is a great way to motivate people to learn programming.

2019年06月25日33分14秒

Cool! I had no idea this is part of Python

2019年06月25日33分14秒

Agreed...this is very awesome.

2019年06月25日33分14秒

This is awesome!

2019年06月26日33分14秒

us.pycon.org/media/2009/talkdata/PyCon2009/065/…

2019年06月26日33分14秒

The best way to learn any technical subject, I think, is by learning to solve small, incremental problems.

2019年06月25日33分14秒

This Q was asked 2 years ago; Zed's book is new, FWIW.

2019年06月26日33分14秒

Nice! It seems easy and powerful to use Ruby

2019年06月25日33分14秒

W.r.t. hi-lo: stackoverflow.com/questions/811074/…

2019年06月25日33分14秒

Yes, I know which post you're talking about Justin. Reading it reminded me how most of the things I've learned have come from trying and learning from my own mistakes. I really can't emphasize enought the importance of learning by doing!

2019年06月25日33分14秒