Hacker News new | past | comments | ask | show | jobs | submit login
How to be a Programmer (mines.edu)
108 points by nreece on April 30, 2010 | hide | past | favorite | 17 comments



Many of these are pretty good, but on a startup-focused site, I just have to point out this:

"It then becomes your job to help the entrepreneur find a reasonable solution which is merely hard and gets most of what they wanted."

Many startups are founded by doing something impossible (Google, Apple, Akamai, YouTube, PayPal). Most of the remainder are founded by doing something useless (Twitter, Facebook, del.icio.us, Reddit, etc.) This is for very good reason. If something is neither useless nor impossible, it's quite probable that there's a big company out there that's already working on it, and they can bring more resources to bear than you can.

So if you are the entrepreneur and not merely working for him, it's your job to do the impossible. And yeah, that means turning it into the merely hard and then doing it. But if you aim for "merely hard" to begin with, you'll probably end up producing a mediocre product in the end. After all, products never have quite the same glamor when they're done as when they're conceived in your head.


I think your point regarding impossible/useless ideas is very insightful, but I'd take slight exception to the word 'useless'. I think a better word would be pointless - things like twitter, reddit etc aren't useless by virtue of the fact that millions of people do use them, if however you describe what they do (and, as you point out, this is the reason that big companies wouldn't approach those sorts of ideas) then a reasonable response would perhaps be to describe them as pointless.


"Useless" is said with a touch of irony, because obviously millions of people do use them. However, when they launched, the reaction from all but a handful of early adopters was "Who would ever use that? How can this possibly be a viable business?"


Perhaps "useless" from the perspective of advancing the state of the art?


> Perhaps "useless" from the perspective of advancing the state of the art?

Facebook is advancing the state of the art wrt computer systems. http://www.stanford.edu/class/ee380/Abstracts/100505.html (plug) is one of the things that they've released.


HipHop isn't exactly advancing the state of the art wrt computer systems. It serves FaceBook's needs very well, but source-to-source translation is already pretty well understood. There's Google's Closure Compiler (JS to tighter JS), GWT (Java to JavaScript), PyJamas (Python to JavaScript), Fog Creek's Wasabi (Visual Basic++ to PHP and Visual Basic), all the compilers that target C, and a bunch of toy or one-off production systems that serve their authors' needs but are never released.

The "state of the art in computer systems", IMNSHO, is things like Jekyll (bidirectional source-to-source transformation, where the generated C code is readable & editable and can be transformed back into Jekyll), Subtext (programming by copying & editing), Epigram (dependent types let the computer write most of the program for you, interactively), and a few other research projects that most people have never heard of.


> HipHop isn't exactly advancing the state of the art wrt computer systems.

HipHop advances the state of the art in the same way that a faster JVM does, or a new VM for that matter.

The claim was that Google was advancing the state of the art and Facebook wasn't.

If you exclude the application of known techniques to new problems or in new situations, Google hasn't advanced the state of the art, so the claim is false.

If you allow the application of known techniques to new problems or in new situations, then Google has advanced the state of the art. However, so has Facebook. (Thrift counts too.)

No, Facebook hasn't done as much, but it's younger.


Cassandra and Hive have to count for something as well.


At least reddit has /r/coding, unlike yc where all I get to read lately is about fights between Apple and Adobe.


I've been through this before and it does offer a lot of good advise but I really feel like it isn't describing how to be a programmer but just some tips for issues that programmers face. Being a programmer requires things like creativity and curiosity as well as experience with these things.


I was going to ask about whether there is any of the latter but I guess not. Too bad.


Just a suggestion, but it worked for me. Play games that involve scripting/programming. The more fun you make it, the more likely you'll be to remember what you've learned. You could start with WoW - learn how to create mods. What I enjoy most, though, are MUD's ( multi-user dungeons). What these are, basically, are text-based games, most of which are RPG's, played through a client. IRE has made a few games in which combat requires scripting. Being able to script in your client's chosen language ( I use Lua ) gives you a big advantage over those of the player-base who haven't learned to script. I got into this about three years ago, and I'm still learning. While it's the most fun I have gaming, it's also sparked my interest in learning to program. What's best is I find myself grasping programming much more easily because of what I've learned while MUD'ing.

http://welcome-to-croatia.com/holiday-apartment


Please don't try to use Hacker News for SEO. Your comment is fine, and Croatia is a lovely country, but holiday apartments in Croatia have nothing to do with either your comment or the story.


Its a shame this is out-of-date a bit... optimising loops by removing floating point operations? On x86/x64 its hard to remove a native float and replace it with something faster without some quality/accuracy tradeoff these days.


Fixed point arithmetic is often much faster than even native floats if you really need the speed somewhere.


Managed to skip forward to the one section with the word "synergize" twice in one pageful, stopped reading immediately.


I like the bit about doc, I am in agreeance with most of that section.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: