22 ms·
Ask HN: What are some books where the reader learns by building projects?
A continuation of https://news.ycombinator.com/item?id=13660086 which has been incredibly useful to me.
I recently finished this phenomenal book called "Building Enterprise JavaScript Applications":
https://www.packtpub.com/web-development/building-enterprise-javascript-applications
Which takes the reader from zero to building a non-trivial production fullstack application with JavaScript. I also recommend "Building Git". The title is self-explanatory:
https://shop.jcoglan.com/building-git/
Other resources:
https://github.com/AlgoryL/Projects-from-Scratch
https://github.com/tuvtran/project-based-learning
- jefffoster 7y agoI found Paradigms of AI Programming (https://en.wikipedia.org/wiki/Paradigms_of_AI_Programming https://en.wikipedia.org/wiki/Paradigms_of_AI_Programming) an amazing book to work through. It takes you through implementing some classic AI examples (such as Eliza) and teaches you how to write code in a data-first style through Lisp. I worked through the whole thing building it in Clojure and learnt loads (not just about AI, but about writing readable code in general). I can't recommend it highly enough!
- jhbadger 7y agoYes, it really teaches both good Lisp style and the history of AI.
- troughway 7y agoFrank Luna's Introduction to 3D Game Programming with DirectX 11 is an underrated gem in the genre. I was surprised when I saw Microsoft recently recommending it to people to learn D3D11 before they jump into D3D12. It doesn't actually cover game programming per-se, it's more of an introduction to 3d graphics programming book, but each chapter builds upon the last and there are assignments at the end of each chapter that allow you to play around with concepts that he walks you through so you can build a good understanding. I've seen other books that are often recommended, and they're great by themselves, and they are nowhere near as utilitarian as this book. I cannot recommend them to beginners even if they're marketed as such. By the end of it, you have a very good handle on a variety of concepts that you can readily apply towards, say, building a modern-day PBR pipeline. It was my first exposure to spaced repetition learning, before I knew such a thing existed.
- misiti3780 7y agoI have never read it but how is SRS incorporated into it?
- troughway 7y agoIt took me awhile to get through the whole book, so the concepts that were covered by chapters I had read weeks or longer ago would every so often make a come-back in the proceeding chapters. The timing and repetition of it all reinforced and helped me in learning it for years to come. There are a lot of "good" books on graphics that jump you from one topic to another but never really integrate what you learn or ask you to take something covered earlier, but now combine it with a newly-learned concept to create something novel (novel in the eyes of a beginner). We need more books that integrate, because a lot of very recent (as of SIGGRAPH 2019) graphics development is about taking a set of concepts you already know, and exploiting them in different ways.
- thrower123 7y agoThis is a great series of books (he has essentially the same book for early DX9, DX9 with shaders, and DX12). Particularly if you want to learn DX12, going through the DX11 book first and then the DX12 book is great because you can really see where things are different. I wish that there was an equivalent for learning OpenGL or Vulkan.
- protocolture 7y agoI think I read his D3D8 book.
- cedricium 7y agoThere are some really cool projects in the "500 Lines or Less"[0] book which is a part of the "The Architecture of Open Source Applications" series. [0]: http://aosabook.org/en/index.html http://aosabook.org/en/index.html
- faizshah 7y agoThis is a really cool recommendation, thanks! Very inspirational for side projects. It would be cool to see something like this for data science projects. Like a recommender system in 500 lines or less.
- jhbadger 7y agoI liked "Deep Learning and the Game of Go" (by Max Pumperla and Kevin Ferguson). You actually create an AI Go player, one which may not be quite on the level of AlphaGo, but one that is probably better than any traditional min-max based player that was the state of the art until recently.
- Buttons840 7y agoI skimmed that book. I already knew some machine learning and AI techniques, so it was a bit to verbose for me, but was a good book. I never did get a working Go AI though. I'm a Go beginner and never created an AI that was close to challenging to me. I didn't follow the book exactly though, I did my own thing loosely guided by the book, so my failures do not necessarily reflect poorly on the book. Did you ever get a working Go AI?
- steve_g 7y agoElements of Computing Systems by Nisan and Schocken has you 'build' a computer from basic logic gates to CPU/Memory to assembler, VM, etc. all the way to a running program. https://www.nand2tetris.org/ https://www.nand2tetris.org/
- Delfino 7y agoI recently read Code by Charles Petzold and it quickly become one of my favorite books, this seems like a great follow-up
- f00zz 7y agoThat book is amazing. It inspired me to look for more resources on computer architecture and Verilog, and after a while I had a very simple but functional CPU in Verilog that can compute prime numbers [https://github.com/f00zz/rei https://github.com/f00zz/rei].
- martinesko36 7y agoSecond this, great book.
- marklar423 7y agoThis book was amazing since it had you starting at the transistor level, building gates, components, the entire CPU/RAM, ASM, and finally building a mini OS to run on the entire platform. Could not recommend enough.
- sleazy_b 7y agoGlad to see this here. Really took away a lot of the "magic" that intimidated be about the lower level operations of computers.
- jsonbourne 7y agoI was here just to add this book if not added.
- tomcatfish 7y agoThe online course that I took made a college class on logic gate echelon stuff an absolute cakewalk to me, and fully familiarized me with a lot of the concepts in "the hard way" (doing it), so that I was ready to learn the tips and tricks later. I cannot second this recommendation enough.
- middlechild9 7y agoDefinitely the https://www.railstutorial.org/ https://www.railstutorial.org/ to learn Rails, Ruby, and web development.
- deleted 7y ago[deleted]
- ifoundthetao 7y agoBlack Hat Go -- Excellent book!
- marinhero 7y agoI'm interested in getting this book. What are the things you liked about it?
- ifoundthetao 7y agoIt's pretty practical so far. Right now I'm just finishing up chapter 4 (HTTP Servers, Routing, and Middleware), so I haven't completed all of it. But as it stands, a lot of what you go through, you reasonably expect you may be able to use on an actual pen test. The real power though, is when you're building out your own tooling with these things. You just set up a framework in the book, but this is all easily extendable to whatever you want. I'm not the best at Go, so it's a useful "nightly devotion" of time to spend working through it for an hour or so. I've also been going through Writing an Interpreter in Go, and have picked up the companion to that Writing a Compiler in Go. So far, that's pretty good too, but I'm focusing on Black Hat Go first, to complete it.
- marinhero 7y agoThank you! I read a little bit more about it and I think I'll give it a Go ;)
- eachro 7y agoRay Tracing in a Weekend(https://raytracing.github.io/books/RayTracingInOneWeekend.html https://raytracing.github.io/books/RayTracingInOneWeekend.ht...) is an incredible guide to work through to write a basic functioning ray tracer.
- Insanity 7y agoWas going to mention this myself. Can recommend this book, it's great fun and you can indeed get through it in a weekend.
- ethangarofolo 7y agoI don't know if linking to one's own work is considered gauche here, but since it fits with the original question, my own book Practical Microservices fits this description (https://pragprog.com/book/egmicro/practical-microservices https://pragprog.com/book/egmicro/practical-microservices). It takes the reader from inception of a projection to a functioning system, explaining the basics of microservices, event sourcing, and CQRS along the way. Each chapter builds on the previous ones.
- rcfw 7y agoEmbedded Systems: Introduction to Arm® Cortex™-M Microcontrollers It's a pretty good introduction to embedded programming, with several projects included. Valvano's course at University of Texas is also available as a MOOC.
- rofo1 7y agoI can recommend https://www.railstutorial.org/book https://www.railstutorial.org/book for Ruby on Rails. It's practical and concise and there's not a lot of unnecessary fluff.
- brainlessdev 7y agoStructure and Interpretation of Computer Programs, where the reader implements a Lisp
- ggambetta 7y agoMy own free, open-source Computer Graphics book guides you through building both a raytracer and a rasterizer: https://gabrielgambetta.com/computer-graphics-from-scratch https://gabrielgambetta.com/computer-graphics-from-scratch Soon to become a real book published by No Starch Press!
- carapace 7y agoNot quite what you're talking about but the best book on car mechanics I ever read... It was red, and textbook-sized, hardcover. Lots of drawings. It literally started with an explosion in a can, and then progressively enhanced that idea step-by-step: add a lid to the can to capture the energy, add a lever to keep the can lid from flying away, and then attach the lever to a wheel so that it returns the lid to the top of the can for another explosion, add walls to guide the lid, ta-da! Piston. It goes on like that, adding each piece of the puzzle in a logical way, until you have a mental model of an internal combustion engine. You definitely feel like you could build one from scratch (if you had the metallurgy skill.)
- someguy101010 7y agoBoy if you could find the name of that book I'd really appreciate it
- tnel77 7y agoI would second this.
- zebrafish 7y agoyou might be interested in howacarworks.com. I stumbled across these videos on youtube earlier this year when I was researching the topic. I was unwilling to pay because it was more for my own curiosity than an actual need to learn but it seemed pretty thorough.
- someguy101010 7y agoThanks for the link!
- dmalvarado 7y agoMan, that site has come a LONG way in the past couple of years. I haven't seen it since probably 2015. Back then, the diagrams were super useful, and the content easily understandable. Now it looks like a Mechanics University!
- adamfeldman 7y ago"Deep Learning for Programmers: Interactive Programming for Artificial Intelligence" https://aiprobook.com/deep-learning-for-programmers/ https://aiprobook.com/deep-learning-for-programmers/
- xrd 7y agoMy book from O'Reilly ("Building Tools with GitHub") builds a variety of applications using the GitHub API in five different languages (Ruby, JavaScript, Python, C#, Java on Android). All the chapters build a complete project (app on Android for writing blogs with Jekyll for example). You can buy it or read it free online (thanks again to O'Reilly for allowing us to release it under creative commons): https://buildingtoolswithgithub.teddyhyde.io/ https://buildingtoolswithgithub.teddyhyde.io/ No prior experience with the languages are required, so it is good for a beginner wanting to dip their toes into that language and/or facet of the API.
- tbrock 7y agoA Curios Moon - a data science mystery that teaches you PostgreSQL by working on projects that use real nasa data sets in a fictional setting (your role as a data science intern at red:4) https://bigmachine.io/products/a-curious-moon/ https://bigmachine.io/products/a-curious-moon/
- pkalinowski 7y agoThis is really nice book. It assumes you are a developer/good with computers, though, so some of the things like dev environment setup are ommited
- tbrock 7y agoAs it should be; I dislike when books are dogmatic a out setup. Those pages are usually out of date at by the time the book is in print.
- culopatin 7y agoDoes it assume I know SQL though?
- pkalinowski 7y agoNo, you can start with absolutely zero knowledge, but it has different approach than usual courses. You don't start with simple selects, but importing data from files and normalizing it. You're intern at aerospace startup after all. I'd say it's _refreshing_ compared to prevalent approach to teaching SQL
- 8589934591 7y agoI wonder how this compares to another suggestion here https://www.masterywithsql.com/ https://www.masterywithsql.com/
- travisjeffery 7y agoI'm currently writing a book for PragProg called Building Distributed Services with Go (though it mostly applies to other languages too) that's walks you through building a distributed database from scratch. You can sign up on this mailing list to know when it's available: https://travisjeffery.us4.list-manage.com/subscribe?u=1e3ff7.. https://travisjeffery.us4.list-manage.com/subscribe?u=1e3ff7....
- CubsFan1060 7y agoThe link doesn't quite work there. But I'd be interested in signing up.
- dkmar 7y agohttps://travisjeffery.us4.list-manage.com/subscribe?u=1e3ff7d7791b26a8f60b9f16c&id=653935be08 https://travisjeffery.us4.list-manage.com/subscribe?u=1e3ff7... via his comment history :)
- travisjeffery 7y agoThanks!
- CubsFan1060 7y agoAny idea what your timeline looks like? I know a lot of PragProg books do beta books occasionally.
- travisjeffery 7y agoYeah I'm discussing with my editor now about when to put out the beta it'll be out either after we finish editing the chapter I just finished writing or the next one. So pretty soon. I hope to have the whole book finished by July but that's a bit more TBD up to how soon I finish writing the last few chapters.
- clmul 7y agoPhysically Based Rendering is basically a complete guide to building a modern physically based rendering engine (it even won an Academy Award) https://pbrt.org/ https://pbrt.org/
- devrob 7y agoHope it’s cool to link our own stuff ? I’m writing one right now on building a mini trading bot platform. It would be great to hear what you like/dislike in these types of books. I don’t have any marketing website up at the moment but I created this mailing list if you’re interested in following the developments http://bit.ly/tradingbotplatformbook http://bit.ly/tradingbotplatformbook (Link redirects to https://cdn.forms-content.sg-form.com/f306b813-475c-11ea-9be4-6a1f225bfc93 https://cdn.forms-content.sg-form.com/f306b813-475c-11ea-9be...)
- djhworld 7y agoI've been making my way through "Writing an Intepreter in Go" and "Writing a compiler in Go" https://interpreterbook.com/ https://interpreterbook.com/ The Go stuff is really just a means to an end, the real value comes from the practical learnings of how to build a functioning interpreter and compiler (and virtual machine!) for a programming language the author made up called Monkey. It's not a book full of theory but it lays some nice foundations that might help you understand the theory better :)
- arawde 7y agoOn a smiliar note, but with Java and C, "Crafting Interpreters" - https://craftinginterpreters.com/ https://craftinginterpreters.com/
- Cthulhu_ 7y agoOn a similar note, Go Programming Blueprints, which just takes you right into practical affairs - project organization, template loading / rendering, a little bit of testing, REST apis, oAuth, image handling (via oauth, gravatar and file upload), databases, CLI's, external APIs, App Engine, microservices, gRPC and Docker. The main gripe I've had with it so far is that the bit of HTML / JS that is in there seems rather dated, but on the other hand, it's good old jquery from CDNs instead of bothering the reader with setting up nodejs, webpack and all that. I really should kick myself up the arse and go beyond chapter 3, I'm doing Go in a real project now.
- hartzell 7y agoGo Programming Blueprints is from 2015, have you had any issues with it feeling out of date?
- truncate 7y agoOn similar topic, back in school we followed "Modern Compiler Implementation using ML" by Andrew Appel. Pretty good book, which teaches good amount of theory, but also has a project where you implement pieces of compiler as you progress through the book. Its fairly challenging, as you will generate assembly (MIPS) instead of just interpreting and apply various optimizations (and register allocation) in the end. Its not exactly from scratch as there is some boilerplate code to keep you focused on concepts. It was quite fun, except I didn't really like working with SML (OCaml would have been nicer IMO, and I think you can choose to use that by finding the ported boilerplate on Github). Also has C and Java versions of this book.
- dilap 7y agoAlready mentioned in the first thread, but "Crafting Interpreters" is excellent. In the first half of the book you write an interpreter for a simple scripting language; in the second half of the book, you write compiler to bytecode + vm. Very clear, fun, excellent writing. Highly recommended. It was also kind of amazing to very quickly have something that ran more quickly than python!
- andrewzah 7y ago* The Rails Tutorial - https://www.railstutorial.org/ https://www.railstutorial.org/ This book (although an older edition) is largely what got me into programming, and taught me so much about Rails. * Programming WebAssembly with Rust - https://pragprog.com/book/khrust/programming-webassembly-with-rust https://pragprog.com/book/khrust/programming-webassembly-wit... This book steps through learning about web assembly, writing it by hand, and then implementing a server for webassembly. I had so many misconceptions about webassembly/wasm before reading this.
- jressey 7y agoWhen anyone says they want to learn to code(tm), I tell them to do that book, front to back, then build a twitter clone with what they've learned. I expect you'd be job ready after doing that. It's how I did it. Nobody has taken my advice in earnest yet.
- jlelonm 7y agoVERY interested in "Building Enterprise JavaScript Applications" I noticed that it was released Sept 2018. That's not too old, but I'm curious if there's a more up-to-date version.
- pknopf 7y agoThat's a funny joke. But really, I'm sure it's outdated. There really shouldn't be any JS books in print...
- jlelonm 7y agoYou think so? I figured maybe 10-20% of it was out of date, but that it was still probably worth buying. Still looking for alternatives, but considering it.
- d4nyll 7y agoHello! Author here! The book introduces a lot of tools (~20) and these tools are bound to get out of date eventually. As a matter of fact, the Babel libraries moved from v6 to v7 during the writing process, and I've had to painstakingly rewrite most of the book to keep itself updated. But the core value of the book is not in the tools themselves, but the concepts and principles of these tools, and how these tools work with each other. And these don't get outdated as easily!
- Shosty123 7y agoI didn't find it too out of date. I used the latest versions of everything and the only thing I had to update myself was the React section for the frontend to use hooks. Packt books regularly go on sale for $5-$10 so you can also wait for one of those.
- jlelonm 7y agoAnd even then, I'm guessing you didn't have to update it, right? The code (classes I'm guessing?) probably still worked. In any case, thanks for the feedback!
- benjaminjosephw 7y agoThorsten Ball's Writing An Interpreter In Go. A fantastically written technical book that walks through writing an interpreter for a simple programming language. It's test driven and a great introduction to the core concepts. Also a good book to get hands on with idiomatic Go code. https://interpreterbook.com/ https://interpreterbook.com/ Thorsten does a great job talking about the concepts in the book in this Go Time podcast: https://changelog.com/gotime/107 https://changelog.com/gotime/107
- Animats 7y ago"A Boy and A Battery" (1942), Yates. There was a whole series, "A Boy and a Motor", "The Boy's Guide to Gas Engines", etc. How to build your own toys if you have few tools but the skills of a master machinist.
- xz0r 7y ago- Automate boring stuff with Python: https://automatetheboringstuff.com/ https://automatetheboringstuff.com/ - Elements of Computing Systems (Building a computer from scratch on a hardware simulator): https://www.nand2tetris.org/book https://www.nand2tetris.org/book
- barbecue_sauce 7y agoDIY Furniture: A Step-by-Step Guide
- ColinWright 7y agoNAND to Tetris? https://www.nand2tetris.org/ https://www.nand2tetris.org/
- gmiller123456 7y ago+1. The projects in this class are extremely well defined and build upon each other. And they have a framework and test cases for validating your work, so you know if you have the right answer before moving on.
- PeterisP 7y agoSome years ago I was learning Ruby on Rails with the book 'Agile Web Development with Rails', that was a project-based book, and it seems to be released with an update for the recent versions of Rails.
- dceddia 7y agoI don’t know if it’s alright to mention my own work, but the book I wrote to teach React is project-based. It’s got a bunch of very small projects and exercises rather than a single massive one, and the later projects review concepts from the earlier ones. It’s called Pure React and it’s digital-only right now (maybe one day I’ll get it printed!) https://daveceddia.com/pure-react/ https://daveceddia.com/pure-react/
- rckoepke 7y agoI'm glad you did! Additionally, is there any reason that I should learn React using Node.js rather than python? I'm not particularly anti-Node.js but I'd rather learn Django simultaneously if it was all the same difference.
- dceddia 7y agoNope! The choice of backend is entirely independent from the choice of front end. React pairs nicely with Django, Rails, Elixir, PHP... anything that can serve static files, basically :) The only time it could start to matter is if you want to do server-side rendering of the React app, in order to serve complete static HTML for the first page load. It can matter for SEO and page load speed. If you need SSR, you need a backend that supports it. It looks like it's at least possible with Django, according to a 30-second google search: https://github.com/nielslerches/django-react-ssr https://github.com/nielslerches/django-react-ssr (ymmv, that repo has 4 stars, so I dunno :)
- tannhauser23 7y agoNot OP but it could be difficult learning two languages and frameworks at the same time. If you really want to use Python for the backend while learning React, perhaps try Flask? It's much simpler than Django, especially for tutorial-type projects.
- ratfaced-guy 7y agoCode: The Hidden Language of Computer Hardware and Software https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319 https://www.amazon.com/Code-Language-Computer-Hardware-Softw... From binary to a full computer
- klondike_klive 7y agoI constantly found myself having to put the book down, puff my cheeks out and say "whoa." It really blew my mind.
- ibeckermayer 7y agoI was inspired to change my career (was originally studying physics) because of this book
- btmills 7y agoThis book made me understand pointers. As I read it, I followed along building all the circuits in Logisim [1] from half-adders to latches to multiplexers all the way up to a full CPU. Many will probably recognize the author, Charles Petzold [2], from his Windows programming books. [1]: http://www.cburch.com/logisim/ http://www.cburch.com/logisim/ [2]: https://en.wikipedia.org/wiki/Charles_Petzold https://en.wikipedia.org/wiki/Charles_Petzold
- e_ameisen 7y agoDisclaimer: This is a book I wrote. Building Machine Learning Powered Applications walks you through building an ML application end-to-end, from product idea to a (simple) deployed version. The free first chapter is available here https://mlpowered.com/book/ https://mlpowered.com/book/ The github is at https://github.com/hundredblocks/ml-powered-applications https://github.com/hundredblocks/ml-powered-applications
- miguelsm 7y agoAdventure in Prolog by Dennis Merritt teaches you different features of Prolog in a step-by-step manner while developing a game.
- AlchemistCamp 7y agoThe Realm of Racket.
- jisaacks 7y agoI wrote "get programming with JavaScript next" the whole "get programming" series ends each unit with a let's build a project to encapsulate all these ideas.
- deleted 7y ago[deleted]
- harrisonjackson 7y agoRay Wenderlich books on mobile development. His site started as basic tutorials for iOS dev and has grown to cover other mobile development, unity, server-side swift and more. It is all project-based. The books are great and the website has a lot of good free content. https://store.raywenderlich.com/ https://store.raywenderlich.com/
- larrywright 7y agoI know you specifically asked for books, but I think these are too good to not mention. Ben Eater has a series of Youtube videos that explores how computers work, starting from first principles, and in the process you build an 8 bit computer (or a 6502 computer in a different series). He actually sells kits of the parts to build it yourself, or you can buy the parts yourself. It’s a deep dive into how computers work, but it’s very approachable. He’s an excellent teacher, and the video format works really well for what he’s teaching - it’s hard to imagine this working as well in book form. Build an 8-bit computer from scratch: https://eater.net/8bit https://eater.net/8bit Build a 6502 computer: https://eater.net/6502 https://eater.net/6502 Let’s build a video card: https://eater.net/vga https://eater.net/vga I’ve watched a bunch of these videos in the past few weeks and I’ve learned so much from them. I can’t recommend them enough.
- Shosty123 7y agoDo you just follow along with the videos or did you buy the kit as well? That 8-bit computer series looks great.
- larrywright 7y agoI haven’t bought the kit yet, but I’m going to in the near future.
- j_m_b 7y agoOne thing I like about Eater is that he keeps mistakes that he's made in the content. He's not some rockstar, just a curious guy whose made a lot of very interesting videos.
- larrywright 7y agoAgreed. Watching him debug something is very enlightening. The whole idea of setting things up so that he can manually trigger clock cycles to step through what the processor is doing was awesome.
- kd5bjo 7y agoThere’s the Gingery book series that starts by describing how to build a charcoal foundry and goes all the way to a complete machine shop. https://en.m.wikipedia.org/wiki/David_J._Gingery https://en.m.wikipedia.org/wiki/David_J._Gingery
- THansenite 7y agoThis series popped into my head as soon as I read what the original poster was looking for. As someone who loves building things, I've read through many Gingery books in the series with aspirations of building many of the machines. That said, the refractory sand for the foundry in the first book is still sitting in a bag in my garage.
- culopatin 7y agoI got the first two from the On sale section. Sounds amazing.
- arjun27 7y agohttps://beautifulracket.com https://beautifulracket.com
- d4nyll 7y agoHi Shosty123, thanks for mentioning my book! Really appreciate the love (:
- thrower123 7y agoSome good ones I don't see yet, which I like because they very much follow the organic path you might follow doing things incrementally, rather than presenting everything full-blown. How to Make an RPG - Build a retro-style JRPG from scratch https://howtomakeanrpg.com/ https://howtomakeanrpg.com/ Mazes for Programmers: Code Your Own Twisty Little Passages by Jamis Buck - covers a whole gamut of different maze generation algorithms. This author also has a great book on doing a raytracer step by step. https://www.amazon.com/Mazes-Programmers-Twisty-Little-Passages/dp/1680500554 https://www.amazon.com/Mazes-Programmers-Twisty-Little-Passa... Rough Cut--Woodworking with Tommy Mac: 12 Step-by-Step Projects - very nice beginning woodworking book. https://www.amazon.com/Rough-Cut-Woodworking-Tommy-Step-Step/dp/1600854168 https://www.amazon.com/Rough-Cut-Woodworking-Tommy-Step-Step... The Inform (6) Beginner's Guide - introduces the Inform 6 interactive fiction language through three successive text adventure games https://www.inform-fiction.org/manual/IBG.pdf https://www.inform-fiction.org/manual/IBG.pdf
- acoye 7y agoElements of Euclid ? You build the proofs in your head step by step.
- deleted 7y ago[deleted]
- ballpark 7y ago- Practical Common Lisp - Land of Lisp - http://landoflisp.com/ http://landoflisp.com/ - watch the video, it's hilarious - Build Your Own Lisp - http://www.buildyourownlisp.com/ http://www.buildyourownlisp.com/ - Learn C by creating a lisp in C - In the spirit of making your own lisp, I would recommend https://github.com/kanaka/mal https://github.com/kanaka/mal - learn any language, by making a lisp in that language
- fishmaster 7y agoAh, I see you're a man of culture as well.
- ballpark 7y agoAs a rule, I only read lisp books
- ximeng 7y agowrite yourself a scheme in Haskell is also good for learning haskell
- deleted 7y ago[deleted]
- codearm 7y agoA series of blog posts to write an OS from scratch in Rust: https://os.phil-opp.com/ https://os.phil-opp.com/
- haileris 7y agoThinking "This is going to be awesome" until "Rust".
- martonlanga 7y agohaha, why?
- reificator 7y agoSurely if you're interested in another language suitable for writing an OS, translating from rust shouldn't be very difficult. The other way around might be, as rust semi-intentionally makes it difficult to do things like linked lists or big mutable graphs that other languages encourage. But rust->c should be fairly easy if you know c and the book teaches enough rust. Sum types get replaced with null and unions, traits get replaced with functions that take that type, etc...
- tacon 7y agoManning has an early access book in the works, "Data Science Bookcamp: 10 Python Projects" "...you'll test and build your knowledge of Python and learn to handle the kind of open-ended problems that professional data scientists work on daily." https://www.manning.com/books/data-science-bookcamp https://www.manning.com/books/data-science-bookcamp
- vsundar 7y agoApart from books, if you are open to tutorials, videos too, there was a similar thread 2 years ago about write/build your own projects https://news.ycombinator.com/item?id=16591918 https://news.ycombinator.com/item?id=16591918. That has some already mentioned here but also others (build your own react, sinatra, redux created your own programming language, editor, make a lisp etc). Both threads are now in my fav....hopefully some day.
- FarhadG 7y agoShameless plug My book on WebGL2 (500+ pages) takes you from understanding the rendering pipeline, WebGL2 API, etc. and progressively walks the reader by building a feature-rich 3D graphics engine in WebGL2 (ES6) that includes cameras, lights, shaders, post processing, OBJ models, etc. with a final project of a 3D virtual car showroom. https://www.amazon.com/Real-Time-Graphics-WebGL-interactive-applications-ebook/dp/B07GVNQLH5 https://www.amazon.com/Real-Time-Graphics-WebGL-interactive-...
- rtfeldman 7y agoElm in Action is that way. Over the course of the book you build a photo sharing application from scratch. Each chapter uses new "feature requests" from a fictional manager as a way to introduce and teach new Elm concepts. https://www.manning.com/books/elm-in-action?a_aid=elm_in_action&a_bid=b15edc5c https://www.manning.com/books/elm-in-action?a_aid=elm_in_act... (It's technically in Early Access because the print book hasn't hit the shelves yet, but all the chapters are finished and available in the online version.)
- purplezooey 7y agoWhen I see elm I think mail, like as in Pine Is Not Elm
- bachmeier 7y agoLots of interesting (smaller) projects in D Cookbook: https://www.packtpub.com/application-development/d-cookbook https://www.packtpub.com/application-development/d-cookbook More substantial is the Linux from scratch series: http://www.linuxfromscratch.org/ http://www.linuxfromscratch.org/
- vturner 7y agoHope not too off topic, does anyone have books on building simple electric-powered machines? I often have ideas for little machines for my garden or cooking but have no idea how to go about selecting motors, controller boards, designing strong enough parts for my 3D printer, etc. I'm not expecting an all inclusive book for such a deep topic. A series or several books would be much appreciated! Used to love building robots with Legos as a teenager, but alas the real world isn't so simple. ;)
- billhathaway 7y agohttps://www.amazon.com/Making-Mechanisms-Inventors-Hobbyists-Artists/dp/0071741674 https://www.amazon.com/Making-Mechanisms-Inventors-Hobbyists...
- sircastor 7y agoMake: Electronics is a good introduction to concepts, and discrete components and how to use them. Lots of projects
- tjchear 7y agoI maintain a blog that teaches readers how to implement toy versions of big projects in C++ at https://littlebigprojects.io https://littlebigprojects.io. I hope to eventually cover distributed systems and compilers.
- outlace 7y agoShameless self-promotion. We have a book on deep reinforcement learning that is completely project based in Python: https://www.manning.com/books/deep-reinforcement-learning-in-action https://www.manning.com/books/deep-reinforcement-learning-in...
- denieus 7y agoGrowing Object-Oriented Software, Guided by Tests is a bit old, but still a very nice book to read: https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627 https://www.amazon.com/Growing-Object-Oriented-Software-Guid...
- patrec 7y agohttps://github.com/norvig/paip-lisp https://github.com/norvig/paip-lisp
- SadWebDeveloper 7y agoWhats the best book for learning about electronics, soldering, pcbs, fpga... m looking for something more project based rather than here is 500 pages of theory and some illustrations (like most of the books outhere) better if start slow (with protoboards) and ends with fpgas.
- colechristensen 7y agoI'm not sure there is a best, but different styles that appeal to different people. One prominent candidate is Horowitz's Art of Electronics. Learning the Art of Electronics is a hands on lab oriented course with one project per chapter.
- xenocratus 7y agoWhile AngularJS is outdated, this book helped me understand how these frameworks do their job behind the scenes: https://teropa.info/build-your-own-angular/ https://teropa.info/build-your-own-angular/ Also, thank you for posting this question, these are the kind of books that I yearn for when I want to understand how something works!
- aredirect 7y agoI wrote Nim days: https://xmonader.github.io/nimdays https://xmonader.github.io/nimdays you will find redis parser, redis clients, webframework, assets bundler, tcp router, terminaltables, .. and more Also I love Real World Haskell and Practical Common Lisp
- fsloth 7y agoThe entire book Structure and Intrerpretation of Computer Programs is like that. It explains how to implement the language Scheme in any language (by decomposing the problem to small enough atomic entities you can implement and combine them in any language). I suppose it’s excellent practice since the book uses only Scheme, so the reader must implement the primitives of the interpreter themselves. So you need to figure out how to implement tiny things yourself (which is fun) and then goes on to show how those combine together into a wonderfull whole.
- DyslexicAtheist 7y agonot sure if this fits the bill but Car Hacker's Handbook by OpenGarages http://opengarages.org/handbook/ http://opengarages.org/handbook/ helped me to understand CAN, the ECU, and mess with my car in ways I never thought possible. The security lesson is an added bonus.
- the_decider 7y agoData Science Bookcamp: 10 Python Projects https://www.manning.com/books/data-science-bookcamp https://www.manning.com/books/data-science-bookcamp
- bunya017 7y agoPython Crash Course [1] This book is especially good for beginners in python, it feels as if the author is teaching you in person. All the exercises in every chapter builds to a mini project by the end of that chapter. One can skip the basics section and jump into the projects section which has: Alien Invasion (game programming with pygame), Data Visualization, and Web Development (using Django). [1] https://nostarch.com https://nostarch.com pythoncrashcourse2e
- nsainsbury 7y agoNot a book, but if you're looking to learn modern SQL in a hands-on way, I created Mastery with SQL (masterywithsql.com) specifically because I was frustrated with traditional SQL (and PostgreSQL) content that's lacking in high quality and challenging exercises. Mastery with SQL has over 150 exercises, ranging from easy to very difficult, where you're primarily working with a single database and trying to answer interesting questions about a business (which months saw the highest revenue, best sales employee, most watched movie, find missing records, etc.). I spent an enormous amount of time working on the exercises for this course (more than the actual content itself) and people who take the course consistently tell me working through the problems helped them learn SQL more deeply than they've learned anywhere else.
- jacobkg 7y agoI can vouch for this. I took the course after seeing it posted in HN and feel like among other things I finally understand joins
- starpilot 7y agoDoes it have you write queries that exceed 30 lines?
- nqqph 7y agoDo you provide discounts for third world country developers?
- 8589934591 7y agoHey a couple of questions if you don't mind. 1. Like the other user asked, is it possible to adjust your prices for countries according to PPP? I was able to purchase Wes Bos's course like that for learning javascript and more. 2. How complex/difficult have your exercises evolve into? Can you give any examples?
- kxxsc 7y agoI think there might be an issue with your FAQs section. I couldn't see the answers and it redirects me to "https://www.masterywithsql.com/#" https://www.masterywithsql.com/#", taking me back to the top of the page. The course looks very cool by the way.
- celnardur 7y agoIn my compilers class we used a book that my professor wrote that takes you through all the steps and algorithms for making a compiler for a c like language. You can find it online for free at: https://www3.nd.edu/~dthain/compilerbook/ https://www3.nd.edu/~dthain/compilerbook/ I really like this book because it really takes you through all the steps. However, it's very readable and provides great examples of how to actually implement some of the components. I also like it because it explains how to use tools like Yacc and Bison, while explaining how they work underneath and the motivation for using such tools. I leaned on this book heavily in the class where the main assignment was writing our own compiler from scratch in C, and I'm currently using it now to make a compiler in rust for a custom language.
- cweagans 7y agohttps://interpreterbook.com/ https://interpreterbook.com/ https://compilerbook.com/ https://compilerbook.com/ I <3 these books. They're very well written, and I recommend them every time this question comes up. I also have https://github.com/cweagans/awesome-diy-software https://github.com/cweagans/awesome-diy-software, which is similar to the project-based-learning link that you posted.
- spodek 7y agoInitiative: A Proven Method to Bring Your Passions to Life (and Work) https://www.amazon.com/Initiative-Proven-Method-Bring-Passions/dp/1733039902 https://www.amazon.com/Initiative-Proven-Method-Bring-Passio... Here's a video of the author (me) interviewing a reader who did all the exercises, in the process going from (his words) below middle management to creating his dream project with his dream business partner https://youtu.be/zfV3yNKp0h8 https://youtu.be/zfV3yNKp0h8. The process costs nearly nothing in money and creates more time for his family. Here are written reviews from NYU students and clients who took the project-based class the book is based on http://joshuaspodek.com/this-is-one-of-the-greatest-classes-i-have-ever-taken-it-was-engaging-thought-provoking-challenging-and-fun http://joshuaspodek.com/this-is-one-of-the-greatest-classes-.... If anyone has questions, I'm happy to answer here or by email. If anyone is interested but cost gets in the way, email me also and I'll try to work something out.
- Verrochio 7y agoHi Josh - I picked up your book after seeing the review and was really impressed with the high marks from everyone! I have started working through the book, but I am having a hard time applying towards my domain - which is to create audiovisual art and hopefully be successful in selling it. The steps in the book seem primarily focused toward creating a project that fits in business or traditional job culture. I could come up with "problems" around this artistic space, but that defeats the drive to create the art. The real struggle in applying this method is that I don't see creating art as "solving a problem" that other people have. Do you have any suggestions for modifying the initiative method to fit my area? Thanks in advance!
- jlj 7y agoThat's a lot of 5 star reviews, and a topic I am struggling with right now. Picked up a copy. Thanks, and look forward to reading it.
- spodek 7y agoGlad to hear. Let me know how it goes and if I can help.
- 7y ago
- nickjj 7y agoFor Flask there's https://buildasaasappwithflask.com/ https://buildasaasappwithflask.com/. It's a 20+ video course where you build a real world SAAS app. We build up 1 big app through out the course. There's also 30-40+ hours worth of self guided optional assignments to add features into the application based on what you learn in each section. It's all positioned in the form of specifications, similar to how it would be when doing any type of job or contract gig. Funny enough, many people have contacted me saying they took the course but don't even use Python and Flask. They were just experienced programmers using other web frameworks but wanted to see how the app all comes together so they can use the same patterns in their framework of choice.
- joeyspn 7y agoAlthough I still use it professionally in some projects, I got over the fullstack JS some time ago. Now half way through this Phoenix book: https://pragprog.com/book/phoenix14/programming-phoenix-1-4 https://pragprog.com/book/phoenix14/programming-phoenix-1-4 Learning Elixir/Erlang/OTP has been a joy so far. It's a new and exciting world in the middle of so much js fatigue.
- timClicks 7y agoFor Rust, try Rust in Action https://www.manning.com/books/rust-in-action https://www.manning.com/books/rust-in-action. It has several worked examples, including a key/value append-only database, a CPU emulator, an NTP client, a floating point implementation, multiple graphical applications, a binary files inspector and a few others!
- pbh101 7y agoCremdhaw’s ‘Let’s Build a Compiler!’ https://compilers.iecc.com/crenshaw/ https://compilers.iecc.com/crenshaw/
- tony 7y agoI believe one reason buying books is so popular is the reader leans the direction of being spoon fed. How many times have we picked up books and never actually read em? My anecdote, since I already had projects in mind and just wanted to synthesize how things were glued together A to Z: I went to SourceForge/GitHub/BitBucket and cloned repos for projects for the language of choice, build them, run the tests. Also, https://github.com/search https://github.com/search and lookup stuff of similar topic / using the same libraries (words like MIT, ISC, Apache 2, BSD are a good sign). Then check if it's permissively licensed. Also, in the end, you likely won't ever end up forking or copying. You're just getting the knowledge of how it's glued, and probably will wire stuff in uniquely for your case. Building these projects in itself teaches the ropes of getting an environment setup (googling build errors, checking issue tracker), dependencies, test suites, and building a production-ready package. I kept the best projects I found at https://github.com/tony/.dot-config/blob/master/.vcspull.yaml https://github.com/tony/.dot-config/blob/master/.vcspull.yam.... Purely for studying the source of. Python : Flask, Werkzeug, Django, SQLAlchemy JS : Express, Backbone, blog posts by Addy Osmani and JS enterprise architecture and Derick Bailey on Marionette (but i don't think the backbone would be as relevant today, it def paved the way to modern frontend we see today) C++ : OpenTTD In the end, there weren't many books I found espoused building projects. I already had an idea of what to build - I just needed enough to "ramp up", but if you want books: JavaScript Patterns: Build Better Applications with Coding and Design Patterns Examples applied directly to the task at hand. All about scoping. A python book, that hits different areas than this JS book would be The Hitchhiker's Guide to Python: https://docs.python-guide.org/ https://docs.python-guide.org/ C++: Scott Meyer books are great General programming: Code Complete
- ejflick 7y agoClojure for the Brave and True is a very fun project-based book. As someone who struggles getting through technical books, I found this one a real joy and it kept my attention to the very end. https://www.braveclojure.com/ https://www.braveclojure.com/
- deleted 7y ago[deleted]
- karmickoala 7y agoFrom Python to Numpy https://www.labri.fr/perso/nrougier/from-python-to-numpy/ https://www.labri.fr/perso/nrougier/from-python-to-numpy/ A book teaching Numpy vectorization.
- kagajr 7y agoManning - Getting MEAN with Mongo, Express, Angular, and Node https://www.amazon.com/Getting-MEAN-Mongo-Express-Angular/dp/1617294756/ref=pd_sbs_14_t_0/135-4836281-8148542?_encoding=UTF8&pd_rd_i=1617294756&pd_rd_r=731aeb7a-f573-4c74-8b44-42a82466f47b&pd_rd_w=7Wdek&pd_rd_wg=atWWk&pf_rd_p=5cfcfe89-300f-47d2-b1ad-a4e27203a02a&pf_rd_r=KVEYMG98V3H2N9MCD3VZ&psc=1&refRID=KVEYMG98V3H2N9MCD3VZ https://www.amazon.com/Getting-MEAN-Mongo-Express-Angular/dp... This one is really good if you want to do a fullstack application using MEAN stack.
- e19293001 7y agobooks by this author: http://cs.newpaltz.edu/~dosreist/ http://cs.newpaltz.edu/~dosreist/ Assembly Language and Computer Architecture Using C++ and Java , Course Technology, 2004 Compiler Construction Using Java, JavaCC, and Yacc, IEEE/Wiley, 2012
- codazoda 7y agoMy Splash of Code book teaches JavaScript to absolute beginners by walking them through some type-in generative art projects. People really seem to enjoy it, especially non-developers who are a little technical, such as designers, scrum masters, and product owners. Splash of Code by Joel Dare
- deleted 7y ago[deleted]
- tvalentius 7y agoProgramming Game AI By Example https://www.amazon.com/Programming-Example-Wordware-Developers-Library/dp/1556220782 https://www.amazon.com/Programming-Example-Wordware-Develope...
- devasiajoseph 7y agoI have created a couple of courses to learn web development from scratch by actually working on a project. https://www.learnwithcoder.com/ https://www.learnwithcoder.com/ It has currently Golang, Clojure & Clojurescript single page application development courses.
- signa11 7y agoi find that cpu based ray tracing is a good low-to-moderate effort project, specifically if you are getting into a new programming language f.e. lisp/modern-c++/rust/erlang(^^)/... there are plenty of books around which can walk you through the whole thing, however, of late, i have found that this: https://pragprog.com/book/jbtracer/the-ray-tracer-challenge https://pragprog.com/book/jbtracer/the-ray-tracer-challenge is a pretty comprehensive. check it out ! approximately, on the same lines, nand-to-tetris is _very_ good as well.
- tima101 7y agobuilderbook.org
- htrapz 7y agoThe Accounting Game: Basic Accounting Fresh from the Lemonade Stand by Darrell Mullis With this book you a build a business from nothing, and in the process you learn: The mechanics of Balance Sheet, P/L Statement and Cash flow Statement. (My initial motivation was to understand these statements, inorder to have a better understanding of the companies I want to invest in)
- bszupnick 7y agoRefactoring by Martin Fowler. He takes you through a piece of code and refactors it all into smaller and more usable parts explaining what he's doing along the way. He does this with two difference pieces of code, if I recall correctly, then the third part is an index of all possible refactors. I read it cover to cover in less than a week and has totally changed the way I program.
- thewhitetulip 7y agoI've written an intro to writing webapps in Go https://github.com/thewhitetulip/web-dev-golang-anti-textbook https://github.com/thewhitetulip/web-dev-golang-anti-textboo... Intro to python: https://github.com/thewhitetulip/build-app-with-python-antitextbook/ https://github.com/thewhitetulip/build-app-with-python-antit... Both are project based