skysight-inc/HackerNews huggingface dataset:
i'm self taught.

i coded C64 stuff as a kid. i read the manual, took it from there. then during my teens i did other stuff (mostly party).

when i with 19 i realized that i will be a father shortly after my 20th birthday i decided to get a job (it was 1998). i looked into the newspaper (dead tree with ink on it) and there were a lot demand for "web-designers" (the dot com bubble finally reached europe). i went to a job interview. told them "yeah, i can do it" and that i will start in two weeks. bought a book about HTML and one about webdesign directly after the interview. read the books and "coded" (i know HTML isn't code but at that time it counted) for two weeks, started the job. did the same as before (reading books, "coding") now for good money.

that was the point that i realised, if you read a (good) book about a technical topic - and understand it - you know 99% more abut this topic then anyone else on the planet about it. you are not an expert, no, you still have a very long road to go to become an expert, but well, you are in the top 1%.

then i repeated this pattern: CGI, perl, flash (version 2 i think, or was it 3), PHP 3, ... some years down the road ruby, node.js, coffeescript, clojur, haskell, ....

so what are the three things you need

* motivation (becoming a father and don't have any real
money is in most cases a quite effective motivation)
* a good book (at that time i just chose the next oreily
book, today i would say check out pragprog)
* the will to make sacrifices (no party, no alcohol, no TV,
these are time and motivation black holes)
> compared to javascript. really? you think java is "easy to pick up" ?

Yes, compared to JavaScript, it absolutely is.

Really, the only PITA with learning Java is all the framework-itis (which is starting to become an issue with JavaScript as well, but that's another story...). For things like embedded systems, Java doesn't have any of that stuff and it magically returns to the comparatively simple language for programming network aware hardware it was originally intended to be.

> You seem to be operating on some very peculiar assumptions.

My assumptions are from teaching and watching other teach both children and adults how to program (usually with adults it has been people who are already professional programmers). I'd absolutely agree that Java isn't the best teaching language, but particularly if you've got someone who already knows how to program (which is kind of what I think of when I hear "web developer") at least at some basic level, it tends to be pretty easy to pick up.

JavaScript on the other hand, is quite the opposite.

I've worked with "copy-and-paste" developers who couldn't really write their own program from scratch to save their lives. When you asked them to explain what the code they'd pasted in was doing, JavaScript was invariably the language where they had the hardest time deciphering what was going on, and more often than not, you ended up sympathizing with their difficulty. (C++ and Perl can also be quite difficult to decipher, but they tend to have the advantage that anything much more complex than a one liner generally won't work at all if just blindly copied and pasted, so copy-and-paste coders tend to be rarer breeds there).
Google and Apple also have links to Intellectual Ventures. I suspect Lodsys would be happily going after WinPhone developers if not for the platform's relative irrelevance; so far they've concentrated on iOS and Android developers.
My Dad got a PC through work in 1987, I was about 13 or so at the time. From the moment we switched it on I was hooked. One of the first programs I tried was called GW-BASIC and typed in a listing I found in some magazine. Two years later I was coding demos in Assembler. I'm fully self taught and I still program today.
FreeBSD Image Gallery • FreeBSD vs. Linux
Someone will get this up on github soon I'm sure.

It's actually a very good idea, but a service would have been much better suited to a few years ago when pages were more static and adding a contact form to a page was reasonably hard work for a designer with no programming experience. Nowadays you pretty much get one built in to Wordpress/any CMS/template/whatever.
Doesn't seem to be a problem with connecting with Pidgin, and I had it working with Wippien (sadly Wippien doesn't really work great with Win 7 or Linux).
politics, Middle East, and environment, are three areas I only go to Wikipedia for dates of occurrence and names of those involved. All the rest related I assume is biased.

Need to look up a song and artist, anime character, or what years a car was available, I am pretty much going to trust what I read there, not so with much else anymore.
The thing is, these lights are actually more complicated than our old-fashioned web servers, because while they too have to communicate with other systems, update their codebases, maintain state, and so on, they also have to do all of that in unforeseen environments, surrounded by unknown services they have to discover and use. Plus they have sensors and whatnot. The sysadmin problems are still there, but now they need to be self-serviced, or at least serviced through some kind of autonomous negotiation with the swarm. If it's not allowed the conceptual bulkiness of an overtly-configured server, I don't see how it could be a self-configured one, which seems much more heavyweight.

A bit more generally, I'm just not sure how a light can be all the things you want it to be without having a pretty complicated stack underneath it. This is a hard problem, and there's going to need to be a bunch of technology in there. Even a common stack of technology. In fact, a web server seems like it would be exactly how you'd want here, because it presents a simple, consistent interface for communication. Generalized interfaces between diverse systems is exactly what HTTP has been so successful at. What are the alternatives and how would they make these devices less computery?

It sort of sounds like your objection is that many web servers aren't simple enough in the sense that they have the complicated configuration APIs which are used by their admins, who want to make really specific human-targeted applications out of generic but wide frameworks built specifically to make that possible. Routing and same-origin policy and access control and extension points and caching and whatnot. Perhaps you're about that, but it's not really a problem with the depth of the stack, and none of that is central to being a web server, or even part of NodeJS.
FWIW, we are a "hardware team" as well as a software team - and we're fully aware of how much some of our decisions might cost us down the track if we don't get things right enough" today… (details masquerading as shameless self-promotion http://holiday.moorescloud.com and http://dev.moorescloud.com ))
There's sshuttle: https://github.com/apenwarr/sshuttle
Devopsdays TLV livestream
Devopsdays TLV is today and tomorrow. Find the livestream here http://new.livestream.com/devopsdaysorg/events/2405467

Timezone: gmt+2
This is an opening if we wanted to discuss education in a general sense. I think you've pointed out a very interesting duality: self-taught versus taught-by-others.

Of course, the reality of learning is very complex. It's always about engagement. For a teaching situation to function, there has to be a genuine engagement between the teacher and the student.

In cases where students are, for whatever reason, very highly motivated, the "lecture" style of teaching might work. A sign of a functioning lecture would be that students ask relevant questions. This has not been the case in most of my university experience, where students mostly take notes of whatever is written on the blackboard, drink coffee, and ask things like "is this going to be on the exam?"

It's interesting to think about the prospect of teaching carpentry through books, lectures, and online courses. Maybe it's possible. But I think simply having access to an environment of practice and active people to ask for help is the biggest factor. Hands-on help with an actual task at hand plus lots of individual experimentation.
electrical engineering tools really suck

No they generally don't. They are just pretty hard to use but once you get over the learning curve they are just as easy as any other program. Yet of course you still need the electrical engineering knowledge to create something useful with it.

Apart from that: neat ideas.
There are many other options, though: http://xmpp.net/
I wrote my first code in visual basic when I was around 12, following internet tutorials, but the lack of consistent access to a computer / internet made me give up on it fairly soon.

Later on, when I was 16/17 I started tinkering again after the fascinating revelation that any piece of code running in my windows machine used a common set of APIs and that I could read/change the code if I just learnt x86 assembly. So I did.

It was probably a combination of books, one-off university lectures I would skip high school for, internet tutorials and surrounding myself with other likeminded people online.

I've rarely felt that the lack of formal education is holding me back. The only time I remember was when I was getting into data science, but research papers are available online for free and books / lectures on youtube bridge the gap quickly.

Plus I imagine the typical university graduate has to go through the same process anyway.
I saw another electric motorcycle on Thursday that blew my mind as it was the first time I'd seen one in the flesh and on the street, the Saietta:
http://www.agilitymotors.com/

Loved the design of it, somewhere between Tron and Portal.

The only thing that gets me is the range... 120 miles. That seems to be similar to the Mission motorcycle too. Good for the city, but hard for long rides (and both the speed and performance encourage you to enjoy leaving the city).
It's only necessary in the registration form, not in the login form.
Daily expenses in 10 years will be much more higher than now. 30K will deflate over the years.

I would buy a house, then put it to rent.
Mars is perhaps large enough for comfortable gravity, but small enough that a space elevator is much more practical? I can see that making it a very nice place for colonies in the long term.

(Short term of course it's going to suck for all the reasons you suggest. But the only way we're going to get better at moving beyond Earth is to start doing it)
I've got a degree in Computer Science, yet I still consider myself self-taught. In fact, my Computer Science program never taught any languages--they simply had assignments that required development in various languages (C, C++, Scheme, Matlab, Pascal, Fortran, YACC, and 680x0 assembly were all languages used by assignments during my degree, yet none were taught).

Meanwhile, in addition to the aforementioned languages, I've coded professionally (as in I've delivered code and gotten paid for it) in Ruby, Perl, Rexx, Bash/Bourne shell scripting, Python, PowerShell, VBA, QBasic, C#, XQuery, Fortran 66, Fortran 77, Fortran 9x, SQL (various forms), Javascript, ECMAScript, CoffeeScript, Cobol, FoxPro, SPARC assembly, x86 assembly, Java, LISP, Sed/Awk, ColdFusion, Curl, Objective C, and PHP. I've also tinkered around with (as in I have not gotten paid for it) Scratch, Boo, Groovy, F#, Haskell, J#, and Scala. I'm not sure if these are exhaustive lists.

