7 ms·
Things Every Programmer Should Know
- stevejalim 14y agoRelated to this: https://leanpub.com/97-Things-Every-Programmer-Should-Know-Extended https://leanpub.com/97-Things-Every-Programmer-Should-Know-E...
- davedx 14y ago#1: Don't waste your time reading pointlessly generalised "N things that you should something" blog posts.
- ishansharma 14y agoExactly the point. Maybe we should add #2, remember rule 1!
- qompiler 14y agoBut I have noticed that constantly programming and thinking about software design is hurting the quality in the end. Letting the mind drift of once in a while helps me slow down a bit. It kind of feels like I'm offloading my thoughts for re-factoring in the back of my mind while I'm doing something else.
- jaredmcateer 14y agoJohn Cleese has a great talk on creativity[1], a big part of it is essentially guided day dreaming where you let your mind wander but gently come back to the topic you're trying to work on from time to time. [1] http://vimeo.com/18913413 http://vimeo.com/18913413
- leetrout 14y agoThank you so very much for this. Pure gold.
- piqufoh 14y agoOne thing O'Reilly 'programmers' should try; cacheing their websites before posting on HN
- duiker101 14y agoThey already do, or at least hope that google does for them...
- 1qaz2wsx3edc 14y agoLink bait
- triplesec 14y agoYep. Really annoying since I might actually like it if they presented it to us as a book. It's a nerdy kind of rickrolling this.
- andrewcooke 14y agoit is a book. http://www.amazon.com/Things-Every-Programmer-Should-Know/dp/0596809484 http://www.amazon.com/Things-Every-Programmer-Should-Know/dp...
- triplesec 14y agoYes, that much is obvious! what I meant, but it seems wasn't very clear about is that I wish they'd said this in the title of this blog / HN post.
- ryanbrush 14y agoFunny to see this here. That wiki was used to put together the contributions for the book, and the fact it wasn't planned as a high-volume site is pretty obvious right now. There are a number of items worth reading from some pretty good writers in there (Verity Stob, Michael Feathers, Scott Meyers, Uncle Bob, to name a few.) Mostly short vignettes but I enjoyed them. (Disclosure: I wrote 2/97 of that book, but there are many chapters in there better than mine).
- oemera 14y agoGoogle Cache: http://webcache.googleusercontent.com/search?q=cache:vmu82nXiMmoJ:programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book+http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book&hl=de&client=firefox-a&gl=de&strip=1 http://webcache.googleusercontent.com/search?q=cache:vmu82nX...
- lignuist 14y agoSuch lists are supposed to be short to be memorable ... Otherwise you can call it "1001 Things Every Programmer Forgets".
- suchabag 14y agoThis link has been posted several times before (https://www.hnsearch.com/search#request/all&q=97+programmer&start=0 https://www.hnsearch.com/search#request/all&q=97+program...). What's the HN best practice for this?
- swah 14y agoI guess "You should post again when you read it and find it interesting, independently from previous postings". HN detects reposts, but I don't know the algorithm. The other day it didn't let me repost a link last posted almost 2 years ago.
- optymizer 14y ago#2 "Apply Functional Programming Principles" talks about passing your input as parameters to functions performing some work based on those inputs. Yeah, "functional". Hello, C.
- viscanti 14y agoI've seen lots of legacy code that's had parameters hard-coded. I don't know that parameterizing functions (with things you might want to be variable in the future) is "functional", but it's still sometimes useful.
- edwintorok 14y agoThe title reminded me of a good article series from 2007 "What every programmer should know about memory": https://lwn.net/Articles/250967/ https://lwn.net/Articles/250967/
- Shamharoth 14y agopdf version : http://www.akkadia.org/drepper/cpumemory.pdf http://www.akkadia.org/drepper/cpumemory.pdf
- tokenadult 14y agoAs a foreign language major in my undergraduate studies, I have to like item 49, "Learn foreign languages," and of course many participants on Hacker News practice that by learning English as a second language. (You know the old joke, right? Q: What do you call a person who knows two or more languages? A: Multilingual. Q: What do you call a person who knows only one language? A: American.) Learning a human natural language and its arbitrary rules (which will always differ from the arbitrary rules of your native language) provides a test case of what's involved in comparing different computer programming languages. I was surprised that over 97 items there isn't even one item mentioning the importance of knowing a lot of mathematics. I would emphasize that as one of the top ten items if I were compiling a list like this. I have learned from working programmers who know a lot of mathematics that they think many of their fellow programmers could spot solutions for industry problems easier if only they recognized the mathematical structure of the problems they are trying to solve. In general, learning mathematics thoroughly at the primary-to-undergraduate level in a problem-solving curriculum builds problem-solving skills http://www.artofproblemsolving.com/Resources/articles.php?page=problemsolving http://www.artofproblemsolving.com/Resources/articles.php?pa... that generalize well to solving programming problems.
- gizmo686 14y agoI always took a fairly opposite view of foreign languages relative to programming languages that you. In my experience, when you learn a programming language, you want to understand it in as few and as simple terms as possible. So when you see two features, you should look for ways to ask, is their any way these features are really the same thing. With foreign language (and even native English for me) trying to do that will not work. Instead you need to constantly ask, is this an exception to the rules.
- csense 14y agoI found foreign language study to be entirely irrelevant to programming. In my experience, foreign language study consists of the memorization of lengthy lists of vocabulary words and verb suffixes. There's almost nothing but memorization, and if you forget a word or something, you're dead in the water unless you can remember it. I wasn't very good at it, it wasn't very much fun, I never used it and I've retained almost nothing. Other than satisfying graduation requirements on paper, I've gotten absolutely zero value out of it. Whereas with programming or mathematics, the memorization is minimal, the focus is on abstract ideas you use to represent problems and the way you put together the building blocks you know. You might memorize a string of symbols like this: x = (-b +- sqrt(b^2 / 4*a*c)) / (2*a) But if you happen to forget that string of symbols and need to know the quadratic formula, you can start from first principles "I have an equation of the form: a*x^2 + b*x + c = 0 and I need to get x by itself." With a little algebra (completing the square), you can re-derive the quadratic formula. Or if you only care about numerical solutions, you can use Newton's method or bisection. Or you can use your trusty TI-89 to derive the answer for you. The point is that, because everything is abstract ideas that fit together, forgetting things isn't usually a showstopper, because you can just use the problem-solving skills and tools you do remember to come up with a good-enough replacement. Likewise, with programming, once you know how to do "everything" (i.e. have mastered the bare minimum amount of syntax to write Turing-complete programs), if you forget about a standard library function or the implementation details of a particular algorithm, you can always write your own version with enough time, patience, and debugging.
- martinced 14y ago"Know your IDE" I'm getting to the point where I can write elisp functions adding cool functionalities to Emacs (like jumping to a function whose name appears in a comment), does this count as knowing my IDE? ; ) I must have it all wrong: I did follow pg and Steve Yegge's advices and learned Emacs and Lisp ; ) I'm probably not a programmer...
- Sandman 14y agoI'm confused as to why you think that you're not a programmer. I think it's awesome that you've become such a master with your development environment that you're able to integrate various functionalities not normally found in mere text editors into it.
- jasonlotito 14y agoHe's being facetious.
- metaphorm 14y agoobviously because real programmers write C++ in Visual Studio. dynamic languages are for kiddies. /s
- xradionut 14y ago98: Programming subject matter books have errors and practices that don't always apply to real world programming.
- keithtom 14y agomaking this for my kindle http://readlists.com/c130caf3/ http://readlists.com/c130caf3/