Live data from Hacker News

Teaching Programming To A Highly Motivated Beginner

cacm.acm.org

31–40 of 42 posts

Re: Teaching Programming To A Highly Motivated Beginner

#31
Cool post! I've seen a lot of beginners learn to code (I started a non-profit to help bring more women into software development) and while we're addressing the issue of code literacy, there's still a huge skills gap between those who "can code"/ have done some tutorials and those who are ready to flexibly architect software.

I'm hoping to make the process of going from newbie to experienced easier and more meaningful with CodeMontage (http://bit.ly/CodeMontageLaunch) - you get to work on real, open-source and social-mission projects, you get feedback and code reviews from experienced developers, and you build a portfolio of open source, quality code that you can reference later or use to get a job. It's also really nice for the experienced developers / experts in a language to be able to give code reviews on important projects - it's nice if you have a friend willing to pair on your side project, but definitely can wear on a relationship over time (and when all your friends are learning to code...).

Re: Teaching Programming To A Highly Motivated Beginner

#32
Any advice for the slightly motivated beginner?

My wife has recently asked me to teach her some programming. I doubt she will be that highly motivated though. I am guessing her interest is just to explore this world and perhaps better understand the work I'm doing. I have never taught any beginners but this could be a fun experience for both of us. I am wondering what kind of assignments, projects or scenarios to go through, and what kind of a development environment to use.

I love python and think it's probably the best language to learn (and use), but I'm not sure how excited my wife will be from looking at a console? I was considering a little bit of javascript together with HTML/CSS, but most of the programming involved with interactive web pages I find a little boring... Any suggestions for some cool simple projects to walk through and learn programming with?

Re: Teaching Programming To A Highly Motivated Beginner

#33
post #15

This may seem silly, but I found the most difficult part of learning RoR was getting my development environment set up. I tried several times since 2005 to get started, but failed due to a sticking point that for some reason I couldn't get past. It wasn't until a friend with a bunch of RoR experience walked me through the setup of the black box of different parts to run a web app that I actually got it. Comparatively…

modern Rails requires lots of configuration, convention and prerequisites.

Re: Teaching Programming To A Highly Motivated Beginner

#34

Any advice for the slightly motivated beginner? My wife has recently asked me to teach her some programming. I doubt she will be that highly motivated though. I am guessing her interest is just to explore this world and perhaps better understand the work I'm doing. I have never taught any beginners but this could be a fun experience for both of us. I am wondering what kind of assignments, projects or scenarios to go…

Students pick up on the enthusiasm of their teachers; motivation can be catching. Assume she's highly motivated and work from there. In general, I don't think that people who are "slightly" motivated learn much in any area.

A friend of mine who is highly motivated is having fantastic success with Zed's "Learn Python the Hard Way" (http://learnpythonthehardway.org/). I can't say I'm teaching him, though, I'm just in text and email contact if he hits a sticking point.

Re: Teaching Programming To A Highly Motivated Beginner

#35
post #20

Earlier quoted context omitted.

Totally agree with your last point. To your first point, I really wish people would make virtual machine images with dev environments already set up on them.

> I really wish people would make virtual machine images with dev environments already set up on them I think this is actually often more of a problem in the long run, as it just pushes the learning of how RoR interfaces with the rest of the stack to later. If you're seeking to teach someone how logic, program control flow, and separation of concerns work (as the author did by abstracting the "grunge work" as he call…

It really depends entirely on what your goal is.

If your goal is to tinker with a new language, or a new tool, it would be really nice to start from a working example that you can fiddle with, rather than being stuck with the sometimes arduous task of configuration.

Re: Teaching Programming To A Highly Motivated Beginner

#36
post #25

I am in a similar situation to the author: I am an experienced programmer, and I am tutoring my wife, who left her job so she could devote all her time to learning to code. She's gone through all of the HTML, CSS, and JS CodeAcademy courses, and is now doing the Python course on Udacity. While she hasn't needed a lot of help with those, she has also been working on extracurricular projects that I've helped put togeth…

I'm really enjoying the Coursera course on learning to program https://www.coursera.org/course/interactivepython . They have an interactive python implementation in javascript, so all the exercises are via browser - no configuration required at all. And the exercises are to build games. Although I'm not building my own projects in the exercises, I am building something that I understand. This week's exercise was Pong…

Thanks for the tip! Would you mind posting a screenshot of Pong? I know that I loved being able to use graphics when I started, which is why I stuck to QBASIC as long as I did. Do they give you a library to use for drawing primitives (circles/squares/cthulhu), or is it all image-based?

Re: Teaching Programming To A Highly Motivated Beginner

#37

Earlier quoted context omitted.

I'm curious; what was the first project you built on your own? It's been so long since I started programming that I can't really remember mine. My wife is learning now and I sometimes worry that my gauge of what are good beginner projects is off.

For me it was a system for tracking errors in weather forecasts. I downloaded 400-odd forecasts from the NOAA twice a day and dropped them into a database.* Figured out the following technologies on the fly: Python for the machine learning part, the backend and web scraping (after I finally gave up on SOAP), SQLite, HTML/CSS, PHP (after giving up on Django), Apache web server, FTP protocol (for backing up my stuff to…

Wow, that's an impressive first project, congratulations on finishing it! I definitely agree that the developer community for a language makes a big difference in how easy it is to use.

We are really into StarCraft II, so she's thinking of building a build order identification game for her first bigger project. We'll probably go ahead and use JQuery Mobile + PhoneGap to make it a free Android app we can give to our friends. Not quite as complex, but it should be fun!

For those of you that don't play StarCraft: A build order is like an opening in chess: it sets up the rest of the game, and recognizing/responding to a build order is key to being a good player. The game she wants to build would help train people to recognize build orders by showing them a quiz with pictures.

Re: Teaching Programming To A Highly Motivated Beginner

#38
post #28

To those looking to start programming, but don't have a tutor nearby: pick up Steve Kochan's "Programming in C" and head on over to http://cs50.net . They have a Google Group set up where David Milan and his aides will answer your questions! It's how I finally added some structure to my learning adventure.

I started that last week! I believe the new official site is www.edx.org

Re: Teaching Programming To A Highly Motivated Beginner

#39

yes, how much for this kind of tutoring lessons?

I guess you are asking the wrong question here. Instead asking how much you should ask who will mentor me? It is more important to find a person who is ready to devote his/her time to mentor new programmers. I wish I would be as lucky as Brian. I am also looking for someone to mentor me. At times hundreds of choices confuses the new learner and all of a sudden the interest to learn fades. This is the best part of this article and so so very True - "There are dozens or sometimes hundreds of ways to accomplish the same task in computer programming; this multitude of choices can be paralyzing for beginners."

Re: Teaching Programming To A Highly Motivated Beginner

#40
post #26

Earlier quoted context omitted.

Did you set out with the goal to be a programmer when you started? I have a particular project I want to build, but I struggle with the build vs buy dilemma. It will probably take me 5x as long and be 10x worse than if found a good programmer. But, I also want to learn because I know that I need to understand what is being built and if it's being built in the best way to accomplish the goal - getting the job done for…

If you want to build something, I think that's an excellent reason to learn Python and dive in. You don't need to become a generalist before you can build something useful which you can learn from. As mentioned in the article, having concrete pain points in your coding ("Why doesn't this work?" or "how can I X?") will help you appreciate the problems that various techniques solve. Studying other languages exposes you…

Really appreciate your insight. It seems like there are some good online tutorials out there for Python also. Ok, Python will be my first victim. Thanks!
Post reply on HN