Ask HN: What are some important math topics every programmer should know? - <AUTHOR> I'm a self taught full stack developer who's flunk out of high school and did not have the chance to study "advanced" maths such as calculus, statistics and probability.
In 10 years of experience I never felt the need for any of it, and a recent contract requires, for a simple feature, the basic knowledge of derivatives (given a polynomial curve, graph it in a dotted line when it falls off from the local maxima).
I've started catching up on courses on Khan Academy and having a great time. My question is, which math (or physics) knowledge have you actually used in your programming career, and think it's mandatory for software engineers to know?
PS: If anyone from Khan Academy is reading this, thank you for your project, you're doing a great service for humanity. <comment><USER3> Every programmer should know? None.

Middle school maths is "good enough" for the majority of programming jobs (85%+). There are of course niche programming jobs in: finance, statistics, AI, CS, gamedev, and so on but if you look at the programming industry as a whole those jobs are a tiny proportion overall (the majority are "boring" enterprise-style developers and web-developers: Java/Tomcat, ASP.net/MVC, PHP, RoR, and so on).

The thing is that the "boring"/average programming jobs are the silent majority. You'll likely read in this thread tons of obscure topics and how they apply to obscure jobs, but the reality is that few programmers work in those industries, but nobody [else] is going to post just to admit that for their job they don't need any maths day to day because it is boring and redundant.

This is JUST my opinion, but if you want to learn obscure topics, you're better off spending time learning CS topics (e.g. floating point number representation/bugs/limitations, encryption/hashing/etc, binary representations, assembly, kernel inner workings, CPU inner workings, and even borderline electronics). While advanced maths has a place in some jobs, advanced CS topics seem to be useful even on the web-stack/enterprise-stack to understand where bottlenecks might be materialising.

Maths is not useless. But most programmers won't use a lot of it day to day, if for no other reason that they have a library which does it for them (and they'd be foolish to reinvent the wheel).

<comment><USER4> Every _good_ programmer should know? At least abstract Algebra.

The thing about advanced maths is that it forces you to think about abstractions in ways that not even programming forces you to think. You can get pretty far programming without much abstraction, but you can't understand the mathematical fact that any group of order four is either cyclic or isomorphic to the Klein-four group[1] without thinking in a really abstract way. The more you study these abstractions in advanced maths, the better you get at thinking in an abstraction-first way.

A great book that just came out this year explains this really well by taking you from a basic algorithm to an abstract implementation, explaining the maths along the way (from multiplication to abstract algebra and number theory). It's titled From Mathematics to Generic Programming and I recommend it to anyone who wants to understand more of what I mean[2].

\--

