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.

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

473 pointsby newsoulover 2 years ago
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 comments

azemetreover 2 years ago
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 未加载
kennyfrcover 2 years ago
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 未加载
twawaaayover 2 years ago
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__over 2 years ago
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 未加载
kriroover 2 years ago
&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 未加载
FranklinMaillotover 2 years ago
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 未加载
modernerdover 2 years ago
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 未加载
culopatinover 2 years ago
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 未加载
rahuldanover 2 years ago
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 未加载
samvherover 2 years ago
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.
CraigJPerryover 2 years ago
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 未加载
rwieruchover 2 years ago
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>
tsmover 2 years ago
<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>
ajosepsover 2 years ago
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_userover 2 years ago
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 未加载
patchorangover 2 years ago
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 未加载
ojlover 2 years ago
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 未加载
nemoniacover 2 years ago
Nand2tetris <a href="https:&#x2F;&#x2F;www.nand2tetris.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.nand2tetris.org&#x2F;</a>
tjpnzover 2 years ago
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 未加载
jcon321over 2 years ago
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.
tmtvlover 2 years ago
<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;.
larveover 2 years ago
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 未加载
dartharvaover 2 years ago
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>
phowatover 2 years ago
<a href="http:&#x2F;&#x2F;landoflisp.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;landoflisp.com&#x2F;</a><p>Was a really fun read.
评论 #34412844 未加载
eatonphilover 2 years ago
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 未加载
WoodenChairover 2 years ago
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.
forrestbrazealover 2 years ago
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>
ggrothendieckover 2 years ago
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>
theshrike79over 2 years ago
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 未加载
RomanPushkinover 2 years ago
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>
jonjackyover 2 years ago
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 未加载
euover 2 years ago
<a href="http:&#x2F;&#x2F;tinypythonprojects.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;tinypythonprojects.com&#x2F;</a>
jtmiclatover 2 years ago
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>
jtoldsover 2 years ago
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.
throwawaybnb123over 2 years ago
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>
ljfover 2 years ago
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.
sitkackover 2 years ago
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;.
throwaway81523over 2 years ago
&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.
elias94over 2 years ago
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_greyfaceover 2 years ago
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>
maCDzPover 2 years ago
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-gover 2 years ago
<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”
smckkover 2 years ago
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>
hurrilover 2 years ago
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>
MarkusWandelover 2 years ago
&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 未加载
pixelmonkeyover 2 years ago
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 未加载
olkytsover 2 years ago
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)
poszlemover 2 years ago
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.
autodev1over 2 years ago
- 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;
fellowniusmonkover 2 years ago
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.
fedeb95over 2 years ago
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
rcardo11over 2 years ago
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>
tasukiover 2 years ago
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.
azhenleyover 2 years ago
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 未加载
yasoobover 2 years ago
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>
evandaleover 2 years ago
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.
kirsoover 2 years ago
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.
kgwxdover 2 years ago
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>
LastTrainover 2 years ago
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.
ilytover 2 years ago
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 未加载
hlshipover 2 years ago
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>.
velmuover 2 years ago
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>
speakspokespokover 2 years ago
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_ODover 2 years ago
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_foeover 2 years ago
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>
rg111over 2 years ago
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.
boredemployeeover 2 years ago
&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.
saperytonover 2 years ago
The Advanced Beginner blog post series by Robert Heaton is great.
评论 #34412474 未加载
werberover 2 years ago
<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
unrequitedover 2 years ago
<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.
skizmover 2 years ago
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 未加载
basicallydanover 2 years ago
If they don&#x27;t exist, this is a good idea for anybody looking for a project to write a programming book
评论 #34413700 未加载
devd00dover 2 years ago
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>
kdmitryover 2 years ago
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.
sabootover 2 years ago
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>
bartvkover 2 years ago
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 未加载
albertzeyerover 2 years ago
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?
allie1over 2 years ago
Manning.com also has LiveProjects which are good for Machine Learning projects
anuragsover 2 years ago
<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>
iccoover 2 years ago
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>
Plasmoidover 2 years ago
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.
robayeover 2 years ago
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.
cratermoonover 2 years ago
<i>Practical Common Lisp</i> by Peter Seibel
HellDunkelover 2 years ago
The Rust Programming Language by Steve Klabnik and Carol Nichols. I don’t think it’s a language for beginners though.
aaghaover 2 years ago
I&#x27;d love suggestions for PHP.
评论 #34443235 未加载
feliixhover 2 years ago
Automate the boring stuff with Python
mesozoicover 2 years ago
I&#x27;d like the equivalent for electronics if anyone has any suggestions.
numbsafariover 2 years ago
“Programming BASIC Adventure Games for the TRS-80”<p>“Assembly Language, Step by Step”<p>Check those out.
volodarik_lemonover 2 years ago
All Swift by Sundell series are pretty good.
hgsgmover 2 years ago
checkio.com for increasing challenges in Python or JS.<p>But also pretty much every book does that.
keepquestioningover 2 years ago
raytracing weekend
ThomPeteover 2 years ago
ChatGPT is probably much better at doing that for you. You can start with anything you want and explore as deep as you want.