Razer CEO Berated and Threatened His Staff, Former Employees Say - <AUTHOR> https://www.kotaku.com.au/2019/12/razer-ceo-berated-and-threatened-his-staff-former-employees-say/ <comment><USER2> > _One former employee said their son was admitted to the ER after a car > crash. While he was still in the hospital, they said, their boss told them > to get back to work. Another said he was asked to work on his honeymoon. > When asked about this, a Razer representative told Kotaku that they are a > "family-friendly employer," and have adopted policies aimed at supporting > employees with families._

I guess that "family-friendly" means whatever the company wants it to mean.

> _When Razer finally did go public, in November of 2017, some estimates put > the company's reported valuation at as much as $US4.55 ($7) billion. ... In > the weeks and months to follow, when Razer employees finally got those long- > promised checks, some did indeed get the big paydays they'd hoped for—in > some cases, upwards of $US200,000 ($292,612). Others, however, said they > were underwhelmed by the results. "We didn't get what we expected based on > the initial [stock] letter," said a former employee. Said another, "It was > used car money."_

$200K is not a big payout at all. It barely covers the hours of unpaid overtime an employee would have put in over a period of several years. Employees could have done better by investing money in an S&P 500 mutual fund. But the CEO is now a billionaire. Employees of pre-IPO unicorn companies, take note.

<comment><USER3> Startup employee is a job you take for the fun, not for the money. That's why it's predominantly taken by twentysomethings looking for adventure, and why so many of them crash and burn for lack of even an iota of relevant experience, both technical and business.

<comment><USER4> Well it sounds like it wasn't lucrative _or_ fun.

<comment><USER3> Yes - taking a job as an early startup employee is 99% of the time an idiotic move.</comment></comment></comment></comment>


Making Posterous faster with Varnish page caching - <AUTHOR> http://technology.posterous.com/making-posterous-faster-with-varnish

<comment><USER2> Pushing dynamic content via AJAX and caching the much larger part of the page that isn't dynamic is a great tip -- much better than caching fragments. I will now steal it and appear smart by telling others. :-P

<comment><USER3> Make sure you run your specific implementation past an SEO who knows what they're doing -- and on this issue, most don't. (The sweet spot is probably caching the whole page for non logged-in users and regenerating that "relatively infrequently", and doing the AJAX trick for your logged-in users only.)

</comment></comment><comment><USER4> Varnish is most definitely a huge win. It can be somewhat of a pain to install if you're not using Chef or something, though. Here's some helpful info I compiled that might come in handy for first-timers:

Installing Varnish with nginx, Passenger, and Monit on Ubuntu 8.10 intrepid:

