Do Not Touch Your Face - <AUTHOR> https://donottouchyourface.com/ <comment><USER2> Very clever, but this is just encouraging me to touch my face more to see it working.

</comment><comment><USER3> Great idea but doesn't seem to work for me.</comment>


Show HN: Jobs for Voice - <AUTHOR> https://jobsforvoice.com <comment><AUTHOR> Discover and apply for all jobs in the Voice User Interface space.

If Amazon Alexa, Google Assistant, Apple Siri or Samsung Bixby are your thing, then this site is for you.</comment>


Windows 9 in 2015: Desperation isn't pretty - <AUTHOR> http://www.computerworld.com/s/article/9245477/Steven_J._Vaughan_Nichols_Windows_9_in_2015_Desperation_isn_t_pretty

<comment><USER2> Time between the release of Vista and 7: 996 days

Time between the release of 7 and 8: 1100 days

Time between the release of 8 and 9 (assuming a July 1st, 2015 release): 978 days

<comment><USER3> It's the Star Trek movie curse in reverse.

<comment><USER4> I'd wager this perception is partially self fulfilling. Frankly, So is the Star Trek movie curse.

<comment><USER5> Come now. The Star Trek movie curse is somewhat true, at least for movies two through eight. Each odd numbered movie (in the set) has a worse all time domestic ranking than the following even numbered movie (in the set). There is at lease some true.

It kinda breaks with nine, because it did so much better than ten, and all of them did a lot worse than eleven and twelve (but we don't count those, they're different...)

<comment><USER4> so except all those exceptions, there's definitely a pattern!

By the time 5 came, most people were already speculating, and you _ought_ to know as well as I do about how nasty an effect framing can have on nebulous judgements of "good" and "bad".

I'm surprised I got a downvote for the parent post, frankly. You'd think the majority of the demographic here would be against insane pigeon logic. [https://en.wikipedia.org/wiki/B._F._Skinner#Superstitious_pi...](https://en.wikipedia.org/wiki/B._F._Skinner#Superstitious_pigeons)

</comment></comment></comment></comment></comment><comment><USER6> If current experience with XP is any indicator;

" companies want desktop operating systems they can rely on for three to five years"

should probably be changed to

"companies want desktop operating systems they can rely on for thirteen to fifteen years"

</comment><comment><USER7> "Worse then Vista"? Sorry, let me stop this guy right there - this is just utter populistic crap.

Personally, I have no problems with Windows 8, I even prefer it to 7 (or Android) on touch enabled devices. This might be the "Windows Blue Hype" all over again.

<comment><USER8> > Personally, I have no problems with Windows 8, I even prefer it to 7 (or > Android) on touch enabled devices.

Even on non-touch devices, the big problems I have with Win 8/8.1 are solved by readily available third party software that gives you back a Win 7 style task bar / Start Menu (and, actually, I prefer and use this on my touchscreen laptop, as well.) AFAICT, Win 8 is an all-around improvement _except_ for basically one highly-visible but trivially correctable UI decision for keyboard-centric devices.

<comment><USER9> I don't have Win8 but I have seen people use it. How is the UI different for keyboards? Don't you still just tap the "Windows" button and then type what you want?

<comment><USER10> People are upset that they have to tap the "Windows" button instead of clicking the start menu button. Nevermind that Microsoft added the start button back in 8.1

IMO it's an almost absurdly trivial issue contrasted against holistic moderate improvements across the rest of the OS. Maybe a learning case-study on how narrow, particular elements of user experience & perception can turn against you...

<comment><USER9> There was always a Start button in Win8.0, which was demonstrated during the initial welcome screens. Hold your mouse in the upper-right corner to open the Charms menu, then click the start button there. (Edited for clarity)

<comment><USER10> Now I can't remember if the lower-left-corner-hover was present in Win8.0. I know there was always the button in the system menu (right edge swipe).

(I'm pretty sure the link you provide has been updated for Win8.1)

<comment><USER9> Here's a better link from late 2012 [http://howto.cnet.com/8301-11310_39-57534694-285/how-to- retu...](http://howto.cnet.com/8301-11310_39-57534694-285/how-to-return-to- the-windows-8-start-screen/) Seems it was always there.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Release too slow you get criticized, speed up releases you get criticized.

<comment><USER12> I never understood the decision to stop shipping an os every 2 years between xp and 7. hindsight is 20/20 and all, but i was critical back then as well. Service pack 1 should have been a (cheap) paid release with whatever features they could scrape together.

The net effect seems to be, a big fraction of customers are just completely entrenched in XP and have lost the ability to upgrade. If they can't pay to get up to date, what would they be willing to pay for? Are those customers MS wants? There's a market there, but it's a tight fisted one.

Not releasing often enough seems like healthy for business criticism. At least some of those upgrades can be paid. It keeps customers in the upgrade habit. It keeps infrastructure nimble.

Releasing to slow means fossilization. That might be good for some aspects of business, it's cheaper. But again, less money to be had there.

<comment><USER13> There was never such decision. Just MS could not ship anything for 4 years. Then after vista reboot in 2005, Sinofski put Windows back on track.

</comment></comment></comment><comment><USER14> The desktop market may be shrinking but it is still huge, but Microsoft keeps throwing it's loyal Windows desktop users under the bus. Case in point: The Windows 8.1 fix to the start button is no more than an icon that takes you to the tablet view. Right clicking the icon brings you a plain menu with a few system type options on it. I hope someone tells me I'm doing it wrong, because I've lost patience with it. I use it, but I don't feel Microsoft cares about me. I'll jump ship in a heartbeat if I see something that meets my needs even a little better.

</comment><comment><USER15> _As it is, an alarming number are still hanging on to Windows XP or Windows 7 tooth and nail. When those folks do move, they seem more likely to move to smartphones, tablets or Chromebooks._

I wonder how we can make the transition be towards Linux for the average user. We moved my retired parents from Win7 to Ubuntu, and they're doing just fine (other than printer drivers). For most people's uses, Linux is a perfectly reasonable and functionally complete alternative to Win7 or XP.

<comment><USER16> > For most people's uses, Linux is a perfectly reasonable and functionally > complete alternative to Win7 or XP.

As long as they don't watch Netflix.

Or play games.

Or have any unsupported peripherals.

Or want to use any commercial consumer software.

<comment><USER17> > As long as they don't watch Netflix.

Netflix works just fine on Linux, right? Or am I mistaken?

> Or play games.

Most people actually do NOT play the big Windows games you are referring to. They play browser-based games. Work just fine.

> Or have any unsupported peripherals.

Linux' hardware support is actually far superior to that of Windows. Trotting out the 'unsupported hardware'-argument made sense ten years ago. It does not make sense today.

On top of that, it's a bit of a silly point to make. If they don't have a monitor, they can't use it either.

> Or want to use any commercial consumer software.

Your only valid point.

<comment><USER18> >Netflix works just fine on Linux, right? Or am I mistaken?

Desktop Netflix is built with microsoft silverlight for which there is no official linux distribution. It can be made to work with a WINE hack, but even something like that may be too much for the acerage users.

</comment></comment></comment></comment><comment><USER19> The central claim of this article, that releasing Windows 9 too soon will alienate customers, seems very weak. The author acknowledges that Windows 8 uptake has been slow, so there just aren't that many people out there that are running Windows 8. And it's not like enterprise customers feel strongly obligated to switch to a new version just because one is available.

</comment><comment><USER20> About 6 months ago I built a really sweet computer, put Windows 8 on it, and I barely touch it. Since I do iOS dev I also have a mac, and I find myself always using that even when I am not developing. I am even doing my Android dev on it. I liked Windows 7, but 8 I have not liked.

<comment><USER21> Developers tend to like OS-s they are developing for.

</comment></comment><comment><USER22> My biggest gripe with 8.1 or 2012 R2 is using the corners or charms on a VM or a smaller sized RDP session. Its awful. The right-click on the start menu is also a much needed improvement in 8.1 and especially for Server 2012 R2!

</comment><comment><USER23> Another alarmist article. There are threats to Windows dominance but Microsoft has always been fighting against their own market share with older releases when it comes to OS releases.

</comment><comment><USER21> It's easy to make a mistake when you are being so radical. I hope innovation (consistent modern cross-product GUI experience in this case) will pay off for Microsoft eventually.

<comment><USER19> I'd argue that the central mistake was the decision to radically change the desktop experience to conform with the touch experience. I.e. the radicalism was itself the mistake. My feeling is that Apple made the right call here: Desktop and touch interfaces are different enough that you just have to write different code for each.

</comment></comment><comment><USER24> Die-hard windows users will stay with Windows. Not because they like Windows so much, but because they believe in crap "every second Windows version is good", "I can just wait for another version", "what I have just works".</comment>


Ordinary Words Will Do - <AUTHOR> http://www.scottaaronson.com/blog/?p=2494 <comment><USER2> I like the way he put it: "...to restrict freedom and invent new forms of discrimination — and to do it in the name of equality and justice — that takes theory."

I'd like to believe we aren't doing this in the realm of exact sciences.</comment>


Lessons from 3,000 technical interviews - <AUTHOR> http://blog.interviewing.io/lessons-from-3000-technical-interviews/ <comment><USER3> The author draws a hard distinction between Udacity/Coursera MOOCs (good) and traditional master's degrees (bad). I'll interject that with Georgia Tech's Online Master's in Computer Science program [0], which is delivered via Udacity and insanely cheap [1], you can get the best of both! (Their "Computability, Complexity and Algorithms" class is one of the top Udacity courses cited in the article.)

Keep in mind that a traditional degree program does have a huge advantage over a strict MOOC: accountability. It sounds good to say that anybody can go push themselves through one of these courses. Try pushing yourself through ten, and actually writing all the papers and implementing all the code, while working full time and having a family. That grade looming at the end of the semester really does wonders for your motivation. Plus you can get help from live professors and TAs, and the Piazza forums for OMSCS are full of smart, curious students who love talking about the subject at hand. There's a richness to the degree experience that I don't think you get with scattered classes.

(Obvious disclaimer: I'm a current OMSCS student)

[0] [http://omscs.gatech.edu](http://omscs.gatech.edu) [1] [https://www.omscs.gatech.edu/program-info/cost-payment- sched...](https://www.omscs.gatech.edu/program-info/cost-payment-schedule)

<comment><USER4> I'm studying a 3 year coursework masters that allows people with no background in CS (just had to do an additional semester of courses) to participate and it aims to give a pretty well rounded CS education. Not a common thing, apparently.

I completely agree, the motivation and environment that it gives you, the reinforcement that you're actually doing something official and serious as opposed to doing something that very few people outside of the software industry take seriously, the structure it gives you, the fellow students you meet and befriend, it's all huge. Additionally, looking at the Udacity/Coursera material, a lot of it is shallow, poorly taught, and would not have taught me nearly as well as my master's program has taught me.

<comment><USER5> Could you please elaborate? It looks like this program is only for people that already have an CS-related degree.

What courses are you taking?

</comment></comment></comment><comment><USER6> "Whether passing an algorithmic technical phone screen means you're a great engineer is another matter entirely and hopefully the subject of a future post."

This sentence plus the inverse correlation between experience and "interview performance" shown there. Makes a big smell about how biased are those interviews to themselves and not to real technical interviews.

From the data it looks like the questions asked using that service are the ones you might learn in university and after many years not using them, that knowledge fades away because you're not using it.

This is reinforced by MOOCs being the 101 of the subject they're dealing with. It would be interesting to see if there are trivia questions from 101 courses.

The most obvious bias is in the clickbait title. Those 3K interviews are in a specific platform, meaning they're done in a specific way.

So after checking their results it seems that interviews done using that service benefit people with fresh university or 101 lessons knowledge.

What worries me more is the lack of improvement and perhaps the moral superiority of ending the article with a "these findings have done nothing to change interviewing.io's core mission". It feels like the entire statistics game shown there was to feed back what they already knew.

<comment><USER7> Yes, because we all know that your ability to implement a red-black tree from memory has a direct correlation with your ability to implement some random business logic or CRUD app. Oh wait, they don't.

<comment><USER8> I used to think along these lines. Then I started doing 10+ interviews a month and realized a very clear reality: basic CS knowledge and problem skills is far more important to me and my team then knowing how to slap together some semblance of a working CRUD system.

I ask "algorithmic" questions, normally expressed as a legitimate business case (invent a real world problem, solution is implement some algorithm or use specific data structure). My warm up question typically is a simplistic "find the subset in a given collection that matches this specific criteria" (with a subtle implication of "do it efficiently"). The average coder should be able to solve this type of thing, on their own, in about 10 minutes max, 15 with some feedback on improvements.

Yet, 80% of my candidates take nearly 45 minutes and cannot deliver a workable solution without massive handholding, and I don't even get to my higher order, "real questions". The scenario of a coder who can't solve my warm-up being let loose on code I actively maintain makes my stomach churn.

Until I see the average bar for problem solving go up, I'm going to keep asking basic CS questions in my coding interviews. The job is to solve complex, typically ambiguous problems. Coding is one of the tools - and I want peers who understand the theory behind using those tools.

(I should note, I tend not to pay attention to credentials on a resume. I care more about ability to do the job then past history - though if a candidate has a masters in some field of CS, I might delve into it a bit out of curiosity... they are an expert afterall)

<comment> FLUX-YOU >The average coder should be able to solve this type of thing, on their own, in about 10 minutes max, 15 with some feedback on improvements.

>Yet, 80% of my candidates take nearly 45 minutes and cannot deliver a workable solution without massive handholding, and I don't even get to my higher order, "real questions".

You need to ask yourself why you believe the "average coder" should be able to solve that because clearly your beliefs are not founded in reality.

This is what I cannot understand about interviewers who are constantly frustrated with the population's skillset: You obviously have higher skill standards than the average. That is fine. Just accept you will have less hires because none of you are capable of fixing the entire population's skill levels.

<comment><USER9> _" You need to ask yourself why you believe the "average coder" should be able to solve that because clearly your beliefs are not founded in reality."_

Oh, stop.

The problem he describes is trivial, and something that you'll encounter as an entry-level web developer on a regular basis. If you can't solve it, you're absolutely not up to the job. In fact, I'll go further: if you _literally_ cannot find an efficient way to filter a list of stuff based on a criteria, you're not even a programmer yet. It doesn't matter if you've "written" a dozen toy webapps by stringing together NPM modules -- not knowing these basic things makes you a danger to any team that hires you.

You can't judge the quality of a test exclusively by the number of people who fail it. If you resume screen for "has written code before" and 80% of your applicants fail that test, is your standard set too high?

(In case you're wondering, that's not a hypothetical example.)

<comment> FLUX-YOU Is he talking about this problem (with a filter at the end)?

[http://www.geeksforgeeks.org/finding-all-subsets-of-a- given-...](http://www.geeksforgeeks.org/finding-all-subsets-of-a-given-set-in- java/)

Because I have never done that. That's different than just running through a list and picking out items that meet a criteria.

<comment><USER9> Not that I can see. The OP said:

 _" find the subset in a given collection that matches this specific criteria"_

So basically, a loop through a single table. That's as simple as it gets. You can make the problem more complicated, of course (e.g. _" write a method to find the minimum and maximum ages of the male users"_), but it's still pretty simple stuff.

A slightly less trivial "algorithm" question that should be equally easy for any decent programmer: I give you a document of english words. Write a function that counts the words, and returns the top ten words seen, by frequency. Now...solve the same problem when it's not a single document, but a stream of words of unspecified length. Don't run out of memory.

<comment><USER10> I would like to see a solution to your problem with bounded memory.

In particular, the case where I want the top 3 words, you don't know the length of the stream, and you get random permutations of the same 4 words until I stop emitting them (where I will end by emitting 3 to break the tie).

That's not to say your problem isn't interesting -- just that while specifically constructing a problem as an example, you created one that's unbounded in required memory (in both storage per value and potentially number of values to store) and then demanded a solution that doesn't run out of memory.

I think most interview questions are similar nonsense.

<comment><USER9> _" I think most interview questions are similar nonsense."_

It's probably a good idea to be careful with your words when you admit that you don't know the answer to a question.

First off: your example (random permutations of the same four words) doesn't require much memory at all. So if you think it does, you're wrong. You might overflow your counters, but that's a different problem.

A stream of random gibberish is certainly more challenging. But the cardinality of the English language isn't infinite (the OED has about 230k words, and that's with lot of words that nobody ever uses), so even a naive solution doesn't require "unbounded memory", as long as you take the problem statement seriously and don't do something ridiculous. That would be good enough to pass an interview.

But OK, let's say you _do_ have a stream of random latin-encoded gibberish. What then? The problem statement is that you have to determine the top-10 words (or in this case "tokens") by frequency. The cardinality of the set is infinite, but the probability of duplication per token is small, and the output set is tiny. Do you really think you _need_ unbounded storage?

In any case, even if you think a problem is "nonsense", it's probably true that the interviewer has thought about it more than you have. The part that frustrates you is highly likely to be the bit worth probing. A bad candidate will bomb out immediately; a decent candidate will provide a solid, if not perfect solution; a _great_ candidate will solve the problem, see the broader theoretical aspects, and investigate those as well.

<comment><USER11> _Do you really think you need unbounded storage?_

This is an example of a trap that interviewers run into when they try to arbitrarily reword questions.

While I could be mistaken, an exact solution to the top-k problem requires O(N) space where N is the number of distinct items. I can trivially think of a stream of tokens that would defeat any reasonable computer in both available memory and general "storage" (ex: 1 quintillion distinct words, then the next 10 words are a duplicate of an existing word, then end of stream). Since you asked for an algorithm and not a heuristic, it's clear you are looking for an exact answer. So the answer is "Yes, I would need unbounded storage for the new question as asked". Since this is an interview, I'd expect that'd you'd want me to give you the technically correct, and accurate answer.

I've tripped up enough interviewers who have tried to slightly reword questions, but ended up changing their meaning.

<comment><USER9> Well, "algorithm" is just a way of saying "procedure", so a heuristic applies (IMO). I would accept a reasonable heuristic without much argument because the problem of random text is much harder...but honestly, if you got to this part, you've already passed the interview. A total flameout on this question is not even realizing that the storage scales with vocabulary size, instead of sequence length.

An _exact_ solution to an unbounded sequence of purely random text probably does require unbounded memory (I say 'probably' only to hedge my bets here). But depending on the definition of "random", you can put pretty tight bounds on it and only be off by a little. I haven't done the math, but my gut says that a bloom filter, followed by incrementing counts only for positive hits from the filter, would scale well. There may be simpler approaches that make use of word length and the size of the latin alphabet (e.g. "all tokens of size N have 1/C(26,N) probability of colliding if letters are chosen from a uniform distribution, therefore...")

But again, if we actually had this conversation in an interview, there'd be no danger of not passing. Unless you were a jerk or something.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Thanks for writing this Aline. As a recruiter for almost 20 years, I wish I had access to all my data and then the time to compile it, and anecdotally I'd expect the finding about MOOCs would be similar.

The most selective of my hiring clients over the years tended to stress intellectual curiosity as a leading criterion and factor in their hiring decisions, as they felt that trait had led to better outcomes (good hires) over the years. MOOCs are still a relatively recent development and new option for the intellectually curious, but it's not much different than asking someone about the books on their reading list.

Unfortunately, demonstrating intellectual curiosity often takes up personal time, so someone with heavy personal time obligations and a non-challenging day job is at a significant disadvantage. One could assume that those who have the time to take MOOCs also have time to study the types of interview questions likely favored by the types of companies represented in this study.

Thanks for continuing to share your data for the benefit of others.

<comment><USER13> "Intellectual curiosity" was my primary attribute for many years. Particularly when I was young and didn't really know any better. It makes sense doesn't it? Someone who is interested in learning for learning's sake will be a better developer!

Except I'm convinced it's not really true. It's something that is horribly subjective and really self-selective. It's funny, intellectually curious people often have exactly the same interests as whomever is doing the interview. I find that nearly everyone loves to learn, you just have to find the thing they're interested in learning about.

The signal that I have found to be a great indicator of success on my teams isn't about curiosity at all. It's about attention to detail. In the world of scatter brained developers who never seem to really follow through on anything, it's those guys that are the real unicorns.

Our interview process is now designed to bubble that to the top. Vague programming problems with poorly defined requirements provide a platform by which we can see how someone digs into problems. I'll ask for them to send me a couple of things after the interview, it's a really good signal when they pull out their phone and add it to a to-do list.

Those guys may not always be the "smartest" or the most interesting, but man when you're going to spend months working down a really large project they get stuff done.

<comment><USER14> You had me until, "it's a really good signal when they pull out their phone and add it to a to-do list."

Because it's just one of many possible courses of action for staying organized. For all you know the guy added it to his to-do list on his way to the car, or maybe he employs some other mechanic. While you could argue that an interview is a showboating environment where one is expected to signal certain desireable traits, I personally resent that these attributes seem to manifest in recruiters as specific actions that reinforce _their_ perceptions of a good candidate -- if someone is unconventional then how is looking for specific signals going to tell you anything useful about them?

<comment><USER13> It's a signal. It's not a binary yes/no, there are many observations we're making throughout the interview. This is just one, and the to-do list isn't the only correct answer. Asking me to email those details to them is another possible right answer. Writing a note in a notebook is fine.

The key thing to remember here is that we're asking this very much in the middle of the interview, and I just want to see that they have some sort of system in place for remembering these things.

In my experience, most of the time, simply going "sure, I'll do that" and depending on memory to actually get it done is a negative signal. Maybe they are particularly gifted in terms of memory, but in my experience that is rarely the case.

In hiring we're willing to accept false-negatives, but never false-positives. You are correct, I may let a perfectly good candidate walk, but I'm willing to accept that as the cost of hiring a bad one is just too high.

<comment><USER15> I would not have written that down, but I can assure you that I would remember to send you whatever you asked: An interview setting is very special, and tend to get hyper focus. I wouldn't go out from there wondering the typical "man, that was intense - wonder how it went??", and then forget to send you those things you asked!

Unless your request was very specific and strange ("send me the completed k3-45 and t9807 forms"), in which case I'd have to jot /that/ down.

Should you not rather evaluate whether your request was fulfilled?

<comment><USER13> So the requests are often a bit strange (relevant to the interview tho). Usually asking for a citation for some claim made during the interview. I also make a point to ask in the middle of the interview so there's lot of times to forget.

Again I do want to stress: This is a small detail as part of a larger interview. Screwing this one thing up isn't going to sink you, but we combine it with a bunch of other signals and observations to make decisions. I've been doing this for several years, and I'm very happy with the results.

</comment></comment></comment></comment></comment></comment><comment><USER16> I am perplexed why anyone would think that interview performances has any interesting statistical relevance. Much more interesting would be how successful the candidate was after receiving a job at the company.

<comment><USER17> The conclusion is a bit obvious: if you ask people algorithms questions, the people who do the best will be people who spent a lot of time rote learning algorithms material. This means schools which place a lot of emphasis on the theoretical core or people who've taken online algorithms courses.

I'd be much more interested to see performance on other questions e.g. Google's typical curveball for new grads is an architecture question like "How would you implement YouTube?".

<comment><USER18> These are not curveballs though. Nowadays it's just another category of interview questions - System Design. There are tons of resources to prepare for this type of questions just like with the Algorithms & Data Structures problems.

</comment></comment></comment><comment><USER19> Interesting article! Some minor statistical pet peeves:

1\. Setting non-significant bars to 0 seems fishy. Leaving them and putting confidence intervals on everything would let them speak for themselves.

2\. Calling something effect size is ambiguous. That's like saying you measured distance in units (and the wiki article on effect size linked makes clear there are a billion measures of effect size).

I'm guessing their measure of effect size were the beta coefficients in a multiple regression?

<comment><USER20> Not minor at all. It's very easy to mislead intentionally or not with statistics and that's why rigorousness is needed. No details are given for the analysis, even basic things like definition of what "top university" or "top company job" even means.

It's just amazing to see how many positive comments a post like this gets without even the hint of methodology.

</comment></comment><comment><USER21> Interesting bit on the MS degree. I followed the link, and I'm not quite as surprised that the correlation is poor, or even negative, given the way the data was collected and analyzed.

Absolutely agree that some MS degrees are pretty much less rigorous cash cows by now, that allow students to skip the fundamentals such as data structures, operating systems, and compilers.

However, many CS MS degrees actually do require this as a background, to the point where some programs have emerged to prepare non-CS majors for MS degrees, kind of like those post-bac premed programs. It's hard to believe that those MS degrees, which require a decent GPA in those core courses, along with high GRE scores (sorry, but we are talking about interviewing skill, which may be more related to exam taking ability than job performance), wouldn't result in a similar profile to people with CS degrees from top schools.

This is fully acknowledged in the text of the article referenced in a link, but unless people follow it, I do think the message may be a bit misleading.

That's an aside, though. The value may very well be in the prep for these degrees (ie., the post-bac CS coursework required for admissions to a reputable MS program). If you can get that through online courses (udacity or coursera) through genuinely rigorous self-study? Yeah, that might do it, for far less money. I've audited a few of them, and they're the real deal, that's the real coursework there.

<comment><USER22> > _Absolutely agree that some MS degrees are pretty much less rigorous cash > cows by now, that allow students to skip the fundamentals such as data > structures, operating systems, and compilers._

At what point do we not consider operating systems and compilers "fundamental"? What percentage of CS/programming jobs require deep knowledge in these arenas?

<comment><USER23> It should be optional or advanced level. If you are a web developer for example OS and compilers are totally not important to get along and have a healthy career.

<comment><USER24> I disagree, compilers are relevant to web development because of all the compiling and transpiling that a single source file goes through in large application development.

<comment><USER23> If you are interested in _writing_ compilers then sure. If I just want to use those compilers, then I don't really need to understand them just use them as specified.

Now you'll say that I'll make a mess if I don't know what the compiler does. That's what best practices are for if say I pick TypeScript. Also, optimization is the compilers responsibility.

</comment></comment></comment></comment></comment><comment><USER25> Interviewing is a funny thing.

I remember when I graduated from a "Top School" and interviewed at "hot startups" from the valley. I aced a lot of the interviews - why? Because I had just taken classes on LinkedLists, Binary Trees, HashMaps, etc... So when they asked me to whiteboard a "shortest path algorithm" it was just rehashing what I did in school.

Years later, looking back, I fail to see the relevance in most of the technical questions. In fact, if I had to do those questions over again today I would probably fail miserably. Yet, I have been in the industry for a while now and have worked with countless more technologies and have accomplished far more than my younger self.

Just because someone performs well in a technical interview doesn't mean they will do a good job. That is the data that really matters. I've interviewed hundreds of candidates as a hiring manager for some big startups, and from my experience technical interviews are not a great indicator of success.

I'm saying this coming from someone who has gone to a "Top School" and done multiple Coursera/Udacity/etc classes.

Yes, someone might be able to whiteboard a random forest or write a merge sort, but do they know how to engineer a system? Can the candidate:

> Communicate well with others in a group?

> Solve unique technical problems?

> Research and learn new technologies effectively?

> Understand how to push back to product owners if there's scope creep?

etc...

These are all things that are not really analyzed in many technical interviews.

As I'm reading this analysis all I can think of is that it is pretty useless - if not dangerous for the industry.

What I've found is that it is critically important that someone knows how to code at some basic level. But their ability to code and explain algorithms on the fly, while probably relevant in academia/research, is such a minor part of the day-to-day of a programmer - At least from my experience.

<comment><USER26> That has been my experience, too. I remember deriving the optimal solution for an interview question that was a variant of a radix sort and impressing the interviewer for one of the hot startups at the time. That was partly the result of my ability to recognize the similarities between the problems but even more a consequence of having recently studied radix sorts. Twenty years later, I'm a much better developer than I was then and have shipped many projects with significant degrees of complexity, but I couldn't answer that interview question or ones like it as well today as I did then.

</comment></comment><comment><USER27> The takeaway from this is that those who do best are those with:

\- the wealthiest/most financially supportive parents/relatives

\- upbringings that are conducive to academic success

\- the most free time

as those are the ones who, by a large margin, attend top schools, work at top companies, and have time to spend on self-learning. Another data point of confirmation of a well-studied idea.

Assortative mating: [http://www.economist.com/news/briefing/21640316-children- ric...](http://www.economist.com/news/briefing/21640316-children-rich-and- powerful-are-increasingly-well-suited-earning-wealth-and-power)

Few poor at rich schools even all these years later: [https://www.nytimes.com/2014/08/26/education/despite- promise...](https://www.nytimes.com/2014/08/26/education/despite-promises- little-progress-in-drawing-poor-to-elite-colleges.html?_r=0)

Why people care about elite schools: [https://medium.com/@spencer_th0mas/why- america-cares-about-e...](https://medium.com/@spencer_th0mas/why-america- cares-about-elite-schools-411798386ba7#.yream7cae)

<comment><USER28> I did not see in the data set where the interviewee's family wealth or upbringing were mentioned. Would you mind providing a link?

<comment><USER27> "Having attended an elite school" is a proxy for that. Info available at 2nd link.

<comment><USER29> It's not that good of a proxy though. There are still tons of poor students at elite universities.

<comment><USER30> From the article >In 2006, at the 82 schools rated "most competitive" by Barron's Profiles of American Colleges, 14 percent of American undergraduates came from the poorer half of the nation

That doesn't sound like 'tons'.

<comment><USER29> 14 percent is still thousands of students. Equating elite universities with privileged upbringings is stereotyping. Like most stereotypes, it's grounded in truth but also unfair

I worked really hard to be able to get into an elite university and to get the scholarships to pay for it. When people automatically assume that my education means my family is wealthy, it discounts the enormous amount of work which I (and other low-income students) did to get there.

<comment><USER15> You are confirming the point that was made!! It is harder for "poor folks" to get in. It is easier for wealthy kids to get in.

You should state ".. and I had to work my way in there - my folks aren't wealthy!" as a bi-sentence every time you mention your education. I bet most people immediately would understand what it implied: This is an achiever!

<comment><USER29> No I'm not.

Even if fewer poor students get in, that definitely does not mean you can make the reverse assumption: that everyone who attended an elite university is wealthy. For all we know, these results are dominated by poor students who worked hard enough to get into an elite university (which, by the way, wouldn't be a crazy assumption: my CS classes had a lot more income diversity than, for example, political science ones).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> Not to harp on the "technical interviews are disconnected from actual work!" angle too much, but I'm reminded of a comment from a thread about the creator of Homebrew failing a Google interview. Someone pointed out that it goes to show that it's possible to create widely-used software without an intimate knowledge of CS. I wonder if that's a disconcerting fact for some employers to grapple with.

<comment><USER32> Made a similar comment above, but that was entirely true for myself. I have worked on amazing things as we all have in life, petabyte databases, and just the most incredible setups.

But when it comes to an interview, I cannot get a job several levels below my own (without referrals).

With referrals, I am offered the moon and the stars, complete pick out of a tremendous number of amazing jobs.

But any random interview, and I totally bomb it. I wonder how many out there are like that as well. It feels rather strange from my perspective, but maybe it's fairly normal?

<comment><USER33> You cannot get a job at a top company without referral/recruiter looking you up. Any such company is totally swamped by the number of resumes submitted and the chance of getting an interview is practically zero.

<comment><USER34> This is not even close to being true. People get hired into top companies all the time.

</comment></comment></comment></comment><comment><USER35> Until recently I worked at a startup as Machine Learning Engineer/Data Scientist. There I got some experience interviewing people and looking at their resumes. In my experience, which is very limited compared to this post, people who put an MOOC on their resume are usually less qualified compared to people who don't.

There is nothing wrong with MOOCs, but they are almost always beginner-level. If you put them on your resume it kindof implies you don't have a lot of experience beyond that. Putting the Coursera Machine Learning course on your resume would be the equivalent of putting Java 101 on your resume for a Software Engineer.

I would recommend anyone to put projects on your CV instead. Even if you don't have a lot of work experience, just put side-projects and school projects on there.

<comment><USER36> I think the point here are folks taking MOOCs for enrichment, not as a gateway to get a job. So for instance someone taking the ML course just for knowledge, not to try to get in the door as a data scientist

<comment><USER35> Yeah, like I said, there is nothing wrong with MOOCs, but I would not put them on my resume as a candidate nor would I value them as a positive signal from an employer's point of view when I see them on a resume.

</comment></comment></comment><comment><USER37> Interesting and surprising, especially the experience thing. I think I am a significantly better engineer than earlier in my career, so I assumed experience would count for a fair bit. Then again I have inherited projects from experienced guys who make crap high level architecture decisions and the code is way more difficult to work with than it ought to be.

But then this article seems to be measuring interview performance, not actual ability on the job. So is any of it actually relevant at all?

<comment><USER38> Most of the things that make us better during our career have nothing to do with programming faster: If anything, they can make us program slower, and do worse in interviews.

For instance, an interview I took last year came with a premise that I found downright bonkers. It was based on code the company had in production, but it stopped being a good problem to look at years before. I was having trouble coming up with the right tradeoffs for the implementation because all my experience was telling me that the entire approach was misguided in the first place, so the problem should not be solved. I passed, but it was a far rougher performance than I would have liked.

There's also how being far from college makes the least important knowledge gained fade away, and the least important thing I studied was memorizing algorithms. I write new algorithms at work sometimes, and I implement off the shelf ones too, but I don't have to recall them off the top of my head. Nobody has to implement distributed consensus algorithms under time pressure, or write HyperLogLog from memory.

So ultimately, there's what easy to measure, and then there's what is valuable and important. We go with what is easy, and those are things that are taught in college. Understanding the right level of testing or designing a system for observability are far more valuable in the long run: It's crazy how much downtime in well known companies comes from people not learning those things in college. But since we are bad at measuring those things, and kids right out of school don't know them, we don't interview for that.

And sadly this is why we all end up hiring by network so much: We can't tell if someone is good in a day, and we can't really ask people to dedicate two weeks to work with us in a probationary period if they have real jobs, but we sure can recall quality former coworkers and ask them to join in.

<comment><USER39> Most pedagogy, over time, gravitates toward what's easy to measure, not what's valuable to learn. So we've been very lucky in hiring by network even though we kinda feel terrible about it. On the other hand we're hiring more women now too as a result, not least because women are now much more conscientious about managing their network of other female developers than men.

</comment></comment></comment><comment><USER40> I wonder if "took courses" could be a stand in for "prepared heavily". It seems like people with all the other attributes might think they didn't need to study. People without them might think they did and took courses to "catch up". In my experience, preparation is the key driver of performance in these types of interviews.

It seems reasonable that a person who took a MOOC might have prepared in other ways as well while people who didn't probably didn't prepare much at all (since watching a few Algo lectures seems the most accessible refresher.)

</comment><comment><USER41> Top school is probably serving as a proxy for intelligence in this analysis...a well known predictor of both interview and actual job performance.

<comment><USER39> Top school is also serving as a proxy for wealth and privilege. Good grades are also a proxy for wealth. Kids who have rich parents get private tutoring.

<comment><USER42> The privilege to value education and to spend time studying, yes. Almost all resources can be found online nowadays. If you've ever been to an SAT tutoring class, you know that the only benefit the kids have is the benefit of being forced to take practice tests.

A top school is a good signal for how much time someone spent studying in high school, except for affirmative action students who get into top schools with much worse scores and GPA.

<comment><USER43> > except for affirmative action students who get into top schools with much > worse scores and GPA.

This dismissive "quota tokens" attitude really irks me. It's one thing getting in, it's a total different ballgame surviving and coming out the other end with a decent GPA. I've seen people of all socioeconomic backgrounds fail and some from remarkable poor backgrounds do exceptionally well.

<comment><USER44> Getting in is harder than surviving or even excelling. The median grade at Harvard is an A and the graduation rate is 97.5%.

</comment></comment></comment></comment></comment><comment><USER45> Unless I missed it in the article the data is all about passing the interview not acutally seeing if any of these things correlate to the employees working out in the 1,3,5 year time spans.

With this data you're just biasing towards people who interview well, which, I don't think you actually care about.

Well I mean I guess you do if you're a recruiter (if you're a moral recuiter you care about both), but not really if you're an employer.

</comment><comment><USER46> I think you are seeing the effect of people who have decided for themselves to pursue lifelong learning. The Udacity/Coursera thing just clusters these people in a way that you notice them in the stats. But remember that statistics do lie. You need to dig into the reality behind the numbers, and question whether you are measuring all the right indicators.

My experience comes from several decades developing software and from time to time, hiring people. The people that worked out best, either as colleagues or hires, always seemed to be learning new things and were ahead of the curve trying out new techniques or tools before they became popular.

If you understand how a tool/technique becomes popular as the mass of software developers wrestle with new problems and finally find a way to master them, then it makes sense that constant learning makes some people stand out of the crowd. They happen to be the first ones to learn the new tool/technique and if they do not introduce it to their development team, then when management does make the decision to introduce it, the folks who know how to drive it have a chance to excel and appear to be rocket scientists.

</comment><comment><USER47> Searched the article and the comments here for "Pluralsight", with zero hits. So what makes Udacity/Coursea preferable? TLDR, I'm asking this as Pluralsight was a significant contributor to my landing my latest role after redundancies.

The long version: I recently landed a role after some time off, having changed from mainly back end Php/Coldfusion to C# in the last year. I was able to make the switch in my last role. For me, moving to C# was a big transition; as well as guidance from a (fantastic) mentor, I used Pluralsight to learn C#, asp.net and DDD - e.g. from Jon Skeet, Scott Allen and Julie Lerman, to mention but a few.

Being completely burnt-out on the old stacks, I was set on making my next role a C# one. I've come to love what Microsoft are doing with Core, open sourcing etc, as well as the strictly typed C# language and ability to use NCrunch with live unit tests. So I signed up for a year after relinquishing my corp subscription, kept doing their courses, and found the training material highly accessible with great quality content. Each interview was a learning process, when I didn't know something from a test, I'd go and study it so that I'd be better prepared for the next role. One of these was the study of data structures and basic computer algorithms, where I was lacking. I might not have had years of experience, but the experience I had was mostly best practice.

During my search, I typically got great feedback on the fact that I was doing Pluralsight courses, and it was a significant factor in being hired for the new role - it showed cultural fit, in addition to passing their tech tests (which happened to involve structures). My company had interviewed a _lot_ of candidates, struggling to find the right talent. Just possessing technical skills is one thing, having the right attitude towards learning is another.

At any rate, I'll keep using Pluralsight to raise my proficiency in my new stack - even as an old timer, I am having a newfound level of enthusiasm towards my whole profession which I haven't felt since I coded in assembly on the good old Amigas. I would be interested in knowing why Coursera / Udacity might be better or more accepted in the marketplace though.

</comment><comment><USER48> It's rather shocking how much effect Udacity/Coursera had on interview performance - more than graduating from a top school or being employed at a top company:

"...only 3 attributes emerged as statistically significant: top school, top company, and classes on Udacity/Coursera."

<comment><USER49> > It's rather shocking how much effect Udacity/Coursera had on interview > performance

Having done Udacity and also taking a couple CS classes at Cornell, this doesn't surprise me at all. People who take Udacity classes are doing so voluntarily on their own time, so they are going to generally be smarter and of higher socioeconomic status.

If you look at people who take CS classes over the summer at college when they don't have to be and when there are no student loans, you're going to get a similar population.

<comment><USER17> I don't buy the high socioeconomic status bit. MOOCs are hugely popular in countries like India where education is extremely competitive. I help run an international science camp for late-teenage kids. More and more we're seeing applicants who list the MOOCs that they've taken, and most often they're not from 'developed' countries.

If anything the opposite is true. MOOCs have enabled vast swathes of economically challenged people to learn from high quality video material, whereas before they were limited to textbooks.

The key is that these kids are absolutely determined. And similarly if you really want that job at one of the Big Four, you might also consider soaking up as much prep material as you could.

</comment></comment></comment><comment><USER50> The master's in CS can be useful if:

1\. You have an undergrad degree in liberal arts 2\. You pay as little tuition as possible 3\. You take no time off and continue to work FT

These apply to me -- my undergrad was in English, I paid 6k total (27% of the 21k total cost) and went to school at night over 4 years while my career continued to progress.

Most of the people in my program couldn't write a FOR loop if their life depended on it, they viewed it (incorrectly) as a jobs program while the school needed the $$ to keep the dept afloat, so I'm not surprised they fared poorly in technical interviews.

But that doesn't mean the degree isn't useful. If you're already a programmer, it helps get your foot in the door at many places. HR managers/recruiters feel more confident forwarding on your résumé, they can't parse your GitHub repos.

The degree is icing on the cake, it's not going to magically turn you into the Cinderella of Programming if you have no real-world experience. I got my master's with a QA and a paralegal and today? They're still a QA and a paralegal.

That being said, timed technical interviews are almost universally asinine, IMHO. When in real life do you have 10 minutes to figure out a problem? Or are prevented from Googling the answer? The measure of successful programmers is how efficient and professional they are in problem solving, not how much useless information they can keep in their head.

Things I've never had to do in 'real' life: -Never had to split a linked list given a pivot value -Never had to reverse a string or a red/black tree -Never written my own implementation for Breadth First Search

etc etc

Personally I'd rather see take-home assignments that roughly approximate the type of work you'd do, which in my career has been churning out new features or applications. Does knowing the time-complexity of radix sort vs heap sort really have a material impact on your effectiveness as a programmer? No.

<comment><USER51> > The measure of successful programmers is how efficient and professional they > are in problem solving

They are not asking you to split a linked list given a pivot value or reverse a string without using a builtin function because that's what you going to be doing on your job. They're doing that so they can see how efficient you can be given a new problem. That's why companies have interviewers sign NDA's - <USER2> their interview questions escape as little as possible, so it's not just problem memorization.

<comment><USER50> > so it's not just problem memorization.

How is it not?

Grasping the fundamentals of algorithms and data structures: important.

Memorizing the best greedy algorithm for traversing a linked list: not important.

Any super specific answer to a problem is likely not worth committing to memory because 1) it'll probably change as platforms evolve 2) Googling specifics lets you save space in your brain for things that actually matter.

</comment></comment></comment><comment><USER52> It should be noted that these technical interviews are biased to a particular style, so the data only really is of relevance for these types of interviews.

</comment><comment><USER53> On the master's front, I went down a slightly unusual path. I enrolled in a master's program in music technology at NYU [1]. I already had a master's in engineering from Princeton [2], but after time away from the software world, I wanted to retool for a return to engineering, but with a focus on applications that actually mattered to me.

It turned out to be a very expensive, but very fulfilling decision, and it paved a route for a very successful past four years.

Compared to my first master's, it was less theoretical and much more project- based. In that sense, it was fantastic preparation for career work, because every semester, I had to conceptualize and ship 4-5 different projects in all sorts of subject areas. The value of that shouldn't be underestimated. It also directly led me to cofounding a startup that had a brief lifetime, but effectively converted me to a full-stack engineer.

Today, I don't use much of the subject matter I learned in my day-to-day, but I draw on the creativity, problem-solving skills, and work patterns every day.

My Princeton program was great too, but I thought I'd share about the NYU program, as that was the more outside-the-box choice. There's something special to be said for a master's degree, when it's interdisciplinary and let's you focus on the intersection of engineering skills and subject matter expertise.

[1] [http://steinhardt.nyu.edu/music/technology](http://steinhardt.nyu.edu/music/technology)

[2] [http://ee.princeton.edu/graduate/meng- program](http://ee.princeton.edu/graduate/meng-program)

</comment><comment><USER54> yes, this is absolutely startling:

 _For people who attended top schools, completing Udacity or Coursera courses didn't appear to matter. (...) Moreover, interviewees who attended top schools performed significantly worse than interviewees who had not attended top schools but HAD taken a Udacity or Coursera course._

Possible explanation might be that people going through regular degree typically spread themselves thin over many subjects (digital electronics, compiler design, OS theory, networking etc) while MOOC folks sharply focuses on exactly the things for interviews (i.e. popular algorithms). Its like interval training for one specific purpose vs long regime for fully rounded health. The problem here is not academic system but how we measure performance in interviews. I highly doubt if results would be same if interviewers started asking questions from all these different subjects instead of just cute algorithm puzzles.

</comment><comment><USER55> We really need a further correlation between people who pass the interviews and job performance a year later. I do a lot of interviewing at my current job and we have found no strong correlation at all between CS skills and actual ability to "get things done".

We toned down the CS type questions since they tend to take too long. We still ask a few basic tree and string manipulation questions to weed out the people who have no idea how to program and get insight into how the person thinks.

I still feel at the end of the day we could flip a coin on accepting an interview candidate once they have shown basic competency and have the same results.

I have been telling candidates that a public github repo with a nice commit history carries much more weight with me then a CS degree since we have been burned so many times before.

</comment><comment><USER56>
      If you know me, or even if you've read some of my writing, you know that, in
      the past, I've been quite loudly opposed to the concept of pedigree as a
      useful hiring signal. With that in mind, I feel like I owe clearly
      acknowledge, up front, that we found this time runs counter to my stance.

Did the interviewers have access to the applicant's resume? If so, to what extent do these results simply reflect the interviewers' bias for top schools and famous companies?

</comment><comment><USER57> While I do think that interviewing is broken, I would love to see the raw data with this. For example, did Udacity courses have other related traits associated with them, IE: did these candidates that also have a certain number of years of experience, degree etc.? 3000 is a small sample size and I'm wondering if there is some sampling bias here.

</comment><comment><USER58> Something I wonder is how the participants in these interviews were selected from the general population of job candidates. Painting with a broad brush, the best workers might not even be candidates, because they've already been hired. And the best candidates might be the least likely to seek coding interview practice.

</comment><comment><USER59> I conducts lots of tech interviews for SWE positions, and as everybody's boning up on algorithmic trivia, I've learned that I can get a stronger hiring signal by asking _simpler_ questions that people with an aptitude for programming will succeed on and people with an aptitude for memorizing the implementations of algorithms will not.

(Simple example: given two closed intervals [a..b] and [c..d], how do you compare the four values to determine whether or not the intervals overlap? You may laugh, but it defeats about 50% of candidates in the first minute of an interview because they just don't understand simple relationships and Boolean expressions.)

</comment><comment><USER60> I thought the most interesting finding was that completing Udacity or Coursera courses on programming/algorithms (for non-top school graduates) was highly predictable of strong interviewing performance.

<comment><USER61> I know some schools and bootcamps now have a separate "How to pass coding interviews" unit in their curriculum (since this is a separate skill unrelated to how to write good code on the job, sadly). If those courses include such a unit, it would explain the performance on stereotypical tech interviews.

</comment></comment><comment><USER62> Interestingly, they suggest that if you attend a to school, the effect of Udacity is negligible. I'd argue that Udacity is this filling in gaps of a poor education.

</comment><comment><USER63> I have been through an interview process many times; I have never been asked a technical question / asked to do on blackboard or on computer problem solving.

I guess that that form of interviewing is simply not common in my neck of the woods (Denmark).

I am curious to what sort of questions / tasks are actually given to the interviewee?

And are they in any way biased towards more textbook/academic ones? (I.e. "implement bubble sort" rather than "create a blue button").

<comment><USER64> Out of interest, what sort of questions do you get asked in interviews for Danish tech jobs?

To answer your question, when I have interviewed people the tasks I have set have always been job-related. I set pre-interview at-home tasks, as well as smaller tasks during the interview. I did this for the same reason I avoided whiteboard exercises: I wanted it to be realistic. One example I used was to implement an app that shows sunrise and sunset times. They were allowed to do this in any way they wanted, using open source libraries if they wanted, and add whichever features they wanted.

<comment><USER63> I do a lot of short term consulting contracts. Typically for 6 months or so. My role is either Java/JavaScript senior developer or architect.

In the general the interviews runs for 30 minutes. The first 15 minutes, the client presents themselves and the particular project they are working on.

Then I spent typically 5-10 minutes running thru my resume; focusing on any relevant previous projects.

If there is any technical talk it will be based on the projects in my resume or the client's project. The most technical it will get would be pros and cons of particular technology choices.

I have never been asked a "quiz question" \- that is a question where the interviewer knew the correct answer in advance.

</comment></comment></comment><comment><USER65> One of the reasons I got hired by Airbnb is that I took MOOCs, but I also believe that most of my knowledge comes from reading books and that's a thing I didn't put on my CV. So, even if showing interest in learning opens for you a huge amount of opportunities, I think you actually have to go deeper than just enrolling on a couple of MOOCs.

</comment><comment><USER66> I feel like things are operating according to the following pattern:

      1. Go to college:

         a. spend many semesters in lectures
            all of which tangentially brush
            upon the final exam based on the
            whims of the lecturer.

         b. cram for final exam last minute
            panic to crunch memory according
            to advice on content which was
            brushed upon during lectures.

      2. Interview for job:

         a. cram for interview by going to
            coursera to crunch memory according
            to interview memes based on the
            whims of the interviewer.

         b. spend the rest of term of employment
            exercising skills which tend to be
            tangentially brushed upon during
            both interview and schooling while
            the majority of actual tasks are often
            googled and stack-overflowed
            into place based on arbitrary design
            decisions and politicized stack
            choices.

      3. Results:

         a. good interviewees have learned
            appropriate memes to reassure interviewers.

         b. good students have learned obligatory cruft
            to reassure professors.

         c. actual necessities are tangential to
            many or most entry barriers.

How accurate is this?

<comment><USER67> Don't underestimate the knowledge gained from tangential brushes. Being able to Google and Stack-Overflow a question is dependent on knowing the vocabulary and keywords related to the problem. While tangential brushes don't give you full mastery of the domain, it gives you a bookmark on what is possible and how to find it again in the future. If you talk to newer programmers (new anything really), you will find they lack to knowledge to even properly express their problem, let alone search for answers. While more experience people may not know everything in detail, they have a better handle on various knowledge domains and where to look.

<comment><USER68> I agree with you on this. It's the difference between "I get a 500 error when I try to submit the blah form and here's the error in the log - it seems to crash in the foo method of the bar service when it receives a null value but it's not clear even from the debugger why it's getting null" vs "X doesn't work".

<comment><USER69> This exact situations happens to me far too often, especially when working with developers who refuse to learn the other side of the stack. Had lots of "this doesn't work" conversations with frontend devs who refuse to get their arms dirty with the database, and same from backend to frontend as well.

</comment></comment></comment></comment><comment><USER70> It was a very good reading, but I wonder how interviewing performance relates to job ("real") performance?

<comment><USER41> If the interviews are "structured", the correlation between interview performance and job performance is probably around .3 based on meta-analyses of research findings. If the interviews are "unstructured", the correlation will be within sampling error of zero.

<comment><USER71> Do you have a source for this?

I totally believe you, but I've been trying to find good empirical studies and authors to read on interviewing.

<comment><USER72> Not the person who originally replied to you, but the HR class I took in college broke down the correlation of interview performance to job performance into a few finer-grained buckets than just structured and unstructured. Sorry, no sources here, as I've since gotten rid of that textbook.

Structured vs. unstructured are the fairly general categories, but that correlation number is accurate. The best predictor I can recall (~0.6 IIRC?) is a "work sample test". You can Google that and find all kinds of HR resources about it.

That is HR jargon for, in this case, writing code to solve a real problem under normal conditions for that company. That is, on an actual computer, not on a whiteboard, and not being constantly scrutinized throughout the process.

<comment><USER71> Yeah from what I've read the two most effective predictors of employees were work-sample and GMA tests(basically IQ).

</comment></comment></comment></comment></comment><comment><USER73> When you are interviewing for a specialist post (and most posts are specialist to some degree) you are looking for evidence that the candidate can do that particular job. Therefore a course that indicates that they have the particular skills required is highly desirable!

</comment><comment><USER74> I'm not surprised that MOOCs are a big factor, people like me who have left school years ago have forgotten how to write a BFS, we need something to brush up those knowledge.

If you run statistics against using sites like careercup, you may find that being the top factor.

</comment><comment><USER75> Huh, I hadn't bothered to list MOOCs on my resume since I didn't think employers would be interested, maybe data like this will make employers more interested in the courses, which would probably get more people to shell out for the certificates.

</comment><comment> clark-kent Basically a "bad" programmer that can't write maintainable code that prepares for technical interviews by brushing up on algorithms and whiteboard style questions will do better than a very good programmer with lots of years experience.

</comment><comment><USER76> _" We got this data from looking at interviewees' LinkedIn profiles."_

Verification of completion and award id? There are a lot of individuals who will add a degree regardless of attendance, completion or award. Who validates the assertions?

</comment><comment><USER77> Very unsurprising for me. You are measuring your ability to solve algorithm puzzles. Most engineers don't actually do many algorithm puzzles in day-to-day work, especially the types of algorithms that interviews tend to focus on like sorting and dynamic programming. So "years of experience" is not measuring experience in what you're actually being tested on. On the other hand, you do exactly those types of things in many CS classes, and in Coursera classes, algorithms are exactly what you practice. So it makes sense it correlates.

Top company is a predictor for the obvious reason - it's selection bias for people who already passed those interviews at the company. You're not good at the interview because you worked at the company, you work for the company because you're good at the interview.

Master's degrees seem like largely for international students needing visas, career switchers, etc so not surprised they are not a strong predictor. And if anything the course material moves past the intro data structures stuff the whiteboard interviews tend to test.

The only huge surprise for me here is that Coursera is a stronger predictor than top company and top school. I would have predicted top company > top school > Coursera.

The post that I would be much more interested in is correlating performance reviews to interview performance. That gets suggested as a possible future post.

<comment><USER78> Those riddles are second semester problems on CS, thus anybody that isn't an student spent at least the last 4 years not working on them. The same probably applies to top companies, people probably interviewed there more than 2 years ago.

But Coursera stuff that gets into a CV is almost certainly recent.

<comment><USER79> Totally agree with this. I'm reminded of when I interviewed with Amazon a few years back and it was clear that the questions were best suited to filtering down to the best graduates. In my mid 30's I was too rusty to satisfy the interviewer and my real world experience counted for nothing as the entire process was structured like a series of exam questions.

I think there's a point - I would guess at about 8+ years of experience - where a technical interview will stop being a reliable indicator of an engineer's ability. It then becomes more important to evaluate what the candidate has been doing in their career and how that experience can be taken advantage of within the team that they'd be joining. Technical ability can still be judged by asking to see some existing code if it's that essential.

</comment></comment></comment><comment><USER80> Sad to see so much detail paid to the data, and so little to the setup of the experiment itself.

It shouldn't be surprising that an online technical screen favors candidates who've participated in a MOOC, but is blind, say, to years of experience. A screen like this is timed-performance-at-a-distance, which resembles MOOC participation. The full spectrum of qualities that comprise a Good Hire might incorporate the other signals from the post, but this type of interview won't test them.

(I'll be the first to admit I'm biased against performative coding in engineering interviews. Tech screens like this are often necessary, though, so they have their place.)

</comment><comment><USER81> Was there any kind of statistical correction applied when the data were partitioned into MOOC + top school vs MOOC + no top school?

</comment><comment><USER82> Slightly Off-topic, but does anyone have an invite for this platform? I have been trying to get one since ages.

</comment><comment><USER83> That graph is about the best evidence I've seen that interviews are garbage. Years of experience doesn't matter at all? Coursera courses are the best thing ever?

</comment><comment><USER33> This is a very poorly done analysis. At a minimum she needs to define top school/top company. Also I'd like to see the confidence intervals around the effect sizes. In addition, looking up MOOC information from LinkedIn may result in a lot of false negatives. (She doesn't mention if MOOC courses in non-CS subjects count.) Did all the interviewees have CS degrees? What about the Masters degrees, is she including non-CS ones? Is the sample of interviewees representative or there's any selection bias that we should be aware of?

A study which doesn't answer so many basic methodological questions is garbage.

</comment><comment><USER84> "I'm excited to see that what mattered way more than pedigree was the actions people took to better themselves."

so a degree from a top school is not earned (nor are admissions i guess), but rather conferred at birth? i beg to differ.

the commentary on the "disutility" masters degrees is even worse.

<comment><USER85> I don't think it's entirely that black and white. If an undergraduate degree from a tier 1 school didn't cost approx. a quarter of a million dollars, along with the fact that your "peers" with rich parents will have attended a private school + tutoring + usually had a decent home-life; these things stack up, you can't claim it's a level playing field. Of course you need to be smart to get there in the first place (in most cases). But it's a far cry from a pure meritocracy.

<comment><USER86> For what it's worth, financial aid at top tier schools is generally fantastic

</comment></comment></comment><comment><USER87> Is this guy a paid shill for academic friends trying to boost enrollments and overcome the disillusionment of the younger people who realize too much emphasis is placed on academics and not enough on practical application?

The world needs more vocational schools and trade schools and technical schools than it does colleges and universities.</comment>


Apple Business Profiles - Mission: Cats - <AUTHOR> http://www.apple.com/ipad/business/profiles/mission-cats/ <comment><USER2> For a moment I thought Apple was joking and this was a prank, then I realised that the company was called "Mission: Cats". Bah - they're too serious!</comment>


Phabricator's Recommandation on Branching Based on Strategy Used by Facebook - <AUTHOR> http://www.phabricator.com/docs/phabricator/article/Recommendations_on_Branching.html

<comment><AUTHOR> Not using feature branch at all is something new to me. Our current strategy is closed to the one Vincent Driessen described in his [blog post](<http://nvie.com/posts/a-successful-git-branching-model/>).

I am not clear on if it is actually better to not use feature branch. The article gave a couple of reasons:

1\. You don't have to do merges. 2\. Risk is generally spread out more evenly into a large number of very small risks created as each commit lands. 3\. You can test interactions between features in development easily. 4\. You can A/B test and do controlled rollouts easily.

I do agree with 1, 2 and 3. However, I am not sure how to weigh them. One scenario worries me about everyone developing on development is what if someone break development? Admittedly, we need a large test coverage for it, but feature branch isolates each develop group nicely and minimize the risk of one group being interrupted by the other. For reason #4, I don't see how it is a clear advantage. I think there is a way to do the same with feature branches, as long as the developer keep both version on the branch.

I'd like to hear your opinions on this. More over, it sounds to me that with this branching modeling, a variety of systems (e.g. GateKeeper) needs to be in place. What exactly are those systems?</comment>


Mods - could you stop changing post titles? - <AUTHOR>

    I would ask that the unknown mysterious moderators of this site stop changing post titles long after they hit the front page.

    The guidelines at http://ycombinator.com/newsguidelines.html state: "You can make up a new title if you want, but if you put gratuitous editorial spin on it, the editors may rewrite it." but this should not apply just because the title submitted does not match the article. When the actual article's title makes no sense or provides no context, it should be allowed to stay changed.

    A story is currently on the front page with a title of "Where the Heat and the Thunder Hit Their Shots" which was just changed from its previously edited title of something about visualization.

    "Where the Heat and Thunder Hit Their Shots", while actually the title of the article, says absolutely nothing about the content of the article. Is this an article about weather? Photography? Nope, it's about basketball. Why is it on Hacker News? Oh, the submitter liked the visualizations, which is exactly what the previously edited title said before it was changed.

    Another example: https://news.ycombinator.com/item?id=3875857 was a story about Light Table and the title was edited to reflect that until it had at least 100 points. Then a moderator changed it to the story's actual title of "On concepts and realities" which said absolutely nothing about it and probably caused lots of people that had already visited the link once to read it and think it was something else.

    Moderators, please stop doing this.
 <comment><USER2> I flagged a story today because the submitter had chosen to submit it with a sexist title instead of the title on the linked page.

If a moderator had changed the title I would have removed my flag, and presumably it would not have been flagged to death.

</comment><comment><USER3> Prepare for hellban.</comment>


Why does DNS propagation take so long? - <AUTHOR>

I was talking to a friend at Silicon Drinkabout last night, and we were wondering why there isn't a "push" approach to DNS propagation? Especially for CDNs, and heavy cache users, such as mobile networks.. ? What are we missing in our thinking, here? <comment><USER2> I'm no expert, but my in understanding a 'push' approach wouldn't work because there are so many different DNS servers (Every ISP and Hosting provider has them, plus third party providers, and internal corperate DNS servers) it wouldn't really be feasible to push changes to all of them instantly.

Really the TTL (Time To Live) should allow fairly quick DNS propagation. The problem with TTL is that you need know your change is coming in advance.

Eg: If your domain's TTL is currently 24 hours, you need to change it to something much shorter (say 5 minutes) at least 24 hours before the DNS change happens, as this will mean that every DNS server will know to update its record for your domain every 5 minutes before you actually make a DNS change.

The other problem is to 'improve' response times, some DNS servers (particularly ISPs) don't honour the TTL directive.

<comment><USER3> Not withstanding the problems mentioned, you can leave your TTL as a low value. Amazon S3, for example, leaves it as 60 seconds.

</comment></comment><comment><USER4> How would that work, would every authoritative nameserver keep a database of the IP addresses of all the clients that have requested records in the last week? And then hope those clients also run a name server on the same IP, so it can send some kind of DNS NOTIFY when the records change? What about my recursive DNS server on my LAN, which only has an RFC 1918 address? :)

Of course it'd be nice to push changes quickly, but I doubt there is any feasible way to coordinate that on the internet. The next best thing you can do is to lower your TTL in advance.

</comment><comment><USER5> It takes "so long" because of the disparate cache and TTL idea. That is, service providers believe the best thing to do is run large DNS caches for end users (and those providers can each set TTL's however they wish; they might not all be in agreement on what is an appropriate TTL). Of course, that's not the only way to run a DNS. But groupthink (or whatever you choose to call it) prevents any change in the status quo.

For example, if I said end users could run their own caches, use their own custom zones, or custom /etc/hosts files for sites they frequent, I'll bet the idea would quickly be shot down by the defenders of the status quo.

Yet it solves the "so long" problem. They can honour the suggested TTL's the authoritative DNS servers provide, or set their cache's min/max TTL's as they wish. Long or short. End user decides. Not all sites, including CDN's, keep changing their IP every few minutes. Once the user knows the closest IP for getting what she wants, no need for the DNS. Things become very fast when you don't have to constantly look up the same names, day after day.

But the real question is why are you asking why it takes "so long"? What is the _real_ problem you are trying to solve? For example, are you needing to keep switching IP's, add CNAMES, or create more indirection? If so, why is that?

</comment><comment><USER6> You mean, other than RFC 1996 and friends?

</comment><comment><USER7> What do you mean by "push" approach to DNS propagation?</comment>


Ask HN: What is the difference between a devops and an infrastructure engineer? - <AUTHOR> Recently I wrote a blog post about my internship at a startup in Egypt ( http://blog.mbassem.com/2015/02/04/my-journey-with-trustious/ ) that helped me find my passion. I knew the kind of work I love but I can't find a suitable title for it. I think it's either an infrastructure engineer or a devops engineer. So I would love to know the difference between both of them from the requirements and responsibilities point of view. Thank you. <comment><USER2> DevOps was originally supposed to be about moving dev and ops out of their respective silos and into one combined team so as to break down communication barriers and help each side understand their duties better. Under this model there is no such thing as a "DevOps engineer" as "DevOps" is a team structure not a job title.

Now days "DevOps" often just means "cloud deployment engineer" or "we can get a developer to look after the servers".

What you seem interested in is the ops side of things. Usually this will be under a title like sysadmin, deployment engineer, "DevOps".

</comment><comment><USER3> Generally speaking there is little standard terminology for job titles. What is called "Infrastructure Engineer" at company A may be called "DevOps engineer" at company B, and "Deployment Ninja" at company C. When looking for a job your best bet is probably to search for specific skills, not job titles.

Personally I would call what you are interested in DevOps (I only skimmed the blog post). To me an infrastructure engineer sounds like someone designing and implementing the infrastructure of a distributed backend system, not someone dealing with deployment.</comment>


One Ring to Bind Them: Clojure web development - <AUTHOR> http://clojure.blip.tv/file/4706750/

<comment><USER2> 'Composable Abstraction' is a pervasive theme in this talk. The presenter suggests that it can apply to general library design equally well as to how it's used in Ring and Compojure.</comment>


Freelancers Are Not Pieces of Meat - Don't Act Like One - <AUTHOR> https://grouptalent.com/blog/freelancers-are-not-pieces-of-meat

<comment><USER2> _Don't compromise on price_

Yes & no. Yes, if there's one thing you learn about pricing in consulting, it's "never ever cut rate" (you will never get a rate cut back). But the point in this article goes on to suggest that you should never back down from your assessment of what a project should cost, and that's going too far. Clients have budgets; sometimes those budgets are indeed too small for you to be productive, but other times they aren't and you should cut project scope to fit. Telling a client to spend more than they're comfortable spending is usually not a good strategy.

 _Don't do things for free._

No. When what a client needs is cheap and non-disruptive (and, one way to make it non-disruptive is to push the "free" back onto your schedule, which is coincidentally also a clean way to turn "free" into "paid" when the client balks at how long they'll have to wait), you should go ahead and do it to maintain the relationship. Doing favors for clients is, I promise you, cheaper than hiring salespeople. If you have a client that can't be trusted not to abuse favors, fire the client.

Lesson in human nature: there are few things you can do in a business relationship that are more offensive than charging for something that your counterparty doesn't expect to be charged for. So, one thing _never_ to do: take an inbound request from a client, do the work with no contract, and then send an invoice.

 _Don't let clients pay you later_

No, at least, not when you're working with companies of 100 or more people. You can negotiate payment terms, but you should learn how to sniff out payment processes that are nonnegotiable. Trying to convince a Fortune 500 company to pay you in installments or, worse, withholding work based on those installments is a recipe for disaster. It doesn't even help you; it just creates an opportunity for the client to continually second-guess whether they're getting value from the engagement. I expect 30 web developers to chime in here with client horror stories. My response to all of them will be the same: don't work as a web developer for small businesses. Also: some of your best clients will be the worst at handling payments. Build your business so that it can thrive even on slow payments.

Don't work for clients who can't be trusted to pay you. Real clients wouldn't dream of skipping out on a payment; what possible upside could there be to that? "Woopity-doo, we saved $30,000 and trashed our reputation and I got fired! Look how smart I am!"

 _Don't be at their beck and call_

Sounds good to me. Set clear expectations. If you answer your emails at 9:00PM, clients will expect you to keep doing that. The flip side of this is that clients are usually entitled to set the terms on which you communicate, and if the client wants 10:00AM meetings, be prepared to roll out of bed 3 hours early to get on the call.

 _Don't part take in useless meetings_

You should stay out of internal meetings; you shouldn't be a part of the weekly staff all-hands. But be aware that some "useless" internal meetings are resolving communications problems between stakeholders in your project. _You_ don't get value out of those meetings, but your clients get value out of having you there. When skip out of the meeting, you become a shadowy figure or a weird black box that people resent and blame for communications issues. You can blame the client for being irrational about this (and subsequently lose the client), or, just get on the phone for the meeting.

 _Don't write lengthy proposals_

And lose engagements to the consultancies that will.

 _Don't wait until client asks for an update_

Yep. Daily status mail. I wish I could make myself do this reliably, because it's helped every time I've done it.

 _Stop caring about only the money_

I didn't understand this point.

 _Don't do everything clients asks_

This strikes me as a dumb reason to get fired by a client.

<comment><USER3> > Doing favors for clients is, I promise you, cheaper than hiring salespeople. > If you have a client that can't be trusted not to abuse favors, fire the > client.

You're absolutely right, but I want to put it another way. I actively price in "one extra thing" for every project. This way, when a client asks for an extra tweak there or a small extra feature there, I don't feel bad because I already priced that in and the client feels good because they think they're getting a bonus freebie.

Virtually ever client asks for a little extra and since I already priced it in, I have no qualms with providing it. Everybody walks away happy.

</comment></comment><comment><USER4> Wait. There are people who don't bill for meetings?

I understand not charging for the initial meeting where we figure out if we're going to be able to work together, but after that if I'm in a meeting with the customer then it's billable.

That's part of the reason for charging by the hour. An hour of my time is worth X dollars, if the customer wants to pay that so that I can listen to he and his business partner argue about spending money to get more whiteboards in the meeting room (true story) then that's their choice.

<comment><USER5> I don't charge every billable hour. This costs me a couple of hours every now and then but it gets me tons of goodwill back because I'm not the guy that bills for every little tidbit. This translates into customers not being shy about calling me, which in turn translates (more often than not) into business, either direct or by referral. I've made the conscious choice to let the longer term be more important than the shorter term. The near term cost is << 5%, the long term gains have been immense.

Typical things I don't count as billable:

\- short phone calls

\- meetings that can lead to substantial business

\- referrals

\- introductions / finding employees

Not always, not with everybody, but more often than not those come at 0 charge and it cements the relationship. If all someone wants from me is an introduction or a referral then they will most likely find a closed door, but for existing customers I really could not justify putting a price on every interaction. Note that this works for me, it could very well not work for you.

<comment><USER6> I do the same and the goodwill generated more than pays for any money made on billing for _everything_. I also go as far as sending new business towards my client's way. They see me as a part of their team, rather than an outsider. Plus I enjoy helping others succeed.

<comment><USER7> Do either of you minimally make note of the time you spent on an invoice and mark it as No Charge or skip that altogether too?

I wonder what method results in better good will? I would guess not putting it on the invoice since putting it on the invoice a) moves the social aspect/norm to a market norm/aspect and b) shows you track time and are knowingly and willing to give some away for FREE (which I would assume might lead to a client abusing it later or questioning why or pointing out that you didn't charge for X or for that one time but now you are charging me this time or for similar thing Y and then having to explain yourself.

<comment><USER8> I only work with clients that know what my value is. They never have a problem paying me to make their business a lot more money. In fact they love paying me for that because I'm very business goal oriented. I am obsessed with making businesses money.

These clients would never want me to do something for free. They always want to compensate me appropriately. It works our great for everyone.

<comment><USER5> What is your hourly rate?

<comment><USER8> I don't do hourly rates because I don't like trading time for money. I trade value added to the business for money though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> As someone who has, at one time or another, failed at some or all of these points, I wish I'd seen this before I started out.

It's tempting to devalue yourself when you're new to freelancing or consulting in order to get business. But I'd take it all back and do it the right way after what I've seen.

The first time you make a serious mistake or don't get paid because you didn't ask for payment up front, you learn the hard way that business is, in fact, brutal and you don't get anywhere by being accommodating or nice; you can only go far by being professional and proactive.

<comment><USER10> I'd like to know: without selling yourself cheap, what's the way to get that first client?

<comment><USER9> It's not easy, even if you sell yourself cheap. It can be done, however. I never asked for references or kept a portfolio of my past work.

To get that first client:

1\. Advertise and be picky about where. There are lists of freelancers who are specialized in certain kinds of work. Put yourself on them. You will get desperate people who can't find anyone to take on their job. Some of these jobs will be pretty bad. DO NOT take them, even as a way to build your portfolio. I learned this the hard way. You may think you are superhuman, but burnout is your enemy. Forget oDesk or similar. For example, if you know Django, put yourself into Django people. I got lots of clients that way when I first started out.

2\. Use your connections, and build more connections. While I would never sell to friends and family, you can find clients through them. When I was a teenager I started a successful custom PC business this way. You never know who your acquaintances might know and what problems they might have that you can solve.

3\. Deny everything. Do not act like you are new. You have to have confidence in being enough of an expert to do the job for anyone to take you seriously. Be the kind of person who doesn't need to give references to get a client. References have only rarely come up for me because I would always demonstrate a firm grasp of what the problem that needed to be solved was and I could offer a careful plan of attack.

4\. Sell yourself. I don't mean by blogging or having a website. When you talk to client over the phone or meet them in person, you need to sell yourself as a competent worker. If you've worked on projects that have something to do with the project a client is proposing, say so. You don't need to add qualifiers about it being a hobby project or open source contribution. If you can solve your client's problem your job is to make sure you make them believe that you're the person to do it. Everything else is just details.

5\. Avoid LinkedIn. This was easier when I started...it might be harder now. Connecting with potential clients on LinkedIn could expose you as inexperienced (or help if you have lots of corporate experience). Take on small enough projects to start that this doesn't come up. This almost always means your first clients will be small businesses.

6\. Repeat to yourself before meeting with a client: "This person will judge me based on our interaction. They will only know my experience level based on this. I am only inexperienced if I lead them to believe it."

</comment></comment></comment><comment><USER11> I like this series of blog posts, and I really dig original artwork.

That being said, I find the formatting of this post a bit offputting. To my mind, the header usage clashes with the topic sentence accent (bolding) and I feel like I have trouble focusing on the sentiments.

Good content though; these points apply to all consulting positions, not just developers, although that's certainly the target audience on HN. I note that this piece also doesn't mention what GroupTalent does, which I think is a subtle but effective way of being "above the fray".

Good work again guys.

<comment><USER8> From a content marketing perspective, I don't think they should sell their own product on their own blog too much. Constantly providing valuable content in the freelancing domain will help build more trust with potential customers in the long run.

They do have a small pitch at the end of the blog post about GroupTalent. There's also more call-to-actions on the right column. It's about the right amount mentions.

</comment></comment><comment><USER12> I do like this is a great post, don't get me wrong, but does anyone else feel that the points " _Stop caring about only the money._ " and " _Don't let clients pay you later._ " directly contradict themselves? How is it possible to "* Demand payment before you begin any work*" without seeming like you only care about the money?

And while I already know the answers to my questions, because they are meant to be more rhetorical, they may try rephrasing those points for that seemingly direct contradiction.

<comment><USER13> > Stop caring about ONLY the money

It doesn't say you can't like money, or consider it. They just mean take pride in your work, and love what you do.

If you already know the answer, is it worth writing a comment about? They phrased the headings fine, you read them wrong.

<comment><USER12> > _They phrased the headings fine, you read them wrong._

Fair enough, that may have been the case. I guess I just took it differently.</comment></comment></comment>


A nice tribute to Steve Jobs - <AUTHOR>

Back in February, for Steve's birthday, my site created a set of tribute pages. 7 inspiring quotes set against some great pictures of Steve. Thought I would share it on this day, the anniversary of his death.
http://www.getinspired365.com/20130224
thanks <comment><USER2> I'm sorry to say this but I really hate your website. I go inside and see this: [http://wz.io/fd/2EhcCATA](http://wz.io/fd/2EhcCATA). Where on earth do I have to click or how do I watch the tribute? After several minutes, after even changing to other motivational videos because I thought the arrows would change the image (really stupid thought huh) I realize it's just a slideshow where I can nav between images using the dots.

And then, suddenly, this window appears: [http://wz.io/fd/HAKDPHEd](http://wz.io/fd/HAKDPHEd) and I can't continue doing anything, or I introduce my mail or I introduce my mail, seriously?

<comment><USER3> I agree. There's just too much happening on this website.

</comment></comment><comment><AUTHOR> clickable [http://www.getinspired365.com/20130224](http://www.getinspired365.com/20130224)</comment>


The great Brazilian Sat-Hack crackdown (2009) - <AUTHOR> https://www.wired.com/2009/04/fleetcom/ <comment><USER2> Cool. Apparently, a documentary related to these events was produced: [https://www.imdb.com/title/tt1894541/](https://www.imdb.com/title/tt1894541/) Could be this one ( the quality is horrible ): [https://www.youtube.com/watch?v=veDZfejpbs8](https://www.youtube.com/watch?v=veDZfejpbs8) More materials: [https://spectregroup.wordpress.com/2009/04/24/brazilian- sate...](https://spectregroup.wordpress.com/2009/04/24/brazilian-satellite- squatters/) If someone has more information, links are welcome.</comment>