Tag Info

Hot answers tagged

142

You are battling the students' balancing act of their need to care about your subject and their need to get passing grades. Many students feel that: (Get it Wrong || Experiment) == (Failing Grade && Waste Time) As soon as a student feels that their time or grade is at risk, even for an interesting subject, they stop learning and jump straight to ...


131

I interact with high schoolers a lot, so I answer this question quite often. Keep in mind that 15 year olds are much easier to explain programming to than 50 year olds -- so you need not dumb things down or use far-fetched analogies. I usually start off with examples of what programs are: Apps like iTunes, Photoshop, Chrome, and games including console ...


126

I usually prescribe the same sequence for anyone who wants to learn programming. It's very theoretical, but it lays a good foundation. It should take three or four months of fulltime study, but programming isn't something you learn overnight. If you can't get through this sequence, you're not going to be able to program, so you might as well give up now. ...


120

You could present them a series of exercises, each one building on the previous while adding some extra element or twist to the problem, or investigating the issue from a different perspective, which reveals a weakness of the previous solution, requiring a new, different approach. This forces them to think about, analyse, modify and experiment with each ...


74

I explained it to my five year old with the following: Me: "You know how, in stories, people say magic words, and change things in the world?" Her: "Yeaaa?" Me: "That's what computer programming is." Her(quietly): "Wow." 15-30 minutes isn't enough to explain anything real, and explaining the underlying complexity is a sure way to make them run screaming. ...


57

A 15 years old person can understand any concept. I myself started programming at 14. (at school, many many years ago) 30 minutes is enough for a demo. Show her the magic of programming with something as widespread as a browser. Find a PC connected to the internet. (more fun if it's not yours, and even more if it's hers) Go to ...


52

I think that C++ may overwhelm your brother. Try with something simpler. I'd suggest this book http://inventwithpython.com/ From the preface I have more thanks for your interest and more apologies for this book's deficiencies than I can enumerate. My motivation for writing this book comes from a gap I saw in today's literature for kids ...


44

Several things that come to my mind: Give them assignments where they actually have to explain the code someone else (you) wrote. Understanding of the previous code or more specifically lack of it is both the largest cause and danger of cargo cult programming. Ask them to use comments, line by line if necessary, to explain your program in plain English (or ...


40

There are a few things that practically every beginner struggles with. Students need to know how to read code before they can learn how to write code. The sequential nature of imperative languages. People have trouble understanding that functions are executed in sequence, one item at a time, like a recipe. One way to overcome this is to show some code ...


38

Look at it in another way. This cargo-cult phenomenon is the novice stage of the Dreyfus Model of skill acquisition. This is how we learn. When I first learned to program, all I was doing was typing in pages of code from the back of Compute! magazine. Repetition is key. Babies learn to talk by copying the sounds they hear their parents make. Everything we ...


36

Describe what it is, just leave out the technical terms except for definitions: You have five jobs to do. You need to start working on all of them right now. Each job is a thread. You are the processor. Spend a little bit of time working on each job and then move to the next one, making sure you give attention to all of them. If you have more people, a ...


32

Ok, by popular demand ... Let the free market figure it out. You know, 95% of psychology majors end up doing something else. Not everyone with a CS degree/minor ends up programming, but they make better managers, analysts, project managers than those without. Do not carry the weight of the world on your shoulders. CS degree is just a piece of paper. Those ...


32

Math and programming are totally different things. Math is science, programming is technique. In academic world, programming is something you have to know so that you could deal with the real stuff, the one that's actually interesting and matters - algorithms. Who cares if the compiler is ancient and you use system calls? Who cares if you have Linux and not ...


31

Joining an open-source project is certainly one way to get started. However, I've been using open-source software for years, and quite frankly, the quality on almost all such projects is generally in the toilet. If you learn your programming and design skills entirely from them, you'll probably pick up some very poor ones along with the good ones, with no ...


31

Are you supposed to be helping them choose a major or helping them choose a career? While college curricula differ significantly among the disciplines, the career part is very hard to distinguish: Computer scientists spend 7 hours a day coding new software or debugging old software, and 1 hour online debating obscure theoretical concepts they never get to ...


30

The best way to get a non-developer up to speed quickly is to inspire them! To have any success, the candidate must be at least curious, if not passionate, about programming (regardless of the platform). While I agree with Joel in the case of the ideal candidate, I'd be careful not to cram too much theory into a weak mind - it'll only put them off. If ...


29

Use textual data. For example you could write a simple shopping list for a party, and let students add, remove or edit items to buy. IMO it is always best to focus on one task at a time, and not to split concentration between two things, like CSS and version control. Especially if your audience has beginners, or is very heterogeneous.


28

I recently found http://www.codecademy.com And was impressed by the barrier to entry aspect of learning to program in an interactive way; most importantly in the browser. Granted they start off with JavaScript, but what you learn there is kind of similar anywhere. Another great resource online is MIT Open CourseWare stuff which is $0; and Peteris ...


27

To explain exception handling, explain the concept behind it: The code where an error occurs frequently does not know how to properly handle that error. The code that knows how to handle it properly could be the function that called that one, or it could be further up the call stack. When you write a routine that calls a routine that might throw an ...


27

Me Pretty much self-taught since I was 7, the odd few people influence over the years, but generally I've always found the best teacher is experience. Nothing like a couple of decades of continual improvement, interspersed with occasionally frustrating days, that are ultimately eye-openers for the future. These days, the internet kind of changes that - so ...


26

How do you tell your professor he's not on the right track? You don't. He's paid to be there and provide the knowledge and you're not. He probably wouldn't take too kindly to any presentation that you can offer on how he's wrong. So what do you do? Ask questions. If you think he's off base with a concept or idea then ask him to elaborate. Keep ...


26

Steps As an almost 15-year-old, I can confidently tell you that you should have a spectacular start. Explain what programmers make. (Games, simulators.) Show something cool you made. (On the computer. Please no command line - that seems to scare everyone.) Explain how you make it. Tell them you don't type in 10101010 all day. Tell them you don't even ...


25

I have taught introductory classes in the past and as I recall looking back now: Some students think programming is like that for different reasons. I remember once a good kid that cargo-culted a lot what I did: Believing that it was not an isolated issue, but other students in the same class might have similar behaviour or approaching to the problem and ...


23

Source Control: From my experience, colleges don't teach this well if at all. Unit Testing: Same as above (also reduces the amount of time they need to spend in a debugger) DRY/SRP/SOLID: Good, fundamental design techniques. DRY alone will help make them a better programmer, developer, and produce better quality code. IoC


23

To find a mentor, don't look for a mentor. Try to improve yourself in specific ways. If you work hard enough at getting better, you will both find that you come in contact with like-minded folks, and find that you have something in common with those people. Users groups are the likely place to find a mentor, but no one wants to help someone that is there ...


23

Did your students start at the correct 'abstraction level' at the beginning of the course? E.g. a homework that introduces them to the main programming structures like loops and conditionals without writing a single line of code? When I took intro to programming, our first assignment was called 'Rick the Robot'. We had a piece of paper with an aerial map ...


22

Hm, there are many things to mention, but I think the most important would be: Try not to sound like a giant arse. In other words, don't be pretentious. Understand that you are as "lame" as he is, only on a different level. He will make mistakes, and you need to explain why are they mistakes, not simply shout at him for making them. I guess you have to ...


22

Hey Kid. Have you ever walked and chewed gum at the same time while thinking about Pokemon? That's your brain multi-threading.



Only top voted, non community-wiki answers of a minimum length are eligible