skysight-inc/HackerNews huggingface dataset:
1. I learned in the 4th grade. I built my elementary school's static website and was allowed to use the computer lab instead of attending class, as my parents had already taught me the majority of stuff through ~6th/7th grade level. It was a "gifted" classroom, and most of the students were there with me. After I built the website, I had my parents buy me a book on C, which happened to be K&R. I can't say I understood exactly what I was doing at that age (I doubt anyone ages 8-11 really has that mental connection), but I knew how to make command line programs.

2. See 1, more or less. I'd say I -really- started to learn when I built my own website in high school that started bringing in money and still does today. It was a full web application to start and I just kept rebuilding it from scratch as I learned new stuff (object-oriented programming, design patterns, etc).

3. I wouldn't really call myself a professional. I went into bioengineering and medicine, but I still program every day because it runs our current world and will for the foreseeable future. I market myself as a software engineer, but I only accept jobs I find interesting or that pay 6-7 figure salaries.
My parents bought me one of these when I was in basic school:
http://en.wikipedia.org/wiki/ZX_Spectrum

I was happy playing games for a few weeks and then it broke. It took one month to fix, so meanwhile I was left with the BASIC manual it came with. I read it to withstand the cravings and when I got the computer back I was already more interested in coding than playing games.
I don't buy much into the vision that it's harder for the elder generation to find a job in general. To me it seems that when you're 25, you may be to some degree judged by your perceived potential. When you are 50, you're not, it's only your past achievements that matter. So there must be a much more polarized job market, clear winners and losers.
> Then you weren't interested in hardware programming; not one iota.

That is a bit of a leap. I read what (s)he meant as more "interested in programming hardware" - as in controlling hardware and making it do things. That doesn't mean you need to be interested in the low-level hardware side of things to be interested in making the hardware do stuff.
"JavaScript Done Right" requires actually doing it right.
A single counterexample is enough to refute a universal claim.
I am above average developer who learnt by myself, to answer your questions -

1) How did you learn to code? Totally self taught from books and RTFM // Self taught plus MOOCs or comparable resources // Some classes in college but no CS degree, remainder self-taught // Self taught plus a developer bootcamp or some non-degree related formal education // CS degree and personal efforts

Unfortunately I never worked in any company so had to learn all the coding by myself and I strongly feels, if you want to be a good developer, you should work in a company and on real world applications with people who knows more than you which speeds up the learning. Though I am working full time on my own marketing product, if given a change, I would love to work part time in any company for free. There are few things which you can never learn from books and tutorial videos

2) When did you start learning (perhaps informative because of the recent rise of MOOCs)?

I do have a computer science degree from a reputed engineering college but I learnt nothing there, though I do have exposure towards programming for 10 years, I only started building real world apps in last 12 months.

3) At what point (if yet) did you start working as a programmer professionally relative to your initial efforts?

last 12 months, I am learning and writing code in parallel.
Self-taught.

1) books, and working on personal projects to "scratch an itch"; progets grew larger, at some time I started doing it professionally

2) ages ago :)

3) I started as a sysadmin since that's what I self-learned from, programming came later maybe 3-4 years

Reading other replies, I totally forgot to mention I first started programming in Basic on a TI-99 with a tape recorder for storage. :D
You're dismissing it too quickly. I've used this method on my stock contact forms and it has worked 100%. Nobody, nobody bothers writing custom bots for your thing, so, no matter which method you use, if it's not something common, it will stop 100% of spammers, if you're a low-profit site for them.

If you're Craigslist, sure, it won't work, but you probably aren't. All my clients' contact forms thank me for using (something like) this method.
Off Topic: What's that August device they keep mentioning? I'm having a hard time googling for it. Thanks!

EDIT:

Finally I google reverse image searched and found it's the August Smart Lock: http://www.august.com

Just adding a .com to the august would have done it as well ;)
Dividends = capital gains tax.
Completely agree. The average Indian middle class parent has a lot of other beliefs too which are comfortably side-stepped by their children. In my personal experience, many people use their parents' views as an excuse for their own lack of conviction in what they want to do.
How can this be applied to, say, recovering highly-compressed images and video?