[http://trevorturk.com/2009/10/22/installing-varnish-with- ngi...](http://trevorturk.com/2009/10/22/installing-varnish-with-nginx- passenger-and-monit-on-ubuntu-8-10-intrepid/)

It's a bit out of date now, but basically still applicable.

Also, here are some packages for Sprinkle, which is an alternative to Chef that I like:

<http://github.com/trevorturk/sprinkle-packages>

Varnish is not installed by the default example, but look in packages/varnish.rb and you'll be able to sort it out.

Go go gadget Varnish!

</comment><comment><USER5> Nice choice. This post about Varnish architecture is one of my favorites: <http://www.varnish-cache.org/trac/wiki/ArchitectNotes>

<comment><USER6> "The Varnish Guy", as many call him here and on reddit is none other than Poul-Henning Kamp, Yeah, _that_ phk from FreeBSD. So, yeah, you're gonna get some top-notch systems engineering from him.

</comment></comment><comment><USER7> Slightly off-topic: Varnish has some really beautiful C code. It's so good you can get the source code in book form. Check out: <http://ing.dk/modules/xphoto/cache/40/31740_460_400.jpg> <http://phk.freebsd.dk/misc/_book2.pdf> ;)

<comment><USER8> It's a textbook example of how to code up a unix daemon that does a spectacular amount of work.

</comment></comment><comment><USER9> I really love Varnish, but hate VCL. I wish they'd have embedded Lua or something. There's all sorts of cool stuff you could do with better scripting.

<comment><USER10> I think the unique point about VCL is that it compiles down to machine code. Varnish makes a big thing about doing things the fastest way possible.

<comment><USER11> I didn't realize this for some reason, makes it a bit more obvious as to why you can actually embed C. /slaps forehead

</comment></comment></comment><comment><USER8> Happy to see varnish get so much airtime recently, it's a great piece of software and I would not be able to run my service at the current budget without it. If you are not a varnish user yet and you have a high volume site, go check it out, and save yourself some big $ by better utilizing the servers that you already have.

</comment><comment><USER12> Varnish is very attractive, and it is something that my organization is beginning to look at.

But, this appears to be a new blog from Posterous, with this submission being it's first post, and it comes to HN just after Posterous had some, well potentially negative press about their traffic.

Am I off base in asserting that this blog post is a marketing play? And if this isn't their first blog post, please let me know of my grave error (and down-vote me accordingly)

Edit and follow-up: This blog has been around for a while, so I guess I'll sit back and relax. However, I'll still stand behind the marketing assertion.

<comment><USER13> Corporate blogs exist solely for marketing purposes. There's nothing wrong with that.

</comment></comment><comment><USER14> Their description of Lacquer sounds problematic to me.

The usual failure case for this is that a cache node goes down for awhile, misses some invalidation messages, then comes up and starts serving (stale) traffic again.

This case isn't so bad if you keep your TTL low, and have cheap page revalidation.

<comment><AUTHOR> Ideally invalidation happens on an offline queue with retry support. Server down? Reschedule job and retry later.

We use Delayed Job at Posterous for things like this. Resque works too.

</comment></comment><comment><USER15> Interesting, we also added a Varnish based cache layer and also got a dramatic performance boost. The connections to the backend dropped to 50%, taking off a lot load.

I am currently going through your VCL to take some ideas for improvement. Thanks for posting that.

</comment><comment><USER16> Any opinions on pros/cons of using Varnish vs a CDN (Akamai/Limelight)

</comment><comment><USER17> Getting -> 502 Bad Gateway</comment>


YC Is Not a School for Startups; It's Marine Corps Boot Camp for Founders - <AUTHOR> http://earbitscom.posterous.com/yc-is-not-a-school-for-startups-it-is-marine# <comment><USER2> So, I've actually gone through the local version of Marine Corps training with the 'crawling on your belly through mud with bullets whizzing over your head' part and served near North Iraq for 9 months as a squad leader. It was basically hard like hell and fainting teammates due to exhaustion wasn't unusual during basic training.

Should I include this experience to my application form if I ever decide to apply to YCombinator?

<comment><USER3> Cool. I never did quite that, but I was a volunteer firefighter and a firefighter instructor who literally crawled on my belly in smoke-filled buildings, with a fire burning inside, with nothing but a flashlight and a 2" hoseline, and with flashover a possiblity at any moment... and I trained guys to do LP gas firefighting where the simulator generated so much heat that guys routinely found their helmets partially melted after a training drill. Wonder if I should put any of that stuff on my YC application?

<comment><USER4> The trick is finding an effective way to include this in your story. YC isn't, or shouldn't, be your only incubator option and others will require you to communicate your story with very few words. (And just because YC doesn't require it doesn't mean that you shouldn't keep it in mind.)

I run an international SAR team (www.1srg.org) and kept forgetting that it was a startup. I've been trying to include that experience while not adding too many words. The resulting story is much tighter, and hopefully more compelling.

Invest in good prose....

<comment><USER3> Good point. And that's something I'm not terribly good at yet. I tend to use too many words when communicating. I need to learn to tighten things up a bit. :-(

<comment><USER5> Write, then re-write.

</comment></comment></comment></comment></comment><comment><USER6> _"... Like war, everything in startups is life or death ..."_

I appreciate the enthusiasm & romanticism of the story, but don't for a minute confuse working in a Startup and a real _"life & death"_ situation. Things have to be done perfectly, freeze, screw up or make a mistake and you end up with a corpse instead of a person. Why not say it, _"as it is"_ \- a relatively safe, exciting creative job where you get to make your own decisions, create things, have fun and maybe make some money.

</comment><comment><USER7> Headlines like this are one of the dangers of our little HN niche.

<comment><USER8> Exactly. I had a comment ready to go but I didn't want to get too negative on the OP so I deleted it. He forgets that kids his age will die this week doing what his fantasy analogies describe. As someone who served 4 years in the military, I found parts of this post offensive.

</comment></comment><comment><USER9> Don't be distracted by the Marine Corp analogy. This is a really accurate description of what it feels like to do YC.

<comment><USER10> The description makes me think I'm trying too hard at this stuff. What does an investor think when they see words assembled in this way?

I'm not bagging on this guy specifically, but this article/description is below-average writing even for a high-school dropout. I'm not trying to quibble on semantics or be a grammar-nazi, though I'm sure I'm doing both, but it's long, vague, jumpy, and plain hard to read.

<comment><USER11> Do you mean investors like Dave McClure who write in all lower case? Or investors like Matt Coffin, who writes his "you" with a u, even in public posts? Just trying to get a little clarification here. And, to answer your question, more than a dozen investors have thought, "Let me sign this convertible note."

<comment><USER12> Just because they're investors doesn't mean they're off the hook for writing like crap. Having a lot of money isn't a free pass for mangling the English language.

<comment><USER13> neither does it mean they're awesome if they use perfect punctuation and grammar.

some optimize for speed & utility... others optimize for look & feel. neither is necessarily correct, just different.

<comment><USER10> Why should we assume that this writing style is evidence of optimization rather than plain skill?

</comment></comment></comment></comment></comment></comment><comment><USER14> Warfighting by the US Marine Corp is actually a very great book for entrepreneurs to read: <http://www.dtic.mil/doctrine/jel/service_pubs/mcdp1.pdf>

</comment><comment><USER15> Actually, the difference between the two is enormous.

</comment><comment><USER16> Does this mean that you can apply and fail as many times as you want but if you quit then you're done for life?

This is how the Marnie Corps Officer Training program works.

</comment><comment><USER17> I love that "Esprit de Corps/Sparta" Mystic (after graduating I joined 5 years the Paris Fire Brigade, my parents/friends thinkin WTFF!). Even though ones can keep in mind that it's a training methodology (for the days you are about to sob like a little boy due to sheer, to the bones exhaustion), it produces great results: * It aligns everything you have (any cells, not just neurons) towards one clear goal "Fulfill la mission sacré (or die;)" (as to speak in Foreign Legion language); for me "relentlessly ressourceful" is that rustic légionnaire mentality (no big logistic ressources at the Legion) "no excuses", "Marche ou crève", you gotta find a way and you are not scared to violently execute ("getting ones fingers out of his a." Pardon my french). You learn so much more just because of the intensity (things stick in your brain, are tattooed in your body once for all). You receive very tough feedback which is what we need as we are too much in love with our ideas. You are able to say "screw that", pivot radically throw all what you build away to start afresh, or say no without blinking ("Ca me fera pas un 2ème trou au c.l"). You make friends like rarely one can make (that network becomes a fantastic ressource when you need help now!/yesterday). Finally because of that harsh training, the skin you have put into it, you can go extra 10 miles nobody would have ever believed one could (eg. Airbnb crazy story: they did not give up! That's also why imo YC looks for never giving up on the mission Determination: to get the maximum run for their investment). Congrats to PG for forging that mystic that YC "Esprit de Corps": makes business sense, but sure must be a unforgettable defining experience.

</comment><comment><USER18> In my experience, any job or any company you start can be exactly as described. If you allow yourself to take on responsibility and then own that responsibility, your life will tend to be dominated by a sense of obligation to that responsibility. There are always highs and lows in any pursuit. When the times get rough, you just have to put on your best smile and do whatever needs doing. There's no point in complaining; you made the choice to be where you are.

</comment><comment><USER10> "Marine Corp," eh?

<comment><USER19> I suspect that if the OP had actually gone through Parris Island or San Diego, the friendly on-site staff would have helped him remember how to spell it correctly.

</comment></comment><comment><USER20> On an unrelated note, apparently I missed the Earbits post a few days ago, so I thought I'd check it out. First thing it told me was:

      WTF?
      You need Adobe Flash to stream music...
      We thought you knew this, but apparently you need reminding.

That's a little too "bootcamp", isn't it?

</comment><comment><USER11> To clarify, this was intended to imply that YC is more stressful and intense than any schooling I have ever seen. So, it seemed more akin to training for "life and death" situations. And, since you're training with the best of the best young founders, it's simply a compliment to the Marines. Take it or leave it.

<comment><USER8> I don't want to keep piling on but it seems like you still don't get it. One of the reasons your post got such a negative response is because you are comparing yourself to people who put themselves in harms way for your benefit.

There is a difference between having your startup fail and actually being shot in the f'ing face by a high powered rifle. And you even ripped on the Marines that may have joined as a way to pay for college, as if they are beneath you and your peers.

Do not compare yourself to real soldiers (or sailors), there is no comparison. Just accept it and move on.

<comment><USER11> Not to keep piling it on, but when someone says "this is the Cadillac of sandwiches," do you say "Cadillac was founded in 1902 and employs tens of thousands of hard working Americans. How dare you?!"

People call YC a school for startups. I used a metaphor that implied it's far harder than school, and that the people in it are among the best you can hope to be working alongside. It's a metaphor and meant to be both a compliment to YC, and to the Marines. It doesn't make me comparable to a Marine, just like it doesn't make tuna on rye a car.

<comment><USER8> Ok...we can keep going. If you would have said "YC is like the Marines of startup incubators" and left it at that, it would have been fine. But you didn't say that. You went a lot further than that. You made very specific comparisons including a condescending remark that you and your peers aren't here to _just_ pay their college tuition, etc...

I am quite sure that your intentions were not malicious, but the response to your post is the response to your post.

Did YC teach you and your "best of the best" peers to know when you made a mistake, how to fix it and then move on? If so, now would be a good time to put it into practice, imo.

<comment><USER11> I see...this is all a misunderstanding based on you not having read this correctly.

"...it could easily be the Air Force, or the Navy, right? Wrong. YC is the Marine Corp...[like the Marines] You are not serving next to people who are in it for the college money."

Yet again a metaphor intended to describe similarities...a compliment to the Marines, specifically. I have met plenty of people who went into other branches of the military just to earn money for college. Nobody goes into the Marines just to earn money for college. I can't see how you turned that into an issue.

It's really unfortunate. I have had the great opportunity to go through a world class program designed to turn the most dedicated professionals from a field into some of its strongest leaders. It is not for the weak-willed and my post was intended to convey that to people interested in the program. I thought I could relay that message by comparing it to a world class training organization of another kind, in which only people of the highest dedication should consider joining. It was my way of saying that what PG has put together is the best of the best, just like the US Marines. I am sorry that you had to nitpick it and turn it into a semantic argument. I'm happy to move on, but my compliment to the Marines and to the program PG has put together is nothing to apologize for.

</comment></comment></comment></comment></comment><comment><USER21> My dad was a Marine Corps sniper in Vietnam. I'm pretty sure you won't get PTSD from doing YC.

<comment><USER22> He said "boot camp", not active service. My best wishes to your dad.

</comment></comment><comment><USER23> Please stop the hate and look past the Marine Corp analogy. This post described the stresses of early startup life very well, and was entertaining to read.

To anyone just dropping in on this, skip the HN comments and read the post.

</comment><comment><USER24> ...or more like MLM bootcamp.

</comment><comment><USER25> "This is my rifle. There are many like it, but this one is mine. My rifle is my best friend. It is my life. I must master it as I must master my life. My rifle, without me, is useless. Without my rifle, I am useless. I must fire my rifle true. I must shoot straighter than my enemy who is trying to kill me. I must shoot him before he shoots me. I will...

My rifle and myself know that what counts in this war is not the rounds we fire, the noise of our burst, nor the smoke we make. We know that it is the hits that count. We will hit...

My rifle is human, even as I, because it is my life. Thus, I will learn it as a brother. I will learn its weaknesses, its strength, its parts, its accessories, its sights and its barrel. I will ever guard it against the ravages of weather and damage as I will ever guard my legs, my arms, my eyes and my heart against damage. I will keep my rifle clean and ready. We will become part of each other. We will...

Before God, I swear this creed. My rifle and myself are the defenders of my country. We are the masters of our enemy. We are the saviors of my life. So be it, until victory is America's and there is no enemy, but peace!" <http://en.wikipedia.org/wiki/Rifleman%27s_Creed>

YC is great, but reading this should make it clear that nothing in startup land is remotely comparable.

</comment><comment><USER26> I applied to YC and at one point during the pitch, pg said to me, in his best R. Lee Ermey, Full Metal Jacket voice, "Hell, I like you. You can come over to my house and fuck my sister!"

True story.

<comment><USER27> you made my day</comment></comment>


Introducing Heroku Teams - <AUTHOR> https://blog.heroku.com/archives/2016/6/9/heroku-teams <comment><USER2> This is a very welcome addition. Heroku and CloudFlare are key components of my startup's infrastructure stack, and for years both of them have positioned simple multi-user access as an "Enterprise" feature. That's been disingenuous at best; team accounts are obviously useful for every organization larger than one person.

Heroku's implementation has one gotcha, and it's that Teams cannot use free dynos. I thought that'd be a dealbreaker at first since we have 20+ app pipelines on Heroku, each with a staging app powered by free dynos.

Luckily the pipelines work just fine even when split between my personal account and the new Team. The free staging apps remain on my personal account, where I have been grandfathered with 2250 free dyno hours. The paid apps are now on the Team account, where other team members can now change the dyno formation and provision add-ons.</comment>


The Pragmatic Programmer, 20th Anniversary Edition - <AUTHOR> https://pragprog.com/book/tpp20/the-pragmatic-programmer-20th-anniversary-edition <comment><USER3> The original version of this book is something I'll always treasure. It sits next to "Code Complete", the Gang of Four's "Design Patterns" book and Martin Fowler's "Refactoring" on my top shelf and I still read parts of it every year.

<comment><USER4> I used to think those books were great before I got my first job at FAANG. Literally the only thing that matters is moving fast. Technical debt is just the price of scaling and beating the competition. Code quality is really not important at all as long as the product works and is bug free.

So I've become extremely nihilistic about software development. It isn't that I don't think the properties of clean code and software craftsmanship aren't worth it, it's that companies and the engineers who build them from startups don't care and are focused on keeping their doors open. Long term health is a very secondary concern.

I've done my fair share of preaching that we should refactor and start focusing on quality during code reviews and it's basically just shouted down with "don't fix what isn't broken" and YAGNI.

<comment><USER5> > Literally the only thing that matters is moving fast

> Code quality is really not important at all as long as the product works and > is bug free

According to Robert C. Martin is not possible to move fast without good quality.

<comment><USER4> That's the thing though. Martin says that, but then you watch a company scale to billions of people ignoring all of his advice. So the question is - <USER2> Martin actually have quantitative proof that what he is saying is correct, or is he just selling wishful thinking? The field of software engineering as an academic discipline is the least understood of the computer science subfields because it's qualitative not quantitative field.

Of course scaling to billions of users only proves that it can be done without quality, not that they could have done it better with quality software.

</comment></comment></comment></comment><comment><USER6> I was underwhelmed by this book. I think that so many of the practices (like version control) have become _so_ popular that reading an argument for their use seems superfluous.

That also makes it really jarring when it recommends something that decidedly hasn't taken off, like the blackboard design pattern.

I had the same experience reading "The Design of Everyday Things". To some extent, these books seem most valuable as historical artifacts of what the tech world was like thirty years ago, rather than current references.

<comment><USER7> > I think that so many of the practices (like version control) have become so > popular that reading an argument for their use seems superfluous.

This made me laugh - not because you aren't right (in theory), but because I just took over a project from a big four consulting company. When I asked about the location of the latest version of the code (after looking in VC and not finding it)...answer: on the production server. "We could have checked it into VC, but didn't want to take the time."

I've seen at least n=6 of these in the past couple of years.

Sometimes the oldies are goodies.

<comment><USER8> I was just told at my day job that the team will not be using VC for tracking production analytics code because "using git is over-engineering".

<comment><USER9> There's a set of projects in an adjacent work group that does not use version control. Instead, they create snapshots at various stages of development (before certain formal reviews). These snapshots are fine, actually they're useful, but they don't replace version control. I had a chance to explain and demo git to one of them, who'd written some 10k lines of code between snapshots, to explain how git could help _him_ manage _his_ work better (easier to try things and roll them back, as the primary one). This helped, he had started to use it though I don't know if it's spread yet.

Fortunately there is no opposition to version control in their group, it's just momentum keeping them from changing.

<comment><USER10> This reminds me of the comic which has a machine gun salesperson trying to sell to a medieval king who says "I can't be bothered with that, I have a battle to fight!"

</comment></comment></comment></comment></comment><comment><USER11> There's some good advice in the book, but I found the majority of it seems to be rather goldilocks flavored. Implement the features you need, but don't add too many, but don't omit important ones either. Write some documentation, but not too much or too little. Etc. You read it, and oh yes, very wise, but not really helpful? Not much here would be useful in resolving a dispute between two programmers, one who wants to do things one way and one who wants to do it a different way.

<comment><USER12> People have a tendency to become extremists. I sometimes think of it as a ridge, with cliffs on both sides. People look at one of the cliffs, and back away from it, because it's a _cliff_ , and it's _dangerous_ , and so they're going to make _sure_ that they don't fall off of it. But they get so focused on that cliff that they forget that there's also a cliff on the _other_ side.

So in that sense, the advice is good and necessary. But it's kind of not, because the kind of person who needs the advice isn't often the kind of person who reads such a book.

<comment><USER11> I would argue that "the people who need to read this book" will read it and then announce, yes, of course, that's exactly how I do things. Perhaps that's why it's so popular. Everybody can see themselves in it.

</comment></comment></comment><comment><USER13> There's been a lot of love for this book, but I found the title to be jarring. When I was given the book to read, I was doing a lot of maintenance work, and was doing a lot of 'duct tape and bailing wire' kinds of fixes to keep the systems functional, while slowly addressing the root causes of downtime and issues. To me this was truly pragmatic programming, but nothing in the first few chapters even tries to deal with the levels of pragmatism I needed in my day job that had far too many night time wake up calls. I couldn't finish it. Any wisdom the book may have was lost to me, and I'll likely never pick up the book again, I associate it with too much PTSD from that time in my life...

<comment><USER14> Whats with companies constantly throwing people in the trenches and forcing them to be in constant maintanence mode all the time? I feel like they are just asking for burnout and turnover. If its that bad, give it to someone to greenfield some painful part of it rather than spend their life on the hamster wheel.

<comment><USER15> You'd be surprised how much companies operate in silos without any training, design, or planning.

Most of the time, you're just throwing crap together at the last minute. Doing things without saying no.

<comment><USER16> Sink or swim is poor management, but if you're young, at your first tech job or haven't experienced anything better, how would you know?

My first dev job was so terrible, I almost quit this career entirely.

</comment></comment></comment></comment><comment><USER17> This book is in my opinion the most important book for professional software developers. It teaches you the craft.

</comment><comment><USER18> I read the first edition back in the days; and again, and again. Back then, during my first years working as a programmer, it was a gold mine and definitely helped push me in the right direction.

One of my favorite authors wrote that every book eventually becomes a prison for the mind. At some point you will transcend the content which means it's time to move on. But that doesn't change anything about the book, it's still as excellent as ever for others.

The only constant in this universe is change.

</comment><comment><USER19> Anyone with an opinion on the new edition? Worth buying if you already read the old one back when it came out?

</comment><comment><USER20> The codingblocks podcast has a whole series discussing the various chapters: [https://www.codingblocks.net/category/podcast/](https://www.codingblocks.net/category/podcast/)

</comment><comment><USER21> The main lesson of value I took away from this book is to value _working software_ above all the trendy tools and tricks and languages and processes - including what "Agile" itself has become.

</comment><comment><USER22> Why concurrency? And why advocate a particular solution? A good solution, in my experience, isn't any particular implementation: it's to think about it, really hard, using tools that help you think about hard things... like math. "Actors," is like... soy sauce.

However there were nuggets of gold in the original. Looking forward to finding the new bits and gems again.

</comment><comment><USER23> I read this book -- well, twenty years ago! I wasn't a very experienced developer at that point, and I found the book extremely helpful.

What I've never been able to figure out is why it has never been updated in all that time. Does anyone know? I heard from someone who heard from someone that there was some kind of legal reason they couldn't update it, but I can't really imagine what that would be.

Obviously, lots of books don't go into multiple editions, but given what this one was about, I felt like it couldn't possibly be entirely full of "timeless advice" that wouldn't ever show its age.

</comment><comment><USER24> This book was a tremendous influence on me as a young professional programmer. I still quote from it regularly. ("SELECT isn't broken!")

</comment><comment><USER25> One thing I have used over and over again out of this book is the concept of a "Tracer Bullet". I find it works extremely well for not just code, but any complex system you are working to define.

I don't think a month goes by that I _don't_ quote this concept to a group or individual. Really appreciate how they put all these ideas together.

</comment><comment><USER26> Though I've never read the book, I've seen it mentioned so many times, I've gone to look at and skim pieces of it many, many times. My impression, which I agree could be completely wrong but I'd still be willing to bet money on it, is that the book is poorly organized and really just seems to be a really long rant. It's impossible to tell what a chapter or section is about from its heading. To me, that tells me the authors really didn't have a solid concept of what point they wanted to make before they started. From what I've skimmed, most of the knowledge seems like things that shouldn't need to be said, perhaps some people need to hear them. Without some sort of organization it's impossible to tell which parts of the book might be worth reading for me, I certainly don't need to read all of it.

</comment><comment><USER27> While your at it, please update "Pragmatic Project Automation".

<comment><USER27> I should elaborate. Excellent book by Mike Clark, under the Pragmatic Programmers umbrella. Based an Ant and Cruise control. An updated version using a modern stack would be awesome.

</comment></comment><comment><USER28> Incomplete response received from application

That is what I got from the link.

I haven't read that book in fifteen years. Are there any interesting changes since the first edition?

</comment><comment><USER29> Just read the DRY chapter, you can read it for free to get a feel of the book if you follow the link. Looks good to me, I will be picking this up.

</comment><comment><USER30> [https://www.amazon.com/Pragmatic-Programmer-journey- mastery-...](https://www.amazon.com/Pragmatic-Programmer-journey-mastery- Anniversary/dp/0135957052/ref=sr_1_2?crid=SI7SPML1G35K&keywords=pragmatic+programmer&qid=1568907959&s=books&sprefix=pragmatic%2Caps%2C270&sr=1-2)

<comment><USER31> Buying from the pragprog site gets you a 50% discount on the hardcover when it comes out, if you have any interest in the paper version.

</comment></comment><comment><USER32> So, worth buying ?

<comment><USER33> I believe it is.

Not all of it may appeal to you, but if there are just a few points that help you become a better programmer then it's worth it.

</comment></comment><comment><USER34> I... I don't know.

I have never read this book. Ironically, I have read and enjoyed many books from PragProg. But this one always struck me as a "fufu" book, written around giving advice that one can independently reason and acquire during one's career.

Am I wrong? Is this book worth reading if you already have many years of experience under your belt?

<comment><USER35> > Is this book worth reading

If you have a day to kill, it's an entertaining read, and if you're an experienced developer, you'll find yourself shaking your head or nodding along throughout. But it's mostly just entertaining, well-written anecdotes - there's not really that much to _learn_ there.

<comment><USER34> This is exactly the type of answer I was looking for. Thank you sir.

</comment></comment></comment><comment><USER36> I visited the link with noscript enabled, and was redirected immediately to [https://pragprog.com/no_js](https://pragprog.com/no_js)

So I disabled noscript, which refreshed the page automatically, so of course I was still on [https://pragprog.com/no_js](https://pragprog.com/no_js) and not [https://pragprog.com/book/tpp20/the-pragmatic- programmer-20t...](https://pragprog.com/book/tpp20/the-pragmatic- programmer-20th-anniversary-edition)

...Not very pragmatic of them IMHO.

I do quite enjoy my copy of the book, however :P

If only to reassure me that I am generally doing things correctly, it didn't really teach me a whole lot.

Never hurts to brush up on the basics.</comment>


Expected Salary by Major - <AUTHOR> http://www.r-bloggers.com/expected-salary-by-major/

<comment><USER2> English major here, earning nearly triple what I'm expected to make. I suppose there is a lot to be said for approaching computer programming as a specific type of poetry.</comment>


Build stuff - <AUTHOR> https://why.degree/motivation/ <comment><USER3> I was a mentor for a scrappy, underfunded robotics team of about 12 9th-11th grade students until the season was cancelled. One of my favourite parts of the experience was pointing out the "theory" behind the "practical". "What you're dealing with is called X and this is why it's important" was an increasingly common reply I'd give.

One of _many_ examples was when the software lead came to me excitedly and said he got basic autonomy working, but the robot wouldn't drive the same distance every time. We talked about open vs. closed loop systems, their wheel encoders, and PID loops. I'm convinced that when he goes to study any of those things in university, because of this real-world exposure to them, they will be far easier to grok.

<comment><USER4> In case anyone is curious, this program is called FIRST Robotics Competition [0], and it is life-changing for the students who get to participate. (I'm an alum.)

I got my first job through FIRST and was so much better prepared to solve difficult problems through what I learned there.

You probably have a local team in your area. If you're interested, you should mentor! The students' excitement is contagious and its a fantastic experience.

[0]: [https://www.firstinspires.org/robotics/frc](https://www.firstinspires.org/robotics/frc)

<comment><USER5> I am also an alum -- I started the FIRST robotics team at my high school back in the day. I was part of a community where being a doctor, a lawyer or an accountant (nothing bad with that) was the expected norm. Having exposure through FIRST to technology, engineering and the creative innovation process led me to pursue engineering. Very grateful for FIRST and the amazing people that make it happen. Woody Flowers, one of the icons of the program, and a professor of mine at MIT, recently passed [0].

[0] [https://www.firstinspires.org/about/leadership/dr-woodie- flo...](https://www.firstinspires.org/about/leadership/dr-woodie-flowers)

</comment></comment></comment><comment><USER6> I focused on building stuff, and I've never stopped. I've worked weekends and evenings doing that throughout my career. I dropped out of college because I wasn't gaining anything from the degree, it would have just been a credential for me. It made it harder to get that first job, but since then it hasn't held me back. I have gone further in my career than the very best students in my classes who stayed and finished their degree with honors, and in some cases continued on to their masters in computer science.

Now at 35 nobody even asks about the degree anymore. So a degree is not worth that much in this industry compared to practical skills. However, I think many people might struggle to learn on their own and might lack the self-discipline or initiative to guide their own learning - in which case get that degree! But keep in mind those same skills are required on an ongoing basis to keep up with this fast moving industry, and you won't get as far without them. I was home-schooled so for me it's just business as usual - that's actually been the biggest thing I got out of my schooling.

<comment><USER7> > Now at 35 nobody even asks about the degree anymore. So a degree is not > worth that much in this industry compared to practical skills.

At 35, maybe.

Before that, a degree is worth a lot.

<comment><USER6> It mattered a lot to my first job, after that almost not at all. I didn't get callbacks from some very conservative companies, and that may be the reason - but those weren't great places to work anyway - so I can't say that it hurt me at all. Sample size of 1 mind you.

<comment><USER8> Very much the same here. First job is harder, but demonstrate ability and no recruiter has ever asked since.

School is essentially trash for demonstrating "can program in a business environment". If you're aiming for a research-heavy position it may help, but that's an _extreme_ minority of jobs. And after a couple years it's useless again anyway - you're either continuing your self-education and improving, or you're stagnant, and your prior education doesn't play all that much of a role.

</comment></comment></comment></comment><comment><USER9> We have a nearby state university with a so-so computer science program. 2-3 graduates every year go to FAANG, a handful go to the local fortune 1000 companies, and we (a < 500 employee company) get to pick through the rest.

They all list C, C++, .NET, HTML, CSS, and Java on their resumes but haven't done anything except a simple group project in any of them, half the time not even writing any code for the project. Which means a role in documentation, testing, etc.

They come with a chip on their shoulder, flaunt their degree, and demand a salary close to what they think they should be getting, according to their advisers or statistics or whatever.

To make it worse, they don't have any personal projects to show. I tell every single person that I interview to create something, even if it's a failure. At least you can come back and discuss your experience _trying_ to create something, and you'll learn more about development working on that project than you did the whole semester you _learned_ Java.

<comment><USER10> It's a failure of the education system. They want to teach the academic side but ignore the skill side. They're taught the language but none of the tooling. When I was in school, which granted was a while ago now, they didn't teach you subversion, make, how to use an IDE, how to install and use a compiler, linker, etc. I remember having to logon to a VAX machine so we could do some fortran assignment. It was a cruel joke. There was little to no instruction on how to use the damn thing. You just had to make your way through it. I don't think much has changed. The students who are curious seek out and learn to use IDEs, git, maven, npm, jenkins, whatever, but there are others who do what's asked of them and they're not asked to learn these things. As a result they're unable to even start on anything other than the trivial assignments they're given in class.

I think they seem entitled because they did what they were told and possibly received good grades as a result and their attitude may be them saying, "I bought an education. I was graded and found to be exceptional. If I had needed it, it would have been a part of my education". Right or wrong you should feel sorry for these kids. They paid a fortune and got ripped off. They just haven't realized it yet.

<comment><USER11> > It's a failure of the education system. They want to teach the academic side > but ignore the skill side.

Common misconception, but no this is not a failure of the academic side. This is exactly what universities are for. The thinking always was that if you teach the fundamentals, then the practical applications are a foregone conclusion. Someone who is well versed in advanced theories of computer science and electrical engineering: boolean logic, circuits, abstract computation machines and models of computing, data structures, algorithms, language design should be able to pick up whatever FooBar FOTM programming language or paradigm or framework that comes out.

If you think that the situation today is difficult with all the languages and frameworks we have just know that it was almost the exact same back then as well, except you didn't have the internet, chat rooms, and robust documentation and Q/A sites to help you answer your questions. Imagine the, excuse my frank language here, whining that would be happening right now on this forum and many others if you were just slapped with an IBM manual and told to bootstrap things yourself. I could only imagine!

Trade schools are suppose to be the institutions that teach you practical skills "to get a job". Universities are for expanding your mind and learning. I don't know why we mixed the two and then act surprised when a multi-century institution fails at modern workforce demands.

To anyone reading this: Do _NOT_ go to a University to get a job. If your goal is just to get a job in this field, you can do that in far easier and cheaper ways (start reading some programming docs and get busy building things). You go to a university to learn. The getting a job part is a natural consequence of the learning you have done and are now are able to do.

<comment><USER10> I don't see the people in the chemistry department saying, "We don't teach students to stir shit in test tubes we teach fundamentals!". I get it, they're not there to teach job skills but it's also not an excuse to completely ignore it. If you want to do gas chromatography you're going to have to learn to use the machine. You don't just say, "Hey get some trade school person to do it" and it isn't just a "foregone conslusion" from fundamentals.

<comment><USER11> This is not an apt counter analogy for many reasons, and actually can be made to argue against the point you are trying to make. I'll give a few examples here:

\- In a computer science education, you do indeed still use a computer.

\- There are still proprietary techniques, substrates, solutions and materials that industry chemists use that you almost certainly don't have access to in your standard university classroom. These would be akin to the variety of frameworks, tools, and libraries that exist in the programming world, many of which are open and documented, many of which are proprietary and closed sourced. Hopefully, however, your university education has taught you how to learn to learn in order to use these things.

\- Chemistry is not about test tubes and beakers. That's just what it looks like today. Likewise Programming by typing characters on a screen is just what it looks like today. To introduce another analogy, just like Geometry is no longer about rulers and measuring pyramids, Computer Science is about how to formalize knowledge and it just happens to look like semicolons, braces, and 0's and 1's today.

</comment></comment></comment></comment></comment><comment><USER12> I despised the academic parts of school. The work was hilariously irrelevant, the requirements totally arbitrary, and the expectations set so ridiculously high that even though I've been in the workforce for a few years now, I still have anxieties and insecurities about my engineering ability that trace back to school being set up such that you're expected to fail all the time yet still somehow graduate. Often, it felt like school was actively working _against_ me in my drive to become a better engineer.

I quickly learned to give my engineering side-projects a _higher_ priority than schoolwork. Schoolwork could always expand infinitely to fill as much time as it wanted, and school was a hideous monster that would swallow every ounce of effort I put into it, take it for all for granted, and only greedily demand more of me. If I'd played along with that, I would've had to give up the drive to build things that made me want to pursue engineering as a career in the first place.

I had an industry internship every summer while I was in college, and I found an industry job - which paid more than my program's average undergrad starting salary - the afternoon after my last final exam. I say this because I want to emphasize that even by the standards of my school's career department I have """succeeded""" \- yet every single one of those positions made absolutely no use of the things I was forced to do or learn to get my degree, and extensive use of the skills I learned by ignoring schoolwork and focusing on personal projects.

I can't say with certainty that school did absolutely nothing for me: my current manager says that even though he didn't look at my academics at all, he likely never would've seen my resume if it didn't have a degree on it. But while I can count on one hand the number of times something at work has been remotely relevant to my schoolwork, the number of panic attacks and depressive spirals caused by anxieties rooted in my experience in the academic environment is beyond countless.

</comment><comment><USER13> People don't expect aspiring accountants to spend their weekends managing their personal finances or imaginary companies in QuickBooks or (shudder) Oracle. If they've got a personal budget spreadsheet, and have done a few studies in school following tutorials with sample data in a few software packages, but frequently refer to the docs and don't know the keyboard shortcuts, that's great for an accountant. You teach an accountant the tools your company uses to apply the basic principles they learned in school.

They haven't spent a whole semester learning Java, they've spent a semester learning _about_ Java. By writing a group project in each of those tools, they prove not that they are ready to start knocking out your Jira tickets on Day 1 - they're not, as your experience and their resume proves - but that they are capable of working on unfamiliar software projects in a group, which is what they should be doing in your company. Take a student who knows how the fundamental function your software performs can be built, and _teach them_ the unique tools your company uses to do that. It only takes a couple thousand hours for someone who knows how to learn to develop good proficiency in your particular stack, and there are so many stacks out there that you can't expect everyone to have invested that in yours.

<comment><USER14> _> People don't expect aspiring accountants to spend their weekends managing their personal finances or imaginary companies in QuickBooks_

I do understand (and sympathize) why many job candidates disagree with the importance of a "personal portfolio" and so we get repeated frustrations of comparing it to accountants, lawyers, pharmacists, etc. E.g. if pharmacists don't dispense drugs on the weekend "for personal fun", why do we "expect" programmers to do the same?

The way to make better sense of it is to not frame it in terms of _" expectation"_ of a job seeker but of _" identification and preference"_ of employers choosing one job seeker over another. Whether the preference itself is flawed is irrelevant. The point is that it's human nature to use a preference as a tie breaker.

Programming, much more so than accounting/law, is an activity that many more people like to do for personal "fun". Because of this, it's inevitable that some employers tend to want to identify them and prioritize them over others.

And hiring _preferences_ are not unique to computer programmers. Here's engineer Ben Krasnow (of popular channel Applied Science) explaining how a "personal portfolio" helps him stand out and get good jobs:

\- deep link and watch for ~30 seconds: [https://youtu.be/ihbYtxaEDSk?t=248](https://youtu.be/ihbYtxaEDSk?t=248)

So, if you're an electrical engineer getting angry at the world because employers shouldn't "expect" you to design circuits for fun on the weekend, don't be surprised if they hire Ben instead of you.

 __Edit to add another Ben K video covering the same topic but mentioning Valve & GoogleX and choosing between prospective candidates:

\- deep link: [https://youtu.be/4RuT2TlhbU8?t=112](https://youtu.be/4RuT2TlhbU8?t=112)

<comment><USER15> > Programming, much more so than accounting/law, is an activity that many more > people like to do for personal "fun". Because of this, it's inevitable that > some employers tend to want to identify them and prioritize them over > others.

The fact that I do programming at the weekend for fun _on my personal projects_ does not in the slightest imply that I have fun at the kind of project that I have to do for the employer. So, judging by this criterion is a _really_ bad idea of the (potential) employer.

<comment><USER16> > The fact that I do programming at the weekend for fun on my personal > projects does not in the slightest imply that I have fun at the kind of > project that I have to do for the employer. So, judging by this criterion is > a really bad idea of the (potential) employer.

I am not sure that was the argument being made. I think it was more like "If a candidate actively uses and develops their skill set in their own time, then they will be preferred over candidates that don't". Those candidates demonstrate a higher level of mastery of the skills needed by virtue of doing something, _anything_ over other candidates who don't, even if the demonstration is trivial. It can also signal a lower managerial load if the candidate has demonstrated the skill set to self-start and self-motivate. That can also mean less ramp-up time to being productive.

<comment><USER17> > develops their skill set in their own time

I don't see working on personal projects as doing personal development. What I do then is riddled with bugs, no unit-tests or documentation, and with no sense of project or time management.

Don't get me wrong if a personal project to you is production code, well then to me that is a hobby or maybe you are doing it to pad your resume, in which case sure it does seem like a good signal.

Overall though you have to have unproductive fun and that's what personal projects are for me, and this notion that anything tied to code equals resume is really insidious. Like when do we ever get away from work? Hustle culture seems to have made it's way into a white collar job, I need to tune out.

</comment></comment></comment></comment></comment><comment><USER18> How many civil engineers are building bridges on the side? Why has it become the "norm" that CS students pay tons of money to attend universities that leave them ill-equipped to find a job in the real world?

One of the best parts of college is the ability to learn more about yourself, diversify parts of your life, and experience new things. It's hard to do that when your life is split between school work and personal work.

I worked my life away at side projects and a part-time programming job in college and looking back there's so much I would've done differently. CS programs across the country need a wakeup call.

<comment><USER19> > _Why has it become the "norm" that CS students pay tons of money to attend > universities that leave them ill-equipped to find a job in the real world?_

University industry, unions, and academia more broadly, set the tone that if you want to do anything "for real" you must go to school. Many companies, parents, and ordinary lay people are convinced.

My (somewhat limited, I am young) experience tells me that competence is a completely inadequate predictor of whether somebody went to school for computing or software, but self-importance is an excellent one.

<comment><USER20> A good CS education will give you a wider perspective, a stable foundation to build on. Then you need practice, lots of it, to become anything close to competent. But being able to orient yourself and having been exposed to several different kinds of problems and languages, and learned an algorithm or two, definitely helps.

One of my university teachers told us that to become a real programmer, you have to design and build at least one language of your own. I wouldn't choose the same words; but having done several, I sort of agree. You need practical experience before it makes any sense though.

</comment></comment></comment><comment><USER21> > If you want to be a software engineer and you do not have any code to > present in an interview, you can not call yourself a programmer.

That's just bollocks for a number of reasons. Maybe you're too busy doing productive work to build a portfolio. Likewise, employers are often too busy to look at and evaluate your portfolio. And unless you spend a huge amount of time working on your portfolio, chances are it's going to have nothing relevant to your job.

Perhaps this junior developer fresh out of university needs to show up with real world experience before blogging about it :P

<comment><AUTHOR> > If you want to be a software engineer and you do not have any code to > present in an interview, you can not call yourself a programmer.

You can still call yourself a Computer Scientist, but there's a difference between the two.

<comment><USER22> You can call yourself a computer scientist if you have at least one serious computer science publication to your name.

You seemed to be implying that the bar for calling yourself a computer scientist is lower than the bar for calling yourself a programmer. The opposite is true.

Also, not all computer scientists are in the business of writing code.

<comment><USER23> Nonsense,

People call themselves chemists, geologists, etc. without ever publishing anything.

Ditto computer scientists.

<comment><USER22> I'm aware that some people want to cheapen the word. 'Scientist' isn't a protected title. Anyone is legally permitted to claim the term. That doesn't mean that everyone with a science-related bachelor's degree is really a scientist.

'Scientist' is meant to mean 'person who does science'. Roughly speaking, that means someone who produces research papers. If someone says _I 've been a scientist for ten years_, they mean to say they've been doing science for ten years. They do not mean merely that they were awarded a Bachelor of Science degree ten years ago.

This is less of an issue in, say, bridge engineering. The term 'engineer' is (in some jurisdictions) a protected term, reserved for proper chartered engineers.

If you have a better word for people who make a profession of doing science, I'd like to hear it.

<comment><USER23> Why? 1) Its the long-accepted term - its what the universities put on your Bachelor of SCIENCE certificate. Part of our rich oral history if you will.

2) Research chemists don't suddenly start using the term 'chemistry scientist'. They are all just chemists. No hang-ups.

<comment><USER22> > Its the long-accepted term - its what the universities put on your Bachelor > of SCIENCE certificate

We're not talking about the word _science_ , we're talking about the word _scientist_.

It is indeed a long-accepted term. _Scientist_ means someone who _does_ science. It does not mean someone with a basic grounding in the field, which is what a BSc indicates. With few exceptions, scientists hold PhDs. That is, after all, the point of a PhD.

If you get a BSc in computer science and then make a billion dollars selling fidget-spinners, your Wikipedia article will describe you as an 'entrepreneur'. There's no way it would describe you as a 'scientist'.

> Research chemists don't suddenly start using the term 'chemistry scientist'. > They are all just chemists.

Chemists are scientists by definition, and the same thing applies here. Holding a BSc in chemistry does not make you a chemist. _Doing_ chemistry, and presumably publishing papers, makes you a chemist.

As with the distinction between computer science and software engineering, there is a distinction between chemistry and chemical engineering.

<comment><USER23> > Doing chemistry, make you a chemist.

As does doing computer science. I did computer science last week (analysed the run time complexity of an algorithm).

Hence: computer scientist.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> for people who haven't gone to a top-tier college/university for computer science—especially self-taught developers—I would say that the corollary advice is also true:

Don't just build stuff—study stuff!

<comment><USER25> Is the undergrad CS curriculum at a top-tier university really that different from that at a regular university?

<comment><USER26> I would say no, but having taken classes at both, _how_ these courses are taught makes a huge difference. Professors, via their communication abilities, the level of effort put into making a class more interesting, and accessible marks a dramatic difference in what students can get out of a class.

<comment><USER27> With the modern net, everyone could benefit from the best professors in their respective fields at least for lecture. Doesn't provide the possibility of feedback if you want it to scale ad infinitum, but that sound like it would be worth it.

</comment></comment></comment></comment><comment><USER28> I graduated with a CSE degree 41 years ago. My tremendous good fortune was obtaining student employment at the University computing center during my second year. While my fellow students queued for keypunch machines in the CS labs, I had my own terminal in the office, documentation for everything, and maybe best of all, was treated as a full colleague by the regular staff. They gave us real work to do. The university's budgets were severely reduced during the mid to late 70's, and the student labs were pathetically underequipped and overcrowded.

All of the students working at the computing center realized how lucky we were, and received multiple good offers despite graduating in the middle of a recession.

</comment><comment><USER29> I personally struggled alot in college with the academic stuff. It got so bad that I was kicked out of the engineering department and ended up signing up for a degree in economics. After having gone through 2 years of engineering courses, the econ curriculum seemed like a piece of cake. However, I had a feeling that that would not be enough to land a job post-college (my GPA was also very poor).

Instead, I dove head first into trying to work with other people to build products that people would use. While none of those products ended up going anywhere in terms of financial success, the experience itself really helped me in articulating what sort of value I could provide to a prospective employer. In fact, I would give all credit in getting my first job to the fact that I was able to talk about the challenges I experienced with an on-campus recruiter who signed me up for an interview on the spot.

I really think the learning you gain by doing, building, etc really helps you grok the underlying academic principle. For me, I found that I have to do first and then go back and read up to learn what I've experienced.

</comment><comment><USER30> I feel like this is good advice but it creates a false dichotomy. It should be "study stuff... by building stuff."

<comment><AUTHOR> Surely there must be a balance.

<comment><USER30> That's the balance between "study stuff" and "build stuff".

</comment></comment></comment><comment><USER31> Building things is a great way to learn. That being said, the way this is presented leaves a bad taste in my mouth.

> If you want to be a software engineer and you do not have any code to > present in an interview, you can not call yourself a programmer.

Additionally, from one of their recent tweets:

> I wonder how many people that call themselves programmers know that there is > more to coding than just JavaScript

This is unnecessary gatekeeping from anyone, but it's especially unwarranted from a "junior software developer, fresh out of university." I'd encourage the author to be less prescriptive when there's so much gray area and so much variation between experiences.

<comment><USER32> > I wonder how many people that call themselves programmers know that there is > more to coding than just JavaScript

I have a BSc in Computer Science, participated in informatic/algorithm contents/olympiads, created appliactions/games in C++, Java, PHP, JavaScript and other languages, yet in the last 5 years I programmed mostly in JavaScript. From my point of view, if you know JavaScript (TypeScript) in those days you can implement a solution to almost any real-world problem or application you might have. Yes, there might be better choices in some cases, but for most of the world what a product does is more important than how it's made.

I also prefer to know a programming language and its ecosystem really well instead of having some vague knowledge of 10 different languages. If I implement something I want to implement it well and to know as soon as I write a line of code what it does and all its implications, edge cases and possible performance issues. I am not saying that you shouldn't adapt your toolset based on the project you are working on, but that it's better to have a tool that you can always rely on and whose ins and outs don't surprise you anymore.

I am talking from the point of view of someone who builds stuff, creates products. Just learn a good-enough tool very well and then focus on the product itself instead of focusing on the tools.

<comment><USER33> Agreed. It's probably a good idea to gain some good depth in one particular language ecosystem, and JavaScript is a widely applicable choice. That said, playing with more "mind expanding" paradigms (logic programming, functional programming, Smalltalk-style OOP) is also good for your skills in any language.

<comment><USER34> Interestingly, Javascript has mind expanding properties of its own for people who have only bounced between Java/Ruby/Python/etc: it's async-everything, there's sync vs async errors to understand, promises, the event loop.

You don't encounter anything like it in the listed langs unless you somehow work with Netty/Twisted/asyncio/etc.

</comment></comment></comment></comment><comment><USER35> I'll give my perspective as well.

I've hated school ever since middle school, but I recognized I wasn't dedicated enough to get a job without a degree. While going through the motions of academics, I noticed most of the classes were, basically, a joke. Not at all relevant to industry. I went to a fairly well known school as well, but didn't feel like any of it was worth it.

However, starting my second year I was working on side projects in full force, and applying for internships. Sure, my GPA dropped a bit, but I got relevant experience. Then a black swan event, through a connection I was offered a full time position at a very large company, solely on my experience from projects and internships, no degree required. It paid well too (or so I thought). I very much considered dropping out, but several people in my life (including my new boss) strongly suggested I get my degree.

I ended up finishing the degree and almost doubling my pay, so I'd say it was very worth it. However, a degree is not necessary (nor sufficient) for employment.

</comment><comment><USER36> People in this thread (and the original article) emphasise building stuff to help you get job interviews and do better in your job.

I'd argue that's the wrong way of looking at it, yes having something to show might be a signal booster on your resume, but it should be a side effect.

Building stuff is only fun if you want to do it, the motivation and passion has to be there, otherwise you'll just be building something for the sake of it. Don't get me wrong, it's definitely useful to gain knowledge from building, even if it's just a toy project, but you'll get so much more out of it if you're building something you're passionate about.

</comment><comment><USER37> I've always been of the opinion that since the world of (web) programming moves so fast, a degree is largely pointless. As long as you have a natural interest in solving problems, learning new technologies and staying up to date, you should do well. You'll have a natural inclination to create some personal projects just because you can't stop yourself, and you'll find yourself having a couple projects that's worth showing off to potential employers–a portfolio.

</comment><comment><USER38> Reminded me of _Consume less, create more_ :

[https://news.ycombinator.com/item?id=20781463](https://news.ycombinator.com/item?id=20781463)

</comment><comment><USER39> A few years back I was chatting with a faculty in my field at a conference. His lab almost invariably produces outstanding graduates who are really apart from the rest of the field. I asked him how did he do that, and his point was when hiring postdocs in his lab he never was really bothered about the publication counts, but he asked only one question, "What did you build in your PhD?" And if a graduate student could not answer that they were not graduating.

</comment><comment><USER40> I've alway called this the "Producer Consumer problem", which I obviously reused.

You can consume a lot of books, TV, movies, games, etc., however, it's more valuable to produce something.

<comment><AUTHOR> You need to consume a lot in order to be able to produce something. That's why writers, for example, take their inspiration from other writers.

<comment><USER33> How about this: it's far easier to critique something than to make something better. I find that this is true with photography: my taste is so much more sophisticated than my abilities, so when I make art I am forced to be humble. Consuming others' photography is still crucial to my development.

<comment><USER41> You will enjoy Jad Abumrad's "Embrace the Gut Churn" [https://youtu.be/8OH9p3hnWCY](https://youtu.be/8OH9p3hnWCY)

</comment></comment></comment></comment><comment><USER42> Agreed.

What separates own-projects from previous job experience is the ownership.

Anyone can be a "valued member of a team", go to meetings, collaborate, open and close lots of Jira tickets, be super helpful, check in code which "should fix the problem", etc.

But it's not the same as if you have your own project, which fails or succeeds based on how much effort and debugging you put in.

</comment><comment><USER43> I'm having a bit of trouble building stuff to learn in my free time (undergrad w/ cancelled classes due to COVID-19). I find it very difficult to come up with an idea that I'm excited about enough to actually keep me motivated. And I would love to contribute to OSS but the codebases seem so dense and inaccessible, especially to a non-veteran.

Any advice?

<comment><USER44> Build me Reddit clone (if you do please make it scale to 100M users - <USER2> will keep you busy) or modify public source to be deployable with 1 click.

EDIT: more ideas

Try to build better Firebase.

Try to build OS that's truly secure and convinient and hackable that allows me to write integration scipts based on app events and allows me to rewrite any app UI.

Design App UI building toolkit that puts current solutions to shame.

Build MMO game that will make Blizzard sad.

Build simple and configurable personal assistant.

Build relevant adds solution.

Design better search engine than Google.

Design publishing system that will get rid od ads and will allow to fairly compensate content creators and make it sustainable.

Design simpler HTML, so anyone can write browser.

Try to build/design language that is both expressive and minimal, with performance close to C or better, has great errors, no quirks and predictable memory use. Write it so it's easy for beginners to contribute ;p

</comment></comment><comment><USER45> > The group projects organised by the uni have always been a joke, thus it is > time to work on a serious project by yourself.

This always bothered me until a teacher told me they are less about the project and more about working together as a team which most of the time is where these projects failed. With this perspective I led my senior design group project to develop a proof of concept IMSI Catcher[1] detector that ran on a Raspberry Pi with a software defined radio in one semester. None of the other students had any prior experience with python, GNU Radio, low-level networking, or software defined radios.

A good team can accomplish so much more than an individual and you can learn a lot more with one too.

[1]: [https://en.wikipedia.org/wiki/IMSI- catcher](https://en.wikipedia.org/wiki/IMSI-catcher)

</comment><comment><USER27> I created some open source libs that at least some crazy people use. Some mods for games with quite intrinsic scripting I must say. Painted some pictures and dabbled a bit with are partially legal version of Logic. I created animations and models with blender/max. And after all that I got a job.

</comment><comment><AUTHOR> I agree that the role of the university is to prepare students for the industry and most of the universities achieve this quite nicely. Of course that as a new software developer you need to learn something on the job, but that is the case with every other field.

</comment><comment><USER46> Personal anecdote but doing over a decade of personal projects in game and web development, starting in middle school, did nearly jack shit for me as far as eventually getting a job was concerned. If I were to go back and do it all over again I would definitely spend my time doing literally anything else. I was so convinced that if I just followed my fancy, worked hard and made cool stuff, learning anything and everything I could along the way, then eventually I would find work doing things I liked, formal degree be damned. It did not work out that way, at all.

After years of searching for work in the Redmond area and failing to do so (because, no professional experience, no degree), I randomly happened to find work by randomly logging onto a forum I hadn't visited in years and randomly happened to find a thread where a guy was looking to hire for remote webdev contract work. After that contract was complete, I spent another couple years looking for further work, and had to eventually move back home away from Redmond because the cost of living was too high while I was unemployed. After plural years of searching again, I finally managed to get a second remote webdev job. I don't like modern webdev and would much rather do almost anything else but now I've had two jobs doing it and I feel despair—am I locked into this for the rest of my career? With no degree and only these two jobs' worth of "Professional Work Experience" under my belt, it sure seems that way. Recruiters and hiring departments seem to care about little else. They sure don't give a shit about any personal projects, in my experience. And this is even in spite of the fact that I more or less picked a new language and/or framework for each project, which, in my mind, shows an aptitude for learning new things, being adaptable, and having an above-average "general programming aptitude" than someone who's made fourteen React projects in the past couple of years or whatever.

But apparently companies don't see things this way, or maybe I'm just not good at finding the ones that do, or maybe there's something else to my approach that has been All Wrong. But as my twenties draw to a close and I find myself no closer to finding a career than I was a decade ago, at this point I'm kind of at a loss for what to do about it. And, almost more importantly, I'm _extremely_ burned out on making stuff just for the fun and intrigue of doing so.

</comment><comment><USER47> The advice given to people who just build stuff would be "don't just build stuff, also study the theory behind". You _need_ the former to become a useful craftsman, but _supplemented_ with the latter you will become a master craftsman. You'll be able to quickly recognize patterns when reasoning about problems. It will allow you to quickly and almost instinctively orient yourself toward optimal solutions.

</comment><comment><USER48> there's an abundance of this kind of webpages. there's so many of them that it's easy get in the doubt of "should I follow page X recomendations or page Y recomendation?".

The sad thing is that there is pretty much no equivalent page for other industries (law, medicine, computer-unrelated-engineering to name a few).

</comment><comment><USER49> True, "Go to hackathons, get involved in open source", and build side projects. I just created a free goal board tool for remote teams [1], the best way to keep learning is by building.

[1] [https://teamsuccess.io/boards/new](https://teamsuccess.io/boards/new)

</comment><comment><USER50> Remind me of Elon's point, you don't need a high school diploma to work at Tesla. And he has lots of diplomas.

<comment><USER51> The theory behind this mindset is: you're either born smart, or you're born stupid, and there's really not much you can do (i.e. education) to change that. The people born stupid get dull, repetitive jobs, the people born smart get to work at exciting places like Tesla. This sort of eugenicist thinking is frowned upon in most contexts, but somehow seems to have taken a foothold in, of all places, software development.

<comment><USER52> believing there is variation in human intelligence isnt eugenics lol

<comment><USER53> That's not what parent is saying. Yes there is likely a an innate variance in human intelligence, but we can't believe this is the sole reason why society considers people to be "intelligent" or "stupid". Many people with lower IQs and academic performance would perform differently when raised in a different environment. People who are of lower socioeconomic status often times perform worse than wealthier counterparts. People in of lower socioeconomic status are often in that situation because they have been systematically oppressed. So saying that people are either born stupid or smart without acknowledging societal and environmental factors is essentially saying that poor people are poor because they are stupid, which is certainly eugenicist.

<comment><USER52> So you are mad at people misusing the word intelligence?

<comment><USER53> This is an oversimplification of my argument and a leading question. Do you disagree with my argument? If so, why?

</comment></comment></comment></comment></comment></comment><comment><USER54> I love this page

</comment><comment><USER55> create stuff, on a more general level.

</comment><comment><USER56> This paper was written by another author and includes a quote from Tim Berners-Lee.

The title is slightly misleading.

Edit: Thanks for updating!

<comment><USER57> But at least the quote is indeed from himself ..

</comment></comment><comment><USER58> Why is computer science the only career, that I can think of, where I have to spend my free time doing "personal projects" to improve my skills? What if I just want to go to work, knock out tickets, and go home? With the emphasis on spending all our waking hours coding, no wonder we all burnt out.

<comment><USER59> You do not have to!. It is choice, where for many of us side projects are the pursuit of perfection that help balance shitty codebases of our day jobs, chance to create something other will use and be grateful, build a startup idea that can free us from corporate masters or just tire our restless minds.

<comment><USER58> I really have no choice, if everyone else wants to do it, I can't very well avoid it.

<comment><USER59> I worked so far with around 80 developers. I could count on my hand number of people that did any side projects. HN is biased towards people doing side projects.

</comment></comment></comment></comment><comment><USER60> So the EE/CS undergrad program I did was heavily-analytical:

\- It included the entire advanced level chem, physics and stats series for scientists and engineers.

\- It was two elective courses shy of a math degree, including abstract math, concrete math, and tensor math.

\- Only a few courses shy of a physics degree as well.

\- The entire EE track and entire CS track of course.

\- Writing lots of code for multiplatform portable code including Linux, HP- UX, Solaris, SGI, and some MINIX 2.

I think they should make it a mandatory combined undergrad /Masters' or /PhD program to be of sufficient depth into research achievement and breadth of knowledge to be useful in industry that cannot be achieved in the absence of an advanced degree. I think most of the undergrad CS knowledge can be acquired by osmosis in industry or self-study without a degree.</comment>


JSON Schema – Powerful tool for validating the structure of JSON data - <AUTHOR> https://json-schema.org/ <comment><USER2> XML/XSD re-invented.</comment>


Goldman Sachs launches GS Bank, an Internet bank with a $1 minimum deposit - <AUTHOR> http://techcrunch.com/2016/04/25/goldman-sachs-launches-gs-bank-an-internet-bank-with-a-1-minimum-deposit/ <comment><USER3> Raising liquidity for future bail-ins to be compliant with Basel III.

</comment><comment><USER4> I don't understand how anyone at Goldman could have greenlit this landing page and design.

This product could be a huge deal for Goldman if they marketed it right. If it was a lot more user friendly. If it onboarded users better.

Right now I can't imagine their landing page getting anyone excited enough to sign up.

<comment><USER5> Definitely no "prestige" feeling here.

</comment></comment><comment> cat-dev-null Those three (3) Hillary speeches must be absolute mana from heaven because her standard contract includes a client-paid stenographer, in addition to the $200k/ea.

Only fools would give these access-buying, crooks a dime... unless they wish to continue subverting freedom with this plutopsephocracy.

</comment><comment><USER5> Beside the high interest rate and getting to say you have an account with GS, there's really no upside to this. You don't even get checks. You have to wire money in and out.

<comment><USER6> A high interest rate is a serious upside. Its not uncommon for people to have a primary bank for day to day banking and a secondary bank for savings. The idea is to squirrel away money you don't need into an account you aren't looking at everyday.

If its anything like other online banks then wiring money in and out is incredibly easy.

<comment><USER5> I can squirrel away money at my current bank. It doesn't require opening a whole new account and I have the money when I need to, guaranteed - <USER2> transfer wait. Anything above a small safety savings should be in a money market account anyway. 1% interest is still losing out to 2% inflation.

<comment><USER6> sure, but for many people having a savings account that is out of sight out of mind helps prevent dipping into it when you don't need to</comment></comment></comment></comment>


Ask HN: What is the biggest problem in your life you'd pay to solve? - <AUTHOR> What is the single biggest problem in your life you'd pay to solve? <comment><USER2> Make money in a location independent manner

Affordable apartments that don't suck

Prolong my life and free up time

All of these problems are currently political and not technical in nature, but tech can change political realities</comment>


What Mac OS's case-insensitive filenames teaches us - <AUTHOR> https://medium.com/@paulbjensen/what-mac-oss-case-insensitive-filenames-teaches-us-cd8feee7b0b3 <comment><USER2> The filesystem is case preserving.

[http://www.informit.com/articles/article.aspx?p=1144082&seqN...](http://www.informit.com/articles/article.aspx?p=1144082&seqNum=4)

</comment><comment><USER3> It's not just macOS, Windows has the same, with all the same associated problems.

For that reason, I generally prefer to keep all file names consistently lower- case - user_account.ex over UserAccount.ex. It's just as easy to read, if not more so.

We have enough other things to worry about as programmers without having to think about correct capitalisation of file names.

</comment><comment><USER4> I think it also teaches that Postel's robustness principle isn't always a good thing.

If the MacOS filesystem was not case-insensitive, i.e. it was _less_ liberal with what it accepted, the reported issue wouldn't have happened.

</comment><comment><USER5> Ran into this issue with CI and git. Was so difficult to track down. Now all Macs on my team are reformatted to be case sensitive because of this. Thankfully it's an option now.

<comment><USER6> It's been an option since basically forever (I think you could use HFS+ case sensitive on Tiger, even).

But it breaks a large number of apps, so do it with caution.

<comment><USER7> And this is still an issue

I have had issues with this and instead of formatting, due to issues, what I ended up recommending was creating disk images, mounting them correctly and putting files there.

</comment></comment></comment><comment><USER8> This is written as if it was some kind of lesson on philosophy. Why were you even using uppercase letters in your file names to begin with?

<comment><AUTHOR> I was applying a pattern of naming the files containing ORM Models with a capital, in order to represent that they contained a javascript class as their default export.

e.g.

        class Admin extends Model {
        };

        export default Admin;</comment></comment>


Quora engineers accused of vandalizing a clone's website - <AUTHOR> http://www.greyreview.com/2011/03/17/quora-engineers-accused-of-vandalizing-a-clones-website/ <comment><USER2> The full quote from Rick Ross is "I am grateful that Ben Newman and Albert Sheu of Quora have identified a (now fixed) XSS vulnerability in our test site, but I am surprised that Quora policy permits developers to engage so openly in vandalizing other people's websites." which is slightly nicer than that article makes it sound.

Personally, I think the Quora engineers involved made some poor decisions. Anyone who looks for security vulnerabilities on websites they don't own or control is on shaky legal footing (there are exceptions: Google, Mozilla, Facebook, and a few other companies provide systems for the responsible disclosure of vulnerabilities). However, publicly disclosing vulnerabilities on a competitor's website (and making your proof of concept mildly malicious) is never going to work out well for anyone: it makes your company look like a bully and exposes you to potential legal ramifications.

<comment><USER3> As a former web application security guy, and now developer, identifying and disclosing vulnerabilities on websites is still very much a troubled area. Most companies don't have proper security@ email addresses set up or monitored, and still don't take kindly to vulns being reported.

That said, publicly disclosing a flaw in addition to defacing the website, even temporarily, is certainly not a classy way to go about it.

</comment></comment><comment><USER4> [edit: Troll answers have been deleted, but you can still read the trolling comment thread: [http://www.quora.com/Is-Qato-a-serious-Quora-clone- attempt/a...](http://www.quora.com/Is-Qato-a-serious-Quora-clone- attempt/all_comments/Ben-Newman) and [http://www.quora.com/Is-Qato-a-serious- Quora-clone-attempt/a...](http://www.quora.com/Is-Qato-a-serious-Quora-clone- attempt/all_comments/Samuel-Codsaw) ]

On the Quora thread, [http://www.quora.com/Is-Qato-a-Quora-clone-attempt-or-a- simi...](http://www.quora.com/Is-Qato-a-Quora-clone-attempt-or-a-similar- looking-Q-A-site) there are some answers by trolls pretending to represent Qato.

"Sameul Codsaw" writes: 'Also, we are using Ruby on Rails, so we expect to have less trouble scaling and finding devs than Quora has.'

Rick Ross, president of DZone (developers of OSQA and Qato), replies in the comments: 'This imposter has no connection with Qato and does a disservice to both Quora and DZone by posting this nonsense.'

"Kevin McDougal" answers and comments, also trying to make DZone look bad. ("Rick, our plan to sabotage the Quora community is working. Did Hernani create the 100 fake Quora accounts yet?" ... "Hold on. Was that message private or public?") It's pretty juvenile and makes me question the quality of the Quora moderation system.

Why are there all these sock puppet accounts (<http://www.quora.com/Kevin- McDougal> and <http://www.quora.com/Samuel-Codsaw>) popping up and pretending to represent Qato? They have only one answer on the entire site, and its on this thread.

Are Quora engineers behind these trolls, or who? Regardless of who is behind it, the trolling reflects poorly on Quora, not Qato.

The comments by Ben Newman (Quora dev) honestly are quite juvenile, and do a disservice to Quora, regardless of any ethical considerations on the part of Quora or Qato. I would prefer to see him take the moral high road.

<comment><USER5> Quora has a lot of passionate users.

<comment><USER6> I've got a hard time not writing

"Quora has a lot of trolls" FTFY

with that kind of comment. Impersonation is crap and childish behavio(u)r and not about being "passionate" about a site or a technology.

I don't think Quora guys are to blame, but

\- These comments should be moderated/removed/shouldn't have been allowed in the first place

\- Calling idiots that do things like that "passionate users" does both the service and the internet in general a disservice. They are idiots. Period. That's not funny, that's not cool or helpful. Your reply seems kind of supportive and I don't get why.

<comment><USER5> I am making an observation.

You seem very angry.

</comment></comment></comment></comment><comment><USER7> Just for the record, I meant it sincerely when I said that we were grateful that Ben Newman and Albert Sheu showed us an XSS hole in Qato, and that has now been fixed.

The site in question was just an unpromoted testing prototype which barely has any content and happened to have the Quora-like skin on at that moment. It probably shouldn't even have been publicly accessible.

Another Qato site on the same server is <http://robofaqs.com>, which is sporting our OSQA clone theme. It doesn't look anything like Quora at all, but is powered by literally the same server instance. That's what we're trying to say - Qato is the general purpose Q&A engine under the skin, and these various skins just modulate the way a Qato site looks.

<comment><USER8> FYI, underlined hyperlinks make it impossible to tell the difference between a "q" and a "g" in a URL. As such, I'd suggest you spend some time finding a better name for that unfortunately named site you linked.

<comment><USER2> So I take it you're not a fan of <http://www.gamefaqs.com> ? ;-)

<comment><USER9> Gamefaqs has a self-describing name that pertains to their main business (Game. FAQs.) Qato doesn't have the same thing going for it.

</comment></comment></comment></comment><comment><USER10> Vandalism is a stupid word to use. I imagine the process went something like this: "I wonder what happens if I add <script>$.fadeOut() as the text of the question" "Oh crap, it worked".

This is called experimentation. If you're in chemistry class and you mess up a lab, you're not accused of vandalizing apparatus... it's simply what happens when you are trying something out. Similarly, when you have a text box on a test website, someone is going to type something in, and if that causes the page to disappear, well... fix the bug and move on.

<comment><USER2> I disagree.

1\. There are plenty of proof of concepts you can develop that don't destroy the page.

2\. The Quora engineers in question didn't enter stuff into a textbox and leave it alone. They went and publicly disclosed a cross-site scripting vulnerability in a competitor's website.

Edit: Ben deleted his "answer" which disclosed the XSS. However, the comments on the answer are still accessible (for now) if anyone is curious about them: [http://www.quora.com/Is-Qato-a-serious-Quora-clone- attempt/a...](http://www.quora.com/Is-Qato-a-serious-Quora-clone- attempt/all_comments/Ben-Newman)

Edit 2: Rick Ross posted a comment there I think is worth highlighting.

"In a way, we're grateful to these guys (Ben and Albert) for helping us close a hole. Their method of publicly vandalizing a test site and bragging about it is another matter. A simple email would have sufficed."

<comment><USER10> The "ethics" of "full disclosure" are a long-running subject, but many people agree that the technique is fine. Don't shoot the messenger.

</comment></comment></comment><comment><USER11> Same thing happened in my friend's company and they fired the engineer who identified and exploited the permanent XSS in their competitor's website. Personally I would do the very same thing.

1\. It's against the law 2\. Extremely unprofessional and childish 3\. There are better ways to report security vulnerabilities

<comment><USER2> I sincerely hope that's not what happens here. I would hate to see someone lose their job over what seems to have been a temporary lapse in judgement.

<comment><USER12> Temporary lapses in judgement are exactly what "fireable offenses" are designed to prevent. Bright lines for tolerable acts, especially in regards to outside resources, help everybody know how to stay on the good side of management.

By way of example, some years ago a story went around about HP support being prohibited from suggesting a user adjust their BIOS. This was back in the day when checking BIOS to see if hard drives, ports and RAM were being detected properly (say, Win98 era), but for HP it was a fireable offense. It may not have resulted in the death of any user's computer in any given instance, but the risk of problems was great enough that they couldn't allow support people to deviate from the troubleshooting matrix in this way.

In this case it seems more a problem of ethics than policy, and no doubt Quora is not very large of a company and does not yet have stringent policies like HP's, but to argue "no harm no foul" is to set a bad precedent at the peak of a slippery slope.

</comment></comment></comment><comment><USER5> I just left the following comment:

\-- It's pretty lame to copy the design and trade dress of another product. It does not bode well for your skill or ability.

Backstory: A long time ago I wrote Delicious. We had hundreds of copycats and competitors. The ones that weren't direct copies were the ones that did better.

I'm sure this doesn't apply to you for whatever reason.

<comment><USER13> If Qato is going to copy someone's design, can't they find something better than _Quora_?

I mean, Quora's design isn't going to win them any awards; it looks like Quora didn't even use Photoshop, just straight-up CSS.

<comment><USER5> Because they are unoriginal followers. If they had any sense of direction they'd be able to build something of their own.

<comment><USER12> Originality is overrated. Various sites with CSS-only layouts and minimal interfaces are best described as an emergent aesthetic. Expect more like this.

There are simply too many people drawing from the historical experiences and examples laid by e.g. Metafilter, Digg, image boards, etc. for it to consititute individual acts of copying. That there are so many whitelabel apps & plugins ready for the implementing only accelerates this evolution.

<comment><USER5> There is a big difference between convergent evolution and wholesale copying.

<comment><USER12> It's not convergent evolution when people are copying, but copying doesn't obviate emerging aesthetics. Once upon a time, websites did not all have menu bars across the top, is this a result of despicable copying, or of lots of people simply deciding it was a good idea? Whether or not _I_ think a given UX trope is useful is irrelevant to others choosing so.

<comment><USER5> Straw man.

We are discussing wholesale duplication.

<comment><USER12> My assertion is quantity-neutral. I simply don't think it matters how much is copied, just the fact that any copying is going on at all signals that the look and functionality is having an influence.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Everyone's right that it was an ill-advised thing to do, but stepping back ignoring the law (I know..) and just asking yourself the gut question:

What's worse? injecting a relatively harmless script into the product (that frankly caused them to fix an issue that could have been very painful for them if someone more devious had found it first), or Qato's ripoff of Quora in the first place?

<comment><USER15> For what it's worth, my takeaway on this is not that Qato "ripped off Quora", to me its quite clear they're building an engine for Q&A websites, and they've used Quroa (and Stackoverflow) as examples of what you can build with it. Not so much "ripping off" - I see it more like the sort of Photoshop demo where a guy on stage recreates some well known image to show off Photoshop as a tool.

The problem is, their tool has at least one xss vulnerability. I've been there myself, and usually a single xss vulnerability is an indication that the underlying design of the system didn't take xss (and probably web security in general) seriously enough. It's _possible_ this was just a single place where user supplied data sanitisation wasn't done correctly, but I'd bet good money that it's indicative of a development mindset that failed to be paranoid enough. I'll bet there's a bunch of places they're going to find exactly the same error, and won't be at all surprised to find SQL injection vulnerabilities, http header vulnerabilities, and any of a whole bunch of other "common web programming" errors. I'll be amazed if right now there aren't a bunch of people running fuzzers against any site suspected of having the Qato "engine" underneath it. I'll not be at all surprised to hear several of them get compromised before the weekend and start running dick-pill-seo spam...

<comment><USER14> All really fair points. For me, they still seem to fall into the 'Harbor Freight Tools of the Internet' category.

[Edit: I already feel kind of bad about this comment. I love me some 3$ multi- meters. Still. Analogy stands.]

</comment></comment></comment><comment><USER16> I certainly don't think the Quora Engineers were right to vandalize the clones website in this case.

I'm all about people making Q/A websites and releasing products that are clones of other products. Ideally this kind of competition can make the original product better.

That being said, I find making a clone of someones product and then releasing said product at least in this sense, distasteful. Seeing that it has such similarity to the original that if you weren't familiar with the original you probably couldn't tell the difference.

<comment><USER5> Design clones are super lame.

<comment><USER17> Why? What separates design clone vs functionality clone, making one legitimate and the other distasteful?

</comment></comment></comment><comment><USER18> Original Quora thread: [http://www.quora.com/Is-Qato-a-Quora-clone-attempt-or- a-simi...](http://www.quora.com/Is-Qato-a-Quora-clone-attempt-or-a-similar- looking-Q-A-site/all_comments/Ben-Newman)

<comment><USER19> Make sure to read the comments.

<comment><USER20> Yeah really. I wonder what Quora's investors are thinking right now?

</comment></comment></comment><comment><USER21> Don't condone it, but understand their motivation. Knockoff's are kinda out of hand of late.

</comment><comment><USER22> I've had a couple of my comments on Quora vandalized by engineers there as well, marking a few of them "unhelpful" even!

:P

</comment><comment><USER23> From the comment thread:

"So Qato was caught plagiarizing and now they're complaining about supposed "vandalism"? Reminds of those newspaper headlines where the robber hurts himself breaking into a home and tries to sue the family."

I have to agree. This is basic javascript injection. Can you say, "blown out of proportion"?</comment>


Interrupts and interrupt handling in the Linux kernel, Part 8 - <AUTHOR> http://0xax.gitbooks.io/linux-insides/content/interrupts/interrupts-8.html

<comment><USER2> The link to the full book (work in progress) is [https://www.gitbook.com/book/0xax/linux- insides/details](https://www.gitbook.com/book/0xax/linux-insides/details).</comment>