[1]: [http://math.stackexchange.com/questions/165341/any-group- of-...](http://math.stackexchange.com/questions/165341/any-group-of-order- four-is-either-cyclic-or-isomorphic-to-v)

[2]: [http://www.amazon.com/Mathematics-Generic-Programming- Alexan...](http://www.amazon.com/Mathematics-Generic-Programming-Alexander- Stepanov/dp/0321942043)

<comment><USER5> There are many ways to learn about abstraction, and abstract algebra is not the only one. I.e., assorted facts about groups are mostly irrelevant, and if you can learn how to think abstractly by studying, say, graph theory, why would you need abstract algebra?

<comment><USER6> I completely agree. Logic or philosophy can help one to practice complex abstraction. Even the study of law (as in legal code) or religion involves abstract thinking.

</comment></comment></comment></comment><comment><USER7> I've used a _lot_ of math in my work. But the point is, I _have_ a lot of math to use. So many people say "I've never used math" or "Oh look, another day without using algebra," but really what's happening is that they don't realise that there are times when they can use mathematical thinking and techniques.

It's blub all over again.

So to be specific, I've used calculus in a bunch of places, Linear Algebra, Markov Chains, Quaternions, Topology, and Graph Theory is just everywhere. It's impossible to make recommendations - there's far too much, and what you need to do is get started on something, and keep track of things that look like they'll be interesting, useful, or the basis of something needed.

In part this is why I've started the "Topics In Maths" project I'm working on.

So good luck - keep pursuing stuff, and I hope you get more and more intrigued by what you find.

<comment><USER8> This is really important. I've seen so many people just thrash at problems because they did not have the math to solve it. It's not so much that they didn't take the course or whatever, but that they didn't even understand that there was a systematic way to find the answer.

You _almost_ can't be a programmer these days without knowing about data filtering and validation. And I can't tell you how many ad-hoc ways I've seen people try to filter data that was worse than useless - it harmed the quality of the data.

So, linear algebra, robust statistics, optimal and non-optimal estimation, and some classification theory will take you a very long way in many jobs.

If this isn't clear - PageRank (the original google search algorithm) is just applied linear algebra. Netflix recommendations? Linear algebra. Spam filtering? Bayesian filtering. Medical imaging? linear algebra, Bayesian filtering. It goes on and on.

Math is not mandatory to be in the field, but there are a vast number of really interesting jobs which you have no hope of doing without a fair amount of math.

This is why I feel so sad when yet another "college is for suckers" thread starts on HN. It takes a lot of concentrated work and practice to develop the math skills and to learn to apply them, and college is the last chance you have to do that in a concentrated way. You just might learn about eigenvectors and invent the next PageRank!

graycat always has interesting posts about how he has used in his career - <USER2> a search.

<comment><USER5> Linear algebra also allows for things like

Facial recognition, error correction/detection, linear programming optimization, signal analysis, graphics, machine learning, quantum computing...

The list just goes on and on.

</comment></comment></comment><comment><USER9> The tough part here is "every programmer should know" as there are very few universal "Must Knows". Much of CS theory is math so there is a lot to be said for "You're learning Math whether you think so or not."

Some general comments on math topics:

Partial Differential Equations - Useful for financial technology and engineering applications.

Statistics - Extremely useful in financial technology and marketing applications. (A/B testing, etc) Also good for having an informed worldview.

Regression Analysis - Same as Statistics, though less important for having an informed worldview.

Logic - Whether you call it Philosophy or Math, it's useful in hardware, formal verification, and general thinking.

Linear Algebra - Good for financial technology and machine learning.

Set Theory - Good for understanding databases.

Number Theory - Useful for cryptography.

Graph Theory - Great for networking, and algorithm thinking in general.

Theory of Functions - Good for understanding recursion (LISP, Scheme, etc) and functional programming.

Does anyone need to know all of this? No, but learning the math behind whatever niche you choose will make your intuition and thinking stronger. I think Stats is the only general purpose math that everyone should understand as part of being a critical thinker.

<comment><USER10> Logic and set theory are intertwined.

<comment><USER11> Set theory and everything are intertwined.

<comment><USER12> Categorically.

</comment></comment></comment></comment><comment><USER13> High school and even undergraduate college gives you a rather late-19th, early-20th century view of what "math" is. A lot of math doesn't involve "numbers", per se. So, as a programmer in your self-described situation, my advice is to work through the math in Structure and Interpretation of Computer Programs [1], commonly referred to as SICP, and to do so seriously.

Does it not feel like math? That is, alas, a deficiency in your education, but don't feel bad, it's a deficiency in most people's education. It's math, and directly applicable to what you are doing in life.

Now, these other suggestions are fine too. But I find it to be very, _very_ practically useful to be able to take apart the very concepts of computation, and thereby learn how to reassemble them to suit my whims, and not be swept away by the fads of the day.

The SICP is a concentrated load of exactly what you missed out on by not getting a formal computer science education. I honestly would likely prefer someone with 3 or 4 years of industry experience and the ability to prove they really worked through the SICP (not just read over it once, but worked it through) over someone with a 4.0, a bachelor's degree, and nothing else.

[1]: [https://mitpress.mit.edu/sicp/full- text/book/book.html](https://mitpress.mit.edu/sicp/full-text/book/book.html)

</comment><comment><USER14> There's a course at MIT called Mathematics for Computer Science (6.042). It's available on Open Courseware, [http://ocw.mit.edu/courses/electrical- engineering-and-comput...](http://ocw.mit.edu/courses/electrical-engineering- and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/)

</comment><comment><USER15> Bottom line: You're constructing and executing math and likely do not realize how much math you are constructing and executing on a daily basis. This includes formal and experimental advanced theoretical mathematics, probability, statistics and number theory in some cases. Some academics do not like to hear this, however, you deal(industry term) in functions, variables, minimums, maximums, rates of change, statistics, probability and overall, symbols. If you're duplicating the next facebook (as facebook did with myspace and myspace, friendster, etc etc), snapchat or yo app your likely not directly engaged in much math or innovation compared to inventing something on the algorithmic level like Google. If you are creating or inventing something new on the software engineering level including the algorithmic level, then you are certainly creating a lot of theoretical math and perhaps without even knowing it. This is key.

Here's a good book to understand how you've leap-frogged certain aspects of mathematics via true and real innovative Computer Science: (the Einstein of India. Every country and family has their very own Einstein, you might be one of them.)

The Man Who Knew Infinity: A Life of the Genius Ramanujan [http://www.amazon.com/The-Man-Who-Knew- Infinity/dp/067175061...](http://www.amazon.com/The-Man-Who-Knew- Infinity/dp/0671750615)

</comment><comment><USER16> I find understanding of symbolic logic to be very important.

For UI programming of any sort, an understanding of basic geometry is very important, including graphing. There have been times in my short career where I have had to implement pixel perfect renderings due to the types of problems that were being solved.

</comment><comment><USER17> I work in quantitative finance and find that basic probability and statistics help a lot in this field. In fact, they are almost like prerequisites for hiring.

That said, I think everyone would benefit by reading a bit about these subjects, whether or not they're developers. We seem to have a built-in tendency to underestimate the effect of randomness in life (see Fooled by Randomness and How to Lie with Statistics). To counteract that, I find statistical methods (e.g., hypothesis testing, confidence intervals, etc.) to be very useful tools to keep in mind. Having basic familiarity with such tools may not necessarily make us better programmers but it'll probably make us more rational decision makers in the general sense.

</comment><comment><USER18> DeMorgan's laws. (You'll probably end up negating a boolean expression at some point. Don't screw it up!)

<comment><AUTHOR> All the comments in this thread are really useful (thanks, everybody), but you finally gave me a name for something I badly need when refactoring overcomplicated "if" expressions.

I usually get a pen and paper and write the truth table by hand to understand how to simplify the logic.

Thanks!

</comment></comment><comment><USER19> In the first year of my CS degree we studied some rudimentary CS-related mathematics.

Some of it I barely used beyond the exam, but there are two topics which rise high above the rest in terms usefulness when working on real-world web apps.

Set Theory: [http://en.wikipedia.org/wiki/Set_theory](http://en.wikipedia.org/wiki/Set_theory)

and

Combinatorics: [http://en.wikipedia.org/wiki/Combinatorics](http://en.wikipedia.org/wiki/Combinatorics)

I can't tell you how useful these branches are in terms of the indirect and direct positive influence they have your thinking about how you organise and process data. Which at the end of the day is the core work of most web apps.

Even the very basics will help you greatly, remember I'm talking about first year CS courses here!

</comment><comment><USER20> Depends on the industry I suppose. I work in the financial industry and I have used linear algebra quite a bit and graph theory as well. I would say linear algebra in pretty important as it is also used heavily in graphics/games.

</comment><comment><USER21> _Every_ programmer should be able to convert between decimal, binary, and hexadecimal notation, and be able to understand the bit-shift and bitwise operations. That's it. Programming is too diverse a field for any one branch of mathematics to be required for all of them.

Many fields require linear algebra, geometry, trigonometry, graph theory, and discrete math.

Graphics and 3D-modeling programmers will need to know matrices (possibly also quaternions) and vector math. You may also need screw theory and geometric algebra.

Engineering support will need to know calculus.

AI will need probability.

Scientific support will need statistics.

Cryptography will require all the maths that exist, plus some that haven't been invented yet.

Business support will need to know sexagesimal math--for the clock-watching. You will really need to know when 5:00 rolls around, so you can stop working on your stupid CRUD app.

In short, the more math you know, the more likely it is that you will able to apply it to any given program. And the more you know, the easier it will be to pick up something you need and don't have already. Practically speaking, you are better off seeking a shallow knowledge of a broad array of disciplines, and deepen your knowledge of specific topics as needed.

If you know imaginary numbers, that makes it easier to learn about duals, quaternions, null vectors, spacetime manifolds, and such.

</comment><comment><USER22> Background: I do a lot of work with apps at scale, so dealing with really big sets of data, and doing maths on it. With that in mind, I'm biased towards the maths that I use, but I'll try and be broader and as unbiased as I can be.

1\. Statistics. There's so much you can do with a really solid understanding of the basics of statistics, it's silly. It's massively helpful with things at scale where you get into difficult caching challenges, systems with multiple data sources and estimating data accuracy, informing based on partial or sampled data... Really useful stuff.

2\. Geometry. You'd be amazed how many problems there are that exist in n dimensional space. A good grounding in geometry will let you understand how lots of systems work. For instance, autocompletes tend to be solved nowadays by calculating distances between input shapes and words in n dimensions, where different stopping points add an extra dimension. Also really helpful when you start dealing with complex data systems.

3\. Interesting algebra. Mostly if you understand code, you'll pick this up pretty quick. Lots of philosophical similarities.

Beyond that, it depends on what fields you want to go in to as you can get really specialised. But whatever you write, knowledge of those three will always be handy.

</comment><comment><USER23> Binary numbers (1010 it's off to work we go!)

Boolean logic.

How numbers are encoded in binary. How ints, doubles, floats, etc. work under the hood on a computer. Can be learned on the job.

</comment><comment><USER24> Starting with the easiest:

boolean logic, boolean algebra

What does O(n) mean?

The compound interest formula

matrix/linear algebra, numerical analysis

The statistics behind A/B testing

numerical approximation of a derivative, integral, differential equation

Read "numerical recipes in C"

</comment><comment><USER25> Don't learn anything specific but be sure to be ready to learn everything when needed. I had to learn linear algebra when I was a 3D engine developer, then I had to learn statistics (or maybe learn to understand the notations of it so I could use scientific papers in my work).

In the end I think it was best not to have lost hours, days, weeks of my time on things I "could have used". I find it best to be prepared to learn anything.

</comment><comment><USER26> My first two jobs out of college were in FinTech -- lots of math there (partial derivatives, linear algebra, numerical analysis methods, stats and more)

Then later, I was in image processing -- a lot of linear algebra. Anything with recognition has mathematical concepts.

I'm tutoring a teen in game programming and keep having to take breaks to teach more and more trig.

Having a good grasp of probability and statistics will serve you in almost anything you do.

</comment><comment><USER27> Best math class I took in college was discrete math, it is extremely applicable to computer programming.

[http://en.wikipedia.org/wiki/Discrete_mathematics](http://en.wikipedia.org/wiki/Discrete_mathematics)

Highlights include Combinatorics, Set Theory, Graph Theory, etc. Great stuff, I liked it so much I kept the book even though the book store offered me $80 for it.

</comment><comment><USER28> Like other commenters have said, it depends a lot on what programs you're writing. You might want to know some harmonic analysis if you're writing audio software. On the other hand, if you're making user interfaces, knowing a little bit of geometric math (vector algebra, trigonometry, calculus) can go a long way.

</comment><comment><USER29> The jobs I've held have not been particularly 'mathy' but knowing linear algebra, numerical analysis and statistics have come in very handy over the years.

Knowing how to 'read' math has been helpful digesting Computer Science papers too.

</comment><comment><USER30> Tl:dr- In order; graph theory, linear algebra, number theory, and multi- criteria decision analysis. Game theory, set theory, nonlinearity, computational geometry a bonus.

Let's say you're learning some new algorithms. Your list might look something like the below list[1]. I'll add in brackets the sort of math you learn about by learning the algo if you get lost down the wiki-rabbit-hole. If you want to solve other similar problems, more of that sort of math will help.

1) Graph algorithms [graph theory]: Breadth first search(BFS), Depth first search(DFS), Strongly connected components(SCC), Dijkstra, Floyd-Warshall, Minimum spanning tree(MST), Topological sort.

2) Dynamic programming [self-similarity, finite subdivision rules, nonlinear equations]: Standard dynamic programming problems such as Rod Cutting, Knapsack, Matrix chain multiplication etc.

3) Number theory [Number Theory]: Modular arithmetic, Fermat's theorem, Chinese remainder theorem(CRT), Euclidian method for GCD, Logarithmic Exponentiation, Sieve of Eratosthenes, Euler's totient function.

3) Greedy [goal programming, simplex algorithm, multi-criteria decision analysis]: Standard problems such as Activity selection.

4) Search techniques [linear/vector algebra[2]]: Binary search, Ternary search and Meet in the middle.

5) Data structures (Basic) [graph theory]: Stacks, Queues, Trees and Heaps.

6) Data structures (Advanced)[more graph theory]: Trie, Segment trees, Fenwick tree or Binary indexed tree(BIT), Disjoint data structures.

7) Strings [set theory]: Knuth Morris Pratt(KMP), Z algorithm, Suffix arrays/Suffix trees. These are bit advanced algorithms.

8) Computational geometry [computational geometry]: Graham-Scan for convex hull, Line sweep.

9) Game theory [game theory]: Basic principles of Nim game, Grundy numbers, Sprague-Grundy theorem.