Can you generate a PSF as part of a compression step that will turn a smudged and compressed image back into a better-than-conventional-compression approximation of the high-quality original?
I've been following and editing articles in this topic area for about 10 years. Not only are there factions of editors representing both sides of the issue, but there have been generations of editors who have passed through these articles.
we are talking about a product that is designed to mimmick the node.JS api. Your point is about as irrelevant as it can be.
I had no computer until I was 18 (couldn't buy one :/), so in order to compensate, I stayed in the school's computer lab whenever I was allowed, where I played mostly with TurboPascal and BASIC. Just after the high school, I started volunteering in the local IT company, doing some VB stuff. After 3rd month they have employed me on a full-time basis.
11 years FF, I am in Germany where almost everybody working in the IT has a degree, developing PKI-related products in .NET, and before that I rejected a CTO offer.

I still learn and read a lot, I have always one course going (most recently on Coursera).
The best alternative to Wikipedia is Wikipedia plus a dose of healthy distrust for the content therein. Look up the edit history, check page discussions, verify the references. Do the homework and you should be safe.
AeroDoodle - interactive CFD in your browser
Exactly. Programming isn't exactly something that can be "taught". I mean not everyone who is a CS major turns out to be a programmer. They can teach you a tool but they can't teach you how to program. as for the questions:

1,2) Me and a cousin started out making games in Macromedia Flash when i was little kid, Probably when i was 8 or 9. At first it was only copy pasted code and/or keyframing stuff. After i Studied BASIC in 9th grade, got a little more confident and started playing around with ActionScript more. By the 11th grade I was making pretty cool stuff programatically in Flash 5 (or i think was MX by then) I made a lot of game physics and game AI and stuff. In freshmen year in college, i got introduced to C and later C++ and just took off from there, learning mostly by doing, making harder programs etc. Competed in a lot of national level Programming Competitions and won.

3) Recently graduated with a CS major and working at a big software solutions firm, working on enterprise level software for insurance companies.

Btw, i think people should really take up CS in college. While you can learn programming and a ton of languages on your own, there is a lot of timeless theoretical stuff that is best learned in class. Oh and also Software Engineering stuff like "Object Oriented Analysis and Design" or "Requirements Engineering" or "Design Patterns". That stuff comes in handy a lot!
I learned by having problems I needed to solve, and I knew that a computer could solve those problems.

For me the most important thing is not having a rule book. If you believe deeply that you need a CS degree or to follow a popular route into the industry then I believe that you will fail to learn as everything will seem to be an obstacle that you are not privileged enough to overcome.

Without a rule book, and with the belief that anything is possible... and if you can break down your problems into logical things you can describe... then you can teach yourself how to solve the problem.

My first step was a simple one, I had a manual mailing list which was names and addresses on bits of paper that I photocopied onto Avery label sheets. This was in 1993 and when the mailing list exceeded 2,000 I knew a computer could do this easier then I could. I purchased an IBM 386 and had no internet access (or knowledge that it existed) and could only learn from books as I also knew no programmers.

I purchased a book called Programming Perl, and just set to it. I think it took about 2 weeks to get the full mailing list application built, with flat-file datastore, printing, etc all complete and working. Looking back, everything was horrible about the implementation, it was ugly, inefficient, virtually unmaintainable... but it worked.

By 1996 I had started selling merchandise to the mailing list and written stock management, VAT accounting and reconciliation, the paper mailing list, an email marketing list, a shopping cart web-site, a community area on the web-site. This was effectively a shift from hobby programmer into a professional programmer and the start of a career in computing.

If I had been told those things were hard, or belonging to the problem domain of highly educated programmers, then perhaps I wouldn't have tried.

Believing in advance that anything was possible gave me the motivation to persevere, an obstacle would clearly be overcome if I could just stand back and think clearly about it.

After that... just carry on solving problems. Every time you have a new problem you gain fresh experience. Over time, that adds up.
Why all the bashing? If you don't want JS controlled hardware, use the Raspberry PI or an Arduino. It's an alternative, with a different approach directed towards people with a different skillset.

The successful funding shows that there are well enough people interested in this.
1) self tought qbasic,c++ and php.Via book learn qbasic and tutorial in msdos 5.0
2)After had trouble not enough income work in mechanical engineering company(Car industry).target want to make spc..
3)After taking certificate in 2007
4)Still learning other language like java,.net mvc razor but still fallback to php for real life working.
> we are talking about a product that is designed to mimmick the node.JS api. Your point is about as irrelevant as it can be.

It is relevant. I'm questioning the wisdom of that design choice.
In most developed countries, you have just managed NOT to spend 100 000 USD

In most developed countries, college is much cheaper than that (to the student). I paid $1400/year to attend a respected university.
Sometimes the obvious needs to be said.

Most obvious: In 1997, Stallman wrote an essay in which the protagonist requires a copyright holder's permission to read a book. In 2009, Amazon remotely pulled "1984" out of Kindles.

From the beginning, Stallman has said that closed software holds users hostage. In 2003, Stallman started saying that Windows spies on users. Now, besides the features Stallman was complaining about, we find out that the NSA works to make software less secure, Microsoft actively gives vulnerabilities to the NSA, and Apple is tardy about applying security updates. Both Microsoft and Adobe are trying to get users to switch to unwanted annual subscriptions instead of traditional license ownership.

