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's an (article|book|vid) that changed the way you view programming?

59 pointsby daryllxdabout 7 years ago
I was wondering, what were really valuable resources for you as a dev, either when you were starting out or when you had a bunch of years of experience. What&#x27;s some event that changed the way you approached programming?<p>--- For me it&#x27;s these:<p>- Watching DHH&#x2F;the video that introduced me to Rails. I was a student coding in PHP&#x2F;CodeIgniter, and it blew my mind re: the speed at which things got done. (Now, not so much, hehe.) - Watching [Destroy All Software](https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;), I think that was the first time I saw someone with a high mastery of the Vim editor, and the first time I saw someone write tests&#x2F;talk about app&#x2F;class design. The next week, I was pulling my hair out trying to learn Vim. - Non-programming: [Cracked article on harsh truths.](cracked.com&#x2F;blog&#x2F;6-harsh-truths-that-will-make-you-better-person&#x2F;) I read that several years ago, and every year I try to add a new skill to learn. It&#x27;s still my auto-complete when I type in &quot;cr&quot; on my browser.

21 comments

stuxnet79about 7 years ago
First 10 mins of the first Structure and Interpretation lecture (by Harold Abelson) [1]<p>Famous first words ...<p>&quot;I&#x27;d like to welcome you to this course on computer science. Actually, that&#x27;s a terrible way to start. Computer science is a terrible name for this business.&quot;<p>... and this is where it all clicked to me ....<p>&quot;Well, similarly, I think in the future people will look back and say, yes, those primitives in the 20th century were fiddling around with these gadgets called computers, but really what they were doing is starting to learn how to <i>formalize intuitions about process</i>&quot;<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=2Op3QLzMgSY" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=2Op3QLzMgSY</a>
catpoliceabout 7 years ago
Rick Hickey&#x27;s Simple Made Easy permanently made me a better programmer: <a href="https:&#x2F;&#x2F;www.infoq.com&#x2F;presentations&#x2F;Simple-Made-Easy" rel="nofollow">https:&#x2F;&#x2F;www.infoq.com&#x2F;presentations&#x2F;Simple-Made-Easy</a><p>Also his talks on transducers in clojure changed the way I think about functional programming
评论 #16501775 未加载
dpeckabout 7 years ago
Joe Armstrong, one of the creators of Erlang, thesis <a href="http:&#x2F;&#x2F;erlang.org&#x2F;download&#x2F;armstrong_thesis_2003.pdf" rel="nofollow">http:&#x2F;&#x2F;erlang.org&#x2F;download&#x2F;armstrong_thesis_2003.pdf</a><p>It’s very readable.
评论 #16502558 未加载
评论 #16502636 未加载
atsaloliabout 7 years ago
&quot;Understanding Software&quot; by Max Kanat-Alexander, <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Understanding-Software-Kanat-Alexander-simplicity-programmer&#x2F;dp&#x2F;1788628810" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Understanding-Software-Kanat-Alexande...</a><p>I&#x27;ve started re-factoring code before adding new features, our code base is getting a little better every day (more maintainable) which reversed a trend, it was getting harder to add features, now it is easier; plus when I design now, my designs are cleaner and result in maintainable code.
whatyoucantsayabout 7 years ago
<i>Masters of Doom</i>. It opened my eyes to how high a level at which some can play the game (of software).
评论 #16504078 未加载
Jeff_Brownabout 7 years ago
Simon Peyton Jones on lenses: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=wguYuQwjTtI" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=wguYuQwjTtI</a>
protoplantabout 7 years ago
Head First Design Patterns helped me. I&#x27;m not saying to go overboard with design patterns. But it helped me understand some ideas about Object Oriented design
EdwardCoffinabout 7 years ago
End-to-end arguments in System Design [1] convinced me that a lot of special case handling I thought was necessary was really optimization and optional.<p>Though I already understood recursion pretty well when I read this, the explanation Paul Graham gives in section 2.7 of ANSI Common Lisp was pretty useful [2].<p>[1] <a href="http:&#x2F;&#x2F;web.mit.edu&#x2F;Saltzer&#x2F;www&#x2F;publications&#x2F;endtoend&#x2F;endtoend.pdf" rel="nofollow">http:&#x2F;&#x2F;web.mit.edu&#x2F;Saltzer&#x2F;www&#x2F;publications&#x2F;endtoend&#x2F;endtoen...</a><p>[2] <a href="http:&#x2F;&#x2F;ep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;acl2.txt" rel="nofollow">http:&#x2F;&#x2F;ep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;acl2.txt</a>
hemantvabout 7 years ago
Effective Engineer by Edmound Lau<p>Game Programming Patterns by Robert Nystrom<p>Free book is available here <a href="http:&#x2F;&#x2F;www.gameprogrammingpatterns.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.gameprogrammingpatterns.com&#x2F;</a><p>C++ How to Program Dietiel and Dietiel<p>Algorithms by CLRS
tomdreabout 7 years ago
&quot;The Art of Computer Programming&quot; by D. Knuth taught me the beauty of well designed algorithms. &quot;The Art of Prolog&quot; by E. Shapiro opened my mind to new programming paradigms.
partisanabout 7 years ago
A video of Udi Dahan explaining CQRS. This changed the way I viewed programming in just about every way. There are others such as Greg Young and Rinat Abdullin, but that one video was the first to make it clear there are other ways to approach the business apps I worked on. <a href="https:&#x2F;&#x2F;vimeo.com&#x2F;8944337" rel="nofollow">https:&#x2F;&#x2F;vimeo.com&#x2F;8944337</a>
edddabout 7 years ago
<a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=f84n5oFoZBc" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=f84n5oFoZBc</a>
评论 #16501638 未加载
hakanderyalabout 7 years ago
This discussion on HN: Smaller Code, Better Code - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13565743" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13565743</a><p>Especially this comment chain: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13571159" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13571159</a>
andrei_says_about 7 years ago
Sandi Metz’s talks and Practical Object Oriented Design with Ruby book.<p>Here’s one of the talks, nothing is something : <a href="https:&#x2F;&#x2F;youtu.be&#x2F;29MAL8pJImQ" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;29MAL8pJImQ</a>
评论 #16515020 未加载
slipwalkerabout 7 years ago
Laziness Impatience Hubris <a href="http:&#x2F;&#x2F;wiki.c2.com&#x2F;?LazinessImpatienceHubris" rel="nofollow">http:&#x2F;&#x2F;wiki.c2.com&#x2F;?LazinessImpatienceHubris</a>
mr_nodaabout 7 years ago
Mike Acton cppcon talk on data oriented design <a href="https:&#x2F;&#x2F;youtu.be&#x2F;rX0ItVEVjHc" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;rX0ItVEVjHc</a>
jefflombardjrabout 7 years ago
Code Complete by Steve McConnell.
评论 #16502328 未加载
squarefootabout 7 years ago
&quot;Godel, Escher, Bach&quot; by D. R. Hofstadter.
lgunschabout 7 years ago
Test-Driven Development by Example: by Kent Beck.<p>also,<p>Clean Code: by Robert Martin
swaggyBoatswainabout 7 years ago
I went through a lot of MOOCs early on when learning development (still am). Some courses don&#x27;t really stick that well to me partially because the author gleams over important steps quickly (skips over the core logic &#x2F; behind the scenes work). Or there&#x27;s no comments on videos (lynda.com) so sometimes there&#x27;s some critical information missing that the author didn&#x27;t forsee. On things like youtube playlists, its sometimes hard to gleam &quot;why&quot; the author is thinking a certain way when making an implementation to an app, or what context they are thinking of when writing their code. Some comp science courses (CS50) are great for learning the core concepts, but it would be nice to have a course to teach you how to &quot;think&quot; like a programmer<p>The course that really changed my perspective on development in general was this one <a href="https:&#x2F;&#x2F;watchandcode.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;watchandcode.com&#x2F;</a>. Its a javascript based course that looks at one simple CRUD (todomvc) app in both vanilla js and jquery.<p>It assumes you know nothing about programming. To give a crash course overview of what the contents look like<p>First,<p>- It doesn&#x27;t waste time making you setup a dev environment<p>- First step it asks you to do is play with the todomvc app, to get familiar with the end product<p>Iteratively,<p>- The author asks you to write the requirements of the next steps, e.g. &quot;It should have a way to a place to store todos&quot;<p>- Next, the author teaches you just enough things to meet those requirements in the console<p>- You implement those simple things per your requirements<p>- Repeat<p>- Throw in some computer science concepts only when its needed in context of next problem<p>What sets it apart from other courses is it teaches you how to &quot;think&quot; like a programmer regardless of what programming language you use. I would say its a modern day video implementation of something similar to books like &quot;Clean Code&quot; or &quot;Pragmatic Programmer&quot; where it discusses why things are done in certain order.<p>At the end of it you have a nice implementation of the todoMVC app in a prototype pattern &#x2F; MVC format, and you understand why it was written this way. Next video series he goes into how this implementation is different than the jQuery implementation of todoMVC. But first you would have to understand how to read someone elses code, so he covers how to methodically break down a codebase (what to read, what not to read, how to determine starting points to understand what the code is doing).<p>Then he introduces you the tools to do so (debugger). Then how to write your own native javascript reduce function and break down the MDN docs. Then how to write TDD (test driven development) based on things discussed earlier on the course. What the `this` object is, what `apply` is, what routing and templating are used for, in context to singular project made above<p>I haven&#x27;t finished the 2nd series he&#x27;s made (26% finished), but it goes into much more detail later about regex, clojures, etc. I think by the end of it you can largely ignore what YDKJS has to offer since its all covered in this course, in a slow methodically well planned out manner. To give you a perspective of how long the series is<p>- Series 1 is short and to the point (4-5 hours)<p>- Series 2 is ongoing and about 30-40 worth of video content. On one video he talks about writing a native javascript reduce implementation for 2 hours.<p>Watching this series makes me realize how my lackof knowledge of discrete math &#x2F; core math &#x2F; data structures would ideally make a lot of programming concepts much easier
Adamantcheeseabout 7 years ago
Basically anything on <a href="http:&#x2F;&#x2F;wiki.c2.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;wiki.c2.com&#x2F;</a>. The antipattern section is a fun read.