Recent submissions

Comment · 10 years ago
There is also ftype:

  (declaim (ftype (function (number string) number) add-string))
  (defun add-string (a b) ...)
Comment · 11 years ago
It sounds like what you're describing is not figuring out at a high level what to do, but formalizing that into low-level instructions for a computer. This goes exactly to my point. What I meant by "algorithm design" is strategy selection, which I want to be careful to separate from strategy formalization for a computer. It is the latter that I think laypeople struggle with the most, however, the fascination with algorithms often drives attention to the former. For example, it's easy to be impressed by the cleverness of binary search, but it's actually relatively straightforward to understand as a high-level concept. The harder thing for a layperson is to formalize binary search into a working set of computer steps. I think there is a certain cognitive bias at play, where the formality of fine detail seems lowly and menial, so we want to skip over it, in spite of the fact that it's actually the biggest hurdle for most people to overcome.
Comment · 11 years ago
The ill-conceived notion that parents giving children procedural instructions is somehow like programming brings me to a question for you as a teacher.

I've noticed that the industry really prides itself on algorithms and this is commonly reflected in interviews.

However, it seems to me that merely discussing algorithms, however clever they might be, is actually an intuitive human activity not unlike the example of the parent verbalizing procedural instructions to their child. Therefore, I would argue that algorithm design, though clearly an intellectual challenge in its own right, does not target the essential part that makes programming hard and inaccessible to so many people. (Disclaimer: a high-level algorithm discussion is usually followed by whiteboard coding, which I'm ignoring in this critique as a separate kind of activity).

Do you agree with this claim that algorithm design is not actually the thing that makes programming so difficult for laypeople? Can you give your take on what does make programming hard or what students struggle with the most?

Comment · 11 years ago
Well there is the Steve Jobs solution: don't have license plates.
Comment · 11 years ago
> And this meant that the great danger to the peace and freedom of the world came not from Moscow or "international communism," but from the U.S. and its Empire stretching across and dominating the world.

Can anyone explain how this statement makes any sense for a supposed libertarian at that time? Any way you look at it, the Soviet Union 1) suppressed freedom and 2) espoused militarism. I'm puzzled why it seems to get a free pass here.

Comment · 11 years ago
> neither Windows, Mac and Linux have any kind of permission system

Actually, OS X now has the beginnings of an iOS-like permission system for location services and access to your contacts.

Comment · 11 years ago
Airbnb's technical quality has been obviously crap for its entire existence. Why are we taking engineering cues from a glorified room rental site that is frequently buggy?
Comment · 11 years ago
The whole tone of this question smacks of "gold fever". I'm guessing you're thinking about entering the field, so I'm going to tell you what someone told me during the original dot-com bubble:

Only become a programmer if you truly enjoy it.

If you're getting into programming solely because you think it's "on fire", you're going to have a bad time. It is always possible at any given moment for various reasons that VCs could collectively pull back on tech, or some major employers could downsize, and flood the market with excess talent. No one can predict this shit. There was a time post-bubble when many programmers could hardly give away their skills let alone make big bucks. Not long later there was a time when it was a foregone conclusion that all software development was going to India. Now here we are talking like "is this money wagon going to go to infinity?" and I say stop. Just stop. Do it because it suits you. Do it because you like the work. Please don't do it for "the money" which may or may not deliver for you, ever.

Comment · 11 years ago
Please don't complain about one of the most fertile job environments and wish for it turn it into another Europe.
Comment · 11 years ago
Be careful not to conflate offshoring with outsourcing, which the article does. Some startups will have their own employees overseas, but my point is specifically about outsourcing to other companies.
Comment · 11 years ago
Two things:

1) You don't outsource your core in business, so outsourcing tech is not appealing for tech startups, period.

2) Typically tech startups are more of a growth optimization problem than a cost optimization problem. Outsourcing to cheaper parts of the US, let alone overseas, usually doesn't increase the startup's growth potential.

Comment · 11 years ago
Comment · 12 years ago
Greenspun's tenth rule rears its ugly head. Go reinvents Lisp macros, poorly.
Comment · 12 years ago
I strongly disagree that the high cost of living is beneficial for startups. Keep in mind the very term Silicon Valley comes from chip companies (Fairchild, Intel, etc.) who came to SV because it was cheap, open farm land. There isn't a business in the world that doesn't want to optimize on costs.

Take a look at a modern SV company now: Apple. It creates lots of jobs in SV, but far more in China.

SV succeeds in spite of the costs, not because of them.

Comment · 12 years ago
I think too often people make social rather than technical decisions

Indeed. It's sad that as engineers (who theoretically espouse logic, reason, and evidence) we still end up making so many decisions based on herd behavior.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton