skysight-inc/HackerNews huggingface dataset:
I'm self-taught, mostly. Started programming on Basic on handmade ZX Spectrum 64K, purchased by parents from classified ad in local newspaper, when I was 8 y.o., just to be able to write my own games.

Switched to Turbo Pascal (and to Tasm) in school, when I was in 6th grade (11 y.o.), after "inventing" bubble sort. By that time we were hacking good old computer games to get infinite lives and money. Primary role of my C.S. teacher by that time was to give me computer time and employ in school as part-time computer classes technician when I was 14.

When our class was 16, we were told that there is new cool language for web, called Java and we will have an exam on it by the end of the year. We happily dove into it. Our teachers were learning it together with us (they also were setting up Linux for the first time, but I and my friends were too busy playing funny game of hacking/counter-hacking the admin passwords to the Novell network we had in our school).

When I was 17, I graduated from school and moved to Moscow to study quantum physics and electronics in MIPT, but it was quite busy time to survive (1998), so I learned HTML and started developing web sites for money for beer. Few years later I've got my first full-time job as Java developer and from that time I've never gave up a hobby that one day had become my profession.

Forgot to note, that I was learning by books, not from Internet. When I was a MIPT student, my spending on books could be up to 50% of my income ($400/month or so).
Why would you consider this bias? Every country has its own viewpoint on history. The details of the American war for Independence are hardly interesting for every other country.

Spanish historians know more about spanish battle commanders.
This has been posted 10x before, still handy however.
USA is at war with terror? I thought radical Islamists are good guys now (Lybia, Syria...)
Show HN: cmder - Portable console emulator for Windows
I think you calculated wrong.
https://aws.amazon.com/marketplace/pp/B009KA3CRY

EC2 Instance Type Software EC2	Total

8XL cc2.8xlarge	$0.99/hr $2.50/hr $3.49/hr

EBS Storage Fees
$0.10 / GB / Month for Standard EBS Storage
"Curses" actually refers to "curses". "ncurses" is new curses. From Wikipedia:

“[…] ncurses is a free software emulation (clone) of the System V Release 4.0 (SVr4) curses, which was itself an enhancement over the discontinued classic 4.4 BSD curses.”
Unless you own a Lenovo which has power management functions that avoid that problem.
TL;DR ahead ;)

(Born in 1981) at first I attended some programming language courses: Turbo Pascal, Visual Basic, Delphi, in my early teen years, that is in 90s. I even co-authored a series of articles on the subject to a nationwide magazine. (Poland, not USA).

Subsequently I lost interest in the IT, I went on to study political science and only turned back to programming in about 2007.

Starting from scratch, I picked up C#. I learned from books and by programming. I attended MCTS courses in college and got myself certified, but in retrospection I think it was a waste of money.

I had quite an inferiority complex regarding my lack of formal education and experience. I didn't even start looking for a job until 2011, when my girlfriend forced me to get up on my feet and start sending CVs out :) So it was like 4 years after I began, but I worked full-time and didn't learn very intensively.

Anyway, once I began looking for it, I landed a job quickly and needless to say, the moment I saw the code written by some of my predecessors in the years when I thought I wasn't ready to get paid for programming, some swear words left my mouth.
"I learned from books and by programming" - I didn't even mention StackOverflow, it feels so obvious that it gets transparent :) but for the record, yes of course I used it
Coolest. Thing. Ever. I just bookmarked that.
The graph shows all the attempted spammer registrations I caught over the last month, the count of '1' for today is because the clock had just ticked over when I generated the image.
1) Totally self taught, no books, all online (Google and planetsourcecode.com!)

2) I started around 12 years old; began with HTML trying to replicate websites I liked, then Visual Basic, then to PHP/JavaScript, then to Java, then to C++, back to Java when Android came around in 2009. With competence in countless other languages along the way.

3) I freelanced with PHP from I was ~15, just tiny projects.

I made money writing bots for RuneScape (in Java) when I was 15.

I went to school for Physics, (age 18), no programming involved.

I published my own (paid, successful) games to Android when it was first around, in 2009 (age 19). I freelanced in Android projects at the same time.

I got a job offer from my main freelancing client a few months before graduating (age 21), and moved to the US. I'm still working for the same company, as the Lead Developer, and things are going great (age 24).
I think that depends on the subject.

If I look up, say, resistor colour codes, a car or TV show, the the info Im looking of is as good as fact. The colour codes are correct, the car specs should be pretty much correct, and the general TV info is correct.

If I know Im delving in to something opinion based, for example, political or general history, I treat it as a starting point.

Problem comes when the subject falls in tot he middle, for example looking up a person. Some of I I assume to be correct like date of birth, home town, etc. Or at least its probably as correct as anywhere else. But often trivial type thing turn out to be little more than folk lore. But, if that matters, its very wise to look for something the person's own pages, if they exist. Or at least google the claim to see if its likely to have weight.

So, I think its fair to think some subject are likely to be acceptable as fact, other not so much.

Part of me thinks there should be a separation between things that can be seen as fact, and things that are likely to contain some sort of bias. No idea how that can reasonably be achieved though.
I challenge you on #1/#2 since there was Personal C (PCC) around the mid/late 80s. The version I had didn't have a graphics library though, so I learnt 8086 assembler and CGA/EGA calls (memory is hazy here, but probably CGA) and made my own :)

I was lucky enough to be leant a good C book by a family friend (whoops... Still have it almost 30 years later!!).

But I agree with your overall point that it was much harder to self teach back then. On the flip side however is that now there is so much choice that getting started can be a challenge as there are so many routes to choose!
> In my view, a thing is not ultimately beneficial to a person unless they come to see for themselves how it is a benefit to their lives, via their own independent judgement.

Vaccines.

Most people don't spend a lot of time thinking about how they don't have polio.

Not having polio benefits you even if you don't think about it. Your being vaccinated against it benefits me even if neither of us think about it.

I'd argue not having polio is "ultimately beneficial to a person" regardless of their beliefs about value.
And history of embedded systems tells us that at all times you will have to fiddle bits for nearly all embedded projects.

MCU's are getting faster at the expense of getting power hungry. Plus there are a several other things that need low level optimization that C provides. There is a reason why C has such a invincible death grip in the embedded domain. It will take you trillions of dollars worth of investment and nearly two decades of effort if you have to dethrone C from there. Nearly every stake holder, is so deeply entrenched in C its not even pragmatic to think you are going to replace at anytime sooner.

>>I'm really confused how enabling a whole legion of programmers to get creative with hardware invokes such bitterness in you.

All programming, is creativity with hardware. Because the form factor got smaller doesn't mean a thing here.

This is the gripe I have with many Rasberry Pi Users, who call printing hello, world 10 times with a python script as 'hardware hacking'. The situation is so super hilarious.

Say you wrote the same Python script on a laptop with the cover removed, now that you see the electronics inside the laptop and you are also running the python script, did you just got magically creative with hardware? Why wasn't it magic when the electronics wasn't visible.

And yes, for any real creative thing of production and mass deployment value. All the best trying to do it in anything apart from C.
I first learned BASIC with a friend that owned a Spectrum. We made some funny programs: a naive game similar to Space Invaders, a tracker that I feeded with a Bach fugue, things like that.

Years later, I enrolled CS. But 90% of what I learned was at home with a 286 that another friend lent me. Materials: books from the university library and technical manuals for the languages. TurboPascal manual was excellent.

I guess they're outdated to recommend, but my favourites were Pascal and Data Structures by Dale & Lilly and File Structures: A Conceptual Toolkit by Michael J. Folk & Bill Zoellick. I wrote a B-Tree implementation that put Clipper's to shame.

When Delphi was released (95), I bought it, binge-read the manuals and did several personal projects. The rest, at work, facing difficult problems, reading a lot, consulting online forums... and specially answering others' questions.
Unless you hide the field via Javascript. In which case the bot implementation would certainly become a lot more complex and I imagine this technique working well. (Though I haven't used it myself)
you are right - for any given expected unit sales, there is a level where using C first time is sensible.

But ultimately there is always a market below that point - people are selling arduinos now for surveillance or monitoring simply because the market is too small for anyone skilled enough in C to bother.

As the price performance of the hardware drops more of these markets will open up - today the "stuff it use C" point is maybe a 100 units or a thousand. tomorrow a million. then 10 million.

Forgive my hardware ignorance but imagine a system on a chip with the cpu and memory and buses of say today's MacBook Air. everything you want, on a thumbnail, just hook up electricity. If I could buy that for 2 cents I would be foolish if I decided to write almost anything in C till I got real time stats from my first 5 million users.

Twitter did not drop Ruby for Java till they were at the billions of messages level. There are an awful lot of markets and price points between 1000 units and a billion units.

(Especially now when we can realistically talk about every human being having a hand held in x years. which blows my mind but for good reasons)

ps - no I do not think Moores law will hold in terms of transistors in a chip for evermore. but we have barely scratched the surface of "everything on a chip".

(Would be interested on the feasibility of literally a PC on a chip ? If we took a literal count of transistors on say a model two years old and then looked at price to fab that many transistors today what would we see?)

edit: rereading it seems to indicate that there is hardware out there were C is the sensible option - I am just trying to say there is a spectrum of / 8 bit assembler / embedded C-like / DSLs / anything a PC might recognise and that climbing that spectrum is inevitable based on hardware price/performance
good price, gas bikes usually start off at that price and end up a quarter of that price second hand within 3 years.
At the risk of doing so.....

Are you suggesting that having a different opinion is trolling?
1) I often preffered to stay at home writing code than going out with people i wasn't interest in, I started with RPG Maker when i was about 15, then kept reading programs, trying stuff, no books or courses.

2) about 8 years ago with rpg maker xp. after that vb 6 and php

3) I left italy and found a developer job.
well good for you then. I guess you don't need this product and you can move on.
If this doesn't work for you, could you tell me your OS/Browser version numbers? I'm getting reports of problems.

Thanks.

PS: It's not mine - feel free to report directly to the people involved, but I thought I'd collate some data (if any) for them from this community.
I'm a 27 year old full stack PHP developer.

1) Totally self taught, mostly using the internet only. But at my current level I often read books.
2) Started with HTML when I was 13, ASP at 15 and switched to PHP at 16.
3) When I was 20
Keeping your laptop plugged in all the time will kill its battery faster
I taught myself from the late eighties to mid nineties. I started with BASIC on the Amstrad CPC then Blitz Basic and 68000 assembly on the Amiga. Then got a PC and learned C++, then got into web development via Java (day job), now I'm doing indie games in C++/objective c. I was coding for a long time before I was able to make it a full-time job (2005) though I did a lot of small projects before this.

Although computers were simpler back then, learning to code was difficult as my main resource was computer magazines. I couldn't afford many books and had no access to any programming communities or academic culture. It wasn't until I got online in the late nineties that I was able to really flourish as a programmer. I feel a lot of regret about this as I believe I could have made it into game development in the Amiga era as a teen, if I'd had enough resources and confidence. I also had trouble keeping my computer up to date as I couldn't afford it. All this slowed me down.

Coming from a working class uk background, university wasn't even mentioned to me at school (unbelievable, right? The anger I have towards the education system is almost limitless), so I always focused on self-education as my way ahead.

Some people think that self-taught coders are lacking in terms of computer science theory, but that's ridiculous when anyone can download SICP and similar books. I've met plenty of CS graduates who slept through their algorithms class.
All entrepreneurs are not successful..Not just India but every where middle class families force their children to study well and do a corporate job rather jump to the place where success is less than 20%..
I'm sure there are major typos in the configuration wiki( https://github.com/freelan-developers/freelan-all/wiki/Two-h... ), which prevent me setup two nodes within the same LAN.
XKCD: On Internet Privacy
Self taught. Born in 1988, had some early exposure to QBasic and Pascal before 13, at 13 I really wanted to start writing computer games, so I grabbed a C++ book and it went on from there. Gamedev was a big hobby of mine 'till last few years. 3 years ago I picked up Lisp and Erlang, which was one single biggest breakthrough since starting to learn programming in the first place.

One thing I'd attribute to my success in self-teaching myself programming is the lack or very sketchy access to the Internet since before high school (I pretty much only downloaded OpenGL examplex over the phone modem; anything else and my parents would have killed me for the phone bills). I also had the attitude to fix all my bugs myself and never ask for help (and then when I got reliable Internet connection, to help other folks a lot, but never ask for it myself). Even when I spent a day debugging some stupid things I did, it wasn't a time wasted - I forced myself to actually understand the problem in order to fix it.

Nowdays I still try to fix everything myself, but I'm not afraid to Google some StackOverflow questions if I'm stuck with a problem related to webdev that is stupid (mostly because of poorly documented / poorly working libraries or weird bugs like support for HTML5 video has).
Kippers in the Jungle, Denmark's first geocache: 13th anniversary
I'm mostly self-taught. When I was very young (kindergarten age, if I
recall correctly), I attended a few QBasic courses at a local college,
took some VB (it was billed as "advanced computer programming") at a
summer camp when I was 15 or so, but other than those, no formal
training.

I remember writing BASIC on the Apple IIGS computer in my first grade
classroom, playing with HTML in second grade, but my big breaks came
around 6th iirc. I helped move an online community from a hosted
bulletin-board provided (ezBoard) to a hosted phpBB instance, and hacked
on that code for a while, but was nothing serious. Write a few scraps of
PHP here and there before getting into Python, and did web development
in that for a while.

Over time, though, I've followed this gradual descent down toward the
metal, learning C from K&R (great book) while holding down a
Python/ActionScript day job and occupyng myself outside of work learning
how to design C APIs and writing a few libraries. The
second-to-most-recent position I held involved Python and Ruby at work,
and I contributed some code to the Linux kernel in my free time (some
USB audio stuff). The position after that was for Linux kernel
development and other low-level embedded systems work. I've tried to get
into infosec a few times but nothing's panned out.

Currently I'm getting a startup off the ground (surprise, surprise).
Desktop software, audio production, lots of real-time DSP,
lock/wait-free data structures, some OpenGL...I'm happy as can be.

To answer your questions:

1/ Totally self-taught from books and RTFM. Lots of help from the Internet as well, though I own my fair share of college texts.

