Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
#59 overall

CS101 Introduction to Computer Science

Coursera

1 recommender · 1 thread · recommended in 1 year, 2012 · score 8.5

Go to course ↗

CS101 is an introductory computer science course that teaches programming in Python from scratch, covering fundamentals such as how programs and computation work. The comments discuss it under the Coursera name, but nearly all praise is for Udacity's CS101, which is a different course.

Most commenters name Udacity's CS101 as the best free intro to CS for beginners, so this Coursera entry is mainly a pointer to a similar course; only one comment directly recommends the Coursera version.

CS Fundamentals & Systemsbeginnerfreevideo lectures#python#intro programming#computer science#fundamentals#self-paced

Recommendations by year

20062026

What commenters said (23)

  1. RecommendsJabbles2012in “A Crash Course in Computer Science: Reading List”

    "Crash" suggests quick. I don't see anything quick about these books. Working through these would take many months of full-time work. Many of these books are references, not particularly suited to self-study.

    @dmor, these are not a good introduction for non-technical people to start to learn about computer science. Try the coursera course https://www.coursera.org/course/cs101

  2. Mentionssammorrowdrums2021in “Coursera S-1 IPO”

    I'm one of the faces of the Coursera ads (they interviewed me about career change from drummer to deveoper). I feel exactly the same. When it was free, and when for profit institutions were experimenting more too, it felt like a revolution. The Stanford 'Startup Engineering' course on Coursera was only offered back then and it was amazing. Andrew Ng's ML, Prinston's Algorithms, all free including certificate.

    I used Udacity CS101, Google Python Class and loads of other free resources and changed my life. It was true when I said Coursers changed my life. What has been slightly sad as it took Coursera years to start seriously advertising with my face, and even when they interviewed me they were almost beyond recognition.

    It makes me sad I just happened to learn CS and software development during the online education wild west. That's what I dreamed of for everyone. Top level education for everyone, for free. I didn't care about certificates. I had knowledge and projects I could prove.

    It may not all be doom and gloom, but when people ask me for recommendations after seeing advert, I sigh a little, because situation isn't as great as it was.

    https://youtu.be/Z1lqnyEp38o

  3. MentionsBWStearns2016in “Learn Enough Git to Be Dangerous”

    I don't know one in a similar style, but if you're looking to learn Python as a first programming language I highly recommend https://www.udacity.com/courses/cs101

    As far as I remember it it had good pacing and by the end of it I could write useful code (albeit initially brutishly ugly code that I will deny ever having written lol).

  4. Mentionsmdevere2015in “List of the Most Popular MOOCs”

    I'm a big fan of uDacity, which only appears once in that list.

    For a novice, their 'Intro to Computer Science' course is fantastic, as is the follow-on 'Web Development' course, led by Steve Huffman.

  5. Mentionsbradcomp2015in “Ask HN: Good intro CS course in Python?”

    Udacity's intro to CS course is really good. Not sure if it covers all your bases but it definitely hits most of them. Note I'm not talking about the programming foundations in Python course.

  6. Mentionsjumasheff2014in “Ask HN: Best online programming class for newbies?”

    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.

  7. Mentionsstintaril2014in “Ask HN: How persistent and smart do you have to be to learn to program?”

    I would take Udacity's CS101 course instead and then the Web Development Course they provide. This will give you a very good foundation for getting started. I have taken both and I highly recommend them.

    The language you will use will be Python, but what is important are the fundamentals you will learn in these courses. You can then apply them to any language and framework you want to work with.

  8. Mentionsfrakkingcylons2013in “Best dev environment for a novice?”

    I would recommend looking at the Real Python courses as well, although after learning the basics from Dive into Python or LPTHW. After the introduction, it starts teaching you how to start doing practical things with Python.

    I also enjoyed taking Udacity's CS 101 course which is great as an intro programming course overall.

    http://www.realpython.com/ https://www.udacity.com/course/cs101

  9. Mentionsmichaelrbock2013in “New Course: The Design of Everyday Things”

    I totally agree -- the quality of Udacity courses is the best of any of the online learning options (paid or free). Every time a non-CS friend asks me where to start learning to code online I point them to Udacity's CS 101 (over Codecademy or Coursera).

  10. Mentionskjhughes2013in “New Course: The Design of Everyday Things”

    The quality of Udacity courses combined with an updated "Design of Everyday Things" plus Don Norman's direct involvement makes this course sound very attractive. The Udacity "Introduction to Computer Science" course by David Evans, by the way, is excellent. It is the one that I chose for by sons to take online this summer. I liked the balance it provided between pragmatic programming (Python exercises completed and evaluated in-browser) and CS fundamentals (BNF introduced in first lesson, for example). This new design course may have to be next on their list.

  11. Mentionsbobbyongce2013in “Ask HN: I am 35 years old with no degree – can I still program?”

    you can absolutely pick up programming on ur free time. many of the best programmers are self-taught. i recommend completing udacity cs101 and the udacity cs253 to have a strong foundation in programming and web app development. after you complete these courses i'm sure you will be confident enough to pick up a web framework tutorial like django or ruby on rails and continue from there.

    consistent learning every few days for a few months will set you to mastery in a year or so. good luck with learning!

  12. Mentionsdragonwriter2013in “What is the best way to learn programming? ”

    There's no one universally best way, but there are lots of available ways that are good, and you need to try some out and find which is best for you (self-study from books; traditional classes offered via, e.g., local community colleges; MOOCs like EdX, Coursera, Udacity, etc.; non-MOOC online interactive-learning tutorials like those offered by CodeAcademy, etc.; etc.) -- and there is no reason to limit yourself to one of these approaches. Try more than one, and keep doing more than one if you find they work together for you.

    Whatever basic approach(es) you use, the most important thing is to take whatever you are getting through it and find ways of applying to problems that interest you -- that is, the most important thing to learning to programming is to practice programming.

    Personally, I think the mix of convenience, structure, and cost (free) of the MOOCs is hard to beat; the self-scheduled nature of Udacity makes it the easiest of the big 3 MOOC providers to jump into an intro programming class since you can do it whenever you want. So, I'd probably recommend that as the first thing to try if you want to start learning right now. But the introductory programming offerings from other MOOC providers (particularly EdX's MITx 6.00x class) are also worth exploring, as are other approaches.

  13. Mentionsdlf2013in “Learn to code?”

    While I think learning to code is a great thing, I don't know that it will necessarily be the fastest/best path to understanding the core of your products. I'm also non-technical (coming from a legal background as well), and while the process of starting to learn to code I think has been helpful, I think what was most helpful was just asking my technical cofounders a ridiculous number of questions. Stupid questions... ones you might feel embarrassed to ask.

    If you are going to learn to code, I think a high level computer science course is a great place to start. I recommend Udacity's CS101 course. It really takes the mystery out of what's happening behind the screen. If you want a good book that will also help lift the veil, I'd suggest "Code: The Hidden Language of Computer Hardware & Software" by Charles Petzold.

    Learning to code can be a long process if you aren't able to give your undivided attention to it, so I think actually dedicating the time to a bootcamp as others have suggested is a very good idea and something I think I'd like to do myself.

    Good luck!

  14. Mentionsglass_of_water2013in “Ask HN: Is it too late to start learning to code?”

    If you have a hard time finding a structured way to learn and staying motivated, you could try out Udacity's courses at www.udacity.com. They're set up so that they're interactive, and they have courses for people of all skill levels. You can start with CS101 if you feel that that's right for you and then move on to whatever else you're interested in!

  15. Mentionsintellegacy2012in “Python for Beginners”

    You need to take a computer science course , which will teach you how to think.

    The Python exercises on codeacademy are there to strengthen your grasp of python syntax and practice for loops.

    I recommend Udacity CS101 and/or edx 6.00x. Both are Intro to CS courses which use Python.

  16. Mentionsdenzil_correa2012in “I am 35. Tried numerous but just can't grasp programming. Is it too late now?”

    No, it's NOT. Try some beginner courses at http://www.udacity.com/overview/Course/cs101/CourseRev/apr20...

  17. Mentionsslykat2012in “Ask HN: Programming lessons for non-programmers?”

    I've had a great experience with Udacity. As a bit of a background, I was an EE in undegrad so I took a few CS courses but I've barely done any coding professionally so I needed to "re-learn" programming. I like Udacity because most of the course work is in Python (good for most types of development), the lectures only go a few minutes before you are quizzed on knowledge (active learning), the course is self paced, and you build on a mini-project across the course (building the blocks of a search engine).

    I definitely agree with @hoodoof that a project is essential. At the tail end of the CS 101 I got a bit bored but had a side project I was working on as well. I ended up focusing more time on the side project since it was more fun and challenging, but Udacity helped build some fundamentals and jump start the learning. I'd try combining an online course like Python and mini projects (maybe small data analysis projects at Crowdflower or mini web tools).

    Also, as a suggestion, I'd suggest considering web side projects even if you don't use it at Crowdflower. There's something incredibly exciting about deploying a tool for people to publicly see on the web that makes programming stick for newbies (at least me). Once you build the motivation, you can assign side projects that are more useful for the company.

    I used to work for the big G where they had a few programs to learn to code (but it never worked for me) - let me know if you want to know why they didn't work.

  18. Mentionsredwood2012in “Codecademy now has Python lessons”

    I just finished Udacity's CS101 (Python). I've been thinking of taking a few more Udacity courses.

    Anyone with experience with both -- Udacity and Codecademy -- recommend either one over the other?

  19. Mentionsdroithomme2012in “Concise list of upcoming Coursera courses by month”

    Udacity has a CS101 in Python that you can start at any time and can be mastered by a 9 yr old with parental guidance. Check it out. I am sure you will be happy with it and your son will have a good time.

    Their interface is a lot better and their teachers are great, they've really created a new pedagogy around the new medium rather than adapt existing brick and mortar courses like Coursera and edX is doing. Mind you Coursera and MITx is a great way to get real college classes over the web, but Udacity is rebuilding the whole paradigm and is intensely analyzing data and tweaking to improve things.

    http://www.udacity.com/overview/Course/cs101/CourseRev/apr20...

  20. Mentionsddorian432012in “Which program should I learn RoR or PHP?”

    php is a language and ror is a framework.

    I myself have in mind python(language). Check out http://learnpythonthehardway.org/ (text book) or http://www.udacity.com/overview/Course/cs101/CourseRev/apr20... (video tutorials) or both. Then learn django(framework).

  21. Mentionsjoeag2012in “Free online CS courses from Udactiy & Coursera starting over the next 2 weeks”

    I think that's a great move by Udacity. I am trying to catch up on unit 6 right now in CS101. It's definitely a challenge to keep up if you are doing the course as a "hobby". Of course I also don't really care about the certs so as long as the course material is available I'm happy.

    For noobs like me I highly recommend the CS101 course, I found that a lot of stuff I was struggling with in Learn Python the Hardway (a great resource as well by the way and many thanks to Zed for making it available) and other sources online became clearer to me during the CS101 course.

    I am looking forward to CS253:Web Application Engineering next.

  22. Mentionsbitsoda2012in “How Codecademy (YC S11) Snagged 200,000 Users in Seven Days”

    I'm just poking my head in here to sing Udacity's praises. Their CS-101 class is phenomenal; it is hands down the best intro to CS on the web. The fact that it's free is just icing on the cake. The 1 unit per week for 7 weeks pace is demanding -- and I think users would benefit from the doubling of the course length -- but the videos, professors, community, quiz frequency, and challenging homework make for one hell of a learning experience I've never seen before online.

  23. Mentionsgraeme2012in “Peter Norvig to teach 'Design of Computer Programs' at Udacity”

    Udacity is definitely focussed on shorter classes. I wouldn't call them easy though - accessible is a better word.

    Anyone is able to take their CS 101 class - no prereqs are required. But it's fairly substantive. There are always forum complaints about how hard some of the homework is.

    I think they've picked a good balance of accessibility vs. rigor. But I expect that as they add more classes, people will be able to use Udacity to acquire real skills.

    Put another way: The fact that 50% of their current classes are for novices (i.e. one course) doesn't mean the situation will stay that way for long.

    And they are very, very good at teaching and online delivery.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help