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: What are some books where the reader learns by building one project?

813 pointsby kyoobover 8 years ago
I'm about halfway through 'Build You Own Lisp' and I'm really enjoying it. Each chapter builds on the last by adding something new to the same project (and thereby explaining some new concept). I find that the books I'm least likely to bail on are the ones that lead me through the building of one big project like this. What are some of the best titles in this little subgenre?

107 comments

rickrover 8 years ago
Michael Hartl&#x27;s Rails tutorial (<a href="https:&#x2F;&#x2F;www.railstutorial.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.railstutorial.org&#x2F;</a>) is a great example of this.<p>It&#x27;ll run you through building a twitter clone and introduce you to git, heroku, a bit of CSS&#x2F;HTML, and even goes into AJAX a bit.<p>I can&#x27;t recommend it enough to people looking to get into rails.
评论 #13661749 未加载
评论 #13664664 未加载
评论 #13662044 未加载
评论 #13661282 未加载
评论 #13662769 未加载
评论 #13663506 未加载
评论 #13663666 未加载
zeptomuover 8 years ago
TECS: &quot;The Elements Of Computing Systems&quot; <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;books&#x2F;elements-computing-systems" rel="nofollow">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;books&#x2F;elements-computing-systems</a><p>In this book you build a (virtualized) computer. It is one of the best books I ever read.
评论 #13662326 未加载
评论 #13662188 未加载
munificentover 8 years ago
What a delightful coincidence! I just posted the next chapter on my in-progress book &quot;Crafting Interpreters&quot; which walks you through implementing an interpreter (well, two actually) from scratch, a chapter at a time:<p><a href="http:&#x2F;&#x2F;www.craftinginterpreters.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.craftinginterpreters.com&#x2F;</a><p>I really liked &quot;Build Your Own Lisp&quot; too. Fun book. :)
评论 #13662060 未加载
评论 #13664477 未加载
superquestover 8 years ago
Miguel Grinberg&#x27;s &quot;Flask Web Development&quot; [1] is an excellent introduction Python-based web development. You build a Twitter-clone. The book is an adaptation of the authors 18-part tutorial on the same topic [2].<p>[1] <a href="http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920031116.do" rel="nofollow">http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920031116.do</a><p>[2] <a href="https:&#x2F;&#x2F;blog.miguelgrinberg.com&#x2F;post&#x2F;the-flask-mega-tutorial-part-i-hello-world" rel="nofollow">https:&#x2F;&#x2F;blog.miguelgrinberg.com&#x2F;post&#x2F;the-flask-mega-tutorial...</a>
评论 #13663344 未加载
评论 #13663138 未加载
评论 #13663659 未加载
skykoolerover 8 years ago
Linux From Scratch: <a href="http:&#x2F;&#x2F;www.linuxfromscratch.org&#x2F;lfs&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.linuxfromscratch.org&#x2F;lfs&#x2F;</a><p>Goes through building a Linux system from the ground up, and gives a pretty thorough overview of why everything is working the way that it is.
评论 #13665004 未加载
评论 #13664254 未加载
评论 #13662167 未加载
yannicktover 8 years ago
&quot;Physically Based Rendering&quot; walks you through the theory behind, and the implementation of, a photo-realistic rendering system (not real-time).<p>An extremely thorough guide to ray tracing.<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Physically-Based-Rendering-Third-Implementation&#x2F;dp&#x2F;0128006455&#x2F;ref=la_B0034NX0WA_1_1?s=books&amp;ie=UTF8&amp;qid=1487268089&amp;sr=1-1" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Physically-Based-Rendering-Third-Impl...</a>
评论 #13664493 未加载
shrikrishnaover 8 years ago
Orchestrating Docker.<p>I don&#x27;t know if it&#x27;s one of the best, but it teaches Docker concepts with a single project, and as you progress through chapters, you will find different ways you can deploy applications using Docker containers.<p><a href="https:&#x2F;&#x2F;www.packtpub.com&#x2F;virtualization-and-cloud&#x2F;orchestrating-docker" rel="nofollow">https:&#x2F;&#x2F;www.packtpub.com&#x2F;virtualization-and-cloud&#x2F;orchestrat...</a>
评论 #13664334 未加载
评论 #13664853 未加载
dzucover 8 years ago
<a href="http:&#x2F;&#x2F;www.nand2tetris.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.nand2tetris.org&#x2F;</a>
评论 #13662250 未加载
评论 #13661199 未加载
r_singhover 8 years ago
Eloquent Javascript - <a href="http:&#x2F;&#x2F;eloquentjavascript.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;eloquentjavascript.net&#x2F;</a><p>You build 5 projects through the book - a programming language, paint program, a dom game and a skill sharing website using node js.
评论 #13665754 未加载
评论 #13662105 未加载
iainmerrickover 8 years ago
Aaron Reed has a terrific book, &quot;Creating Interactive Fiction with Inform 7&quot; (<a href="http:&#x2F;&#x2F;inform7.textories.com" rel="nofollow">http:&#x2F;&#x2F;inform7.textories.com</a>) that walks you through building a complete (and fairly sophisticated) text adventure.<p>Inform 7 is very much a niche programming language, but it&#x27;s really interesting and unusual, well worth investigating if you want to broaden your horizons. Vaguely Prolog-like, but written in natural language.
评论 #13661914 未加载
nkassisover 8 years ago
Not a book but Casey Muratori&#x27;s Handmade Hero series is really interesting. It&#x27;s a from scratch tutorial on building game in C on windows but delves into many interesting programming topic that would be useful outside game development.<p><a href="https:&#x2F;&#x2F;handmadehero.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;handmadehero.org&#x2F;</a>
jettiover 8 years ago
Programming Phoenix Productive |&gt; Reliable |&gt; Fast. It goes through building a website that starts from the beginning and goes up to Phoenix Channels (websockets) for a real-time video streaming application that lets users comment on the video at specific times and it is broadcasted to all other users.
评论 #13661785 未加载
jdc0589over 8 years ago
so, this isn&#x27;t exactly what you are after; but, I&#x27;ve always had a bunch of little exercises and projects that I just kind of go through in a new language&#x2F;platform as a learning exercise.<p>Examples:<p>1. given a large file, or set of files, write a program&#x2F;routine to count the number of times an arbitrary sequence of characters appears. No regular expressions or other pattern matching helpers from a library&#x2F;sdk, you have to do it all yourself. This one is pretty small, but there&#x27;s lots of opportunity for optimization.<p>2. build a link shortener service with some analytics&#x2F;tracking.<p>3. write a simple tokenizer for whatever syntax&#x2F;language you feel like. JSON is a super easy one.<p>4. write a little website crawler. multithread it. implement rate limiting (something more advanced than random sleeps; e.g. token bucket, etc...).<p>5. make a couple easy data structures yourself. If the language&#x2F;platform you are working in has the same structure in an SDK (or there&#x27;s a good open source one), write yours to the same interface and then run it through their test suite. e.g. linked lists, queues, etc...
DrPhishover 8 years ago
If you are interested in assembly language concepts and don&#x27;t mind something slightly archaic, I thoroughly enjoyed this book: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Peter-Nortons-Assembly-Language-Book&#x2F;dp&#x2F;0136619010" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Peter-Nortons-Assembly-Language-Book&#x2F;...</a><p>It goes through lessons that build up to a pretty good interactive disk editor (DSKPATCH) written entirely in x86 assembly.<p>Its the book that got 12 year old me out of the BASIC ghetto.
评论 #13662200 未加载
评论 #13661385 未加载
plinkplonkover 8 years ago
A Retargetable C Compiler: Design and Implementation<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Retargetable-Compiler-Design-Implementation&#x2F;dp&#x2F;0805316701" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Retargetable-Compiler-Design-Implemen...</a><p>A most excellent grimoire.
评论 #13662832 未加载
thewhitetulipover 8 years ago
<a href="https:&#x2F;&#x2F;github.com&#x2F;thewhitetulip&#x2F;web-dev-golang-anti-textbook" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;thewhitetulip&#x2F;web-dev-golang-anti-textboo...</a><p>You can learn how to build a todo list manager in Go.<p>This book is about building a webapp from scratch without using a framework.
评论 #13660920 未加载
chromatonover 8 years ago
The Build Your Own Metal Working Shop from Scrap series by David J. Gingery.
评论 #13661926 未加载
评论 #13661256 未加载
评论 #13664970 未加载
评论 #13661782 未加载
toss1941over 8 years ago
I remember seeing a C++ (Borland) book that was entirely about building a flight simulator. Google is betraying my attempts to find it though, and i&#x27;m not sure who the actual publisher was. That was during the 90&#x27;s when I was 14 or something so it was a bit above my head, but I remember almost buying it anyway.<p>Edit: It may have been this: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Build-Your-Own-Flight-Sim&#x2F;dp&#x2F;1571690220" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Build-Your-Own-Flight-Sim&#x2F;dp&#x2F;15716902...</a>
评论 #13662524 未加载
PaulKeebleover 8 years ago
The classical Design Patterns book has a first chapter which takes you through the design of a text editor using the patterns provided in the book. If what you do is read the chapter and then the patterns referenced as you go and build the text editor based on their design you get exactly the sort of thing you are looking for. Its a different way of doing it than the entire book but arguably just in a different format for what is otherwise a reference book.<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Design-Patterns-Elements-Reusable-Object-Oriented&#x2F;dp&#x2F;0201633612&#x2F;ref=mt_hardcover?_encoding=UTF8&amp;me=" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Design-Patterns-Elements-Reusable-Obj...</a>
e19293001over 8 years ago
&gt; Each chapter builds on the last by adding something new to the same project<p>I bet this is what you are looking for:<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Compiler-Construction-Using-Java-JavaCC&#x2F;dp&#x2F;0470949597" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Compiler-Construction-Using-Java-Java...</a><p>This book taught me how to write a compiler.<p>Here is its description from its website:<p>* Comprehensive treatment of compiler construction.<p>* JavaCC and Yacc coverage optional.<p>* Entire book is Java oriented.<p>* Powerful software package available to students that tests and evaluates their compilers.<p>* Fully defines many projects so students can learn how to put the theory into practice.<p>* Includes supplements on theory so that the book can be used in a course that combines compiler construction with formal languages, automata theory, and computability theory.<p>If you already know C or C++ or Java then this book is for you. In my opinion, you can learn many computer science concepts and be able to apply to your field. The book will teach you how to write a grammar then write a parser from it then eventually be able to improve it as you go on reading and doing the exercises. It was a great moment when I feel comfortable writing recursive functions since grammars are composed of recursive functions. You&#x27;ll also learn a nice way on how you can get your compiler to generate assembly code. Another feature of the book is the chapter on Finite Automata wherein you&#x27;ll learn how to convert between regular expressions, regular grammars and finite automata and eventually write your own &#x27;grep&#x27; which was for me is a mind-blowing experience. There are lots of other stuffs in this book that you could learn. Thank you Anthony J. Dos Reis for writing great books for people like me.
saeranvover 8 years ago
This is a slightly different response from others, but I think fits the intent of the question: The Better Explained Guide to Calculus: <a href="https:&#x2F;&#x2F;betterexplained.com&#x2F;calculus&#x2F;" rel="nofollow">https:&#x2F;&#x2F;betterexplained.com&#x2F;calculus&#x2F;</a><p>Kalid basically iterates the series around the concept of deriving the formula for the area&#x2F;perimeter of a circle, and then builds up to deriving the surface area&#x2F;volume of a sphere. The focus throughout is the building up of an intuition of calculus before leaping into formulas. Even with uni-level calculus, I did strengthen my intuition of what&#x27;s going on by reading through his book.<p>It&#x27;s pretty fun, and I actually spent some time visualizing the calculus of geometric solids afterward i.e <a href="http:&#x2F;&#x2F;www.trinco.io&#x2F;blog&#x2F;derivative-of-x3" rel="nofollow">http:&#x2F;&#x2F;www.trinco.io&#x2F;blog&#x2F;derivative-of-x3</a>
jimmiesover 8 years ago
Hacking the Xbox by Andrew &#x27;bunnie&#x27; Huang. (<a href="http:&#x2F;&#x2F;hackingthexbox.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;hackingthexbox.com&#x2F;</a>) The book is free and can be downloaded online.<p>It goes from adding the LED to the XBox to tapping the security mechanism. Plus, the original Xbox is cheap nowadays too, so you won&#x27;t have to shell out a lot of money doing it. Local craigslist should have plenty of them.
detaroover 8 years ago
<i>Physically Based Rendering – From Theory to Implementation</i> doesn&#x27;t necessarily have the reader build a project, but it explains its reference implementation very well, and you could go ahead and write your own in parallel based on it. <a href="http:&#x2F;&#x2F;www.pbrt.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.pbrt.org&#x2F;</a>
justanotheratomover 8 years ago
F# Applied<p><a href="http:&#x2F;&#x2F;products.tamizhvendan.in&#x2F;fsharp-applied&#x2F;" rel="nofollow">http:&#x2F;&#x2F;products.tamizhvendan.in&#x2F;fsharp-applied&#x2F;</a>
评论 #13663510 未加载
评论 #13661993 未加载
corysamaover 8 years ago
Ray Tracing in One Weekend<p>Ray Tracing: The Next Week<p>Ray Tracing: The Rest of Your Life<p><a href="http:&#x2F;&#x2F;in1weekend.blogspot.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;in1weekend.blogspot.com&#x2F;</a>
crasmover 8 years ago
I haven&#x27;t bought or started this yet, but this book on interpreters is on my todo list: <a href="https:&#x2F;&#x2F;interpreterbook.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;interpreterbook.com&#x2F;</a>
评论 #13662313 未加载
评论 #13663976 未加载
dbcurtisover 8 years ago
Make: Analog Synthesizers<p>Build an old-school analog music synth. Very DIY friendly, and great for electronics n00bs. The book is build around a project call the Noise Toaster, but you learn all the analog synth basics along the way. Fun stuff. Old school, and it isn&#x27;t a wall-sized rack of Moog modules, but hey, good humor.
larcover 8 years ago
Test Driven Development with Python (<a href="http:&#x2F;&#x2F;www.obeythetestinggoat.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.obeythetestinggoat.com&#x2F;</a>) teaches you to use Django and TDD practices to create a basic list web app.
评论 #13662064 未加载
Hernanpmover 8 years ago
Build Your Own AngularJS <a href="https:&#x2F;&#x2F;teropa.info&#x2F;build-your-own-angular&#x2F;" rel="nofollow">https:&#x2F;&#x2F;teropa.info&#x2F;build-your-own-angular&#x2F;</a>
评论 #13662593 未加载
评论 #13661632 未加载
评论 #13664589 未加载
评论 #13661016 未加载
joncalhounover 8 years ago
Web Development with Go (see <a href="https:&#x2F;&#x2F;www.usegolang.com" rel="nofollow">https:&#x2F;&#x2F;www.usegolang.com</a>) is based on starting with pretty minimal Go and web development experience and walking you through the process of building a complete web application.<p>I find this approach works well because you don&#x27;t have to ask &quot;why did he make that design decision&quot; but instead I intentionally make common mistakes a beginner would make, wait until they become an issue, and then I demonstrate how we can fix that issue. As a result you really get to understand not only how to create a web app in Go but also why developers tend to follow different design patterns.<p>I said this in another comment, but it is based on Michael Hartl&#x27;s Rails Tutorial. I think showing someone how to go from nothing to a full app is a great way to help them get into web development without the frustration that comes from piecing together blog posts&#x2F;docs&#x2F;trial&amp;error.<p>If you are interested in Go I&#x27;d love to get your feedback :) and if it isn&#x27;t obvious, I am the author of the book.
lugus35over 8 years ago
Practical Common Lisp <a href="http:&#x2F;&#x2F;www.gigamonkeys.com&#x2F;book&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.gigamonkeys.com&#x2F;book&#x2F;</a><p>Filter spam, Parse binary files, catalog MP3s, stream MP3s over a network, and provide a Web interface for the MP3 catalog and server.
yatiover 8 years ago
&quot;Let&#x27;s Build a Compiler&quot;[1] by Jack Crenshaw is fantastic. It uses Pascal as the implementation language, but I used Rust, and while the book targets 68000 assembly, I compiled things to x86_64 assembly.<p>[1]: <a href="http:&#x2F;&#x2F;compilers.iecc.com&#x2F;crenshaw&#x2F;" rel="nofollow">http:&#x2F;&#x2F;compilers.iecc.com&#x2F;crenshaw&#x2F;</a>
dyukquover 8 years ago
For HTML &amp; CSS: <a href="http:&#x2F;&#x2F;learn.shayhowe.com&#x2F;html-css&#x2F;" rel="nofollow">http:&#x2F;&#x2F;learn.shayhowe.com&#x2F;html-css&#x2F;</a> [0] This is the project you build as you learn: <a href="http:&#x2F;&#x2F;learn.shayhowe.com&#x2F;practice&#x2F;organizing-data-with-tables&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;learn.shayhowe.com&#x2F;practice&#x2F;organizing-data-with-tabl...</a><p>[0] There&#x27;s an e-book version too. Scroll the page down just a little bit.
评论 #13672599 未加载
jbernardo95over 8 years ago
Elixir in Action by Saša Jurić<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Elixir-Action-scaron-Juri-cacute&#x2F;dp&#x2F;161729201X" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Elixir-Action-scaron-Juri-cacute&#x2F;dp&#x2F;1...</a>
quantumhobbitover 8 years ago
<a href="http:&#x2F;&#x2F;www.nand2tetris.org" rel="nofollow">http:&#x2F;&#x2F;www.nand2tetris.org</a><p>There is an associated book. Great intro to the fundamentals of computer engineering.
cpcatover 8 years ago
Ray Wenderlich&#x27;s online tutorials on How to Make a Game Like Candy Crush <a href="https:&#x2F;&#x2F;www.raywenderlich.com&#x2F;66877&#x2F;how-to-make-a-game-like-candy-crush-part-1" rel="nofollow">https:&#x2F;&#x2F;www.raywenderlich.com&#x2F;66877&#x2F;how-to-make-a-game-like-...</a>
khedoros1over 8 years ago
I bought this a year or two ago: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Tricks-Programming-Gurus-Advanced-Graphics-Rasterization&#x2F;dp&#x2F;0672318350" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Tricks-Programming-Gurus-Advanced-Gra...</a><p>It&#x27;s basically a set of tutorials that lead you through the steps of building a software 3D graphics rasterizer. It covers rasterizing, lighting, shading, shadows, textures, etc, and the math behind each set of concepts. It&#x27;s built on late-90s C and DirectX, but the capabilities used are covered by just about any game programming library. The author builds kind of an abstraction library on top of the DirectX code, and that&#x27;s pretty easy to rewrite in whichever language and toolset you&#x27;re comfortable with.
parisidauover 8 years ago
My book &quot;Learning Swift&quot; does this.<p>Swift 2 version: <a href="http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920045946.do" rel="nofollow">http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920045946.do</a><p>Swift 3 version: <a href="http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920053989.do" rel="nofollow">http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920053989.do</a><p>We build a note-taking app for iOS, macOS, and watchOS.
arenaninjaover 8 years ago
Not exactly a book but gitlet.js: <a href="http:&#x2F;&#x2F;gitlet.maryrosecook.com&#x2F;docs&#x2F;gitlet.html" rel="nofollow">http:&#x2F;&#x2F;gitlet.maryrosecook.com&#x2F;docs&#x2F;gitlet.html</a><p>About how to build a subset of git&#x27;s functionality in NodeJS
评论 #13661010 未加载
sobinatorover 8 years ago
&#x27;The Art of Monitoring&#x27; by James Turnbull (<a href="https:&#x2F;&#x2F;www.artofmonitoring.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.artofmonitoring.com&#x2F;</a>)
innocentoldguyover 8 years ago
I liked Take Off With Elixir, by Rob Conery. It walks you through writing a program for a fictional aerospace start-up. It also comes with a 3-hour companion video, which is good too.<p><a href="https:&#x2F;&#x2F;bigmachine.io&#x2F;products&#x2F;take-off-with-elixir&#x2F;" rel="nofollow">https:&#x2F;&#x2F;bigmachine.io&#x2F;products&#x2F;take-off-with-elixir&#x2F;</a>
kevinclancyover 8 years ago
Modern Compiler Implementation in ML by Andrew Appel
评论 #13661044 未加载
eli_gottliebover 8 years ago
For learning Haskell: <a href="https:&#x2F;&#x2F;en.wikibooks.org&#x2F;wiki&#x2F;Write_Yourself_a_Scheme_in_48_Hours" rel="nofollow">https:&#x2F;&#x2F;en.wikibooks.org&#x2F;wiki&#x2F;Write_Yourself_a_Scheme_in_48_...</a>
lanekellyover 8 years ago
I used the older React+Webpack version of <a href="https:&#x2F;&#x2F;survivejs.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;survivejs.com&#x2F;</a> to learn React recently. You build a small Kanban&#x2F;Trello webapp.
wazooxover 8 years ago
Bill Hails implements Scheme in Perl, maybe interesting to compare the two books: <a href="http:&#x2F;&#x2F;www.billhails.net&#x2F;Book&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.billhails.net&#x2F;Book&#x2F;</a>
评论 #13661966 未加载
blairbeckwithover 8 years ago
Michael Hartl&#x27;s Rails Tutorial (<a href="https:&#x2F;&#x2F;www.railstutorial.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.railstutorial.org&#x2F;</a>) leads you through Ruby, Rails, Git, and deployment to Heroku through two very small projects and one related larger project that takes up the bulk of the book.
nickhalfasleepover 8 years ago
<a href="http:&#x2F;&#x2F;www.helios32.com&#x2F;resources.htm" rel="nofollow">http:&#x2F;&#x2F;www.helios32.com&#x2F;resources.htm</a><p>Radiosity: A Programmer&#x27;s Perspective by Ian Ashdown is a full numerically accurate hemicube radiative transfer engine from start to finish. Now a free pdf.
deletiaover 8 years ago
One of my favourites: <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;books&#x2F;little-schemer" rel="nofollow">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;books&#x2F;little-schemer</a>
评论 #13662114 未加载
dugmartinover 8 years ago
I always thought &quot;Building X in Y&quot; would be a great brand for a series of books. There was a dBase III book in the mid 80&#x27;s that I loved that took you though building an invoicing system for a fictional company. It wasn&#x27;t just about learning the language&#x2F;runtime but rather took you though the author&#x27;s thought process and outlined the pros and cons of different approaches and db schemas.
dom96over 8 years ago
My Nim book[1] is sort of like this. Instead of working on a single project, most chapters have a little project (for example a chat CLI app or a Twitter-like website) which teaches you different things about Nim.<p>1 - <a href="https:&#x2F;&#x2F;manning.com&#x2F;books&#x2F;nim-in-action?a_aid=niminaction&amp;a_bid=78a27e81" rel="nofollow">https:&#x2F;&#x2F;manning.com&#x2F;books&#x2F;nim-in-action?a_aid=niminaction&amp;a_...</a>
评论 #13665055 未加载
drharbyover 8 years ago
C++ design Patterns and derivatives pricing by Mark Joshi<p>He kinda takes a &quot;Defense of Duffers Drift&quot; approach towards designing iterative versions of the same project, slowly introducing concepts such as factories and singleton.
sigmundritzover 8 years ago
Richard Stevens&#x27; UNIX Network Programming books: <a href="http:&#x2F;&#x2F;amzn.to&#x2F;2lmH8hy" rel="nofollow">http:&#x2F;&#x2F;amzn.to&#x2F;2lmH8hy</a> The 1st volume at least is going through a simple TCP&#x2F;IP telnet server and enhancing it with features as you go (single connection, multiple connection, forking, multi-threaded server), etc.
mavelikaraover 8 years ago
Jekor&#x27;s Haskell tutorial videos: Redo implementation in Haskell.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jekor&#x2F;redo" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jekor&#x2F;redo</a>
评论 #13666024 未加载
ChrisKingWebDevover 8 years ago
A bit late to the party, but I&#x27;ve been making by way though &quot;Developing Games With Ruby&quot; (<a href="https:&#x2F;&#x2F;leanpub.com&#x2F;developing-games-with-ruby&#x2F;read" rel="nofollow">https:&#x2F;&#x2F;leanpub.com&#x2F;developing-games-with-ruby&#x2F;read</a>)<p>It&#x27;s really good and the game is actually pretty fun.
dragthorover 8 years ago
Big Nerd Ranch books - at least the Android one<p><a href="https:&#x2F;&#x2F;www.bignerdranch.com&#x2F;books&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.bignerdranch.com&#x2F;books&#x2F;</a>
评论 #13671582 未加载
vivekdover 8 years ago
Automate the boring stuff - Al Sweigart.<p>This book teaches you python through a series of example projects. You can get it online or order a physical copy and help support the author here:<p><a href="https:&#x2F;&#x2F;automatetheboringstuff.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;automatetheboringstuff.com&#x2F;</a>
Corvusover 8 years ago
One of the most memorable experiences of my life was building a small 2D RPG named Dungeon Of Despair from the book &quot;Game Scripting Mastery&quot; <a href="https:&#x2F;&#x2F;books.google.ca&#x2F;books&#x2F;about&#x2F;Game_Scripting_Mastery.html?id=q5jdl_LLreMC" rel="nofollow">https:&#x2F;&#x2F;books.google.ca&#x2F;books&#x2F;about&#x2F;Game_Scripting_Mastery.h...</a> by Alex Varanese.<p>The game teaches you to build a simple game for Win32 from scratch. The graphics would be pretty dated now, but the scripting system for enemy AI and quests is a Turing-complete programming language. I learned more from that book than from my compiler course in university.
andrew2cover 8 years ago
I have made a curated list for this post, feel free to contribute. <a href="https:&#x2F;&#x2F;github.com&#x2F;AlgoryL&#x2F;Projects-from-Scratch" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;AlgoryL&#x2F;Projects-from-Scratch</a>
评论 #13680163 未加载
vmware513over 8 years ago
For learning JavaScript and Ember.js: <a href="http:&#x2F;&#x2F;yoember.com" rel="nofollow">http:&#x2F;&#x2F;yoember.com</a>
yishengover 8 years ago
I really liked The Elements of Computing Systems (nand2tetris). The reader gets to build a computer from nand gates up.
msangiover 8 years ago
Crafting interpreters. It&#x27;s still a work in progress, but the chapters published so far are very good.<p><a href="http:&#x2F;&#x2F;www.craftinginterpreters.com" rel="nofollow">http:&#x2F;&#x2F;www.craftinginterpreters.com</a>
wycover 8 years ago
I remember The Unix Programming Environment by Kernighan and Pike as an excellent introduction to Unix shells and general Unix programming. IIRC, throughout the chapters, it has you build some kind of interactive command line music organizer, which really demonstrates how much you can get done with a few simple shell scripts.<p>Amazon link:<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Unix-Programming-Environment-Prentice-Hall-Software&#x2F;dp&#x2F;013937681X" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Unix-Programming-Environment-Prentice...</a>
cestithover 8 years ago
&quot;The Art of the Metaobject Protocol&quot; leads you from a very thin layer on top of CLOS to a very rich layer of objects-oriented object implementations. It&#x27;s a classic.
评论 #13665147 未加载
rokobover 8 years ago
Erlang and OTP in Action <a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;erlang-and-otp-in-action" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;erlang-and-otp-in-action</a> You build an application with increasing complexity. There are some other applications that are built along the way to demonstrate some ideas in a smaller scope, but the overall structure of the book is designed around making one application better as you learn more about OTP.
algebraicgeoover 8 years ago
Are there such books for algorithms?
jenkstomover 8 years ago
Programming from the Ground Up teaches x86 assembler from first principles. All on a free OS (Linux using asm). There is a free version available online, but if you want to support the author you can buy it from amazon. <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Programming-Ground-Up-Jonathan-Bartlett&#x2F;dp&#x2F;0975283847" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Programming-Ground-Up-Jonathan-Bartle...</a>
sitkackover 8 years ago
All the compiler construction and Scheme books from Nils Holm [0]<p><a href="http:&#x2F;&#x2F;t3x.org&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;t3x.org&#x2F;index.html</a>
pjungwirover 8 years ago
<i>Code</i> by Charles Petzold takes this approach to explaining how a computer works. By the end he has a working system with CPU, RAM, inputs, and outputs.
grimoaldover 8 years ago
OK, you don&#x27;t build a complete project, but it&#x27;s a similar approach:<p>Think Stats: Probability and Statistics for Programmers <a href="http:&#x2F;&#x2F;greenteapress.com&#x2F;thinkstats&#x2F;" rel="nofollow">http:&#x2F;&#x2F;greenteapress.com&#x2F;thinkstats&#x2F;</a><p>Here, you learn statistics by implementing statistics functions in Python along the way and use them to solve the questions in the book.
nedwinover 8 years ago
KLF&#x27;s The Manual is a guide to producing a number one hit.
评论 #13661377 未加载
laserover 8 years ago
This was on HN recently, but I really enjoyed Robin Wieruch&#x27;s react tutorial in which you build a HN like app: <a href="https:&#x2F;&#x2F;github.com&#x2F;rwieruch&#x2F;the-road-to-learn-react" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rwieruch&#x2F;the-road-to-learn-react</a>
evilc0over 8 years ago
Wondering why no one mentioned, LFS :) It&#x27;s not directly about building something in a concrete programming language but it&#x27;s about build your own linux system. <a href="http:&#x2F;&#x2F;www.linuxfromscratch.org" rel="nofollow">http:&#x2F;&#x2F;www.linuxfromscratch.org</a>
drproktorover 8 years ago
MEAN Web Development - great book, really nice to kick start with the MEAN stack.<p><a href="https:&#x2F;&#x2F;www.amazon.de&#x2F;MEAN-Web-Development-Amos-Haviv&#x2F;dp&#x2F;1783983280" rel="nofollow">https:&#x2F;&#x2F;www.amazon.de&#x2F;MEAN-Web-Development-Amos-Haviv&#x2F;dp&#x2F;178...</a>
distantsoundsover 8 years ago
django&#x27;s tutorial has you creating a polling website: <a href="https:&#x2F;&#x2F;docs.djangoproject.com&#x2F;en&#x2F;1.10&#x2F;intro&#x2F;tutorial01&#x2F;" rel="nofollow">https:&#x2F;&#x2F;docs.djangoproject.com&#x2F;en&#x2F;1.10&#x2F;intro&#x2F;tutorial01&#x2F;</a>
ryan-allenover 8 years ago
<a href="http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920028093.do" rel="nofollow">http:&#x2F;&#x2F;shop.oreilly.com&#x2F;product&#x2F;0636920028093.do</a><p>Build your own legit Analog Synthesizer!!! Not software but it is an end to end project. Good little book.
waterfowlover 8 years ago
Discover Meteor is like this, involves building a reddit clone type thing called Microscope(a reduced version of an actual product Telescope).<p><a href="https:&#x2F;&#x2F;www.discovermeteor.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.discovermeteor.com&#x2F;</a>
qz_over 8 years ago
I loved the MINIX book: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Operating-Systems-Design-Implementation-3rd&#x2F;dp&#x2F;0131429388" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Operating-Systems-Design-Implementati...</a>
matthiaswhover 8 years ago
Coincidentally I&#x27;m about halfway through writing a long Vue.js tutorial series where I build one project in this manner. Would love to hear more ideas about what people look for with this type of book.
mynameisbahaaabout 8 years ago
1)- Sudoku Programming with C : <a href="http:&#x2F;&#x2F;www.apress.com&#x2F;gp&#x2F;book&#x2F;9781484209967" rel="nofollow">http:&#x2F;&#x2F;www.apress.com&#x2F;gp&#x2F;book&#x2F;9781484209967</a> 2)- Programming Sudoku : <a href="http:&#x2F;&#x2F;www.apress.com&#x2F;gp&#x2F;book&#x2F;9781590596623" rel="nofollow">http:&#x2F;&#x2F;www.apress.com&#x2F;gp&#x2F;book&#x2F;9781590596623</a> I haven&#x27;t read any of them though. They are on my list of &quot;books to read in the future&quot;
jonaldomoover 8 years ago
Anything by Manning that ends with &quot;In Action&quot;. I volunteer to be a technical reviewer if there is a new technology I want to learn (and get a free physical book!)
评论 #13661239 未加载
rb808over 8 years ago
Professional Java for Web Applications. If Java is your thing.
akashaggarwal7over 8 years ago
I believe this is how education systems should be like. You learn about stuff your subject while dealing with a project to do. Makes learning so much fun and better.
myth_drannonover 8 years ago
Implementing Lisp in Python - <a href="http:&#x2F;&#x2F;fogus.me&#x2F;fun&#x2F;lithp&#x2F;" rel="nofollow">http:&#x2F;&#x2F;fogus.me&#x2F;fun&#x2F;lithp&#x2F;</a>
jessedhillonover 8 years ago
<i>3D Game Engine Architecture</i> by David H. Eberly:<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Game-Engine-Architecture-Engineering-Applications&#x2F;dp&#x2F;012229064X" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Game-Engine-Architecture-Engineering-...</a><p>Not only is this a fantastic introduction to the math and the data structures involved in computer graphics, the book also walks you through the construction of an in-software renderer!
TeMPOraLover 8 years ago
Maybe not best in the &quot;build a project&quot; genre, but about (Common) Lisp, you have Land of Lisp - in which you build several small games and sort of reuse some code between chapters, and Let Over Lambda, which does build its further code on top of earlier code, although it&#x27;s more of an exercise in bending Lisp to your will than a well-defined project. I recommend both books; I found them very good.
cestithover 8 years ago
I already answered about &quot;The Art of the Metaobject Protocol&quot; but then two more language-implementation-centric books came to mind today.<p>1. &quot;Writing Compilers and Interpreters&quot; by Ronald Mak 2. &quot;Building an Optimizing Compiler&quot; by Bob Morgan<p>Morgan&#x27;s book is well sought after and out of print. It&#x27;s one of the few books in the field for which the print edition prices keep climbing.
bcoughlanover 8 years ago
Not a book, but I loved this series about building a Pascal interpreter (currently 12 parts): <a href="https:&#x2F;&#x2F;ruslanspivak.com&#x2F;lsbasi-part1&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ruslanspivak.com&#x2F;lsbasi-part1&#x2F;</a><p>It was always on my bucket list to learn to write programming languages, but it&#x27;s very daunting - this made it easy to learn in bite-sized chunks.
评论 #13663674 未加载
paullthover 8 years ago
Ben Rady&#x27;s Serverless Single Page Apps is one I&#x27;ve enjoyed recently, maybe not something I&#x27;ll use at work anytime soon though.<p><a href="https:&#x2F;&#x2F;pragprog.com&#x2F;book&#x2F;brapps&#x2F;serverless-single-page-apps" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;book&#x2F;brapps&#x2F;serverless-single-page-apps</a>
sfifsover 8 years ago
I learned C++ back in the 90s using a book called &quot;Type and Learn C++&quot; - it involved building a text editor.
评论 #13663576 未加载
contingenciesover 8 years ago
More hardware oriented I would suggest some of the new Raspberry Pi or Arduino based electronics kits, which are similar to books in that they provide a prescriptive path in to comprehending new areas through the satisfying and hand-on exploration of a defined project. Programming is involved too.
vvoyerover 8 years ago
PHP and MySQL by example: you build an IMDB like website in a very progressive and beginner manner.<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;PHP-MySQL-Example-Ellie-Quigley&#x2F;dp&#x2F;0131875086" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;PHP-MySQL-Example-Ellie-Quigley&#x2F;dp&#x2F;01...</a>
dump121over 8 years ago
Any such book for distributed systems?
评论 #13662123 未加载
peterarmstrongover 8 years ago
I wrote Flexible Rails back in 2007 that did this: <a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;flexible-rails" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;flexible-rails</a><p>I wouldn&#x27;t read the book now though, since Flex, but the approach worked well.
__striskover 8 years ago
I remember liking <a href="http:&#x2F;&#x2F;www.tangowithdjango.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.tangowithdjango.com&#x2F;</a> .<p>It goes over building a link aggregating service using Django.<p>However, I also remember it being free. Doesn&#x27;t seem to be an option with the most recent release.
评论 #13665520 未加载
hariisover 8 years ago
Anything for mobile app development?
akaruover 8 years ago
A mostly dead technology, but does teach some general programming in the way you&#x27;re asking: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;d&#x2F;0596805632" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;d&#x2F;0596805632</a>
tmalyover 8 years ago
I had an interface electronics course back in the day that was like this.<p>Bandit Algorithms book is sort of like this. starts out simple and touches different methods
analog31over 8 years ago
I&#x27;ve just gotten started working my way through &quot;build your own general relativity.&quot; ;-)
kornakiewiczover 8 years ago
Missing Clojure example here. &quot;Clojure for the brave and true&quot; was a little disappointing.
评论 #13663028 未加载
评论 #13665159 未加载
almogover 8 years ago
Any recommended book in this category about Postgres or Elasticsearch?
评论 #13670337 未加载
shinta42over 8 years ago
i love this topic, i hope to learn much soon
chris_stover 8 years ago
Frankenstein?
FDominicusover 8 years ago
Linux Application Development e.g
doucheover 8 years ago
Two decent ones for game development:<p><a href="https:&#x2F;&#x2F;howtomakeanrpg.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;howtomakeanrpg.com&#x2F;</a><p>Walks through building a JRPG-style game with Lua. Pretty impressive for the price, especially with all the royalty-free assets that are included.<p><a href="https:&#x2F;&#x2F;books.google.com&#x2F;books&#x2F;about&#x2F;Programming_an_RTS_Game_with_Direct3D.html?id=jVkmAQAACAAJ" rel="nofollow">https:&#x2F;&#x2F;books.google.com&#x2F;books&#x2F;about&#x2F;Programming_an_RTS_Game...</a><p>A little dated now, (although DirectX 9 isn&#x27;t quite dead yet), but this one has some pretty interesting topics. Good chapter on procedural terrain generation, some basic pathfinding, minimaps and fog-of-war.
评论 #13669145 未加载
评论 #13662066 未加载
diminotenover 8 years ago
I dunno why, but I was kind of hoping there would be non-CS answers for this too, like how to woodwork, or like tying flies.
评论 #13661545 未加载
评论 #13669137 未加载
评论 #13662099 未加载
评论 #13663401 未加载
netherover 8 years ago
Accelerated C++ involves working on a program to analyze student grades. The book itself is excellent, but the overarching project is very dry.
评论 #13662024 未加载
coleiferover 8 years ago
I co-wrote a book on Flask that walks through the building and progressive refinement of a blog: <a href="https:&#x2F;&#x2F;www.packtpub.com&#x2F;web-development&#x2F;learning-flask-framework" rel="nofollow">https:&#x2F;&#x2F;www.packtpub.com&#x2F;web-development&#x2F;learning-flask-fram...</a>