2/ I'm 24 now, started learning around 2001 I think (when I was about 11).

3/ Got my first development gig at 17.
it would be like saying , since we lack of physicians , let's hire butchers to do their job...because they both use knives...

webdev and embedded dev are totally different fields of programming.

And hardware manufacturers dont need 100x new programmers, if these new programmers cant even work with C or ASM...
No CS degree. Learned programming at an institute. Worked at the same institute as programming teacher for 3 months before getting a job as a programmer.
This is an excellent way to create false dilemmas. Often there are not two points of view but a multitude.
This sort of thing breaks the very moment you have to bring in your own customizations and changes. And that is super common in a embedded system.

Otherwise it wouldn't be much of an 'embedded system'. It would be a general computer.

Drag and Drop code generation doesn't work in embedded programming for the very same reasons it doesn't work with higher level languages. Its far too inefficient,code subject to total redesign for small changes in feature requests and beyond all its not economical.

Some day we may get there. But some day we may not even have the need to program anything. Forget embedded systems, but programming in general.
What does a decent photographer have to do with anything?
Set custom location for Spotify data in Android
And you repeat that macro in every file? Or you assume you can somehow persuade other OSes to add it to their headers?

printf("%lld\n", (long long) x); is ugly but it works on every system, including existing systems with 32-bit time_t that don't make any changes to their headers.
Serious Question: Why does anyone care what Gartner think?

I have worked with companies that cared more about getting into some quadrant of some Gartner graph than they cared about the quality of their products.

Is Gartner more than just a corporate badge? Do they purely provide the wall for the giant corporate pissing contest?
Honnef.co/go/implements - identify interfaces implemented by a type
I got my first computer when I was 15 (in 2001), and after 8-9 months of just playing video games I ended up playing with HTML in Dreamweaver. Over the next year that'd expanded to include CSS, JS, and PHP.

Between the age of 16 and 22 I primarily worked as an IT technician while programming on ever more ambitious projects on my free time. The most ambitious of then was Zynapse, a VERY Rails-like PHP5 framwork I started in 2006. It had i18n and other things from the start, which Rails didn't gain till years later. I never finished though, so uploaded it to Github as-is 4-5 years ago: https://github.com/jimeh/zynapse

When I was 22 and moving to a new city I decided it was time to get paid for programming. Specially since where I was moving to actually had big companies employing programmers, compared to where I used to live there was no local businesses at all hiring programmers. Hence I probably could have started professionally programming earlier if I had easier access to programming jobs.

The first programming job I got was for a Rails shop, so I spent around 10 days familiarizing myself with both Ruby and Rails before they let me work on any real-world projects.

It's now 5 years later, and I live in a much bigger city (London) in another country, and I'm still programming for a living.

As for how I learned to program, it's all been self-taught based on what the internet has to offer in terms of source code, documentation, blog posts, books, and generally just playing around with things to see how it works, and what's the best way to do something.

I should also note that to this day, I haven't actually finished any of the programming books I've started to read. I always end up skimming through them instead to pick a few really interesting things, and then go back to my general goofing-around-for-fun kinda learning style or whatever it might be called.

But as far as I'm concerned you definitely don't need a CS degree or anything fancy to program for a living. I'm sure it helps a lot if you do, but it's definitely not required. You just need to be curious, interested and have some spare time to learn.

P.S. Sorry for not adhering to the 1, 2, 3 structure of your question, I might have gotten a bit carried away :P
Plotagon free trial can now export movies and has expansion packs
Classy move, Gartner. Did you just move from the bullshit quadrant to the racket quadrant?
it's a company that promotes gambling, it's obvious why some people would think that's unethical
Joblint: test tech jobs for sexism, culture, expectations, and recruiter fails
P2P chat and file sharing in the browser via WebRTC
For my over the air hack this year I put together a tool to allow communication and file sharing in a bittorent like way via WebRTC. It is on my github here:
https://github.com/AdaRoseEdwards/Peerage

Be warned it is super flaky and very browser dependent because WebRTC is still in early days.

* Works best in newer releases of Chrome
* Does not work at all in Chromium
* Only chat seems to work in Firefox you can not make video calls or send files.

It uses WebRTC to handle hand shaking.

After installation go to [ip]:3000 to view. To connect to another peer send them your generated id.

It's still early days yet but WebRTC could be game changing with regards to the internet. When any browser can handle video calling, file sharing and the like.

Next I plan to add the ability to stream video via WebRTC. Because it will be cool to have a decentralised youtube.
Free trial is two characters and two scenes. Full pack is now 5 bucks and gives you five actors and six scenes. There's a store with expansion packs and soon we'll add YouTube export as well.
It's not the kernel that's the issue, we're talking about basic, cross-platform userland utilities like "ping" here. Some of those do have a policy that they have to be able to build on Irix 5.8 or whatever.