Stallman has also said that cell phones spy on users. That is increasingly apparent, with cell phone records available for the taking and fake cells to do individual stings.
How does this compare to Openswan for building multi lan tunnels?
1. By reading the source code of tape programs and magazine source listings. The BBC Micro boots to a command prompt and has Basic in ROM, so that was fairly helpful... and from then on for other languages, self-taught by viewing source code.
2. As soon as i could! (aged about 7)
3. My second job, after 3 months of hell in telesales.
The parent isn't arguing for local by default, just against global by default. Insomuch as you buy into the arguments in that link, the answer is to do neither (i.e. you must always use "var"). Most of those arguments are actually even more damning to global by default.
Cool articles about Neuroscience and AI
Designing Glastonbury Festival's official chocolate
Every article in the world is biased. Wikipedia is of course,but what is interesting in Wikipedia is not the articles themself, it is the discussions and debates.

Let's not even talk about TV, TV pure is evil. Internet is at least what we make of it. TV is a propaguanda machine that shapes and controls the world.
What I meant is that it points out biased articles in a way that itself is biased. To be more specific, it seems to have a pretty strong pro-Israeli bias.
Okay, reading another one of your posts I think I've gained a tiny insight into what you're trying to get across.

You have the assumption that "Talking to hardware" necessarily involves dealing directly with binary protocols. And javascript isn't good at that. (though it CAN do it, if pressed)

And you're right on both counts.

I think what you are missing though is that on a product like this, why wouldn't you do the binary protocol stuff in a C module and expose a nice easy api in the scripting language as is the usual practice? In the presentation it very much looks like that is exactly what they do.
Searal stats blown my mind
User Expertise Stagnates at Low Levels
sounds like a republican think tank with a web 2.0 twist...
I would think not. By lossy compressing the image you have already lost information necessary to reconstruct it again. The method uses information from all three color channels to reconstruct the image. So all the information is there, the image is just blurry because the color channels are shifted (chromatic aberration).
I have a simple mechanism like this in the comment fields of a few of my sites. And it shoots down 99.9% of mechanical spams. Yet, although my sites are not that popular, I have a few tens of spam attempts per day, and once in a while they succeed to come through.

What's interesting is that they do seem to monitor the result. If I leave the succeeded spam comments for a while, the attacker adapts their strategy to follow the succeeded pattern. (Usually the initial attempts are just a neutral comment, irrelevant to my contents but doesn't contain any URLs or product names. Once it penetrates, they start spamming with URLs.)

I'm not sure if there're human behind this, monitoring bots activities, or bots are actually sophisticated enough to adapt.
Negative Captchas are only good against bots that hit many different sites and don't specialize in yours. Which probably means they are fine for when you are starting out.

However! If your site relies on people not creating lots of fake accounts and spamming the site, you may want to require verification of a cellphone number. After all, cellphone numbers are expensive to obtain, right?

Or are they? I heard Craigslist tried this and people somehow defeated it?
I know what you meant: The examples the article cites are biased - most of them stem from one side of the conflicts. The article actually discloses the authors affiliations at the end. But the techniques it shows are not only used by one side and the article never claims that they are. So in itself it is educating the reader to keep an open eye whenever they read a (wikipedia) article. It helps you to avoid biased articles from both sides and that seems to be the authors primary intention.
1) How did you learn to code?

It started with a book named "Basic para niños" (BASIC for Kids,) which as you may guess, taught me some BASIC when I was 8 years old. Then a few years later I learnt some basic Pascal (I don't remember where from, it may have been a class in my school, when I was around 11 or 12.) Then I taught me some assembler from a book (around 15) and Visual Basic (and Visual Basic for Applications) around that time, too. I didn't learn anything new until 17 when I started with Lisp and a little later, Python. Then in my university I was taught C (which I complemented by reading TFM, i.e. the K&R book.) After that I've learnt on my own many more languages, up to a certain fluency. The list of things I can at least write a "hello world" (actually if I have learnt it I can write something larger once I get back into the language structure, because every language I learn is for "something") includes Basic, Pascal (well, actually I don't remember much about Pascal,) C, Lisp (that's Common Lisp mainly, and quite a lot of Emacs Lisp... I can write Scheme, but somehow I never got really into the deeper parts of it that make it "Scheme",) Prolog, Forth, Go, Javascript (that's for the browser and for node.js,) Awk, Bash (heh,) Java (ugh,), octave/Matlab, R, PHP and probably 1 or 2 more I'm forgetting right now. I'm currently writing quite a lot of Go, trying to find some use for J to learn it (it's fg crazy!)

2) When did you start learning (perhaps informative because of the recent rise of MOOCs)?

When I was 7-8, that's (whoah) 23 years ago, in 1990-91, before I even had a computer at home.

3) At what point (if yet) did you start working as a programmer professionally relative to your initial efforts?

I'm not sure when the correct timing is. When I was working as a researcher I wrote quite a lot of code as part of my work, and now even if I write a lot of code for work, my main work is not being a programmer. It took a long time, of course, because I started early and didn't start to do real work until right after college.
I started with a ZX81 around age 12, one or two models before Spectrum. It didn't have any games, but making games was a big motivation for me when getting it. Hell it didn't even have a tape station or any way to store your programs. So I would turn it on and type in some basic code from various computer magazines - usually some simple game - which would then be lost as soon as the computer was turned off again. It had 1kb of ram, which could be expanded with a bulky external cartridge of 16kb.

So I taught myself Basic. Later in school I was taught Comal 80, some variation of Cobol taught in Danish schools. I learned Pascal later, also in School. When Internet came to Denmark in 1995 I taught myself PHP v1+2+3, and later Javascript, and started my own little business creating websites, based on a selfmade CMS. PHP + javascript has served me well for 18 years, but I think its time to move on to something like Go - so thats what I am planning now.
Adding a <label> saying "Do not fill this out, antispam filter" should probably be enough to mitigate that. (Disclaimer: I am lucky enough not to have to use screen readers etc.)
if you are serious about being a programmer and willing to learn anything you need to know and have the urge to build things i'd say go for it. maybe you won't be making any money instantly because coding doesn't mean money flowing but in time you'll be able to make money. heck, maybe you would build something good and start your own company.
My alternative is Wikipedia minus humanities topics. Much cleaner.
I wouldn't be surprised that you could make the convex optimization algorithm independent of the lens. That would just be prior information for the algorithm which you won't necessarily need.
[HN]Nice animated video Must watch this [video]
Ask HN: Fraud Detection Tools.
i am planning to build fraud detection tools for credit card and online fraud..any suggestion??
I think his point is that the choice of language at google isn't exactly a managerial or strategic decision. They just happen to have a lot of java devs (probably at senior positions now, since they were hired a long time ago).Even if they have gone out, if most of your stuff is made in a language, it would be really difficult for new comers to shift that paradigm to some other language.

The part about C++ was to describe a similar scene. When they had mostly C++ devs, their language of choice was C++. and now they have mostly java devs, so java it is!
Clickable:
https://news.ycombinator.com/item?id=6467914
"Taking PHP Seriously" by Keith Adams (Facebook) [Slides Strangeloop 2013]
Didn't think about it, when I played Armada I didn't play online (still had a modem!) and the computer only sent one cube at a time. And I always was more like playing the Federation, I liked the ships more (I don't remember the name of the frigate class, but the special shot, bouncing among enemies was great, and the long-range destroyer "bombs" were also deadly: its range was barely a few more pixels than defense towers from the other races.)
> For christ's sake, you suggested Java and Objective-C for the task. How do you expect to have any credibility after that?

Because while they might not be considered "hip" languages, they have large developer communities and are comparatively straightforward to pick up for any web developer that isn't familiar with them, yet they still have good support for the task at hand: talking to hardware.

> For a novice language, why are you expecting a typical task would be decoding a binary protocol?

Because they're talking to hardware, and because working with binary is actually much simpler (if your language doesn't have some bizarre aversion to it).

If you've ever taught novices to program, it's actually easier to start with binary as you avoid all the complexity of text encodings and parsing. You want an integer? Read an integer. No length prefixed fields. No reserved characters. No escape sequences. No terminating characters. No character set encodings. No case sensitivity or symbolic equivalents to worry about. The worst you might have to deal with is endianess and usually you can dodge that issue by starting with native endianess. C makes it harder with it's "not sure what width that is" fixed point integers, but that's part of why you don't pick C for that job either.

Working with binary only really becomes a pain once you have to start talking to humans.
Just the latest trend me-too startup founders are chasing, so they can be seen as 'elite' ("fire fast!"). I'm glad I don't have to work for some 20-something nerd without social graces or empathy.
I'm getting really tired of this "it has massive adoption" trope.

Let's be clear about it, the merits of the language have nothing to do with its adoption. It's widely adopted because Javascript has a stranglehold on the browsers and people don't have a choice. Nowhere in the software space would such a monopolistic position be acceptable, but hey on the web for some reason it's OK.

So yeah, it's the dominant language but not because it's oh so good or because people think it's awesome (though some of them do and I respect that), it's only because there's absolutely no alternatives.
Procrastination should be solved by lighting fires, not filling buckets
> People arguing about programming languages are like people who focus more on cameras than on the art of taking good photographs.

Hmm... just to play on that metaphor: there are certainly camera choices that can make the process of learning to take good photographs easier or harder. Isn't that a relevant point?
anyone tried to install on windows 2003 server? no service creates on installation. Also I tried to install service manually "freelan --install" but getting an error.
Error: An invalid argument was supplied.

Any idea how to run on Windows 2003 32bit server.
There are quite a few FBP systems available for various languages