7 ms·
The Nature of Code (2nd Edition)
- BigAlan09 2y agoMy final year dissertation focused on Genetic Algorithms, where I implemented an ecosystem of herbivores, carnivores, and omnivores (referred to as "blobs," similar to those described in this book). The title of the paper was "Simulating Adaptation by Natural Selection Using Genetic Algorithms." It was a really fun project, and I learned a great deal from it. This book would have been handy at the time, as the only resources I had were Craig Reynolds's Boids. I conducted my research and simulation back in 2009. One day, I will attempt the simulation again, utilizing the knowledge from this book, particularly the neural networks to give the blobs a "brain," and the experience I have gained since then. You've got yourself a buyer!
- jasonb05 2y agoLove it! I built a similar alife simulation but as a Quake 2 mod using the monsters as the agents and plants and stuff with neural nets and genetic algorithms. My piece was titled "Ecosystem: Constructing a simple self-perpetuating society of adaptable agents" [1]. This was 2003, not for school but for fun. I submitted it for an ai writing comp on ai-depot.com but the comp failed for lack of entries. I have some pics on a repo backup of the project [2]. Agreed, "nature of code" looks like fun! [1]: https://web.archive.org/web/20080624004102/http://www.ict.swin.edu.au/personal/jbrownlee/other/ecosystem/index.html https://web.archive.org/web/20080624004102/http://www.ict.sw... [2]: https://github.com/Jason2Brownlee/HumanDebrisArchive?tab=readme-ov-file#quake-ai-essays https://github.com/Jason2Brownlee/HumanDebrisArchive?tab=rea...
- sweetheart 2y agoThe first edition of this book played such a huge role in me learning to program, and thus set the stage for (likely) the rest of my life. Daniel Shiffman has probably had that influence on many, many, many people. To this day, I recommend p5.js as a starting place for learning programming, and then picking up The Nature of Code once all the basics make sense and the newly-minted programmer is ready for some bigger challenges. Very excited to own a physical copy of this new edition to always warmly look back on! :)
- alabhyajindal 2y agoAny thoughts on what role creative coding plays in the overall software engineering field? Is it done for recreation and art? Do people use it to create and sell products as well? I love watching and working through The Coding Train videos! One reason why I haven't gone deep into creative coding is I don't know where I'll use it.
- simulo 2y agoI guess mainly recreation and, particularly, teaching.
- ingenieros 2y agoGoogle has a Creative Lab which employs a handful of creative coders who primarily work with emerging tech on experimental projects. They also offer a one year paid fellowship to young grads to join their labs in either NY or London: https://www.creativelab5.com/ https://www.creativelab5.com/ Creative coding is everywhere these days. From the parametric architecture of Zaha Hadid and MAD architects to procedurally generated furniture designs and jewelry. https://n-e-r-v-o-u-s.com/projects/ https://n-e-r-v-o-u-s.com/projects/
- sweetheart 2y agoI use it for making art! Specifically static, 2D “paintings”
- relaxing 2y agoDesigning and building effective data visualizations is a pretty large practical application.
- doctorhandshake 2y agoWhile I don’t use the term, it’s applicable to what I do as a career. I like to say I make installations, objects, and experiences with complex inner lives. Sometimes I add the word ‘digital’ in there. Many who do what I do describe themselves as ‘creative technologists’ because code is but one part alongside experience design, art direction, fabrication, systems design, and electrical engineering.
- polytely 2y agoLoved the first edition of this book and am also a big fan of the youtube channel of the author, the Coding Train. https://www.youtube.com/watch?v=p7IGZTjC008 https://www.youtube.com/watch?v=p7IGZTjC008
- Nekorosu 2y agoThe second edition of one of the best books at the crossroads of art-making and coding!
- deleted 2y ago[deleted]
- liendolucas 2y agoThe challenges videos from The Coding Train are super entertaining to watch. It all feels like a joke, having Daniel Shiffman performing all sorts of hilarius acts and explanations. By the end of a video you have not only laughed all along but most importantly you have learnt something interesting in a simple and entertaining way. I would love to purchase the CHOO-CHOO flute that Mr. Shiffman sounds from time to time (if engraved with the coding train logo, better) but unfortunately is not available for purchase in their online store.
- deigan 2y agoGlad to see it's done. As a philosopher with only a bit of programming background (and previously no javascript), this was very helpful for getting some simulations online in a format easy for my students and others to play around with: https://mikedeigan.com/the-cursor/posts/2022/skyrmsian-signalling-simulations-reinforcement.html https://mikedeigan.com/the-cursor/posts/2022/skyrmsian-signa...
- j0hnyl 2y agoWhat is new in the 2nd edition?
- philomathdan 2y agoJust glancing through it, it looks like the 2nd edition uses p5.js instead of Processing, and there's an additional chapter entitled "Neuroevolution."
- shiffman 2y agoChapter 6 is also revamped (to use matter.js) and other chapters include expanded / revised examples and explanations. Chapter 10 was almost entirely re-written, Chapter 11 is new.
- j0hnyl 2y agoThanks Dan! The first edition of your book sits on my desk for inspiration and has become a creative reference for me. It was actually a nice exercise to convert everything to p5js for me. Thanks for keeping us informed and entertained over the years!
- rancevent 2y agoI read this book when I was in high school and it played a major role in shaping my interests in programming and math. Highly recommend it.
- who-shot-jr 2y agoDaniel Shiffman is a legend! love his teaching style.
- surajama 2y agoThe first edition was absolutely critical in helping me understand how to program anything more than simple scripts. I got hooked into the physics simulation portion and created a pretty fun Asteroids-inspired game. Although OOP is going out of style, I think learning it is super important to understand how you can use layers of abstraction to build increasingly complex programs.
- atum47 2y agoI've learned so much from watching Daniel's videos on YouTube. They are also very entertaining. Always featuring a cool algorithm that you usually don't know exists. Great work!
- raincole 2y agoThe first edition is one of my favorite programming books. I'm not a big fan of youtube coding tutorials, and glad to see the author is still updating the bood instead of devoting to the youtube channel.
- hbbio 2y agoSuper interesting topic and awesome book overall! I may be nitpicking, but any teaching material with JavaScript poor coding practices can hurt both humans and LLMs. 1. When you don't reassign a variable it's a `const` 2. for (let i = 0; i < total; i++) { randomCounts[i] = 0; } is `new Array(total).fill(0)` etc.
- rrherr 2y agohttps://www.joshwcomeau.com/javascript/the-const-deception/ https://www.joshwcomeau.com/javascript/the-const-deception/
- ralusek 2y agoI don’t get this argument. const means you can’t reassign the variable, that’s it. If you don’t plan on reassigning the variable, use const. In the rare places that you don’t use const, you’re telling me that you reassign the variable somewhere. I don’t understand why people need const to be something it’s not. The fact that you can still mutate objects is because in js, an object assigned to a variable is best thought of as a pointer to a value in the heap. const means the variable won’t reassign the reference, Object.freeze means the referenced data can’t change. Both useful, both different use cases; needn’t be conflated.
- in9 2y agoOr, OR, maybe, not every bit of code needs to match all the common good practices and standards. I bet you don't write formally or in Elizabethan English all the time. Context matters in the form of common language. Why should it be any different with code? Just because LLMs can pick those practices up?
- hbbio 2y agoThat's not a good comparison imho. Programming languages are formal. Otherwise you're talking about programming prompts for a LLM. And the resulting program may vary.
- solarized 2y agoHN thread never fails to blow my mind. Delightful books to showing programming and science as an art !
- guiambros 2y agoI'm a big fan of Dan Shiffman, and got the first Nature of Code through his Kickstarter project in 2012 [1]. Even if you are an advanced programmer, there's something magical about Dan's style and his ability to explain concepts in a simple way. Also perfect to get kids started in programming. The book is available for free online, but if you can afford, it's a great addition to your (physical) bookshelf. [1] https://www.kickstarter.com/projects/shiffman/the-nature-of-code-book-project https://www.kickstarter.com/projects/shiffman/the-nature-of-...
- benrutter 2y agoSuch a great book- really happy to see it on the front page! The book website shows a beautiful hardback copy of the book, is this real? Are there plans to do a printrun? (I can't find anything on the website mentioning it aside from the picture)
- shiffman 2y agoThe book is going to have a print run and is available for pre-order right now! It's being published by No Starch Press. The hardcover, however, is a mock-up, it will be a flexi-bound softcover.
- benrutter 2y agoAmazing! Congrats on finishing the second edition and thanks for so many great resources.
- Benedicht 2y agoLoved the first edition, it delved into a lot of interesting topics in an easy to understand way.
- nindalf 2y agoDelved, you say?
- rramadass 2y agoI am forever indebted to this book for pointing me to Valentino Braitenberg's Vehicles: Experiments in Synthetic Psychology (https://mitpress.mit.edu/9780262521123/vehicles/ https://mitpress.mit.edu/9780262521123/vehicles/) where very simple autonomous sensor/actuator machines combine to exhibit complex behaviour which maybe mistaken for "Intelligence". Makes you really think abut Complexity/Intelligence/Emergent Behaviour/etc. Wikipedia : https://en.wikipedia.org/wiki/Braitenberg_vehicle https://en.wikipedia.org/wiki/Braitenberg_vehicle Some Videos: https://www.youtube.com/watch?v=DFXZc54_4GY https://www.youtube.com/watch?v=DFXZc54_4GY https://www.youtube.com/watch?v=A-fxij3zM7g https://www.youtube.com/watch?v=A-fxij3zM7g
- pcarolan 2y agoDaniel Shiffman taught me to code for the first time in a way that totally shifted the way I thought about coding from utilitarian to fun and creative. I wonder how many lives he's had this impact on. Good on you sir.
- AndrewDavis 2y agoI remember discovering his Youtube channel, it was either during my first year of University and i'd watch them as much for entertainment as education. Every so often i'd find myself following along. Between semesters I watched some of his search algorithm videos, including his two part A* videos, and recreated it. When semester started I took a classical AI course and the first assignment was search algorithms. And my goodness was it helpful.
- shiffman 2y agoJust wanted to pop in and say hi here! Delighted to discover this thread, it's been quite the adventure trying to get this new version of the book finished. Happy to answer any questions about the book here! Thanks for the support and kind feedback.
- nnnnico 2y agoThanks for your work Daniel!
- multiplied 2y agoThank you so much for your content over the years. It is genuinely a feel good experience but also full of substance. It is genuinely enjoyable and the topics are really fun. The youtube videos are amazing and also love the book and its presentation! Thank you for putting out such genuinely feel good and positive content.
- diegof79 2y agoThank you so much, Dan! I enjoyed the first edition and your Coding Train videos. Fantastic work and way of teaching.
- jschulenklopper 2y agoThanks for that book, and congratulations on the second edition. I'm a backer (via Kickstarter - the first project that I supported IIRC) of the original version, and I greatly enjoyed reading that and tinkering with the algorithms. I hope this version goes as well as the first edition! You deserve that.
- jurnip 2y agoThank you, Dan, for everything you’ve done for the creative coding community and for coding education in general! I teach creative coding to kids at a local library, and when the parents ask me what else their kids can do to learn to code, I always tell them to check out your videos on YouTube. You’re also a celebrity in my household as I have your videos running on the TV in the background while I prepare the kids’ breakfasts on Sunday morning. I’ve pre-ordered the new book on Amazon!
- maxwelljoslyn 2y agoI adore this book. A second edition?! Boy howdy is that exciting. Thanks so much Daniel!
- NoobSaibot135 2y agoLove coding train YouTube channel! This guy is funny, knowledgeable and not full of himself (unlike others in our industry) Learned a ton from Daniel when I was starting out
- gaurav1969 2y agoCan someone share here the pdf of the 2ed of the book. Thanks, I don't know how. To make a PDF from GitHub by code
- low-rez 2y ago[dead]
- call-me-al 2y agorequires username and password...
- skilled 2y agoAs per this tweet[0], the 2nd edition was finished on April 20th, 2024. There's a GitHub repo[1], and there have been a few HN discussions over the years[2] (dating back to 2014 (book was released in 2012)), but none that had discussion above ~30 comments. [0]: https://twitter.com/shiffman/status/1781689870466916655 https://twitter.com/shiffman/status/1781689870466916655 [1]: https://github.com/nature-of-code/noc-book-2 https://github.com/nature-of-code/noc-book-2 [2]: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=natureofcode.com&sort=byPopularity&type=story https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
- pvg 2y agoA formatted list of previouslies https://news.ycombinator.com/item?id=35703711 https://news.ycombinator.com/item?id=35703711