If you aren't an autodidact, either you won't last long as a software developer (i.e. you'll get promoted to management) or you will get stuck working on legacy code. If you want to remain employed as a software developer, you need to keep learning, to keep that fire burning that got you started with programming.

Now, for the answers to your explicit questions.

1) I learned to code by teaching myself on an Apple ][ (predating the ][+ and ][e) with Basic. I then read cover-to-cover a Pascal book for several years before I had a Pascal compiler. I credit this (reading the Pascal book) with my ability to read textbooks and learn from them, even if I don't apply the ideas right away. Very often, there was no FM to read, so much of my learning is through experimentation. A combination of tinkering (i.e. applying the ideas), book learning, and a high tolerance for frustration...

2) I started learning in 1979. I was not yet a teenager. Our school bought an Apple ][, and nobody knew how to use it. They turned over 2 of the "bright" kids to it, and I ended up teaching programming to the person that would become the computer programming teacher.

3) I started working professionally as a programmer while in high school. I ended up consulting in university--it ended up paying my way through school.
i quote "leverage the great node ecosystem" : which is not written with performance on embedded in mind => useless.

Embedded dev is all about performances, power consumption ,etc ... it is about focusing on hardware , not about how much libraries you can throw at a problem, since you usually do not throw any,because of limited memory, computation power...
Fair point - it's easy for us to rant at journalists without thinking about how difficult their job is.
> If your contract ever falls through you need instant back-up, not after the 3 months or so that it will take to get your order pipeline filled.

Is this not the case with smaller projects too, though? I always tend to look for a new project towards the end of the last one, and that has worked out so far.

> You need several customers in parallel to be stable as a freelancer, not one big one.

I actually found the opposite: trying to maintain 2 projects at the same time was a nightmare.
> And you repeat that macro in every file?

You are familiar with the concept of headers, right? ;-)

Just put that in the project's common header (which if it is dealing with so many different OS's, invariably already have a bunch of platform abstractions). I deliberately structured the solution so the only "extra work" that is needed is for whatever platform has created a long long time_t (and if you really wanted to, you could probably get rid of even that work and base the entire thing off of sizeof(long long) even without using something like autoconf).

> printf("%lld\n", (long long) x); is ugly

Wow, we couldn't be of more different opinions. I'd argue the virtue of that approach is it is less ugly are more likely to be easily accepted as a change for crufty old 32-bit code in some embedded system that everyone has forgotten about.
http://www.computerworld.com/s/article/9242808/BlackBerry_re...
Yup, slow, expensive, unwieldy and horrifically inefficient.

and probably wildly popular.
No more so than, say, day trading.
Self-taught. My dad brought home a decommissioned server (a 286 with 6mb of ram and a 40meg hard drive) one day which had DOS on it, but not much else. Naturally I found qbasic and the sample games that came with dos, and was able to start figuring things out. I played with batch files to create a menu system for the computer, but abandoned that as silly once I started to understand the computer better. He got me a copy of the Borland C++ compiler; version 3 as I recall. It included a thick reference manual that explained a lot about C and C++, so I was able to puzzle some things out from that (although it would be years before I really understood what I was doing enough to actually use a pointer correctly; there were so many crashes until then).

I discovered Javascript when I started poking around the source of the Mozilla Suite (which eventually became Firefox). I learned Scheme from watching Abelson and Sussman lecture from SICP. Learned some Erlang at some point, etc, etc.

I started all of this when I was 9 or 10. I started programming professionally after I discovered Javascript, which was my first year of college.
My favorite example of bias introduced to Wikipedia is by some obviously religious fanatics that managed to add the big section of "Religious views" to biographies of most of famous people of science, and then misinterpret their quotes to support the view that all were religious, in a sense of "supporting/believing in the existing religions."

The best example, Einstein:

http://en.wikipedia.org/wiki/Albert_Einstein's_religious_vie...

"Albert Einstein's religious views have been studied extensively. He said he believed in the "pantheistic" God of Baruch Spinoza, but not in a personal god, a belief he criticized." And there's no citation re "pantheistic." That is, as stated the claim appears to support the view that there were Einstein's words that mention the "pantheistic" as the most important thing of "Spinoza's" God.

If fact, the only quote, of course not cited in Wikipedia, where Einstein explicitly mentions "pantheism" is apparently:

http://www.einsteinandreligion.com/spinoza.html

"I'm not an atheist and I don't think I can call myself a pantheist."

The only fair description would be "he was an agnostic" and that's all. Instead, the "pantheism" is effectively promoted before, making "agnosticism" his second choice, which it wasn't. Specifically, he quotes Spinoza in order to point to the previous thinker that rejected the belief that the soul exists separately from the body. That's why he mentions him (as seen in the full quote linked above).

He was frequently quoted to declare himself agnostic, whereas he mentions Spinoza's God only in one mail.

Still, try to remove obviously lying "pantheistic" pseudo quote/promotion from Wikipedia's texts about Einstein.

And the same thing is repeated for a lot of other scientists!
It's all about managers in BigCos. Barely literate as they are, they hardly read anything at all; Gartner reports (well, their summaries anyway) are among the few things they do consider. If you are in the right quadrant, you can say so while playing golf and get the manager to sign a big check for your s*it. He'll never actually use it himself anyway, it will just be forced on his underlings.
Is it really any worse than BASIC? And the BASIC Stamp was the choice of hardware for hobbyists for years before the Arduino took over.
Self taught, learned to program on a TRS-80. Studied electrical engineering in college, but switched to business so I could get a degree quickly and get out. No regrets.

I think computer science undergrad degrees are highly overrated. If you weren't already curious about computers as a child and didn't figure things out for yourself, what are you going to get by having your parents pay all this money to attend classes?
WTF. I'm not sure I want to live in a world where plain text should elicit such a reaction!
I started with programming lessons after school, I was 13 and that was 1990. I had a ZX Spectrum at home and I could write basic, so that was the beginning for me.

After that it was mostly self-learning, specially reading other's people code (back then, CD-ROM included in magazines were gold). During my time at the university (CS degree) I learnt interesting things, but I think it was equivalent to reading good code.

My professional career started when I was 19 I think, just after my first year in university. So that was 6 years after starting programming, but to be fair I didn't have a "proper" computer until I was 18 (before that I did mainly gwbasic and cobol because my 80188-compatible PC didn't have HDD and I had to swap diskettes three times to compile a C program).

After I bought my first "modern" PC, it was like each month was equivalent to a year of learning compared to my previous experience. Something like that happened again when I got Internet connection at home, circa 1998.
Who will take over enterprise phones now? Microsoft will definitely try, but how will Apple and Android compete for this space?
Often you don't even need to change languages.

If you only read German, Swiss newspapers offer an interesting change in point of view.
Twitter just aren't really hiring for technology in Dublin. Maybe some of the 100 new jobs promised for next year will change that, but I wouldn't hold my breath.

Just to illustrate what I meant about sysadmins being a priority for these companies, look at Facebook's job page: https://www.facebook.com/careers/locations/dublin

And Amazon's (note, it's paginated): https://uk-amazon.icims.com/jobs/search?pr=2&searchLocation=...

I wasn't telling people not to investigate these companies, just that their isn't a glut of jobs that their size would suggest. There are companies a fraction of the size hiring more developers than the big guys at any given time.

I'm sure you can sometimes work from a Dublin base for these companies, I'm also sure that would be an exception to the norm.

If you're a sysadmin by trade or want to be (a minority here I think), you could do far worse than apply to Google, Facebook or Amazon.
QueueWiz online queue theory simulation for call centers.
You want to talk about the kind of pictures taken, don't you :P
Leveraging the great node ecosystem comes at a significant cost in terms of power consumption, complexity of the manufacturing process, board size and of the system itself.

Power consumption and, to some extent, board size have been very significant drags for the Internet of Everything. Mindlessly throwing libraries at them just to help people who are too lazy to learn a new programming technology is only adding a drag on it.

I certainly don't want to drag this into the mud. It's certainly a good learning platform which can provide exposure to a range of devices for people who would otherwise not even hear about them, or for whom the initial technological barriers would be too high to overcome in a single evening. But this is far, far from adding any kind of value to the struggle towards universal Internet connection.
my blog just does basically this in js:

a = "cat"
b = "dog"
c = a + integer_to_string(234234) + b

then you have to submit the c value with the form. i get no spam. (a prior somewhat simpler did get some spam). obviously this would do nothing if i was google, but i'm a small blog and no one is going to customize a bot for me, and apparently none of the bots want to run a full js interpreter.

there are lots of simple solutions to spam as long as no one cares about you. and if they do care it's hard.

i do think making you do some math (maybe something serious that takes a quarter second to run) to be able to submit comments is a good approach in general though. basically humans have lots of spare CPU, but i'm not sure spam bots do currently. and if posting in a lot of places required running some math, it would rate limit spam bots.
1) Mostly internet tutorials at first. Also with a few of free books (thanks to MS publish for translation!), code reading and RTFM. Recently, it became manuals (again) and StackOverflow. There's not that much usable materials because I am not a native English speaker. Eventually, I was getting to be able to read/write English, and I met a whole new world.

2) Actually I don't remember precisely. I was doing something like programming when I was mid-high school student. It was just beside me always. But that was just a 'script for fun' level with Visual Basic.
I restarted real programming at 2007 with AS3.0 and C#. And now it finally became C/C++/Objective-C.

3) I have a B.A. degree in computer graphics design major. Programming job gave me real opportunity to make money. And actually I paid a lot more by programming stuffs when I was student. Also this fits to me a lot more than graphics design.
<cynical-hat> What's the bet someone from a company on a Powerpoint slide in Snowden's cache is preparing to offer "security camera image enhancement as a service", so all that homeowner and gas station surveillance gets sent straight to some PRISM-like data gathering program as well as providing enhanced image to the camera operators?