TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Tell HN: UC Berkeley's CS61A/B/C are the best courses to learn CS and coding

243 pointsby ggr2342over 1 year ago
I have dabbled with many resources before in hope of learning to program and learn basics of CS. I have looked at intro course sequences of schools like MIT, CMU, Stanford, etc. Most have partial resources locked down. I have dabbled with books and they felt like shit. Even the book Think Python by Allen Downey was all over the place.<p>The books and blogs at least taught me basic syntax constructs like variables, function definition, loops, etc. But I couldn&#x27;t understand how to package them up (compose) to use them in solving problems.<p>Then I started studying through Berkeley&#x27;s 3 course intro CS61A, CS61B, CS61C. They have all materials in the open and if you are following the most current iteration of the course, they even post solutions to the problems. It was godsend for me.<p>Now, I am confident to learn more CS topics using courses from CMU, MIT, Berkeley, Stanford, etc. The thing that was holding me back was the lack of confidence of programming and understanding really what a program was doing.

22 comments

mdorazioover 1 year ago
Going to hard disagree here and say this is <i>extremely</i> person-specific. I already knew how to code in C++ and Python from high school AP classes. CS61A was <i>awful</i> for me and made me hate computer science. I tested out of 61B. 61C taught me how computers actually work and simultaneously made me quit the major.<p>Here&#x27;s my take: if you are interested in <i>computer science</i>, the combination of these classes is great. If you are interested in <i>being a software developer</i> or <i>building things quickly to solve problems</i> there are far better resources out there.
评论 #37339121 未加载
评论 #37336112 未加载
评论 #37342493 未加载
评论 #37336716 未加载
评论 #37340694 未加载
评论 #37339252 未加载
评论 #37338107 未加载
throwaway71271over 1 year ago
One person&#x27;s best learning resource is another person&#x27;s nightmare.<p>We still have not understood how to tach coding. The subject seems to be completely non linear, and some people get stuck and cant move on and the teachers cant figure out why and they cant figure out why, it could last 1 month or could last 5 years, and at some point some random thing they read or watched completely unlocks them.<p>(For me the thing that helped me was Richard Buckland&#x27;s Higher Computing lectures: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=hE7l6Adoiiw&amp;list=PL6B940F08B9773B9F">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=hE7l6Adoiiw&amp;list=PL6B940F08B...</a>)<p>The best way to learn is to keep trying and particularly trying to understand what you do not understand.<p>As Feynman said on his last board: What I can not create, I do not understand.<p>So if you are one of those people who is stuck, or you watch CS61A&#x2F;B and it does not work for you, just keep looking and trying.
评论 #37334619 未加载
评论 #37334539 未加载
评论 #37335232 未加载
评论 #37340131 未加载
评论 #37335172 未加载
评论 #37334962 未加载
sgloutnikovover 1 year ago
CS61A - <a href="https:&#x2F;&#x2F;cs61a.org" rel="nofollow noreferrer">https:&#x2F;&#x2F;cs61a.org</a> CS61B - <a href="https:&#x2F;&#x2F;sp23.datastructur.es" rel="nofollow noreferrer">https:&#x2F;&#x2F;sp23.datastructur.es</a> CS61C - <a href="https:&#x2F;&#x2F;cs61c.org" rel="nofollow noreferrer">https:&#x2F;&#x2F;cs61c.org</a>
评论 #37336557 未加载
评论 #37334346 未加载
pamelafoxover 1 year ago
I was a CS61A lecturer for 3 semesters. I thought that we covered very valuable content, but also did not think that it was appropriate for new programmers. I encouraged students to enroll in a true intro class, like CS10, before embarking on the 61A journey.<p>Here’s my post about how to audit 61A : <a href="http:&#x2F;&#x2F;blog.pamelafox.org&#x2F;2022&#x2F;07&#x2F;how-to-audit-cs61a.html?m=1" rel="nofollow noreferrer">http:&#x2F;&#x2F;blog.pamelafox.org&#x2F;2022&#x2F;07&#x2F;how-to-audit-cs61a.html?m=...</a>
评论 #37340639 未加载
trelliscodedover 1 year ago
CS61A in particular is important for understanding the nuts and bolts of how programming works. The people who tended to do well in the course had little prior exposure to specific programming languages outside the prerequisite class. I think that all the abstraction that other programming languages do get in the way of understanding why the languages made some of those design choices, which is why throwing all the abstraction out the window is important to understand what&#x27;s really going on.<p>I&#x27;m reminded of an experiment I was told to do when I was learning how to be a better cook, and I complained that I didn&#x27;t understand what bay leaf was adding to a dish. Someone suggested cooking some plain white rice with some bay leaf, and I could finally taste the peppery notes it added. Sometimes you need a neutral substrate to see the details of the thing you&#x27;re trying to learn.
gnulinuxover 1 year ago
Before coming to college I had tons of programming experience and two interships. I wrote websites, backends, real life applications shipped to customers, school club websites, I even taught C++ in my high school&#x27;s IEEE chapter. CS 61A completely changed my perspective on how to think about code, I found it so valuable that I could graduate just with 61A, study everything else (algorithms, data structures etc) myself and be fine with it (this is likely an exaggeration of course, there is <i>some</i> value to finishing a traditional CS curriculum).
flappyeagleover 1 year ago
I learned nothing in 61A — because I was a dumbass kid and didn’t take it seriously.<p>61B made me feel like I knew how to program.<p>61C taught me how computers work.<p>A decade or so later 61A is actually the most useful of the 3 courses now that I’m mid career.<p>I might recommend that you take 61b first before the other 2 if you’re just starting out
评论 #37338224 未加载
Cjcrewover 1 year ago
CS61A Lectures Playlist: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;@JohnDeNero&#x2F;playlists">https:&#x2F;&#x2F;www.youtube.com&#x2F;@JohnDeNero&#x2F;playlists</a>
debanjan16over 1 year ago
Different things workout for different people. I was overwhelmed by so many ways to do things in Python and everybody teaching their own favourite way of doing things. Similarly, all I was learning was the syntax and no problem solving skills.<p>Then I cam across the book How to Design Programs aka HTDP. I was skeptical at first. But I eventually started and worked through the second edition of the book available freely at <a href="https:&#x2F;&#x2F;www.htdp.org" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.htdp.org</a> .<p>It was so beautiful. The teaching languages and writing examples before writing code. It made me really understand programming.<p>Now I can pick up any language (not that I become a language expert overnight) in a short time. I only need to map the concepts to this new language. And that&#x27;s that. I can even pattern match my ideas from higher order functions to imperative looping constructs.<p>I have another book in to TDR list. It is Norvig&#x27;s Paradigms of Artificial Intelligence Programming.
realjohngover 1 year ago
Disagree too. These courses were also known as “weeder” courses so less students do the major, which can’t support all the interested students, so they’re overly difficult. Anyone learning, I would start with JavaScript and make small fun stuff.
评论 #37339160 未加载
评论 #37340014 未加载
itissidover 1 year ago
Reading other projects code(especially their unit tests to figure out code) is an invaluable time tested skill I learnt. Once you have learnt the basics of coding getting into doing this is what I highly recommend.
aabhayover 1 year ago
I did not appreciate it at the time but CS 61 abc absolutely transformed by foundational understanding of computer science and the concepts they push are absolutely and non-negotiably important for someone to learn.<p>My only recommendation is to learn programming in a more useful and productive language like C++, as the thing you do not want to do in CS61A is to simultaneously learn to program and learn the concepts in those courses. The right way to think about it is those courses are trying to make you go “ohh that’s how things actually work”.
theakover 1 year ago
Had a similar experience. Came in to college with very little programming background and wasn&#x27;t sure if CS was right for me. Truly enjoyed CS61A and how simply it worked up from primitives to explain more complex concepts over time in an approachable way. The best part was no hand waving and everything was fully explained.<p>I had previously tried to learn Java as my first language and never could make sense of all of the &quot;public static void main(String[] args)&quot; and handwaving involved to write a simple hello world.
matt3210over 1 year ago
What about calc 1&#x2F;2&#x2F;3 ? I use those skills all the time in optimization work. Linear algebra? These are important skills that self teachers often forget
评论 #37335160 未加载
评论 #37333983 未加载
评论 #37336083 未加载
评论 #37334004 未加载
pharmakomover 1 year ago
I think that a pure programming course must be taught in Lisp since that is closest to the essence of computation with minimal syntactic overhead. once that is mastered, switching to an industrial language is just a matter of mapping a particular syntax to a subset of lisp concepts. The old MIT courses follow this approach and are on youtube.
评论 #37335554 未加载
talldatethrowover 1 year ago
I went to Cal but for MechE. Im also a totally self taught full stack web developer, although just on a personal miniSaas with 34 paying companies.<p>I think you&#x27;ll learn tons by starting a personal project, tiny, small, daunting, whatever your appetite for pain is, and just doing that.<p>I thrashed away on my crm like saas for 6 months before the first demo customers were using it. And then worked on it for another year till it was sellable to less friendly companies.<p>Recently I picked up a JavaScript book and read it. While I learned a few things, I was shocked how much I knew from what I learned from stack overflow and just random reading and thinking during the time of building that CRM.
rajeshmrover 1 year ago
Could you please post urls for the courses so it would be helpful to the community?
评论 #37335374 未加载
dsinghover 1 year ago
I agree although at the time these classes seemed so unnecessarily hard.<p>I was fortunate to take - - CS60A with Stuart Russell - CS60B with John Ousterhout (now Stanford) - CS60C with Paul Hilfinger - CS150 with Randy Katz<p>I believe (after watching videos online) that CS10 The Beauty and Joy of Computing is also a wonderful intro course to take before the CS61 series.<p>My daughter took CS61B with Paul Hilfinger and he was so gracious to take a picture with the 3 of us together. I have it here on my office desk!!!
ah27182over 1 year ago
I went to Cal, so I took these classes. 61A and B we’re both amazing, but I always felt like the material for 61C wasn’t laid out well.<p>I’ve heard a lot of good things about Harvards CS-50, not sure how that compares.
whatsup7123over 1 year ago
CS61A was great when they taught via LISP (Scheme). Have they switched to Python? Probably still good but would be nice to have LISP.
评论 #37340544 未加载
评论 #37337574 未加载
mistrial9over 1 year ago
some people could not stand these classes (in a previous incarnation) and found an assembly language class at a community college instead, at that age.
terrycodyover 1 year ago
Have you checked CS50?