Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Best online programming class for newbies?
4 points by bredman on Aug 27, 2014 | hide | past | favorite | 6 comments
My wife has never programmed before but is trying to learn. She's started taking the online CS50X course (https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.U_10LGSwJuM). I'm not huge fan of it as it isn't how I learned to program, particularly I think C makes learning basic things more complicated than needed. I'm curious what everyones favorite online classes are for people completely new to programming? Needs to be free (or near free), online, and probably self-directed.

Also a huge thanks to the people who make online courses available for free. Despite its shortcomings the Harvard CS50X course is infinitely better than what was available when I went to school.

To me, Python is a great language to start with. Check out the following courses: Udacity CS101 "Intro to CS" (it teaches Python from scratch) https://www.udacity.com/course/cs101 In parallel with Udacity CS101 , you can advise your spouse to take Python track on Codecademy (it also teaches Python from scratch and it's great when combined with Udacity CS101) http://www.codecademy.com/en/tracks/python After those 2 courses I'd suggest to take a super-short "Programming foundations with Python" course (it teaches Object-Oriented Programming basics) https://www.udacity.com/course/viewer#!/c-ud036 If these are overwhelming, I'd point to Codecademy's HTML/CSS, jQuery, Make a Website and Make an Interactive Website tracks. After completing these classes one can move on to JavaScript or Python or Ruby classes. To be short, try to stick with Codecademy and Udacity in the beginning. This is the way how I tought myself how to code and landed a job as a Python/Django developer.

Thanks, I haven't looked at Udacity much so I'll give that look. I like using Python as it's a bit practical.

To clarify her goal isn't to land a job, just to learn a new skill and be able to relate to her coworkers that are doing more coding better.

'Newbie' covers many experience levels - from afraid to turn the computer on to moving beyond Excel pivot table macros. People need different degrees of handholding.

Not necessarily my favorite, Coursera's Programming for Everybody [1] moves forward very very slowly. Great for some people, drying paint for others. It is taught in Python.

A course I think is great is Coursera's Introduction to Systematic Program Design [2] based on Felleisen's How to Design Programs introductory text. It is possible to register for the last session, from a year ago, and complete the work on your own. It is taught in Racket.

Another course that takes a learn-by-making approach is Coursera's Creative Programming for Digital Media & Mobile Apps [3]. It is beginner friendly and really encourages "getting into it". It is taught in Processing, and in some ways I think Processing is the ideal language for an introductory course in Software Engineering - it is pared down like Racket's student languages, provides just a pinch of Java pain, facilitates the production of really interesting output, and the environment provides a fast edit-compile-run loop.

For a person who is more oriented toward scientific or mathematical problems, Coursera's R Programming [4] might by a good fit.

Among the various Python Courses, I would probably go with Udacity's Design of Computer Programs: Programming Principles [5] because it is taught by Peter Norvig.

All that said, a book may be better than an open-enrollment class for many people, and there's a lot more variation.

[1] https://www.coursera.org/course/pythonlearn

[2] https://www.coursera.org/course/programdesign

[3] https://www.coursera.org/course/digitalmedia

[4] https://www.coursera.org/course/rprog

[5] https://www.udacity.com/course/cs212

Thanks! Reminding myself of her feedback I think that pacing might be a significant issue which is something I hadn't considered too much (oddly).

She's someone that has lots of computer experience but the closest she's gotten to programming before is simple Excel functions (think SUM). I think she'll be much more excited by one where she's working on "real world" stuff so I'm leaving a bit towards Creative Programming for Digital Media & Mobile Apps and hope that it spurs her to learn even more.

I strongly believe starting with C is a good programming foundation. This website offers so many great courses https://www.coursera.org/courses But nothing beats the books for me.

I find http://www.cprogramming.com/ to be a really thoughtful tutorial.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact