NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
The Nature of Code (2nd Edition) (natureofcode.com)
shiffman 2 days ago [-]
Just 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.
multiplied 2 days ago [-]
Thank 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 2 days ago [-]
Thank you so much, Dan! I enjoyed the first edition and your Coding Train videos.

Fantastic work and way of teaching.

nnnnico 2 days ago [-]
Thanks for your work Daniel!
skilled 5 days ago [-]
As 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

[1]: https://github.com/nature-of-code/noc-book-2

[2]: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...

pvg 5 days ago [-]
A formatted list of previouslies

https://news.ycombinator.com/item?id=35703711

BigAlan09 3 days ago [-]
My 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 3 days ago [-]
Love 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.sw...

[2]: https://github.com/Jason2Brownlee/HumanDebrisArchive?tab=rea...

liendolucas 3 days ago [-]
The 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.
sweetheart 3 days ago [-]
The 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! :)

simulo 3 days ago [-]
I read his "learning processing" many years ago. It was the book that made programming made sense to me. The explanations are excellent, the outcomes interesting and it helped me to see why object orientation makes sense after fruitless attempts of understanding it using examples of different types of cars that print "wrooom wroom" to the terminal.
alabhyajindal 3 days ago [-]
Any 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.

ingenieros 3 days ago [-]
Google 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/

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/

doctorhandshake 3 days ago [-]
While 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.
ralusek 2 days ago [-]
Technical Artist would be the primary role. ShaderToy and other such resources for shader programming. Extremely creative field.
relaxing 3 days ago [-]
Designing and building effective data visualizations is a pretty large practical application.
sweetheart 3 days ago [-]
I use it for making art! Specifically static, 2D “paintings”
simulo 3 days ago [-]
I guess mainly recreation and, particularly, teaching.
polytely 3 days ago [-]
Loved 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

pcarolan 2 days ago [-]
Daniel 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 2 days ago [-]
I 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.

raincole 3 days ago [-]
The 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.
surajama 3 days ago [-]
The 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.

NoobSaibot135 2 days ago [-]
Love 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

atum47 3 days ago [-]
I'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!
who-shot-jr 3 days ago [-]
Daniel Shiffman is a legend! love his teaching style.
deigan 3 days ago [-]
Glad 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-signa...

guiambros 3 days ago [-]
I'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-...

rramadass 2 days ago [-]
I am forever indebted to this book for pointing me to Valentino Braitenberg's Vehicles: Experiments in Synthetic Psychology (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

Some Videos:

https://www.youtube.com/watch?v=DFXZc54_4GY

https://www.youtube.com/watch?v=A-fxij3zM7g

Nekorosu 3 days ago [-]
The second edition of one of the best books at the crossroads of art-making and coding!
maxwelljoslyn 2 days ago [-]
I adore this book. A second edition?! Boy howdy is that exciting. Thanks so much Daniel!
Benedicht 2 days ago [-]
Loved the first edition, it delved into a lot of interesting topics in an easy to understand way.
nindalf 2 days ago [-]
Delved, you say?
solarized 3 days ago [-]
HN thread never fails to blow my mind. Delightful books to showing programming and science as an art !
benrutter 2 days ago [-]
Such 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 2 days ago [-]
The 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 2 days ago [-]
Amazing! Congrats on finishing the second edition and thanks for so many great resources.
hbbio 3 days ago [-]
Super 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 3 days ago [-]
ralusek 2 days ago [-]
I 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.

gaurav1969 2 days ago [-]
Can 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
3 days ago [-]
rancevent 3 days ago [-]
I 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.
j0hnyl 3 days ago [-]
What is new in the 2nd edition?
philomathdan 3 days ago [-]
Just glancing through it, it looks like the 2nd edition uses p5.js instead of Processing, and there's an additional chapter entitled "Neuroevolution."
shiffman 2 days ago [-]
Chapter 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 2 days ago [-]
Thanks 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!
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 18:35:38 GMT+0000 (Coordinated Universal Time) with Vercel.