TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Books that teach programming by building a series of small projects?

473 点作者 newsoul超过 2 年前
It is common knowledge that when first learning programming, one should start with small projects to build something real rather than learning rules and syntax of the language only.<p>Which are some of the best books that take a project based approach in teaching programming to a beginner?

92 条评论

azemetre超过 2 年前
While not for beginners, if you&#x27;d like to learn rust I recently finished &quot;Command line Rust&quot; [1].<p>It was my first introduction to rust and the book was quite enjoyable. It starts off with teaching you the very basics of a command line (what it means to exit, true, or false, etc) and each chapter has you recreate a popular command line tool (like grep, cal, tail, wc) while introducing a new rust concept.<p>The book also does TDD, test driven design, by first teaching you how to create these tests then in subsequent chapters having the tests prewritten for you.<p>It&#x27;s definitely worth a look, the author has a great writing style as well that isn&#x27;t as monotonous as most programming books I&#x27;ve read.<p>[1] <a href="https:&#x2F;&#x2F;www.oreilly.com&#x2F;library&#x2F;view&#x2F;command-line-rust&#x2F;9781098109424&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.oreilly.com&#x2F;library&#x2F;view&#x2F;command-line-rust&#x2F;97810...</a>
评论 #34420295 未加载
评论 #34415848 未加载
评论 #34414978 未加载
评论 #34415504 未加载
kennyfrc超过 2 年前
There’s quite a few:<p>- Zed Shaw’s Learn More Python the Hard Way[1]<p>- Brian Hogan’s Exercises for Programmers (best for beginners or for learning a new language)[2]<p>- Hal Fulton’s The Ruby Way[3]<p>- Chris Ferdinandi’s Vanilla JS Academy[4]<p>- Marc-Andre Cournoyer’s Great Code Club (it’s old, and the community doesn’t exist anymore, but i think he still maintains it)[5]<p>- A few python books from No Starch Press (notably those authored by Al Sweigart)<p>I learned the most as a beginner from Zed Shaw’s work, and from reading open source code.<p>Once you’re done with the initial “learn from tutorials” phase, there’s no better resource than reading open source code.<p>[1] <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Learn-More-Python-Hard-Way&#x2F;dp&#x2F;0134123484&#x2F;ref=mp_s_a_1_1?crid=QA7619O1989I&amp;keywords=zed+shaw+learn+more+python&amp;qid=1673963222&amp;sprefix=zed+shaw+learn+more+puthon%2Caps%2C343&amp;sr=8-1" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Learn-More-Python-Hard-Way&#x2F;dp&#x2F;0134123...</a><p>[2] <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Exercises-Programmers-Challenges-Develop-Coding&#x2F;dp&#x2F;1680501224" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Exercises-Programmers-Challenges-Deve...</a><p>[3] <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Ruby-Way-Programming-Addison-Wesley-Professional&#x2F;dp&#x2F;0321714636" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Ruby-Way-Programming-Addison-Wesley-P...</a><p>[4] <a href="https:&#x2F;&#x2F;vanillajsacademy.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;vanillajsacademy.com&#x2F;</a><p>[5] <a href="https:&#x2F;&#x2F;www.greatcodeclub.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.greatcodeclub.com&#x2F;</a>
评论 #34412667 未加载
评论 #34412673 未加载
评论 #34414564 未加载
评论 #34412367 未加载
评论 #34412555 未加载
twawaaay超过 2 年前
My favourite is &quot;Practical Common Lisp&quot; by Peter Seibel (<a href="https:&#x2F;&#x2F;gigamonkeys.com&#x2F;book&#x2F;" rel="nofollow">https:&#x2F;&#x2F;gigamonkeys.com&#x2F;book&#x2F;</a>)<p>Not only is the book free to read (although I would suggest to pay for it if you like it!) The code to parse binary files actually &quot;inspired&quot; my design of an actual production application which was very flexible, succinct and, most importantly, so fast I had to spend a lot of effort convincing people the numbers are actually true.<p>It taught me some important lessons about how you can achieve performance with Lisp languages and the real reasons for the power of macros. Not too shabby for the first book on Lisp I red!
评论 #34421302 未加载
评论 #34414968 未加载
评论 #34417946 未加载
__warlord__超过 2 年前
Not a book, but check [Build your own X](<a href="https:&#x2F;&#x2F;github.com&#x2F;codecrafters-io&#x2F;build-your-own-x">https:&#x2F;&#x2F;github.com&#x2F;codecrafters-io&#x2F;build-your-own-x</a>), a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch.
评论 #34415275 未加载
评论 #34414206 未加载
kriro超过 2 年前
&quot;Hands on Rust&quot; teaches Rust by building a rogue like game step by step. Before that there&#x27;s a chapter where you rebuild Flappy Bird from scratch that teaches the &quot;basics&quot; before diving into more advanced concepts in the rogue like. I liked the approach and recommend the book but it&#x27;s fast paced and expects quite a bit from the reader (it&#x27;s excellent if you have some programming experience already but probably daunting as a true first book imo).
评论 #34412778 未加载
FranklinMaillot超过 2 年前
Not a book but The Coding Train on Youtube is probably one of the best introduction to programming. It&#x27;s fun to watch, Daniel Shiffman is a fantastic teacher and he doesn&#x27;t take himself too seriously.<p>But what sets this course apart from any other are the coding challenges. Following the thought process of a programmer in real time, watching him making mistakes and hunting for bugs is invaluable.<p>He uses p5js, a javascript library for graphics. The lessons are geared towards generative art but cover a broad range of topics including machine learning.<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;@TheCodingTrain">https:&#x2F;&#x2F;www.youtube.com&#x2F;@TheCodingTrain</a>
评论 #34418382 未加载
modernerd超过 2 年前
For Swift:<p><a href="https:&#x2F;&#x2F;www.apple.com&#x2F;swift&#x2F;playgrounds&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.apple.com&#x2F;swift&#x2F;playgrounds&#x2F;</a> (I&#x27;ve had more success introducing programming with this than with any of the links below; it&#x27;s a very compelling intro for those who already own an iPad&#x2F;Mac, and the core concepts are generalisable to other languages&#x2F;environments even if it&#x27;s specific to Apple&#x27;s APIs and hardware.)<p>~~~<p>For Python:<p><a href="https:&#x2F;&#x2F;automatetheboringstuff.com" rel="nofollow">https:&#x2F;&#x2F;automatetheboringstuff.com</a><p><a href="https:&#x2F;&#x2F;nostarch.com&#x2F;big-book-small-python-projects" rel="nofollow">https:&#x2F;&#x2F;nostarch.com&#x2F;big-book-small-python-projects</a><p>~~~<p>For JS:<p><a href="https:&#x2F;&#x2F;eloquentjavascript.net" rel="nofollow">https:&#x2F;&#x2F;eloquentjavascript.net</a> (project-based and for beginners)<p><a href="https:&#x2F;&#x2F;javascript30.com" rel="nofollow">https:&#x2F;&#x2F;javascript30.com</a> (not for total beginners or self-study, would need a friend&#x2F;tutor)
评论 #34414662 未加载
评论 #34413800 未加载
culopatin超过 2 年前
My biggest gripe with all the project tutorials I’ve seen is that really quickly you get into a “ok I get what we’re doing” and then just copy the code they provide. At the end of the day you did zero mental workout because you didn’t have to figure out the code. I hope to find one of these that guides you but doesn’t give you the code immediately, but has a code answer key at the end or something. I get it that it’s not easy to do, but there must be one out there that doesn’t spoon-feed you everything.
评论 #34415012 未加载
评论 #34414411 未加载
评论 #34414772 未加载
评论 #34414639 未加载
评论 #34424154 未加载
评论 #34414652 未加载
评论 #34414385 未加载
rahuldan超过 2 年前
There is this excellent Github repo for this: <a href="https:&#x2F;&#x2F;github.com&#x2F;codecrafters-io&#x2F;build-your-own-x">https:&#x2F;&#x2F;github.com&#x2F;codecrafters-io&#x2F;build-your-own-x</a><p>It has a collection of blogs for building various small projects to learn different languages.
评论 #34412409 未加载
samvher超过 2 年前
Software Foundations is a series of interactive books where you work through proofs in Coq, gradually increasing in complexity: <a href="https:&#x2F;&#x2F;softwarefoundations.cis.upenn.edu&#x2F;" rel="nofollow">https:&#x2F;&#x2F;softwarefoundations.cis.upenn.edu&#x2F;</a><p>This is a bit on the edge of the domain that you&#x27;re asking about (not really for beginners, and proofs are perhaps a somewhat niche type of programming) but I learned a lot from this and many people don&#x27;t seem to know it, so I think it belongs in the list.
CraigJPerry超过 2 年前
HTDPv2 <a href="https:&#x2F;&#x2F;htdp.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;htdp.org&#x2F;</a> - it&#x27;s about learning to program rather than teaching a specific language.<p>I thought the little projects you build along the way struck a good balance of interest, e.g. you&#x27;re building a snake game by section 2 (but crucially you&#x27;ve already been exposed to how to think about data so you&#x27;re not just dropped into the deep end with some boilerplate to fiddle with).<p>Anyway, i could write tons of praise for this book but it&#x27;s convinced me to ditch python for teaching newbies and i LOVED python for getting newbies started real quick with projects for years.
评论 #34414287 未加载
评论 #34415743 未加载
评论 #34413400 未加载
rwieruch超过 2 年前
Shameless plug if allowed: “The Road to React” goes through one large project to teach React.js from beginner to intermediate. I learned that going through one project it allows the teacher to go through a series of foundational aspects of the topic before implementing more advanced domain specific features which make use of the earlier learned building blocks for the real world project. Does it make sense?<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Road-learn-React-pragmatic-React-js&#x2F;dp&#x2F;172004399X&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Road-learn-React-pragmatic-React-js&#x2F;d...</a>
tsm超过 2 年前
<i>Software Design by Example</i> (<a href="https:&#x2F;&#x2F;www.routledge.com&#x2F;Software-Design-by-Example-A-Tool-Based-Introduction-with-JavaScript&#x2F;Wilson&#x2F;p&#x2F;book&#x2F;9781032330235" rel="nofollow">https:&#x2F;&#x2F;www.routledge.com&#x2F;Software-Design-by-Example-A-Tool-...</a>)<p>Available free online at <a href="https:&#x2F;&#x2F;third-bit.com&#x2F;sdxjs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;third-bit.com&#x2F;sdxjs&#x2F;</a>
ajoseps超过 2 年前
This book is still in progress but I&#x27;ve gone through some of the chapters and have enjoyed it. Rust from the Ground Up: <a href="https:&#x2F;&#x2F;leanpub.com&#x2F;rust-from-the-ground-up" rel="nofollow">https:&#x2F;&#x2F;leanpub.com&#x2F;rust-from-the-ground-up</a><p>I was looking for a book that had offline projects I can work on while on flights, and this book focuses on rebuilding linux utilities using rust. The other nice part is that you get a better understanding of linux internals.<p>I believe the author is also responsive on the rust subreddit.
评论 #34415002 未加载
weird_user超过 2 年前
For beginners, Daniel Holden&#x27;s Build Your Own Lisp[1] is excellent material for learning C. It&#x27;s a very succinct book.<p>For intermediate programmers, Build Your Own Redis[2] is a WIP book I am currently writing.<p>[1] <a href="https:&#x2F;&#x2F;buildyourownlisp.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;buildyourownlisp.com&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;build-your-own.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;build-your-own.org&#x2F;</a>
评论 #34419210 未加载
patchorang超过 2 年前
Not a book and webdev focused, but I&#x27;ve been doing <a href="https:&#x2F;&#x2F;fullstackopen.com&#x2F;en&#x2F;" rel="nofollow">https:&#x2F;&#x2F;fullstackopen.com&#x2F;en&#x2F;</a> and it&#x27;s been great.<p>The chapters are structured so you are building 2 projects at once. One where you follow along with the chapter material with example code and explanations. And a second in the exercises.<p>I really like it because it introduces the concepts in the context of a project, but you can&#x27;t get stuck because the code is there too. Then you need to really apply it in the exercises on your own project, without the example code.
评论 #34439708 未加载
ojl超过 2 年前
I mentioned The Ray Tracer Challenge in a comment below, and it seems quite popular so I’ll submit it here as well.<p><a href="http:&#x2F;&#x2F;raytracerchallenge.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;raytracerchallenge.com&#x2F;</a><p>It’s not really for beginners though, but maybe possible to start it together with a beginners book in a language of choice. It starts with points, vectors and matrixes, but gets more advanced later on. It’s around 250 pages and there’s basically no code provided, just test scenarios and a bit of pseudo code.
评论 #34439804 未加载
nemoniac超过 2 年前
Nand2tetris <a href="https:&#x2F;&#x2F;www.nand2tetris.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.nand2tetris.org&#x2F;</a>
tjpnz超过 2 年前
MUD Game Programming. Not sure how easy obtaining a copy would be in 2023 but it has two projects which I recall being a lot of fun. I never did build a successful MUD but did learn a fair amount about network programming.<p><a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;en&#x2F;book&#x2F;show&#x2F;927128.Mud_Game_Programming_With_CDROM_" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;en&#x2F;book&#x2F;show&#x2F;927128.Mud_Game_Progr...</a>
评论 #34420678 未加载
jcon321超过 2 年前
No joke, &quot;C for Dummies&quot; - it&#x27;s more teaching you CS101 concepts, less about &quot;C&quot;. Tons of examples to go through and the attitude of the author is very helpful compared to a lot of other styles out there.<p>I was failing my computer science classes first semester. Towards the end of the semester I sat down in the library for a few days and just went page by page typing every example and compiling it. Aced every IT class I had the next few years. I attribute that book to making everything &quot;click&quot; for me.<p>Once you understand the beginner concepts that book shows, then you as an individual would know where to look to gain improvement.
tmtvl超过 2 年前
<i>Common Lisp: A Gentle Introduction to Symbolic Computation</i>(<a href="https:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~dst&#x2F;LispBook&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~dst&#x2F;LispBook&#x2F;</a>) has you build a number of small applications, like a substitution decipher application, a plotting function, and more, which it calls &quot;keyboard exercises&quot;.
larve超过 2 年前
Peter norvig’s paradigms of artificial intelligence programming, despite its age, is a delight.<p><a href="https:&#x2F;&#x2F;norvig.github.io&#x2F;paip-lisp&#x2F;#&#x2F;" rel="nofollow">https:&#x2F;&#x2F;norvig.github.io&#x2F;paip-lisp&#x2F;#&#x2F;</a>
评论 #34412551 未加载
dartharva超过 2 年前
I don&#x27;t know why jtimiclat&#x27;s comment recommending Al Sweigart&#x27;s books got downvoted and faded out, they are indeed quite good for beginners wanting to get their hands dirty with programming instead of cramming it in an academic way.<p>Not to mention they&#x27;re all freely available and give excellent value for both time and money: <a href="https:&#x2F;&#x2F;inventwithpython.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;inventwithpython.com&#x2F;</a>
phowat超过 2 年前
<a href="http:&#x2F;&#x2F;landoflisp.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;landoflisp.com&#x2F;</a><p>Was a really fun read.
评论 #34412844 未加载
eatonphil超过 2 年前
Sort of like that, I&#x27;ve been slowly working on a rosetta code for implementations of small problems. Rosettacode.org allows you to use standard library functions so many (but not all) of their examples are useless when you actually want to see how to code something from hand in the language.<p>So my rosetta code only allows you to implement the main part of the thing yourself. But it&#x27;s not appropriate for beginners. It&#x27;s more appropriate for teaching a new language to someone who is already an intermediate programmer.<p><a href="https:&#x2F;&#x2F;tinyprograms.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;tinyprograms.org&#x2F;</a>
评论 #34413478 未加载
WoodenChair超过 2 年前
For intermediate programmer, that&#x27;s what we do in the Classic Computer Science Problems series (<a href="https:&#x2F;&#x2F;classicproblems.com" rel="nofollow">https:&#x2F;&#x2F;classicproblems.com</a>). We combine learning programming with learning computer science problem solving techniques.
forrestbrazeal超过 2 年前
My Cloud Resume Challenge project [0] and book [1] uses a set of small, stackable mini-projects to introduce beginners to many of the pragmatic skills used in cloud software engineering.<p>[0] <a href="https:&#x2F;&#x2F;cloudresumechallenge.dev&#x2F;docs&#x2F;the-challenge&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cloudresumechallenge.dev&#x2F;docs&#x2F;the-challenge&#x2F;</a> [1] <a href="https:&#x2F;&#x2F;cloudresumechallenge.dev&#x2F;book&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cloudresumechallenge.dev&#x2F;book&#x2F;</a>
ggrothendieck超过 2 年前
Per Brinch Handsen, Programming a Personal Computer. Book is online. Interpreter, editor and OS in about 10 KLOC. <a href="http:&#x2F;&#x2F;pascal.hansotten.com&#x2F;per-brinch-hansen&#x2F;" rel="nofollow">http:&#x2F;&#x2F;pascal.hansotten.com&#x2F;per-brinch-hansen&#x2F;</a> Also <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24913959" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24913959</a>
theshrike79超过 2 年前
If we&#x27;re talking a complete beginner with maybe only &quot;hello world&quot; level skills I recommend the Lego BOOST set: <a href="https:&#x2F;&#x2F;www.lego.com&#x2F;en-fi&#x2F;product&#x2F;boost-creative-toolbox-17101" rel="nofollow">https:&#x2F;&#x2F;www.lego.com&#x2F;en-fi&#x2F;product&#x2F;boost-creative-toolbox-17...</a><p>It teaches you step by step the basics of programming (loops, function calls etc) using a scratch-like programming language.
评论 #34415138 未加载
RomanPushkin超过 2 年前
Shameless plug:<p>FREE <a href="https:&#x2F;&#x2F;leanpub.com&#x2F;rubyisforfun" rel="nofollow">https:&#x2F;&#x2F;leanpub.com&#x2F;rubyisforfun</a> - Ruby Is For Fun, I made the book so you do a lot of exercise. There is around 80 exercises in total.<p>Rewritten as a course:<p><a href="https:&#x2F;&#x2F;www.educative.io&#x2F;courses&#x2F;handbook-ruby-developers" rel="nofollow">https:&#x2F;&#x2F;www.educative.io&#x2F;courses&#x2F;handbook-ruby-developers</a>
jonjacky超过 2 年前
The famous <i>Structure and Interpretation of Computer Programs</i> (SICP) does this, in the Scheme language. The whole book is online here, with the table of contents right at the front:<p><a href="https:&#x2F;&#x2F;web.mit.edu&#x2F;6.001&#x2F;6.037&#x2F;sicp.pdf" rel="nofollow">https:&#x2F;&#x2F;web.mit.edu&#x2F;6.001&#x2F;6.037&#x2F;sicp.pdf</a>
评论 #34413662 未加载
eu超过 2 年前
<a href="http:&#x2F;&#x2F;tinypythonprojects.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;tinypythonprojects.com&#x2F;</a>
jtmiclat超过 2 年前
I found Al Sweigart&#x27;s books nice for beginners.<p>Highlights <a href="https:&#x2F;&#x2F;automatetheboringstuff.com" rel="nofollow">https:&#x2F;&#x2F;automatetheboringstuff.com</a> <a href="https:&#x2F;&#x2F;inventwithpython.com&#x2F;bigbookpython" rel="nofollow">https:&#x2F;&#x2F;inventwithpython.com&#x2F;bigbookpython</a>
jtolds超过 2 年前
Python Programming for the Absolute Beginner (<a href="https:&#x2F;&#x2F;smile.amazon.com&#x2F;Python-Programming-Absolute-Beginner-3rd-dp-1435455002&#x2F;dp&#x2F;1435455002&#x2F;" rel="nofollow">https:&#x2F;&#x2F;smile.amazon.com&#x2F;Python-Programming-Absolute-Beginne...</a>) has you make a game at the end of every chapter with the concepts you&#x27;ve learned so far. I&#x27;ve bought this book for a number of people, though perhaps Automate the Boring Stuff with Python: Practical Programming for Total Beginners (<a href="https:&#x2F;&#x2F;smile.amazon.com&#x2F;gp&#x2F;product&#x2F;1593275994&#x2F;" rel="nofollow">https:&#x2F;&#x2F;smile.amazon.com&#x2F;gp&#x2F;product&#x2F;1593275994&#x2F;</a>) is better if you don&#x27;t want to make games.
throwawaybnb123超过 2 年前
Codecademy has projects page: <a href="https:&#x2F;&#x2F;www.codecademy.com&#x2F;projects" rel="nofollow">https:&#x2F;&#x2F;www.codecademy.com&#x2F;projects</a>
ljf超过 2 年前
The &#x27;Arduino Projects Book&#x27; does a brilliant job if taking someone who knowing nothing about coding or electronics and setting out lessons and projects that take you from zero to somewhere fun.<p>I still can&#x27;t really code, but I can have a lot of fun tinkering because of that book.
sitkack超过 2 年前
The New Turing Omnibus is a nice collection of small domain problems that can be solved with computation.<p><a href="https:&#x2F;&#x2F;oke.cx&#x2F;mseih" rel="nofollow">https:&#x2F;&#x2F;oke.cx&#x2F;mseih</a><p>In the domain of theoretical physics, I highly recommend, &quot;From Newton to Mandlebrot&quot;.
throwaway81523超过 2 年前
&gt; It is common knowledge that when first learning programming, one should start with small projects to build something real rather than learning rules and syntax of the language only.<p>I would start by examining that assumption: it varies from one person to the next. If you like the project approach then great, go for it, but for other people it can be better to exercise individual features of the language in isolation until they are well understood, rather than trying to put a lot of half-understood features together into a more complex program. I have gotten into trouble over this myself a few times, and now definitely prefer the piecewise approach to the project approach.
elias94超过 2 年前
I would suggest Practical Common Lisp<p><a href="https:&#x2F;&#x2F;gigamonkeys.com&#x2F;book&#x2F;" rel="nofollow">https:&#x2F;&#x2F;gigamonkeys.com&#x2F;book&#x2F;</a><p>You will create a MP3 database, a web server, a spam filter, a HTML generator. Really practical!
gen_greyface超过 2 年前
check this<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22299180" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22299180</a> <i>Ask HN: What are some books where the reader learns by building projects?</i>
maCDzP超过 2 年前
I like “The Elements of Computing Systems: Building a Modern Computer from First Principles”.<p>You build a whole computer from scratch through small projects.<p>Sure, you want learn a specific language, but you’ll grock programming in general.
评论 #34424323 未加载
dan-g超过 2 年前
<a href="https:&#x2F;&#x2F;beautifulracket.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;beautifulracket.com&#x2F;</a> by Matthew Butterick - “An Introduction to Language-Oriented Programming Using Racket”
smckk超过 2 年前
I recommend the Deitel[0] series for Python and C family languages like Java, C# etc. With hundreds of complete examples to follow (not code snippets) and exercises to challenge you, you will do better with these books as a beginner.<p>My strategy is to get to the 10th chapter of the book skipping the exercises, then go back and try them with a better overall understanding of the language and its nuances.<p>Great series.<p>[0] <a href="https:&#x2F;&#x2F;deitel.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;deitel.com&#x2F;</a>
hurril超过 2 年前
This one is nothing short of brilliant:<p><a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;haskell-in-depth" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;haskell-in-depth</a>
MarkusWandel超过 2 年前
&quot;Software Tools&quot; by Kernighan &amp; Plauger, perhaps.<p>The original was in Ratfor, which is a Fortran dialect. That being similar syntax but more limited than C is not a bad intro language.
评论 #34416699 未加载
pixelmonkey超过 2 年前
Not a book, but CS50x is a freely available course with high quality videos and lecture notes. The lecture exercises are programming projects of sorts. It teaches programming from scratch with C and then Python. Plus, since a lot of students take it, there are lots of online resources with tips, like the CS50 subreddit.<p><a href="https:&#x2F;&#x2F;cs50.harvard.edu&#x2F;x&#x2F;2023&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cs50.harvard.edu&#x2F;x&#x2F;2023&#x2F;</a>
评论 #34412569 未加载
olkyts超过 2 年前
Learning Rust, I use these 2: 1. Command-Line Rust: A Project-Based Primer for Writing Rust CLIs 2. Zero To Production In Rust (it&#x27;s actually one project)
poszlem超过 2 年前
I can recommend &quot;Programming: Principles and Practice Using C++&quot;, although the fact that it uses C++ as a first language can be a downside to some.
autodev1超过 2 年前
- Pick a language<p>- Find a recent book (&lt; 2 yrs old) on LibGen.is<p>- OR, a Udemy.com video series (note: never pay more than $12 or so-- the promo rate. If you see a higher price, just create a new email &amp; user account (or reset cookies?) and you&#x27;ll see the promo price again)<p>- Visit: Roadmap.sh to get a sense of a learning roadmap what knowledge to build.<p>- Use a search engine to answer questions, such as &quot;free learning resource for learning &lt;XYZ thing&gt;&quot;
fellowniusmonk超过 2 年前
It&#x27;s not quite the same as what you are looking for, but I&#x27;ve known multiple people who were stuck in their attemp to learn to code before using railstutorial, I view it and the book &quot;sql: visual quickstart guide&quot; as two very well designed intros that manage to avoid having sections with random jumps in difficulty and terminology usage that can leave true beginners behind.
fedeb95超过 2 年前
Parenthesis: keep in mind that while learning by doing might be a good way to begin, even if I wouldn&#x27;t be so sure as wether one &quot;should&quot; or &quot;could&quot; start along such a path, at some point you&#x27;ll be stuck without studying the &quot;boring&quot; stuff you&#x27;ve delayed. True programming is realising the boring stuff weren&#x27;t so boring in the first place
rcardo11超过 2 年前
This is the best programming book I have ever picked <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;-&#x2F;es&#x2F;Noam-Nisan&#x2F;dp&#x2F;0262539802&#x2F;ref=sr_1_1?keywords=nand2tetris&amp;qid=1673977221&amp;sprefix=nand2%2Caps%2C322&amp;sr=8-1" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;-&#x2F;es&#x2F;Noam-Nisan&#x2F;dp&#x2F;0262539802&#x2F;ref=sr_...</a>
tasuki超过 2 年前
I&#x27;m very much a fan of a project-based approach. However, I wouldn&#x27;t recommend any book for that. I&#x27;d ask the apprentice what they&#x27;d like to achieve, and try to reduce scope as much as possible.<p>There&#x27;s a world of difference in motivation when building something <i>you want to exist</i>, versus building a project because a book told you so.
azhenley超过 2 年前
Check out my blog series, &quot;Challenging projects every programmer should try&quot;. Who knows, maybe I will turn it into a book that shows how to implement each project :)<p><a href="https:&#x2F;&#x2F;austinhenley.com&#x2F;blog&#x2F;challengingprojects.html" rel="nofollow">https:&#x2F;&#x2F;austinhenley.com&#x2F;blog&#x2F;challengingprojects.html</a>
评论 #34414648 未加载
yasoob超过 2 年前
Hi! I would like to shamelessly plug my own book &quot;Practical Python Projects&quot;. It follows project based approach. It is completely free to read online and has a paid EBook option if that is what you prefer.<p><a href="https:&#x2F;&#x2F;practicalpython.yasoob.me&#x2F;" rel="nofollow">https:&#x2F;&#x2F;practicalpython.yasoob.me&#x2F;</a>
evandale超过 2 年前
How to Design Programs: <a href="https:&#x2F;&#x2F;htdp.org&#x2F;2022-8-7&#x2F;Book&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;htdp.org&#x2F;2022-8-7&#x2F;Book&#x2F;index.html</a><p>It&#x27;s lots of small problems that seem like projects and I&#x27;ve found it fun to expand on the examples on your own beyond what the book asks.
kirso超过 2 年前
I failed to learn for the past 10 years and I am complicit. But partially as a self-taught, you have no clue which resources are good and which are not.<p>Recently all mainstream &quot;learn to code&quot; sources realised just making you memorise concepts doesn&#x27;t work and started changing curriculum, but before that happens...<p>The best 2 resources I found are: - <a href="https:&#x2F;&#x2F;learnprogramming.online&#x2F;" rel="nofollow">https:&#x2F;&#x2F;learnprogramming.online&#x2F;</a> - <a href="https:&#x2F;&#x2F;scrimba.com">https:&#x2F;&#x2F;scrimba.com</a><p>Both are project driven and won&#x27;t hand-hold you if you want to continue, you need to proceed based on a mastery learning method.
kgwxd超过 2 年前
Programming Games for Atari 2600 <a href="https:&#x2F;&#x2F;forums.atariage.com&#x2F;topic&#x2F;339819-upcoming-book-on-atari-2600-programming-now-available&#x2F;#comment-5153794" rel="nofollow">https:&#x2F;&#x2F;forums.atariage.com&#x2F;topic&#x2F;339819-upcoming-book-on-at...</a>
LastTrain超过 2 年前
When I was young, I went about it the opposite way. I thought of some small project and researched how to implement it, then moved on to something bigger. Everybody is different of course, but I felt like I learned more having to figure out how to go about implementing each myself.
ilyt超过 2 年前
It&#x27;s common approach because building something that <i>you want</i> is good motivation.<p>I don&#x27;t think that works as well when it is some random project from the book. Like, sure, better than dry code, but I&#x27;m far more motivated to learn when I also make something for me.
评论 #34416840 未加载
hlship超过 2 年前
Not quite a beginner book, but you should check out <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Mazes-Programmers-Twisty-Little-Passages&#x2F;dp&#x2F;1680500554" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Mazes-Programmers-Twisty-Little-Passa...</a>.
velmu超过 2 年前
The Symfony Fast Track book takes this approach: <a href="https:&#x2F;&#x2F;symfony.com&#x2F;doc&#x2F;6.2&#x2F;the-fast-track&#x2F;en&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;symfony.com&#x2F;doc&#x2F;6.2&#x2F;the-fast-track&#x2F;en&#x2F;index.html</a>
speakspokespok超过 2 年前
Thought the question was regarding specific books that teach programming via small projects it&#x27;s worth mentioning a related topic here.<p>A Common Sense Guide to Data Structures and Algorithms by Jay Wengrow * 2nd Edition * not only covers the theory really well but goes on to provide code examples in popular high level languages explaining when and how best to use them usefully. At the end of each section are prompts where you extend the lesson into a small project and each chapter builds on the last. The author has a github repo so you can compare your project solution to his. It made a rather dry topic extremely fun and approachable.
Taylor_OD超过 2 年前
Most udemy&#x2F;MOOC courses are structured this way. I tend to just look for the highest rated ones on whatever language I&#x27;m interested in and make sure it says build projects or something similar.
friend_and_foe超过 2 年前
Write yourself a scheme in 48 hours by Johnothan Tang is a fantastic book, there&#x27;s also the structure and interpretation of computer programs.<p><a href="https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;a&#x2F;aa&#x2F;Write_Yourself_a_Scheme_in_48_Hours.pdf" rel="nofollow">https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;a&#x2F;aa&#x2F;Write_Yo...</a><p><a href="https:&#x2F;&#x2F;web.mit.edu&#x2F;6.001&#x2F;6.037&#x2F;sicp.pdf" rel="nofollow">https:&#x2F;&#x2F;web.mit.edu&#x2F;6.001&#x2F;6.037&#x2F;sicp.pdf</a>
rg111超过 2 年前
I recently finished the book that teaches programming by developing games using DragonRubyGameToolkit. Really loved this book.<p>_____<p><i>Python Crash Course</i> by Eric Matthes has a section dedicated to projects.<p>I really liked this book.<p>This is what taught me Python.<p>I knew C before.
boredemployee超过 2 年前
&gt;&gt; one should start with small projects to build something real rather than learning rules and syntax of the language only.<p>Yes, but don&#x27;t overlook the great learning that is gained, at the beginning of any learning, by studying from many different sources (aka good books). It seems that something magical happens when you do this: the confrontation of ideas from different sources can make you better absorb ideas and resolve any doubts that you didn&#x27;t understand before.
saperyton超过 2 年前
The Advanced Beginner blog post series by Robert Heaton is great.
评论 #34412474 未加载
werber超过 2 年前
<a href="https:&#x2F;&#x2F;eloquentjavascript.net&#x2F;" rel="nofollow">https:&#x2F;&#x2F;eloquentjavascript.net&#x2F;</a> is nice and project based, it builds up from 0
unrequited超过 2 年前
<a href="https:&#x2F;&#x2F;shop.jcoglan.com&#x2F;building-git&#x2F;" rel="nofollow">https:&#x2F;&#x2F;shop.jcoglan.com&#x2F;building-git&#x2F;</a><p>This is an excellent resource.
skizm超过 2 年前
While on the topic, how about any books or courses that teach building a 3D game engine from scratch? I&#x27;m language agnostic, so any language is fine.
评论 #34416848 未加载
basicallydan超过 2 年前
If they don&#x27;t exist, this is a good idea for anybody looking for a project to write a programming book
评论 #34413700 未加载
devd00d超过 2 年前
Not quite programming but certainly covers the &quot;small projects&quot; part. This is what taught me the basics of Unreal Engine: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=k-zMkzmduqI">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=k-zMkzmduqI</a>
kdmitry超过 2 年前
I have done courses on udemy like this before for learning new languages and tech stacks. There are plenty of courses on there that you can usually get for $20 that will teach you by building a bunch of small apps or services that build up in complexity.
saboot超过 2 年前
This was just released, I haven&#x27;t picked it up yet but it&#x27;s definitely on my wish list<p><a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;tiny-c-projects" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;tiny-c-projects</a>
bartvk超过 2 年前
Learn Swift in 100 days. It start with the basics using Swift Playgrounds. But as soon as possible, it starts with building apps.<p><a href="https:&#x2F;&#x2F;www.hackingwithswift.com&#x2F;100" rel="nofollow">https:&#x2F;&#x2F;www.hackingwithswift.com&#x2F;100</a>
评论 #34416826 未加载
albertzeyer超过 2 年前
Same question, but not for beginners but for experienced programmers:<p>Which book would you recommend to improve architectural design decisions, developing complex systems, etc? But on actual examples, e.g. by building a series of projects, or parts of it?
allie1超过 2 年前
Manning.com also has LiveProjects which are good for Machine Learning projects
anurags超过 2 年前
<a href="https:&#x2F;&#x2F;github.com&#x2F;practical-tutorials&#x2F;project-based-learning">https:&#x2F;&#x2F;github.com&#x2F;practical-tutorials&#x2F;project-based-learnin...</a>
icco超过 2 年前
Pretty much all of the books at newline do this: <a href="https:&#x2F;&#x2F;www.newline.co&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.newline.co&#x2F;</a>
Plasmoid超过 2 年前
Actually, Advent of Code is pretty good. The problems are challenging but you have a defined end condition and lots of help out on the internet.
robaye超过 2 年前
C Programming: A Modern Approach by K. N. King. I’ve never seen another book that contains as many exercises and projects as Kings book does.
cratermoon超过 2 年前
<i>Practical Common Lisp</i> by Peter Seibel
HellDunkel超过 2 年前
The Rust Programming Language by Steve Klabnik and Carol Nichols. I don’t think it’s a language for beginners though.
aagha超过 2 年前
I&#x27;d love suggestions for PHP.
评论 #34443235 未加载
feliixh超过 2 年前
Automate the boring stuff with Python
mesozoic超过 2 年前
I&#x27;d like the equivalent for electronics if anyone has any suggestions.
numbsafari超过 2 年前
“Programming BASIC Adventure Games for the TRS-80”<p>“Assembly Language, Step by Step”<p>Check those out.
volodarik_lemon超过 2 年前
All Swift by Sundell series are pretty good.
hgsgm超过 2 年前
checkio.com for increasing challenges in Python or JS.<p>But also pretty much every book does that.
keepquestioning超过 2 年前
raytracing weekend
ThomPete超过 2 年前
ChatGPT is probably much better at doing that for you. You can start with anything you want and explore as deep as you want.