skysight-inc/HackerNews huggingface dataset:
You can learn almost everything you listed as a "Con". It's not always easy, but you learn as you go. I've picked up a lot on the go and for everything else I have to be honest with myself and spend more time on it (e.g. evening, weekend or take a course).

I don't have a degree either. I just never stop learning. I'm sure it would be similar with a degree. All in all, I am doing pretty awesome. I could have a lot of different jobs if I felt like it. And no one has asked me for a degree in maybe 10 years (I turned 30 last year).

The promotion part and the HR part – I think it depends on what kind of company you want to work for.

I don't see a reason to waste away my talent in an environment which doesn't appreciate what I bring to a table. If they would rather promote someone else because they have a degree, then I am in the wrong spot.

If those are your challenges, you might work for the wrong people. Reading this makes me a little sad.
Try telling that to the goat!
Absolutely! At Qype we have a few very good Ruby on Rails freelancers who did not study CS (one studied design) or didn't even study at all i.e. are self-taught.

You should definitely also consider doing freelance work, because no-one would ask for your degree anyway, all that matters is your skill. From my personal experience, however, it's unusual to find A-people in software who do not have a CS degree. They exist, but I think they're the exception rather than the rule. Often people without an academic background in CS lack the understanding of some fundamental concepts that underly almost everything in computing. They know how to write code and perhaps even what code and architectural patterns are, but they apply them without understanding the inherent principles that underpin them (there's only a handful of rules for instance to which all object oriented design patterns can be reduced to, such as abstraction of change.) On the other hand, I interviewed many people with university level degrees in CS who were not good at all. So a fancy degree is definitely no guarantee for skill.

If you apply, as you already mentioned, show proof of skill e.g. by linking your GitHub account. Good companies will make you do some sort of code or technical challenge anyway, so degree or not, all that matters is that you're good at what you're doing. I would also strongly encourage you to not only read books on programming language or frameworks. Bad developers focus too much on implementations rather than concepts. Technology will be replaced after a few years anyway, but if you have a good grasp on a few fundamentals of software engineering and software architecture, you will soon realize that every new technology introduced is usually just building on insights that have been around for decades (MVC frameworks for instance) and just take a slightly different angle at things.
I never went to school and am completely self taught and have had a very successful career as a programmer. However, I started in the late 80s and things may be different now. The hardest part is the first job. Once you have experience, college doesn't matter.
It makes me wonder if both Apple and Google will, in a relatively short amount of time, be surpassed by a company that doesn't exist yet.
The 6th Circuit covers both Nashville and Detroit and therefore has been the source some music-specific copyright case law. For example, about sampling. See: Bridgeport Music, Inc. v. Dimension Films for an example.
After reading this I still don't get what Notch's getting at with his "goat raping" joke. I didn't feel like John Callaham's editorial was that violent.
Apple is hurting the eco-system now. I can not accuse or defend Samsung for what they did, but Samsung did provided plethora of options to consumers which Apple never managed to do.
Samsung should be paid for all the losses occured during temporary ban.
thanks for clearing that up. for what it's worth the readme fails to explain this, and now i'm actually left with more questions. if a selector with no preceding notation is reserved for BEM blocks- how would i reference an element by tag?
When you have a multi-million selling game and a new platform comes along, you don't tell the world you're definitely going to port it. You wait for the 6 figure check to arrive and then port it. If it's 7 figures, you call it a platform exclusive.
Steve Wozniak also love Windows Phone, i guess. Why not asking Apple to ask to integrate the support for Windows Phone as well.
Of course, fancying something is not bad for ecosystem ;)
In simple cases `&` is just replaces by parent selector (Like in SASS or LESS), only some cases are treated as BEM nesting (pseudo-selector that doesn't exist, etc).

If you use SASS or LESS and happy with them, you don't need BOSS. But you may take a look at it, 'cause it has simpler syntax for mixins and variables, which is more CSSy.

So BOSS is more like a superset to SASS and LESS, their features + some new stuff + simpler syntax.
You should learn more server-side programming, pick up Java even though its loathed around here. The stuff you'll learn from it is x2000 more than JS/Jquery, html/css and such web-browser programming. Its a steep steep learning curve, but its so much more worthwhile than merely making fancy web pages.

To answer your question, no you dont need a CS degree to get a job, but you do need something to show for, and a web app like all the startups are, is not something to show for. You need to make your own full-stack application, from the back to the front, and it has to be more than a blog or todo list, and you have to setup your own server from scratch with all the configurations. Can you do that? Then you can get a job.
How would your headlight desynchronize the construction lights just by shining on them, if it was powered by a separate source? Did the construction lights have light sensors?
I have a feeling a similar phenomenon was responsible for the Millennium Bridge being closed:

http://en.wikipedia.org/wiki/Millennium_Bridge_%28London%29#...
Are you seriously suggesting that some things can't be joked about?
There are some good ideas here, but I must take issue with a number of the statements the author makes.

To begin with, it is not a "myth" that hash tables have poor worst-case performance. It is true that this matters little for most applications, and not at all for some, but the worst case is still there. So I would avoid using hash tables, e.g., in safety-critical systems: medical, military, etc. (Or, as I tell my students: don't program a pacemaker in Python.)

And we should note that the excuse that datasets leading to poor performance are very rare, went out 20 years ago. When the person providing your dataset is a teenager who's trying to break your system just for the fun of it, rarity does not mean quite what you might think.

Second, hash tables do indeed have performance problems when they fill up. True, there are ways around this, and any decent implementation of a mutable hash table will include a strategy for handling these situations.

And that suggests a myth the author of this article might believe: that any ol' programmer can & should write their own hash table. I don't agree. Don't write a hash table for use in production code unless you're sure you know what you're doing. And even if you do, someone else's polished & tested hash table is likely to be better than what you're going to come up with.

Lastly, balanced search trees do have better worst-case behavior. That mostly doesn't matter, but sometimes it does. (You have my permission to use a Red-Black Tree in your pacemaker code.)
As a fourth (and final) year CS student, I wouldn't be surprised if a non-cs grad accumulated enough real-world programming knowledge/skills to get a job. If I were a non-cs grad looking for a career in programming, I'd just read up on some of the theoretical knowledge (algorithms, discrete math) so you can swing some of the more selective interview processes.
There is a place in the UK where this happens with spooky regularity with people walking. There is a covered walk way between Waterloo and Waterloo East railway stations. The mob of people enter it unsynchronised and by the time they leave, they are usually all synchronised. I assume this happens in many other places too, I just haven't been every where else to see!!!!

I always assumed this was because people can hear each other and subliminally fall in to syc, whether this is the same or not, Im already internally debating!!!
He probably loves itunes for what it accomplished. Remember the music industry before itunes? The way in which it made a lot of things possible and easier?

And the whole app store mechanism? Whether it is itunes or android's or whatever's?

That's what he loves it for. (And I'm assuming you're wondering why he loves a product that is so ugly/slow/complicated/whatever; I suspect that's not Steve Wozniak's point).
When Brilliant Minds Become Brilliant Jerks
I just read this on the train and you absolutely ticked the valuable information and real questions boxes for me!
wozniak is open to new perspectives( http://gizmodo.com/5926598/the-amazing-contents-of-steve-woz... ),but always will support Apple
Depends.
If you want to work at Google, you'll probably need one. If you want to work for a startup, then you don't need a degree.

If you're a really good programmer, all of this doesn't matter.
> You can get a job without a degree, but you gotta do the same amount of work.

This is the key point to remember I think. Well put.
Yandex Search, Yandex Money, Yandex Mail and Yandex Market were there for a few months to a few years before Google launched their corresponding offerings.

"They even made a conference" - duh, everyone and their dog make a conference.
And how would say the average HN reader get on with say a post struturalist discusion board for Eng Lit grads.
An iPhone Lover’s Three Months Exile With Android
there is a list off all HTML tags, if a tag with that name exists, it will be treated as a TAG, if it doesn't, it will be treated as a BEM block. That simple.

This gives some restrictions to Blocks' names, but it's not a big problem, cause normally you won't give block a name which matches existing HTML tag.

The same restrictions are for Modifiers (pseudo-selectors) if it exists, then pseudo, else Modifier.
Exactly right. We haven't even remotely invented everything a PC can do, its not just about dotting the i's and crossing the t's of the interfaces at this stage.

Software with higher performance hardware is destined to get much smarter than it is today and a lot of things we have moved server side or run asynchronously can be run realtime.
> After reading this I still don't get what Notch's getting at with his "goat raping" joke.

Lies about other people and their stance. Callaham chides notch supposed hypocrisy regarding closed v open, but notch never said he minds closed platforms (he uses them and publishes on them), he said he minds the PC getting closed off, as it breaks a path to indiedom (which he knows about, since he needed it to make Minecraft in the first place, a 2 years alpha/beta taking money the whole way would never have flown on closed stores, as far as I can see)

The goat raping thing is a strawman, just as Callaham's "notch hypocrisy" is one.
This is my back-of-the-envelope speculation:

Suppose you go to UC Berkeley for CS. A nice, round, accurate number for that is ~$52,000/year. Suppose you work during for two of those years (I did, not everyone can), and your overall obligations are $208,000 for four years, less your wages -- say a meager $18,000/year. Also, you would have had to pay rent whether you went to school or not, so that is not truly a cost of the education. Let's say your rent is a $900/mo, so ~$11,000/year. Plus books and supplies, which may be as high as $2,000/year.

So we have roughly $140,000 for four years of education at a top notch program.

The other part of the equation requires more voodoo. I don't know off-hand what the numbers are for educated v. unschooled programmers. My anecdotal evidence for Cal alums is that entry-level offers are mostly in the $80-90,000 range, with a few as high as $100,000. Within five years, everyone I know of is solidly within the $120-$150,000 range of pay. Unless they've gone the startup route, in which case they are electing for minimal pay.

Personally, my expectation would be, having done hiring in the past and now, that there would be very few unschooled devs who could break $120,000. If you are very conservative in your estimate then, let's say the unschooled and the educated dev are separated by $10-$20,000 until year four -- so little advantage for the first four years. After year five, the educated dev pulls ahead, and by year ten is earning $160,000 whereas the unschooled dev has maxed out and is receiving only $120,000 plus COLA pay increases. So conservatively, by year ten, the gap in pay has already covered or will soon cover the cost of the education.

This also does not reflect the fact that because getting into the front door is not even possible in many places unless you have a degree, you cannot access any of the opportunities for startup equity. In my opinion, the gains in opportunity are far and away the more valuable win with a degree.

And yet, my favorite programmer, John Carmack, only attended university for two semesters.
It does seem odd that a preprocessor would adhere to (or even promote) a single methodology, but it's a testament to the value of Sass, Less, and the rest that they've grown to the point that new branches can sprout.

Disclaimer: this is my first look at BEM, but I've designed and lived with CSS frameworks that started with the similar goals (fast to develop, multiple authors, reusable structure and code) and ended with similar structure (ok, not the HTML as XML bits).

Much of BEM's selector design seems to flow from the principles that 1) the cascade is difficult to manage, and 2) a single very-specific class is easier to write and maintain than combining multiple single-purpose classes. BEM selectors encourage a modular approach to creating very-specific selectors, unlike the traditional 'semantic' approach of uniquely describing the expected content without acknowledging definitions or purposes shared by other elements.

But despite all of that, I agree with you - this sort of approach is a total nightmare to implement. But that's because, well, CSS isn't very good. It's a real bitch to do anything significant in scope or sophistication, really.

Preprocessors have made it possible to move beyond severely basic limitations (thank goodness for Sass mixins, extends, control directives, bubbling media queries oh my!). But that developers must concern themselves with the cascade for every single definition with no affordable method of ignoring it is madness. The only truly effective recourse is a non-trivial approach like BEM, religiously applied.

Frankly, the quality of native mobile apps has pushed web development aspirations to a level that we are absolutely dependent on style guides and methodologies like BEM, SMACSS, and the lot. Part of me misses the good old days of simple 'semantic' CSS, and maybe it's just the writing-too-late-at-night talking, but the better part of me is really excited about the opportunity for true IDEs paired with preprocessor-empowered, standardized coding methodologies.
> If those are your challenges, you might work for the wrong people. Reading this makes me a little sad.

No need to be sad :) I'm actually well-compensated and have a job I enjoy. It's just that I have "been around the block" and wanted to share my trials and tribulations.
Les zones de non-droit religieux sont une offense au sacré
Les zones de non-droit religieux sont une offense au sacré.
I think all the replies I've seen to this (including on the blog) seem to completely miss the tongue-in-cheek humor.
I'd suggest that this particular joke isn't very funny or meaningful and in my eyes detracts more from the message than it adds to it.

I wouldn't want to have an offical list of things you can't joke about, but that doesn't mean that all jokes are necessarily funny, and won't make me think less of the person choosing to tell them.
This looks like a scaled up version of this experiment that has been on youtube for about 5 years:
https://www.youtube.com/watch?v=W1TMZASCR-I
(only 5 metronomes in that one, but I remember being fascinated when I first saw the effect)
Wish Jobs was there to comment on the article.
Just a note that a lot of people find my tagging annoying. I will think of another solution.
There are a lot of CS students that can't program.
BOSS uses different approach.

If you want to have declarations of "button" in "button-primary" you can just write &lt;button class="button button-primary"&gt;

But is you want to reuse some fancy image-border "button" and "input", so they may have nothing in common, except that image-border. You can create a mixin with desired declarations for all browser, and then use it in your code as simple as "fancy-image-border: url('image.png')". And all rulesets, that have this "fancy-image-border" will then get a list of declarations in place of this mixin.

So you see, the syntax is pretty simple and matches CSS-syntax. You don't need @extends or smth else, you just have to know the name of mixin declaration.
Ask HN:Looking for Online Marketing Course. Suggestions?
Hi HN,
I live in UK and considering to take a Direct and Digital Marketing course online that would give me not just knowledge but also a Certificate/Diploma for my CV.

I checked Econsultancy, CIM (Chartered Institute of Marketing) and the IDM (Institute of Direct and Digital Marketing)and it looks like IDM offers the best courses from foundation to diploma.

Has anybody tried IDM before or has different suggestions?
Thanks a lot.
> Did the construction lights have light sensors?

The construction lights were light sensors. The reason they got into synchronization is because they were triggered to break down at a specific time by the flashes of light from the other lamps.

In a system like this, the voltage on all the lamps is increasing because a charging current is applied to a capacitor that'a connected across the lamp. But the specific time of breakdown, the exact voltage at which the lamp breaks down, depends on the ambient light level. And a nearby flash of light is sufficient to trigger the lamp to break down in sync.

This effect washes out in daylight, or in a place with normal background light. Or if a light source interferes with the delicate balancing act responsible for the synchronization -- like the headlights on a passing car.
The premise of the job posting, "Salesforce is a hugely profitable company..." is also completely false.

Salesforce had negative earnings for fiscal year 2012, losing millions of dollars. The projections for 2013 call for much larger losses. It is unclear when, if ever, Salesforce will be profitable again. The company has recently been hiding their huge losses by trumpeting bogus financial numbers using non-standard (non-GAAP) accounting practices.
Coincidentally, the most recent Project Euler problem concerns a variant of this, called weak Goodstein sequences. The lengths of the weak Goodstein sequences don't grow quite as fast.

http://projecteuler.net/problem=396
I knew if I made this joke I'd get a wall of text explaining why I was wrong; thanks, HN — you delivered!

On a more serious note, I use Sparrow every day. About the only quibble I have with it is some of the icons aren't retina versions (hardly a dealbreaker). Otherwise I'd say it meets my needs very well; doesn't that also make it ‘done’, rather than ‘effectively dead’?
Kivy is running on Linux, Windows, MacOSX, Android and IOS. You can run the same code on all supported platforms.
Many parts are written in C using Cython and tested with regression tests.

This is awesome!

Kivy uses natively most inputs protocols and devices like WM_Touch, WM_Pen, Mac OS X Trackpad and Magic Mouse, Mtdev, Linux Kernel HID, TUIO. A multi-touch mouse simulator is included.
The graphics engine is built over OpenGL ES 2, using modern and fast way of doing graphics. The toolkit is coming with more than 20 widgets designed to be extensible.

Kivy Github page - https://github.com/kivy/kivy-website/
I don't have a degree, and I've working as a web developer for 12 years, with a steady improvement in wages and benefits from year to year. Worked first in start-ups, then in SMEs, and then in IT consultancy, now a freelancer.

Absolutely no lack of work, no wage discrimination from employers either - just a few large institutions that I can't apply for because they filter candidates on the basis of a degree. I get a fair number of spontaneous offers on the strength of my LinkedIn profile, even though I'm living in a backwater.

As others mentioned on this thread, the first 2-3 years are the hardest, as you struggle to view yourself as a developer, and to make others see you as such. At that point it is quite important to have a clear vision of where you want to go, otherwise you will easily get sidetracked into alternative career paths with some CS content (helpdesk, networks, analyst,...).

Lately I've begun to feel some disadvantages from not having a degree. My theoretical foundation is patchy, and the mathematics are lacking for certain areas. I don't have a clear overall vision of CS which a degree would have given me. I do spend time studying, almost every day in fact, but it's given over to new technologies which I need on the job, not to more theoretical topics, so I'm not making much progress on the CS front.

To find a job, your best bet is to start participating now in open-source projects, and later try to get an internship somewhere for a few months (maybe even just helping out at a friend's shop or company), in order to bolster your CV. Unfortunately IT jobs are very much a catch-22 thing: you need experience in order to obtain experience. So getting the first couple of professional experiences in there is crucial to landing your first proper job.
we all know his point of view about this and it's clearly that he never ever will agree with it
IANAL, but my understanding is the bond is posted against the losses the injunction could cause as a means to ensure payment, but the plaintiff - Apple - is actually on the hook for the real losses in the end (whether more or less). As such, if the bond is insufficient they would have to cough up the rest as well.
Donation People Lunched its Launch Page
Wow, I'm surprised that people like this actually exist.
Here let me give the response which was actually meant for this: hahaha ... this is funny :D