[1] [http://blog.hackerearth.com/2013/09/competitive- programming-...](http://blog.hackerearth.com/2013/09/competitive-programming- getting-started_11.html) [2] Scott Aaronson noted that the vector algebraic Eigenvector operation was the linchpin of google's pagerank, when applied to the adjacency matrix of the directed graph that is the world-wide web. So i assume that knowing some vector algebra might be useful for search. [http://www.scottaaronson.com/blog/?p=1820](http://www.scottaaronson.com/blog/?p=1820)

</comment><comment><USER31> You need much more math to survive in the field beyond the appcrap/webcrap level. Here's the description of a 3D SLAM library for robotics. This is what looks at an image from a moving camera and builds a map of where the camera is and of its surroundings.

 _" RobotVision is a library for techniques used on the intersection of robotics and vision. The current version (1.1) comprises bundle adjustment, feature initialisation pose-graph optimisation, and 2D/3D visualisation among other things.

The bundle adjustment class follows the classical approach - the first order sparseness structure is exploited using the Schur complement. However, compared to other straight-forward implementations, it has the following features: The second-order sparseness structure -- not all landmarks are visible in all frames - is exploited using sparse Cholesky factorisation (using the CSparse library). Optionally, the implementation supports the use of robust kernels in order to guard against spurious matches. Also, the implementation generalises over different transformations, landmarks and observations using template meta programming. Among others, SE3 pose transformation with 3D Euclidean points and 2D image observations are provided as a default implementation for monocular SLAM. Furthermore, the bundle adjustment class also contains an information filter for inverse depth feature points which can be used efficiently for feature initialisation within a keyframe-based monocular SLAM framework.

The pose-graph optimisation framework is using Levenberg-Marquardt, whereas the sparse Hessian is dealt with using sparse Cholesky factorisation (CSparse). Again, it generalises over different transformations. Apart from the standard rigid transformation SE3, it also supports 3D similarity transformations Sim3. In other words, it can also deal with scale drift which occurs in monocular SLAM.

Both, the bundle adjustment class as well as the pose-graph optimisation class uses Lie theory. Poses transformations (SE3, Sim3) are represented on a manifold/ as a Lie group while incremental updates are done in the tangent space around the identity/Lie algebra. In this way, we achieve a minimal representation during optimisation while ensuring that we are always far from singularities."_[1]

That's only some of what it takes today to do robotics.

The world is about to change. Tomorrow, everyone will discover that powerful humanoid robots are here.[2]

[1] [https://openslam.org/robotvision.html](https://openslam.org/robotvision.html) [2] [http://www.theroboticschallenge.org/](http://www.theroboticschallenge.org/)

</comment><comment><USER32> Graphs.

<comment><AUTHOR> Good call.. I had to learn them when I was building a Bitcoin arbitrage bot, and how to implement the Bellman-Ford algorithm.

Also, any game programmer worth his name needs to understand them for pathfinding algorithms (A*, Dijkstra, etc.)

<comment><USER32> What is a program but a directed graph?

</comment></comment></comment><comment><USER33> If you don't understand set theory, you cannot possibly be a programmer. That is to say, whether or not you realize you are applying set theory, it is the heart of programming.

<comment><USER34> Set theory is the heart of programming? I call BS. Can you provide a foundation for that statement?

And no, I'm not coming from "category theory is the heart of programming", either.

</comment></comment><comment><USER35> Sometimes I feel like I should have paid more attention in class, like when looking at an expression and wondering if it could be simplified or if all the parens are really necessary

</comment><comment><USER36> I work in digital advertising (sorry, world), and use linear algebra often. ... I suck at it, so I usually get somebody with a math degree to help me out.

</comment><comment><USER37> set theory, equivalence relations, partial and total orders, algebra (monoids, lattices, ...), graphs

</comment><comment><USER38> Modular arithmetic. Big-O notation.

</comment><comment><USER39> Understanding stochastic processes has helped me quite a bit in my data mining career.

</comment><comment><USER40> Ai/data sciences uses a lot of partial derivatives, linear algebra, etc

</comment><comment><USER41> You've got a lot of different answers, here, so I want to raise a question in your head instead: what, exactly, are you categorizing as _math_? I have been an academic, an engineer, and a backend-and-frontend web developer. As an academic, many of the professional mathematicians that I know cannot count a tip. One of the better definitions that I know of what they do is "creating art out of abstract patterns themselves." But computers are defined in terms of their manipulation of abstract symbols, so _any_ programming is in this sense some form of mathematics. More on that in a little bit. So the question is, what do you mean by "math" here?

Do you mean _calculation_? Then you need to understand how exponents work, the ballpark figure that 2^10 is about 10^3, that there are roughly 10^5 seconds in a day, roughly 10^-1 seconds in your reaction time, and roughly 10^9 things that your computer can do per second. So continuous things need to happen in less than 100 million operations, and, say, an O(n^2) algorithm will top out at sizes where n is around 10,000. That's the sort of arithmetic that you'll want to keep in your head, the mathematics of exponents. The computer will handle explicit calculations for you, but rules of thumb are unbeatable.

Maybe you mean the more "engineering math" topics. Some pieces of combinatorics may help you -- at minimum, knowing that if N people at a party shake hands, there are N * (N - 1) / 2 handshakes, which is also the number of cells above the diagonal in an NxN matrix and the sum of the integers from 1 to N - 1. (All of this should make sense if you stare at it long enough.) This simple principle underlies the "birthday paradox" math, that if you start randomly selecting values out of N, you'll start to see random collisions (selecting the same value) when k^2 / 2 is approximately N, or k = sqrt(2N). So, for example, you know that if you have a playlist with 50 songs on it, the gap between repeated songs is usually about 30 minutes (sqrt(2 * 50) * 3 minutes / song), and you'll need a smarter shuffle if you want it to be closer to the (3 minutes) * 50 = 150 minutes that some users may be expecting.

You should ideally also pick up factorials (and maybe Stirling's approximation of them), choose-functions, and the trick of randomly partitioning B balls into G groups by looking at binary strings pretending that 0's are balls and 1's are group partitions, hence the strings are of length B + G - 1 and the number of strings is the same as choosing B out of B + G - 1. Those sorts of patterns come up in a lot of different programming contexts, especially because a good hacker can often live by the axiom, "try brute force first" \-- knowing these rules will help you know how bad your programs are with respect to scaling.

A lot of engineering trickery is obscenely useful when you're writing computer programs, too: for example, engineers learn that when they know the _form_ of something but not the _exact_ expression, they should make sure that the "edge case" lines up. The _simplest_ example is when you're counting up on a 0-indexed array, what's the last element you read? If you've not memorized it, just say, "oh, if the array had one element, the last index I'd read is index 0, so the exact form must be `n - 1`." If you're programming a rotation, you might say, "Oh, this thing needs to be something like r * [± cos t, ± sin t] ... but which one is the cosine, which is the sine, are any of them plus or minus?" you can answer this question pretty quickly if you know what the answer is for t = 0, where sin t = 0 and cos t = 1.

Somewhere at the border between engineering math and true math is linear algebra. You do not need linear algebra in all circumstances, but it can enrich many circumstances and is required for a lot of them. If you're doing graphics, physics, simulations, probability/statistics, solving simple equations, or trying to solve linear relations, the techniques learned in a first-year linear algebra course will be invaluable and some of the vocabulary will stick with you.

The fundamental ideas of calculus -- like "let's tweak the inputs a little and see how the outputs change, maybe it's roughly linear", or "why don't I store this as a list of differences between adjacent elements?" can be quite helpful, and in fact the "derivative" operation has a powerful analogue in functional programming (a data structure's "zipper" turns out to be its derivative), and occasionally you actually need to optimize things, but this is less applicable than other branches of mathematics.

Is what you mean by "math" more abstract than calculus? At that even more abstract level we get some serious goodies. It turns out that there is a deep connection between mathematical models of the integers and useful data structures, if you can figure that out. Various algebras can be super-helpful, for example the patch-commutation algebra in the Darcs version control system, and the relational algebra underlying SQL. Learning a bit of lambda calculus can help you understand things on a whole new level. Finally, some basic thinking about propositional logic can really help to elevate your knowledge above simple boolean expressions, so that you can start to think of "foralls" and "there-exists" symbols, especially when you start to talk about type theories or logic programing.

More important than all of that, in my experience, is really knowing your languages from the ground up. You don't need to be any of these to be a copy- paste programmer: copy a file which does something like what you want, tweak some parameters which look interesting, constantly monitoring the output of the program until it passes the tests that you want to accomplish. That's going to be the most common job out there. But if you know your language's operators and reserved words and syntactic forms in-and-out, you can do something far better -- _abstraction_ \-- which will make your code far more useful in the end. But the thing is, if mathematics is making art out of patterns themselves, then programming language design is also, somewhere, a field of mathematics: and learning this is a sort of "math", too. There is a "math" of parsing. You can even find libraries of "parser combinators" \-- you might want to watch some talks explaining how those work. Similarly, there is a "math" to really understanding pointers and graph traversals and such.

I've seen people who have your "10 years of experience" and have never seen any of those things and don't really understand, for example, JavaScript's scope rules. They write fairly good code, but it can often be much, much smaller -- and faster and easier to maintain. So to me, that's the key first step. Understand a couple different languages from the ground-up, and how they approach the world.

</comment><comment><USER42> Set theory & basic boolean algebra (De Morgan's laws, etc).

</comment><comment><USER5> I'm deeply devoted to mathematics, and even I admit that you don't _need_ any math beyond boolean logic and arithmetic to have a successful career as a programmer.

The rest of this comment is a pitch.

All that being said, I have found that a little bit of math makes programming _way more fun._ I've been writing a blog called "Math Intersect Programming" [1] for four years now, and it's turned into a little catalogue of cool things you can do with math. While linear algebra suffices for a lot of these applications, the rabbit hole goes pretty deep past calculus and basic statistics. The central skill I've found useful is simply learning to read mathematics in a productive way (it's not like any other kind of reading you've ever done before, though if pressed I'd say it's closest to reading dense software documentation).

In image processing, you can cleverly manipulate graphics [2], make "hybrid images" [3] and digital watermarks [4], and do procedural content generation [5].

While we all know graphs are ubiquitous in algorithms (searching, ranking, data structures, etc), you can also do fun things like finding communities [6] and turning "hard" computational problems into neat games [7] (or vice versa).

You can do cryptography and cryptanalysis [8], hunt serial killers [9], share secrets [10], compute cheap and healthy diets [11], design markets [12], detect and recognize faces [13], and all sorts of other things (my blog just has examples I happen to think are fun, ignoring many examples that are actually lucrative).

More generally by studying math you learn to tell what problems should be attacked with what tools. You learn that any time anything exhibits symmetry it should be studied with groups [13]. Or that with some elbow grease you can solve lots of problems (like register allocation) by doing graph coloring [14] or linear programming [11] or some basic Fourier analysis [15]. The more you learn the more you get to think about, like "the shape of data" [16].

And before you know it you're like me and you think algorithms with elegant mathematical analyses are beautiful and worth studying for their own sake. You give up your overpaid software career, get a PhD in math, and wonder if you'll ever have enough time to learn everything you want to know.

[1]: [http://jeremykun.com/](http://jeremykun.com/)

[2]: [http://jeremykun.com/2013/03/04/seam-carving-for-content- awa...](http://jeremykun.com/2013/03/04/seam-carving-for-content-aware-image- scaling/)

[3]: [http://jeremykun.com/2014/09/29/hybrid- images/](http://jeremykun.com/2014/09/29/hybrid-images/)

[4]: [http://jeremykun.com/2013/12/30/the-two-dimensional- fourier-...](http://jeremykun.com/2013/12/30/the-two-dimensional-fourier- transform-and-digital-watermarking/)

[5]: [http://en.wikipedia.org/wiki/Perlin_noise](http://en.wikipedia.org/wiki/Perlin_noise)

[6]: [http://jeremykun.com/2014/05/19/community-detection-in- graph...](http://jeremykun.com/2014/05/19/community-detection-in-graphs-a- casual-tour/)

[7]: [http://jeremykun.com/2014/03/17/want-to-make-a-great- puzzle-...](http://jeremykun.com/2014/03/17/want-to-make-a-great-puzzle-game- get-inspired-by-theoretical-computer-science/)

[8]: [http://jeremykun.wordpress.com/2012/02/03/cryptanalysis- with...](http://jeremykun.wordpress.com/2012/02/03/cryptanalysis-with-n- grams/)

[9]: [http://jeremykun.com/2011/07/20/serial- killers/](http://jeremykun.com/2011/07/20/serial-killers/)

[10]: [http://jeremykun.com/2014/06/23/the-mathematics-of-secret- sh...](http://jeremykun.com/2014/06/23/the-mathematics-of-secret-sharing/)

[11]: [http://jeremykun.com/2014/06/02/linear-programming-and- the-m...](http://jeremykun.com/2014/06/02/linear-programming-and-the-most- affordable-healthy-diet-part-1/)

[12]: [http://jeremykun.com/2014/04/02/stable-marriages-and- designi...](http://jeremykun.com/2014/04/02/stable-marriages-and-designing- markets/)

[13]: [http://jeremykun.wordpress.com/2012/12/08/groups-a- primer/](http://jeremykun.wordpress.com/2012/12/08/groups-a-primer/)

[14]: [http://jeremykun.com/2011/07/14/graph-coloring-or-proof- by-c...](http://jeremykun.com/2011/07/14/graph-coloring-or-proof-by-crayon/)

[15]: [http://jeremykun.com/2012/05/27/the-fourier-transform-a- prim...](http://jeremykun.com/2012/05/27/the-fourier-transform-a-primer/)

[16]: [http://www.ams.org/notices/201101/rtx110100036p.pdf](http://www.ams.org/notices/201101/rtx110100036p.pdf)

<comment><AUTHOR> Those are really interesting articles! Thanks, hope to see more from you.

</comment></comment><comment><USER43> Well, a lot of computer science literally _belongs to_ math, as in, is a strict subset of math. (Including the words I just said, see, about subsets.)

Specifically, a lot of computer science belongs to "discrete mathematics", (because there are discrete states not a continuous interval of possibilities, but still math). so even for everything where you thought you were just learning computer science - when you look at sorting, trees, big-O complexity, correctness, graphs, one-way functions, lexical parsing, network theory, control systems, error handling, compression, etc, you're really just ... straight-up doing math, _by definition_. (or using a library, compiler, operating system, network stack, database engine etc, etc, etc, by someone who has.) I mean that it is literally the field of mathematics. Like when you remove two 'not' in a row you are just straight-up literally doing math.

So firstly, I would say that these are just some of the things that are directly used by people practicing computer science, even if only second-hand - [http://en.wikipedia.org/wiki/Discrete_mathematics](http://en.wikipedia.org/wiki/Discrete_mathematics) \- As well as the more specific, Oh, I heard it's impossible to evaluate whether a function will terminate... oh...I heard you can't compress random data at ALL on average... oh the shannon limit means we could never get that much data across this channel... wait, can you get the signal back after a fast Fourier transform - of course! that's what an inverse fourier transform does.. ... can a simple regular expression match if parentheses are matched and only correctly nested - answer: not a REGULAR one - [http://stackoverflow.com/questions/133601/can-regular- expres...](http://stackoverflow.com/questions/133601/can-regular-expressions- be-used-to-match-nested-patterns) etc. etc.

you see this stuff everywhere. but you just look it up and do it - well, it's math! basically all of the 'theoretical' stuff is. so it's not so much about finding parts of 'math' that a computer scientist should know...it's about realizing that most what you use (right down to boolean logic) is strictly math to begin with. you're _literally_ (not metaphorically) doing math every single day, all day, every time you negate a boolean before returning it.

reasoning about database opreations? straight-up set theory.

so it's like your real question is, what is the math that I would find useful if I learned it? And the answer is - as a computer scientist, "computer science" is the math that you would find useful if you learned it . . .

the other stuff, like geometry or calculus, is interesting but a red herring - in a way they could be considered the application logic. your calculus equations are only useful if your functions implementing them bother to ever return a value... you can hardly write two loops without at least thinking about time complexity. bam, math. _all the rest_ of computer science is math too. everything you do every day. it is just part of mathematics. so go ahead and learn more math - what part? the "computer science" part :)

</comment><comment><USER44> Functors and monads!</comment>


How did we get so busy? - <AUTHOR> http://www.newyorker.com/arts/critics/books/2014/05/26/140526crbo_books_kolbert?currentPage=all <comment><USER3> Reminds me of this article, which was also here on HN ages ago: [http://opinionator.blogs.nytimes.com/2012/06/30/the-busy- tra...](http://opinionator.blogs.nytimes.com/2012/06/30/the-busy- trap/?_php=true&_type=blogs&_r=0)

"Busyness" is a social defense against other people making us do things we don't really want to do and a mechanism for coping with feeling guilty about things we know we should do, but don't. My intuition is that people have had to project themselves as busier and busier over the last couple decades as technology has made us more efficient in order for this strategy to continue working.

If you're always "so busy!", your boss is less likely to give you more work; your spouse is less likely to ask you to do more around the house; you're not going to feel as guilty about only seeing grandma once a year or refusing to help your friend move; you can feel a little better about yourself when a friend lands an awesome new job or plans a cool vacation and you haven't really done anything. When you haven't seen someone in a long time and they ask how things are, you can give them the impression that things must be even better than the last time you saw them, because you've clearly been so busy improving your lot in life. Well, that's the idea, at least.

After I read that article I decided to try to be more honest with myself and the people I know about how busy I really was (which is often "not very" \- I, like the author, am the "laziest ambitious person I know."). It's a very hard habit to break, and it forces you to be more honest about the things you really _want_ to spend your time on and the things you're avoiding.

<comment><USER4> Came here to post this. I think this is the key bit:

 _It's almost always people whose lamented busyness is purely self-imposed: work and obligations they've taken on voluntarily, classes and activities they've "encouraged" their kids to participate in. They're busy because of their own ambition or drive or anxiety, because they're addicted to busyness and dread what they might have to face in its absence._

There was another article (which I can't find now) that summarized this even further to state that "I'm so busy" is actually code for "I'm a self-important asshole"... and there's a grain of truth to do this. "Can you help me with X? Can you do Y?" "Oh, I'd _love_ to help, but I'm _sooo busy_ doing other stuff that's more important than you!"

<comment><USER5> As someone who works a 40 hr/week job and a 20 hr/week job, (and the extra hours associated with learning various things that apply to each) while also having 3 kids, sometimes people are actually busy.

I coach little league, too.

<comment><USER6> Yeah, I think it's deeper than just being a self-important asshole. It's more about the fact that we are 1000 times more productive, as a species, than we were just 20 years ago, and yet, we all still work just as hard. This, coupled with always being connected means that our work and obligations never end, they just follow us around.

<comment><USER7> It all comes down to the yuppies (myself included) wanting to get ahead. The dream of becoming a wealthy entrepreneur is what keeps me from being satisfied working 40 hours a week and reading and relaxing after that, for better or for worse! Also the dream of injecting wealth into my larger family for generations to come.

<comment><USER8> A lot of what's being written in this thread hits home for me, but especially the 'wanting to get ahead' bit - part of the problem is job insecurity, knowing that your present position may not last, and feeling compelled to use leisure time to increase your marketability for future job applications. Even when I'm not actually working on work-related skills, I feel like I should be, which creates anxiety.

<comment><USER7> I agree 100% with everything you said. Considering our savings rates these days are atrocious, even a high paying job does not guarantee future job security

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Or we could look to Marx, who predicted exactly this state of affairs succinctly by showing that, at the most basic, there are three traditional ways to increase competitive advantage:

1\. Work more intensely over the course of a fixed working day (eg. the 8 hours most people normally work in the United States)

2\. Work longer hours thereby generating more surplus value while only being paid for a smaller proportion of your overall work. Today, this typically involves creating a culture that incentivizes overwork and disincentivizes the normal working day.

3\. Revolutionize the means of production thereby gaining an ephemeral advantage over the competition. Think the Japanese in the 80s with just-in- time production which allowed them to dominate the automotive industry. Automating work would also fall under this category. Notice this can require (1) or (2) as a pre-requisite to such innovation.

Under this analysis being busy would be a natural byproduct of the reigning economic ordering of society.

<comment><USER10> Marx seems superflous--it's more (likely) the red-queen effect

[https://en.wikipedia.org/wiki/Red_Queen_hypothesis](https://en.wikipedia.org/wiki/Red_Queen_hypothesis)

<comment><USER11> How is working longer hours an evolutionary trait towards survival?

<comment><USER12> Organisms are not the only things that face evolutionary pressures. If bosses spend enough energy on trying to employ only the hardest workers, the end result is work hours increase until as many people quit over hours as join over compensation.

<comment><USER13> Note that in white collar fields (most of us on HN) people are usually graded on "hours in the office" not "hours of productivity" and rarely if ever quit over hours, they just spend more time at amazon.com, facebook, HN, twitter, that kind of thing. "He's demanding we go from 10 hour days to 12 hour days so he can get a bigger bonus and we will get squat other than maybe a demand to work 14 hour days next year, well F him, I'm going to increase my time playing farmville on my phone and tweeting, from 4 hours to 7 hours per day" I've seen this kind of thing with my own eyes. This is the genesis of the effect where a bog standard boring off the shelf employee, when converted to "contractor" suddenly gets three times as much work done in a mere six hours as an employee required to be butt in seat for twelve hours can accomplish.

I think its a nearly universal truth amongst white collar employees that if they only had to be at work while actually working, they'd probably only be at work about four to six hours per day, but they'd get at least twice as much work done. This is obviously a Fortune50 kind of observation more so than a startup.

In the pre-internet era it was pointless meetings and teambuilding activities and water cooler talk and especially smoke breaks. Oh and extended lunch at desk, in addition to the actual lunch hour, plus extended breaks.

In the end, if not carried out to extremes, it works out for everyone. The white collar workers experience something like a grade school playground or perhaps kindergarten classroom experience where most of their time is spent talking about their feelings, and who's in or out of such and such club, gossip, and what they saw on TV last night, and the boss gets a promotion because obviously he's more effective because he had butts in seats for 12 hours and his management competitors only had butts in seats for 10 hours and that's all that matters because that's all that can be verifiably documented and measured. Its not a bad life, as things go, as long as you don't mind sitting around doing nothing in an office (literally) almost all day.

</comment></comment></comment></comment></comment><comment><USER14> > _"There is so much to learn and produce and improve that we should not spend > more than a dribble of time living as if we were in Eden. Grandchildren, > keep trucking."_ \- Richard Freeman, of Harvard

...somebody shoot this guy. Please.

When will we realize that so many great thought were thought because _smart people_ have had _free time_ to "let their minds wonder around". Think Darwin, the leisure-class naturalist with lots of time to travel, and the _theory of evolution._ Think Einstein, the underachiever working in a patent office with too much free time to think and the _theory of relativity._ Who will have time to integrate all the knowledge that we "mine" into useful theories, when we've build a society where the smarter we are, the less time to think you have?!

This became obvious since the '30s, when Bertrand Russel realized the direction we were heading ([http://www.zpub.com/notes/idle.html](http://www.zpub.com/notes/idle.html)), despite the fact that thinking about such things was not his job, and most likely _because_ at that point in his life he had a lot of free time to think around. As opposed to Keynes, whose job was to think at this, but was probably to "busy" to see the big picture and totally ignore the "red queen effect" of consumerism.

EDIT+: oops, I always forget that Americans can take any invitation to violence seriously :) I toned it down _a bit._

<comment><USER15> That was exactly what I needed at the moment, thanks for sharing "In Praise of Idleness". Brainwashed as I am I keep thinking that I need to shake the slave mentality and focus my life on leisure time _to ultimately become more productive_ of course.

<comment><USER16> Along the same lines, I would recommend Pieper's _Leisure, The Basis Of Culture_. It's somewhat a religious work, but for the most part is broadly applicable.

<comment><USER15> Thanks, very much appreciated!

</comment></comment></comment></comment><comment><USER17> We do have a lot more leisure, but it is distributed at the tails of our lifespan, the times of lowest productivity. We sure don't start full-time work at the age that kids on the farm do. And even a century ago, most kids outside of big cities did live on a farm. On the other side of a career, many of us will spend a decade or two in retirement and good health.

But inbetween... well, the typical young upper-middle-class couple (as usual, the real point of fascination here) has committed themselves to huge expenditures of interactive time with their kids. That's really where the time went.

Today, highly-educated parents bring their kids home from soccer or tae kwon do practice, pick up dinner on the way home and read to each of them for a school-mandated half-hour after helping them with homework. This is crazy different from a few generations ago. Ask even your grandparents how much time your parents spent in a "play pen" as toddlers, or roamed their neighborhood after school when they were older. Now there's a competitive cultural expectation that you need to invest in your children's development daily, so they become socially self-realized and not economic roadkill.

<comment><USER18> > We do have a lot more leisure, but it is distributed at the tails of our > lifespan, the times of lowest productivity.

That's fine, for retirement. But this viewpoint presupposes that kids' education is not _productive_ , if not immediately and directly, but eventually and indirectly (eventually as adults, indirectly as productive members of society, which is more than being trained to do some specific job). Kids spend, what, 10-13 years on elementary and high school (and equivalents). And that is not even counting the ones who go into higher education.

Supposedly, this elementary education is necessary in order to be productive in a lot of modern jobs, and in order to be a productive member of modern society - society is certainly more complex than when your whole society consisted of your family's farm and neighbouring farms and a nearby village.

The only thing which might be said is _unproductive_ with kids' childhood is the long summer breaks. Which is, perhaps ironically, a remnant of the past where kids needed to productive on their family's farm in the peak season (though I have for that matter gone to elementary school with the kids of farmers, who needed to be excused from school for some days because they needed to herd their sheep down from their gracing areas).

<comment><USER13> "The only thing which might be said is unproductive with kids' childhood is the long summer breaks"

That assumes that schooling is relevant to a kids future. My 4th grader already operates at a numeracy and literacy level higher than adults "are supposed to". You're not supposed to be able to calculate percentages and figure out word problems, that will ruin the employment of tax preparers. You're not supposed to be able to read Harry Potter, you're supposed to watch TV. Achievement at or above a 4th grade level is strongly discouraged on a mass cultural level, although obviously not here on HN. Vocational training is useless because he won't be in the workforce for a decade or more making "training" useless, and according to labor force participation rates the odds are reasonable he will not be a participant in the labor force anyway, especially as trends continue, making vocational "education" useless. Depressingly, there are a lot of white collar jobs that boil down to adult day care, fundamentally, where lack of productivity is probably a net societal gain!

So... the true cost is free day care (aka school) is not available in the summer. On the other hand educational costs aka property taxes are microscopically lower. Obviously we are not going to permit teachers to experience a 30% boost in standard of living were we to expand their workload into the summer, so labor costs will not change but obviously energy costs to keep the lights on, and probably air conditioning, would increase, along with internet bandwidth use at the school, cleaning chemicals used, trash bags filled, etc etc.

The reason why kids "need" ever more and more years of education for ever simpler jobs (on a societal average...), is to keep them out of the labor force, to reduce competition. Otherwise, if bright teens put all the adults out of work, the adults wouldn't be able to afford children, which breaks the cycle in about a generation. You need to keep the adults employed in their breeding years long enough to squirt out the next generations kids, no need for much more, and keeping younger adults / teens out of the workforce is a social engineering technology to accomplish that. Its quite possible as existing trends continue that we'll naturally assume no one would ever hire a supermarket cashier or waitress without a PHD in something, perhaps philosophy. That would serve a useful purpose of keeping as many people in (profitable) schools as possible, maximization of student loan income, etc.

<comment><USER18> > That assumes that schooling is relevant to a kids future.

Yes, that was one of the assumptions: "But this viewpoint presupposes that kids' education is not productive, ".

That whole premise was beyond the scope of my post, though I strayed a little bit into it.

</comment></comment></comment></comment><comment><USER19> Hi, I've been a lurker here for some time now. I rarely ever comment on stories because, well, I have better things to do. But now, I really need to broaden my perspective. I just don't get it.

*Disclaimer : I am young (23), broke but happy.

This past year, I spent four months in Asia travelling. I rock-climbed for a while, tried bungee, canyon swing, diving, trekking and the motorcycle. I was able to afford all that on my student's salary working and studying for my degree. I met amazing people and I'm just excited about everything since.

There's been a lot of discussion lately about the 80 hours work weeks and quite frankly, I just don't get it! I did work 66 hours work weeks this past fall for my honours thesis. I started getting anxiety attacks. It wasn't healthy.

I don't mean to make a point. I want to hear some. I want to understand how some of you do it, and, more importantly why. I keep thinking that "Hey I was able to have this experience with less than 20k a year. Imagine what I could do with the salary of a `real` job! (Or freelancing)"

Why do you do it?

<comment><USER20> Because I have a 8 year-old boy, and a wife who takes care of him well.

I want him to have a great education, wide knowledge and experience, and be ready to face life well, be kind to others, be equipped to work hard and make good money, be a good husband and a good father.

That takes lots of time and money, and is completely worth it.

<comment> Al-Khwarizmi So you work 80 hours a week, meaning that you have almost no time to enjoy life with your kid... so that he can grow up to be like you and do the same thing, and presumably educate their children to do the same as well.

So your ideal of how things should be is to have a saga of people working their asses off, in theory for the good of the next generation, but in practice for nothing because the next generation will work their asses off for the good of the next one, etc.

Maybe it's culture shock (I'm a European) but honestly, how can anyone think that is "worth it"?

<comment><USER20> Well, I don't "work" 80 hours a week.

I work 40 hours a week.

I commute 8 hours a week.

I volunteer (he comes with me sometimes) 2 hours a week.

Lunch breaks: 5 hours.

(so far 50 hours)

Then I do all the routine stuff that needs to be done: Grocery shopping, hardware store, car maintenance, etc.

Then I spend another 15 hours a week working on extra stuff (learning, following the news, doing stuff for clients, coding).

Then there is the social events, the school events, church on Sunday, basketball practice on Tuesday at 7 and games on Saturday at 1 or 2.

Then there is sleep, and making dinner, cleaning the house, etc.

In the end, there is about 10 hours a week for just me and him time (watch movie, play games, go out and explore the world, park, read together, etc)

For me? I'm lucky if I get 2 hours a week for me. I'm even more lucky if they're contiguous.

(No time for TV, you notice, and precious little for computer games.)

<comment><USER21> _I commute 8 hours a week._

There's an easy way to get a bunch of hours a week back.

<comment><USER20> Except my boss isn't happy with that concept.

</comment></comment></comment></comment></comment></comment><comment><USER22> By way of Andreas Schou at G+: Malthusianisms

[http://www.scottaaronson.com/blog/?p=418](http://www.scottaaronson.com/blog/?p=418)

 _Why, in real life, do we ever encounter hard instances of NP-complete problems? Because if it's too easy to find a 10,000-mile TSP tour, we ask for a 9,000-mile one._

 _Why are even some affluent parts of the world running out of fresh water? Because if they weren't, they'd keep watering their lawns until they were._

 _Why don't we live in the utopia dreamed of by sixties pacifists and their many predecessors? Because if we did, the first renegade to pick up a rock would become a Genghis Khan...._ [See Aldus Huxley's _Island_ for a particularly depressing exploration of this concept.]

 _Again and again, I've undergone the humbling experience of first lamenting how badly something sucks, then only much later having the crucial insight that its not sucking wouldn't have been a Nash equilibrium. Clearly, then, I haven't yet gotten good enough at Malthusianizing my daily life—have you?_

</comment><comment><USER23> "Suppose that a Walmart clerk and a hedge-fund manager both decide to take the afternoon off to attend their kids' baseball game. For the clerk, a half-day's forfeited pay could come to less than forty dollars. For the hedge-fund manager, an afternoon's worth of lost trades may cost millions, which is a lot to give up to watch little Billy strike out looking."

This is bullshit. If you are working at Walmart you can't just take the day off on a whim nor would you because you can't afford it.

This quote from the article pulled me out of whatever fantasy bullshit land the authors are writing from.

People are busy because they want meaning in their lives. Doing things gives you a sense of purpose.

<comment><USER24> That hedge-fund manager also has legions of analysts and traders that do the manager's bidding. The idea that the manager is doing the actual button pushing on a trading terminal is bullshit as well.

Friend of a friend owns a modest investment fund and hasn't set foot in the office in a year. He directs his staff via smartphone from his boat.

<comment><USER25> Though I do not agree with th author, the author might be suggesting a situation which warrents the presence of the manager, may be meeting with a prospective client etc. Then there is a high probability someone else picked up the prospect and he lost millions.

Yes, it is all conjecture.

</comment></comment></comment><comment><USER26> I like this idea:

 _Change your language. Instead of saying "I don't have time" try saying "it's not a priority," and see how that feels. Often, that's a perfectly adequate explanation. I have time to iron my sheets, I just don't want to. But other things are harder. Try it: "I'm not going to edit your résumé, sweetie, because it's not a priority." "I don't go to the doctor because my health is not a priority." If these phrases don't sit well, that's the point. Changing our language reminds us that time is a choice. If we don't like how we're spending an hour, we can choose differently._

src: [http://online.wsj.com/news/articles/SB1000142405297020335870...](http://online.wsj.com/news/articles/SB10001424052970203358704577237603853394654)

<comment><USER27> Sometimes "I'm busy" is a way to say "I'm not going to edit your résumé, sweetie, because it's not a priority" without pissing off your SO. We might actually like how we're spending an hour, we just try to control the emotional reactions of others.

</comment></comment><comment><USER28> I like the winner-take-all hypotheses best. A lot of people are employed in advertising, marketing, PR, sales, lobbying, law, etc. and even those who are not might be required as part of their job to do some of those things from time to time.

The problem is that it's more lucrative to manipulate people to buy things they don't need or to trick them to pay more. Note that there are industries where marketing costs are outrageously high, sometimes higher than production and/or R&D. A company that doesn't spend the same amount on marketing or lobbying might make less profit (e.g. due to network effects, other scaling effects, special protections or subsidies) and thus seem like a bad investment.

This leads to a sort of arms race: everybody needs to hire more and more marketers, patent lawyers, etc. and donate more to political campaigns.

Solution: Heavily regulate advertising and lobbying. Some kinds of advertising could just be outlawed, and the rest could get (time or space) limits. Anonymous electronic cash would also help to make internet publications independent from corporate advertising money. Tax money could be used to support independent institutes or publications that try to spread actually helpful consumer advise.

I think some winner-take-all mechanics might also be at play on a personal career level. Note that there are actually lots of people with nothing but free time, though usually not by choice. Many governments deny those people a decent standard of living (some even a home, food or medical care), forcing them take shitty, low-paying, insecure jobs. The constant threat of losing your income to someone else who will work harder or for less money kind of naturally creates a situation where you either work long hours or not at all.

</comment><comment><USER29> I don't understand how you can expect to work less hours in a capitalist economy. Basically the whole point is to make money and if you're freeing up time that means you're more productive for other work.

If my job is to do a, b, and c and using technology I make it so I only have to spend time doing a, then an employer is going to find something for me to do. Could be busy work, could be letting someone go and giving me their job to save money.

If I don't they'll find someone else who will.

Technological advances that were suppose to help the employee work less, has only helped business run at lower operating costs.

<comment><USER30> Overtime the market (through price competition) ought to pass those savings onto consumers (ie the employee) . That is a form of increased compensation -- when your paycheck buys you more of what you want.

</comment></comment><comment><USER31> [https://en.wikipedia.org/wiki/Parkinson%27s_law](https://en.wikipedia.org/wiki/Parkinson%27s_law)

My hunch is that we're so busy because capitalism seeks to find local maxima in the possible space of all profits, and because so many people are involved in it, it works pretty well (as far as hill climbing algorithms go).

What keeps me up at night is knowing that there is a higher point that can only be found by going down the descending side of the hill, potentially for an extended period of time.

So here I am at the bottom, wondering if I should turn back or try another hill. It was a lot more work walking downhill than I thought it would be. I keep wondering if there's some other search function I could employ that would reveal where the peaks are or even transport me to them. Sometimes I picture where a hill would be but nobody listens. They are too busy climbing their own hills. Then it vanishes and reappears under someone else, and people admire how hard that person climbed. Lately the best strategy seems to be doing as little as possible and riding the hills as they grow around me. As someone born and raised to climb, I don't know what to make of this.

<comment><USER32> " Lately the best strategy seems to be doing as little as possible and riding the hills as they grow around me"

I am not quite convinced that this solution is universal (which is a claim you didn't make) or practical for a large set of people. What does it translate to in more tangible terms? Refuse to go to school/seek a better job/invest in something more worth one's time in wait for an unexpected propulsion to the top of a hill?

I agree that the hills are rather unstable and various unaccounted for factors can cause the searching algorithm to fail. Most often being that we fail to account for all the other dimensions which also have hills that somehow need attention. One dimension is profits and it is a very popular hill, but all of a sudden you hit a point and realize that there exists a hill in health, and relationship, and personal growth, etc.

What do we do as a response? Stop searching? I doubt it. It might be better to instead, accept the fact that our algorithm will never provide the perfect solution; that to optimize for one dimension (income, for example), we will have to sacrifice optimizations in other dimensions (relationships, leisure etc.) due to a finite resources and constraints outside our control, and in doing that, define priorities.

The priorities need not be final values, but mutable based on environmental conditions. Today, a 60hr week might be a reasonable priority in order to - <USER2> at least, in the hopes of being able to - eventually drop that to 20hr weeks and 40 hours with family and other interests.

[btw, great analogy]

</comment></comment><comment><USER33> I'm surprised that nobody has mentioned one of the key components of busy-ness for the average worker: unemployment. Labor force participation is down even though productivity for the average worker is historically way up. Owners of capital get can more done with fewer workers today than ever before for many different kinds of businesses, so it is not surprising that people work harder and are busier while more folks are finding themselves unable to find work in traditional ways.

</comment><comment><USER34> I think it's a combination of many reasons, many of which the article cited, but then from other articles I've read as well.

At least for myself, I've noticed that I have used busy-ness as an excuse to not do something I dislike. A rapidly growing synonym by the way, is I'm "tired."

As for why people stay "busy" beyond the excuse factor, I buy most into the argument about keeping up with the Joneses. We live in a very consumption- driven society and people are always scaling up their "needs" rather than being happy with what they have. Consider the consultant that buys a house upon making manager, and then a bigger house upon making partner. Were any of those upgrades truly necessary for the 2-person couple? No, but they"felt" necessary because that's what we do. We climb ladders and scale up.

I'm less inclined to buy the argument that people stay busy because working provides meaning. It's not that I don't think work provides meaning, it's that I don't think most people find meaning in their work today. Rather, work is the tedium that you experience so that you can climb a ladder and get stuff, and continue the up-and-to-the-right cycle.

</comment><comment><USER35> I was surprised that the author did not include the Puritan American work ethic as a possible explanation. That is, the idea that work = virtue.

[http://en.wikipedia.org/wiki/Protestant_work_ethic](http://en.wikipedia.org/wiki/Protestant_work_ethic)

</comment><comment><USER36> Why are we busier?

Go here [http://www.tradingeconomics.com/united- states/productivity](http://www.tradingeconomics.com/united- states/productivity) change the start of the graph to 1959. I would argue that technology has radically helped our productivity but at the end of the day, people are always expected to get better.

Honestly I don't know if this is sustainable but the idea of always growing from a gut check doesn't seem to be. The question could be what is the breaking point and what will break?

[http://www.bls.gov/lpc/](http://www.bls.gov/lpc/)

<comment><USER37> Gains in productivity don't help the working class much; they mostly help the owners of companies. Those owners have no financial incentive to reduce working hours to compensate for gains in productivity when they could rather cut half their workforce and tell the remaining workers they need to work harder/longer because there is more competition for their jobs now.

Those who predicted a "leisure society" back in the 1950s obviously didn't realize Marx predicted the opposite would happen a century earlier.

<comment><USER36> Exactly. To achieve a leisure society we would need to see GDP grow while the productivity index either was flat or decreased.

If you use the same link and look at GDP per capita on that same graph, in 2008 area, productivity started to overtake GDP.

</comment></comment></comment><comment><USER38> My guess is that we as humans tend to look at what we've missed out on rather than what we've gained. During Keynes's time there wasn't quite as much competition for one's time and attention, and whatever they had probably wasn't as cheap. Now we just have so much entertainment at our disposal that we can't feel satisfied with what we have.

I'll call it the _Deal or No Deal irrationality_. Essentially, if you go on that show hoping to win $1,000,000 but end up with just $100, you probably feel pretty disappointed. The $999,900 you didn't win ends up eclipsing the fact that you won $100. $100! A free night out with your friends! A nice fancy dinner! Who doesn't want that sort of bonus?!

[I might have accidentally stolen the above example from a Dan Ariely book. If I did then I do apologize]

Now in our society we have competing forces of remaining sociable, watching TV, browsing the Internet, maintaining hobbies, going on vacations, and (as the article notes) trying to work and more more in the process. I mean, I've had to _sacrifice_ watching TV and playing video games just because I need to to have 'more productive leisure.' Board games, lifting weights, going out with friends, and programming are things that I like to do, sure, but that doesn't quite fill in the gap a video game may do in the same way. At the same time I'd like to do more biking and get into other more artistic hobbies, but the time cost to learning is so great and the ROI relative to what I already have on my plate.

<comment><USER39> $100... for the hours of your time it takes to apply, get accepted, show up, sit around in the green room, partake in the gameshow itself, and make your way back home. It's not free money.

<comment><USER40> And it's not even close to $100, after taxes.

</comment></comment></comment><comment><USER41> Why is there no consideration of unemployment in this exploration? In order for leisure time to be evenly-distributed, in an anti-freeloader society, work would have to be evenly-distributed as well. That means having two employees working 20 hours, instead of one working 40. However, employers would need to be able to supply the workers the same salary they now pay the 40-hour worker, or else the workers would have to be willing to consume less.

</comment><comment><USER42> I was reminded of something written by George Bernard Shaw, a contemporary of Keynes and as well as a playwright, a co founder of the London School of Economics, saying the harder he works the more he lives. Maybe people are busy because, to some extent, they want to be. The finding mentioned in the article that the richer people are the busier would fit with that. Quote below:

"This is the true joy in life, being used for a purpose recognized by yourself as a mighty one. Being a force of nature instead of a feverish, selfish little clod of ailments and grievances, complaining that the world will not devote itself to making you happy. I am of the opinion that my life belongs to the whole community and as long as I live, it is my privilege to do for it what I can. I want to be thoroughly used up when I die, for the harder I work, the more I live. I rejoice in life for its own sake. Life is no brief candle to me. It is a sort of splendid torch which I have got hold of for the moment and I want to make it burn as brightly as possible before handing it on to future generations."

</comment><comment><USER43> Awesome article. I don't have much to add, but it's interesting how "funny" we are as a species in that we're never fully content. What we think of as a "perfect life" today will be trivial in 100 years and that society 100 years from now will yearn for their own perfect life.

<comment><USER44> An alternative that is not to be easily dismissed is that in 100 years we will have learned to manipulate our contentment. If handled badly enough, this could become our final discovery. Not that we would then care.

<comment><USER45> reminds me of a previous front page submission: [http://lesswrong.com/lw/1lb/are_wireheads_happy/](http://lesswrong.com/lw/1lb/are_wireheads_happy/)

</comment></comment></comment><comment><USER46> An evolution-based theory is that we are genetically programmed to ensure our offspring's survival. This means that whatever tools, knowledge and experience parents have picked up along the way are improved and applied to raising their children. Parents will therefore observe and learn from other parents and their own research for healthier foods, better education tracks, both leadership and teamwork development activities, and whatever else we are convinced will help.

That drive then gets co-mingled with the need for acceptance and competitiveness (also evolution-based). The soccer mom satisfies all those drives concurrently: Improved survival rate for offspring, need for acceptance by a group, competitiveness for resources.

Thanks to evolution, we are pretty much spring-loaded to drive ourselves crazy busy in our 21st century world.

</comment><comment><USER47> Email+IMs+notifications, everywhere, anytime, that's how.

<comment><USER48> False sense of urgency.

</comment></comment><comment><USER49> I'm a naturally competitive individual and I like to out-compete my peers at work - in other words, to win. I don't think this part of human nature will ever lessen no matter how far technology advances.

<comment><USER50> You should re-calibrate your winning condition to "spends the most time relaxing" instead of "makes the most money".

Really, you should do whatever you like, but part of the problem is that our collective winning condition is based on a number that has, after a certain point, little relation to happiness.

Personally, I try to optimize my happiness. I'm not doing that great a job though because I still spend more than 40 hours working a week. I think my ideal would be to spend 25-ish hours at work and the rest on "leisure"[1] activities.

The nobel economist who invented the GNP (predecessor to GDP) even warned that "the welfare of a nation can...scarcely be inferred from a measure of national income"[2]. Yet here we are 80 some odd years later and it seems the only thing that matters for a nation is GDP growth and the only thing that matters for a person is salary.

Those are nice things to track, but they don't tell you anything about the welfare and happiness of people. Trying to optimize GDP/earnings growth is almost entirely the reason the US doesn't have universal health care, or a higher minimum wage, or mandated child-care leave or vacation leave, etc. We're too scared that it might impact a number without any regard to the actual humans who have to slave away in misery* to attain it. We need to recalibrate our winning conditions to something more, well, humane.

* - misery is mostly hyperbole, fwiw

[1] - leisure activities for me would be a side business, cycling, hiking, gardening/farming, but they could really be anything. [2] - [http://en.wikipedia.org/wiki/Simon_Kuznets](http://en.wikipedia.org/wiki/Simon_Kuznets)

<comment><USER51> Jonathan Haidt's "The Happiness Hypothesis" makes the point that very few things actually long-term moves the needle when it comes to happiness:

Meditation does. As does therapy. And drugs.

These can move our "normal range" of happiness. Most other things, Haidt argues, will temporarily bump our happiness up or down, but we quickly revert to our normal range.

Some things that generally don't affect our happiness in the long term according to Haidt: The amount of time we work or spend on leisure activities. Major health problems that are not degenerative (heart attack, losing your legs). Winning the lottery. Getting that big raise at work.

The reason, it seems, is that we _adapt_ very quickly. Winning the lottery will make us very happy for a short while, but without a lot of discipline we've shortly adapted to our new-found wealth and the needle goes back down to our "normal range". Losing your legs will make you depressed for a while, but soon we adapt and the needle springs back up. Getting a raise is great for a month or three, but then we're used to it and looking forward to the next one.

As long as things are steadily getting better, we are mostly happy. If they are steadily getting worse, we are mostly unhappy. Even seemingly earth- shattering events that totally changes our lives only tends to affect most people for a while.

This does explain some of the obsession with GDP: It is a proxy for growth, and ongoing growth _is_ associated with happiness. But as point out, optimizing for GDP can happen at the cost of negatively affecting other things that are also associated with happiness, and the net result is not necessarily all that great.

An interesting aspect of Haidt's claims is that we should not aim for a _too rapid_ improvement if they make further improvements harder. That is, it's better to get a steady 3% increase in salary, than 50% now, and then nothing for many years. If you do get that 50% raise (or a huge exit), it is better not just for your finances but for your _happiness_ to invest most of it, and slowly increase your spending over time.

<comment><USER50> Interesting and seems to match my experience.

My guess is the freedom to try new things would be a way to maintain or improve ones happiness. There are a ton of things I wish I had time to do/learn/experience, but the general trend of society is to chase the dollar through "steady" work.

</comment></comment></comment></comment><comment><USER52> You are only busy if you choose to be in this country. However, how you make the choice is implicit by your level of consumption. I am happy to live on 30k/year even though I make almost 200k, because in 5-10 years, I don't want to be so busy.

You can make the choice--either live an extravagent lifestyle and remain busy, or live modestly for a decade or less and then do whatever the fuck you want 24 hours a day.

<comment><USER53> Doing 'whatever the fuck you want' costs money too, and its something you'll have avoided due to the frugal life style. So, at the point you retire early, either your frugal habits have become ingrained, or you quickly learn that 'fun' comes at a price. Its an interesting conundrum to say the least.

<comment><USER48> >Doing 'whatever the fuck you want' costs money too, and its something you'll have avoided due to the frugal life style.

Hrm?

Going without a fancy car and electronics isn't the same thing as "doing whatever the fuck I want."

For me, I consider myself frugal in a sense. I don't have hardly any material wants and I try hard not to buy much of anything. I don't want a fancy car, I went for a cheap efficient one. I basically don't have any wish to keep buying "stuff." I don't care what anyone thinks of me because I don't have good "stuff." I drove a beat up car FOREVER even when everyone made fun of me for it.

What I do is I spend my money on fun. Taking weekend trips at least once a month for example as something that costs money or going out with my friends. I'm not frugal in that sense, but it is what I choose to spend my money on. I try to do things cheap as possible. I have plenty of money and way more than I need even with these expenditures because I don't acquire "stuff" or want or need a big house for all my "stuff."

In all honesty from what I noticed just from the people I know that the "I'm so busy" people are the same people who are running on the hedonistic treadmill faster and faster.

</comment></comment></comment><comment><USER54> That "Overwhelmed" book is excellent. Halfway through it now and it's really altered my perspective on everyday life.

</comment><comment><USER55> One analogy to consider is that peoples with argiculture had much worse living standard than hunters-gatherers. Yet, given that they were tied to a patch of ground, they've drove the hunters-gatherers out of their traditional hunting- gathering grounds and eventually took over the world.

The progress doesn't necessarily prefer better standard of living.

</comment><comment><USER56> Am I naive to believe that we're on a good way of fulfilling Kenyes's prediction and that it's all thanks to capitalism? The world is a much better place today than it was 100 years ago.

</comment><comment><USER57> [http://idler.co.uk/](http://idler.co.uk/)

It is _possible_ to make a business out of being idle, although I suspect Tom and Victoria are quite busy really.

</comment><comment><USER58> tldr. I'm basing my below comment on the title of the article.

I think it's just an out growth of our evolution. I mean throughout human history we've had to be 'busy' to survive. Now there is a small historical ripple in that pattern where we empirically don't have to adhere to the same ethic to survive, but it's still ingrained into us from our history.

</comment><comment><USER59> Why people need boolean logic as in "Keynes was right OR wrong" ?

Contrary to computer science you can be right AND wrong.

</comment><comment><USER60> Usury. The only way money is generated is by debt. Debt, by definition is encumbered by interest. Thus, the only way to generate money to cover the interest is to generate more debt, this is a feedback cycle, requiring accelerating borrowing just to stay where you are. I think this is a large part of why we are so busy today. We are always behind the eight ball, at every level.

<comment><USER42> > The only way money is generated is by debt

Huh? There are loads of other ways to make money. Write some software for example. Or if you are the government then print some.

<comment><USER60> Educate yourself: [http://www.bankofengland.co.uk/publications/Documents/quarte...](http://www.bankofengland.co.uk/publications/Documents/quarterlybulletin/2014/qb14q102.pdf)

</comment></comment></comment><comment><USER61> I really can't help but read the diaereses, they insist on using, as umlauts.

</comment><comment><USER62> Offtopic, but the date on the article says 6 days from now..

<comment><USER63> That's probably the day the article will appear in the print. It's very common practice among websites of print publications, so that there's no discrepancy in dates between the online and print editions.

<comment><USER64> Close. Yes, they keep the same date, but the common use of the date is the _last_ day it should be available for sale, so the day before the next issue is out. This lets bookstores and newsstands throw out everything with a date before today, no matter the frequency of publication. For weekly magazines, it is thus six days in the future. Monthly magazine need give only the month, and that does correspond to when it should be sold.

<comment><USER65> That's very interesting. Thanks for explaining it.

</comment></comment></comment></comment><comment><USER66> Greed.

</comment><comment><USER67> If you look at corporate employment (the situation of the lower classes is a different matter) people _are_ doing about 5-10 hours of real work per week. Real work is so rare that it's a political token allocated as a favor. If you pay your dues and make your bosses happy, you _might get a real project_ after a couple of years.

The rest of that time is spent acquiring and maintaining social status.

Under corporatism, you don't get a leisure society. You get total disenfranchisement of those who lose in (increasingly noisy and degenerate, over time) political tussles and end up with "the wrong kind" of resume, and a frenetic but wasteful contest in which those who are still in contention beat the piss out of each other to make themselves eligible for the (dwindling) supply of real projects.

When you have such a large number of people with nothing better to do but jockey for social status, you have a lot of cheap labor and it's easy to assign pointless grunt work that doesn't need to be done, and that does little for a person's career or general employability-- and people will do it.

That, above, is what happened. Also, read nlawalker's post, because (s?)he nailed it.

</comment><comment><USER68> How did we get we busy? (or did we?)

Average American watches 5 hours of TV per day: [http://www.nydailynews.com/life-style/average-american- watch...](http://www.nydailynews.com/life-style/average-american-watch..).

Perhaps people spend more time at work then they used to, but while not at work they spend way less time working on things like mowing the lawn, cooking, washing clothes, ETC.

Women blaming men for them being too busy need to weight their options IMO. If you are too busy, quit your job and stay home. To maintain the quality of life that existed while Keynes wrote this book, a single income is often adequate. It's not worth killing yourself over.

I think what much of what explains the wealth gap is free trade and illegal immigration. We import everything from China today. We would not allow these sweat-shops in our country with children working in dangerous conditions for pennies an hour. We wouldn't allow it here, but we do support it by buying these products. This breaks the whole premise that Keynes was basing his predictions on (Illegal immigrant employment as well). People can get rich paying illegal workers almost nothing, or importing a product from China and marking up it's price by 8-10x.

This throws things out of the balance that he envisioned.

<comment><USER69> Or, you know, male significant others could take up an equal amount of responsibility in the household.

<comment><USER70> Most of the "responsibility" is dumb things that don't actually need doing; more equal households are generally more equal not because a man's doing more but because a woman's doing less.

US employers make it hard for professionals to work part-time and hard for those who do to get promoted, so it's probably better to have one partner focus solely on gaining income and the other taking care of the household. AIUI the evidence is that both men and women are happier when they adopt the traditional roles than when they reverse or try to balance them.

</comment></comment></comment><comment><USER30> Of course they blame men. Never mind blaming misguided feminism, pushing women to endlessly new heights of perfectionism, elitism and competition both within and across their fairer sex.

And strangely its not OK that the man knows how to relax, minimizes extraneous work and does a sufficient job...

Hits a nerve for me if you can't tell.

<comment><USER68> You sexist... How dare you challenge feminists, They have every right to fight mother nature... So what if they are biologically and mentally a perfect fit for taking care of children and domestic duties. So what if men are the obvious natural choice as breadwinner. So what if this ruins countless marriages and families, so what if kids are raised by day care providers who don't give a lick about them, so what if it causes tens of thousands of abortions by career women each year.

Taking the man who is biologically programmed (via evolution or creation) to be the leader, head decision maker, and breadwinner essentially switching him into the minority power role because he is not the primary breadwinner? How could that ever hurt a marriage? How could that ever make his wife respect him less?

Taking the women and putting her in roles of abstract logic and non emotional decision making against her nature? how could that ever cause stress for her. How could sending her kids off each day to be raised by a day care provider ever cause her guilt or grief due partly to her in-built nurturing instincts/programming? How could she avoid hating her husband for not being the mother that he should be?

How could any of this negatively affect society today and for future generations? That would be obscene. Just look at the positives of where we are today... Emmm better get a microscope.

I don't blame feminists for their beliefs, I blame men (past and present). If men would have respected and taken care of their wife's and daughters the way they should have, they would have been happy, fulfilled, and never started rebelling and trying to turn against men and even against nature itself.

<comment><USER71> Dude, when you figured out you were banned, what maked you think that posting the same comment under a new account is a good idea? Try taking a hint.

By the way, that's the naturalistic fallacy you're pushing, and it's horseshit. Horseshit you have elaborated into a self-justifying worldview. You might ask what's so wrong with your life that you need to spend your time like this.</comment></comment></comment>


Finding and Exploiting Safari Bugs Using Publicly Available Tools - <AUTHOR> https://googleprojectzero.blogspot.com/2018/10/365-days-later-finding-and-exploiting.html <comment><USER2> Do Project Zero's blog posts not focus on Google products purposefully, or is that just a perceived bias?

I understand and appreciate the work Project Zero does; it makes us all safer when these bugs are found, and fixed. It just seems like the only project zero blog posts that make the front page are aimed at Microsoft or Apple.

<comment><USER3> Having done a bunch of fuzzing myself, my guess would be Google is picking up their problems before they get to a release in the main, and most people don't discuss bugs they find in internal testing.

<comment><USER4> Actually, project zero does not give google any better treatment than anyone else.

(IE Google bugs have the same disclosure rules/timelines/etc)

</comment></comment></comment><comment><USER5> SVG's SMIL bites again (the bug used to write the exploit). This ancient animation system is incredibly hard to implement without security bugs due how GC interacts with the SVG SMIL DOM apis (animVal, baseVal, etc). SMIL is one of the reasons Chromium implemented C++ garbage collection.

With finite engineering resources, there's always a tradeoff between maintaining backwards compatibility and making forward progress. I think SMIL would be something better left behind.

<comment><USER6> Do you imagine that Apple has finite engineering resources? The last I heard was it is the richest company on earth. They're just satisfied with the status quo in which Google does all of their security work and nobody cares because of decades-old misperceptions about Mac vs Windows malware safety.

<comment><USER7> Money alone doesn't create more qualified engineering applicants. They may be able to use money to poach those resources but the candidate pool for this sort of work is extremely finite.</comment></comment></comment>


Billionaire Robert F Smith to pay entire US class's student debt - <AUTHOR> https://www.bbc.co.uk/news/world-us-canada-48330044 <comment><USER2> I don't know, I read this and felt bad for those kids and their parents who had hustled extra hard to pay without college loans.

<comment><USER3> Hopefully it works out to be its own reward.

</comment></comment><comment><USER4> It might be interesting to see, in a few decades, how the beneficiaries of this differ in future success from other comparable students.

<comment><USER5> This is the most American problem I've seen in my life</comment></comment>


On the design of distributed programming models - <AUTHOR> https://blog.acolyer.org/2017/08/17/on-the-design-of-distributed-programming-models/ <comment><USER2> Personally I think that distributed computing will become more prevalent as AI continues to develop. Having a single medium machine dedicated to an AI speciality is better than a high end machine running multiple AI's. Your phone is an excellent example of multiple specialist programs running on a single device. If you had multiple devices running a single app and they were all linked together you can get more, and more powerful performance out of them.</comment>


Raspberry Pi using Qt and OpenGL for sprite and particle demos - <AUTHOR> http://www.geek.com/articles/chips/raspberry-pi-25-pc-easily-handles-sprite-and-particle-demos-using-qt-and-opengl-2011105/

<comment><USER2> And this, my friends, is why doing even basic graphics work in the GPU is superior to nearly all CPU based models.

Apple figured this out back in 2002 with OS X 10.2's Quartz Extreme, followed by Linux's Compiz in 2006, and MS's WDDM in Vista in 2007.

iOS has had GPU compositing from the beginning thus why scrolling is so much smoother than on than Android, which is just getting it on very recent hardware.

<comment><USER3> It depends on how you define 'superior'. There is still value in 'ease of development'.

<comment><USER4> In all the examples, the OS libraries handle the actual busywork involved in communicating with the GPU, choosing shaders, and such. The interface, and thus the ease of development is the same.

</comment></comment></comment><comment><USER5> I wonder how well standard Qt apps do, in particular running the QtWebKit demo browser. Good enough to take the time to make a 10 foot browser UI?

<comment><USER6> I don't see why not. Firefox runs ok at the moment (with no optimization) and there is at least one Googler working on getting Chrome working.

<comment><USER5> I assume you mean "I don't see why it wont run well". For what it is worth if Qt is showing up on the screen there is a an extremely good chance you can already run Arora or the demo browser (and if Qt is compiled the demo browser binary probably exists already), no porting needed. This is the point of Qt. Given that Qt apps should just work, the real question is how good is the hardware? Is the memory too little? Is the cpu to slow? etc

<comment><USER6> Yes, I understand your question.

My response was supposed to indicate that the Qt browsers probably will run ok, given that there is sufficient CPU power to run Firefox.</comment></comment></comment></comment>