What I learned today: Never apply for a job - <AUTHOR> http://www.venturebent.com/2011/07/what-i-learned-today-never-apply-for-a-job-2/

<comment><USER4> While we're on the topic, I'm just going to say that those "anonymous" job postings here on YC drive me nuts

"YCW11 company hiring front end dev! New office space! We <3 Django! Fridge stocked w/beer! "

There are a only couple YC companies I wouldn't want to work for, period. Mainly from the recent crop, but those bad seeds kinda ruin the whole "work for a random anonymous YC company!" recruitment tool.

<comment><USER5> Why can't you email and ask them who they are?

<comment><USER6> The onus should be on the hiring company to tell about themselves because they're the ones who want something. If I'm looking for a job, I can either look at the 99% of job listings (both startup and more mainstream) that will tell me exactly what I'll be working on and who I'll be working with or I can ask someone who's already been vague for clarification to decide whether I even want to apply. The incentive just isn't there for the job-seeker.

What you're suggesting is that it's perfectly reasonable for someone to post a help-wanted ad in the classifieds saying "I need help! Call me to find out what with!" and to expect people to call you instead of the ads all around yours.

</comment></comment></comment><comment><USER7> Just recently, I took a couple of steps to enhance my job searching. First was to post my CV/resume to jobs like monster.com; the second was a very old skool writing-a-letter-on-goddamn-paper-and-mailing-it-out-to-would-be-employers. The first has produced nothing but clueless phone-calls from agents. The second landed me a job with >90% certainty; I have a second interview next week. I am very well-qualified for the companies I wrote to, and I made sure I selected them very carefully (partly because postage costs actual money). This is relevant to the article since I'm not really applying for a job -- the company who want to hire me basically made a position for me.

Anyway, I'm starting to think that current online job searching is profoundly broken. It just seems to lead back to the clueless employment agents who know nothing about IT. Not much different from 20 years ago, it's just they have access to bigger databases and no incentive _not_ to email scatter-gun fashion since there is no cost involved. I have no idea if there is a solution to this, but at least my retro approach eliminated _two_ sets of middle-men: the jobs boards and the agents. It also put me very much in control which was an excellent feeling.

<comment><USER8> What someone should do is create a site where you can email your resume/letter in and have it attractively handwritten on nice letterhead.

Who's with me?

<comment><USER9> It's not a bad idea, but the issue is going to be to find enough people with attractive handwriting...

<comment><USER10> Quite contrary -- there are a lot of people who are able to handwrite really nicely, especially among women. Since it's so commonplace and it does not require any training (since everybody got one in primary education), you can pay really low wage for such services.

</comment></comment></comment></comment><comment><USER11> It can work out for you, but I don't see how it applies to just anyone. Going to the events takes time, social skills and money (if the events are far).

And, what if you move to another country or switch to a different industry? You still need recruiters in that case, so the Monster isn't releasing it's grip anytime soon.

</comment><comment><USER12> If you're an experienced software developer with skills in some of the following technologies: PHP/C++/Python/Rails/Django/ASP.NET/SQL/JavaScript/etc and you live in a dynamic market like SF/CHI/PHY/NYC/RDU/etc, then it's enough to simply create a profile on one of the career sites. The recruiters will be after you shortly.

Getting a job via a job board and recruiter won't be all warm and fuzzy like meeting an employeer at a conference. It will be more like buying a used car, but you still don't have to _apply_ in this market.

<comment><USER13> I'd think that it would be the used car nobody who knew it wanted...

When jobs show up in those sites, the company already failed at filling the position through trusted references. (or so is my impression)

Doesn't have to be bad ofcourse, but propably warrants more due dilligence on the job seekers part than a good reference.

<comment><USER12> There are so many reasons why a company might not be good at recruiting employees. They run from not having enough time, to opening an office in a new city, or simply being willing to outsource networking so they can do stuff they like.

If you're looking for a job as a place to make friends and work with interesting people, fine, that's good stuff. But, many places of work are simply businesses, trying to make money for their owners. Recruiters want to find competent and experienced workers who can come in and get stuff done. It's not all lowballing and keyword bingo.

<comment><USER14> That may be true, but it's obvious that recruiting has a problem if it's so hard to separate the wheat from the chaff in their own ranks. It's the same problem with realty and real estate agents.

</comment></comment></comment></comment><comment><USER15> It is interesting advice. I think the usefulness of job sourcing based off of your personal network may have it's limitations however. Especially for those career stage or geographically challenged individuals.

Personally I tend to only passively job-hunt by keeping my CV and skillset up to date. I don't think this approach has done too poorly for me, although possibly i'd be more excited to head into work for google or facebook every day.

Letting other people do the work of identifying the positions that need or benefit from your specific set of skills has its benefits and I tend to get a steady stream of contacts from the corporations I find worth while/interesting.

Now if I was dead set on gaining entry into a high quality, high-stakes start- up, I could definietly see the benefits of leveraging my network to find the best possible matches.

</comment><comment><USER16> _Every job that I have found has always been through warm relationships that I have had with my peers._

My first job (sweatshop consultant doing mostly COBOL) was acquired through the college placement office. My next job (a year later) was through a recruiter who found the first employer a reliable field for harvest. That second job worked out pretty well, I was there for seven years. The technology was not very interesting but it was as very good fit for me as I was getting marriage and family life underway.

After that, everything has been by referral or word of mouth from friends/colleagues. None of those have been duds.

</comment><comment><USER17> I agree with the idea in general. However, there are many cases where companies would (and should) hire people from outside their direct network. One is if the company is growing too fast (People in the direct network may be very busy & happy with their current jobs, making it harder to find enough of them). The other is if the company is looking to get diverse experiences and opinions. Imagine a social networking company formed by some employees of Facebook -- they would be better off by hiring someone from MySpace or Friendster who saw how difficult it was to compete with Facebook, and who tried to find niches to be able to co-exist with Facebook.

Similarly, for an employee, there are benefits of going out of their own network to get a job -- You get to work in a completely different setting (which may be a better learning experience for you), and you get to build a completely new network.

</comment><comment><USER18> Last couple times I've gone through an interview process, I've been more than a little peeved because they didn't do any research on me beyond reading my resume. I'm the webspace - we're talking about a web-oriented job - Google me for goodness' sake!

Asking surface level questions that could be Googled in 2 seconds borders on insulting. They certainly will judge me by how much I know about their company, and how enthusiastic I am about the company. That needs to run both ways.

My wife just says I was looking for an ego-stroke. Well... why wouldn't I? I've worked hard for years both on building up my skills, but also trying to build up a reputation. To gloss over that and not do any research beforehand on someone you're planning on giving hundreds of thousands of dollars to over multiple years is just lazy.

These were people that called me, not the other way around.

The job/labor/work market is broken, and I don't know if there's a way to 'fix' it in the short term. It will evolve in to something more workable, but I don't see that happening too quickly.

<comment><USER19> Did you not have your previous work clearly listed on your resume? Why would you expect, say, an engineer who just got FW your resume an hour before the interview to go google you and stalk your twitter feed?

<comment><USER18> If I'm interviewing someone, I will go research them beforehand. I've been handed resumes, and gone and done a google search. If there's no blog, no sourceforge/github, no homepage, no mailing list chatter, I've had that weigh in my decision.

Previous work is listed on the resume.

I didn't suggest stalking a twitter feed, but googling for me would indicate I do have a twitter account. And a blog. And a github account. And a podcast. And that I run a local user group.

To then be asked "so, what's your involvement with the tech community?". Or "what sort of tech work do you engage in outside of office hours?". That's just lazy. There are 2 people on the planet with my name. This isn't a case of "John Smith"-itis.

I also hate the calls from recruiters (I don't often take) that start with "I found your resume...." and end with "... send me your resume". Umm... you have it. YOU FOUND IT ONLINE. THAT'S IT. Sure.... they may have found one from 8 years ago - I get it. I tell them - "it's updated on my website and in multiple formats". If they can't be bothered to go to my website to download it, we're off to a bad start and this relationship isn't going to work.

<comment><USER19> If that's a criteria for you when looking for an employer, then that's your choice, but I personally would never expect such a thing.

The last time I had to interview (being an engineer), I was sent 7 resumes on a Monday for interviews being conducted on a Wednesday. I checked out any links they put on their resume, apps in the appstore, etc. If they did not feel they could be bothered to tell me about something, then it will remain a mystery to me.

<comment><USER18> "I checked out any links they put on their resume"

So... you did research on someone that made themselves researchable. Good job. That's what I expect, and I'd expect that you'd expect that too.

<comment><USER20> It wasn't clear from your original post that your links were in your CV / resume. Should be a lesson to those who want to showcase their "side" projects, LinkedIn profile (heavily checked now days), to put these ON your resume. I consistently fidn in screening Software, Web Dev's and designers asking them if they have an online profile, github, LinkedIn that the answer is yes, but is absent from the resume.

</comment></comment></comment></comment></comment></comment><comment><USER21> Sites like Monster are going the way of the yellow pages. And just like you could replace the yellow pages with asking neighbors who they recommend, there is a balance between finding good sources (using Google to find a plumber, using Indeed/LinkUp* to find jobs) and understanding the value of networking.

There is a reason CareerBuilder drops millions on a SuperBowl ad each year and Monster spent over $1.2M at an employer party in Las Vegas this last weekend. If all jobseekers knew what Nick discovered, there'd be no reason for these websites to exist!

 _Yes, I work at LinkUp - but since anyone would include it I figured I'd be forgiven for including it_

<comment><USER22> First I've heard of your site. How is it different from Indeed?

<comment><USER21> I emailed you the details so I'm not taking this thread OT (and so I don't look like I'm spamming HN.) If anyone else has this question, eric at linkup dot com is a good way to reach me.

<comment><USER23> It is relevant and not spam; please share the answer here.

</comment></comment></comment></comment><comment><USER24> I'd like to make this resolution as well. No more sending a resume to people who don't know me, no more technical screening because they have no idea how I code, no more "getting to know you" lunches because, well, they don't know me.

It takes quite a bit of effort, so I might not manage to pull this off. Applying for jobs and posting positions on job boards are different sides of the same lazy coin. It takes a lot of talent and effort to become a developer with such an excellent network and reputation that you can generate employment opportunities with a phone call. This is true on the other side as well - <USER2> companies just don't have the talent and/or aren't willing to put in the time to get to know who the good developers are. Both sides have to be deeply engaged in the community.

There's a practical issue here, of course - there just may be opportunities that you want to pursue, and a resume, phone screen, technical grilling, and so forth may be the best way to go. And some companies have to staff up so quickly that they just feel like the have to cast a wider net. But both cases do raise certain warning flags... if you're a developer, why aren't you generating offers that interest you from within your own network? If you're an employer, why are you expanding so rapidly that you're unable to recruit from a reliable network?

In the best case scenario, almost all of the above is unnecessary because you've already worked together, so there's no need to take estimates and make guesses about what kind of employer/employee a new prospect would be.

<comment><USER11> I wish you luck, but also I hope that good employers don't closure on the people which they know already, simply because it would mean I cannot come to your place and find a good job straight away, like I always did when I moved across my country first and then into a foreign country.

<comment><USER24> I don't think they would. Recruiting from networks is a good thing to strive for, but it would become a bad practice without room for exceptions. Even 37Signals, a big proponent of knowing the people you hire before you hire them, does put out the occasional job posting/recruitment ad on its blog.

</comment></comment></comment><comment><USER25> I kind realized that a while ago, but it is difficult for nerd like me to leave computer and go meet people... what's to talk about? "I just found this snippet it's kinda fun!" ? :(

<comment><USER26> Then it might be time to explore some other hobbies. There are non-computer related things do that don't require you to be in shape and that includes actually getting in shape! Fly an RC helicopter, start hiking, volunteer at the soup kitchen. No one is going to care about some snippet of code but that's your fault for being so 1-dimensional

If all you have for work and pleasure involves sitting at a computer then you are cutting out a large part of being alive. Plus you are risking your health. You typecast yourself as a nerd but that does not mean you must handcuff yourself to a computer desk.

<comment><USER25> It's like addiction actually. need adjustment! Good advice!

<comment><USER27> I'm going to suggest indoor* wall climbing as a hobby. Lots of nerds like it because its actually very analytic. Doing a particular climb often requires analyzing where the hand/foot holds are and figuring out the best way to use them. If you've ever done any work in AI, you run into problems where you its hard to tell if you have a bug in your code or if your learning algorithm isn't very good. Its the same with climbing: is my method bad or am I just doing it wrong?

Edit: one other benefit, if you find a wall you can just go during its open hours and meet people after you get there. In my experience, people will see you struggle with something and swing by to give you a quick tip ("try putting your feet a bit higher", "try using your left hand over here", etc...)

*Indoor because its less intimidating and the walls often have custom made climbs for various skill levels.

</comment></comment></comment></comment><comment><USER28> Every job I've had, I got through personal connections.

I did event videography up until last fall (went away to college), every gig I got was because I knew person planning it (theatre: I knew the director, weddings: I knew the wedding planner)

I had a day job working at subway last summer. I got the job by going to the manager (whom I've known for many years) and asking for the job.

My current internship is at the same company my father works at. I went to the CTO and asked for an internship. It probably helped that my dad works there.

I've also applied for several jobs. Every job I applied for at my college I was turned down for, every other internship I applied for told me "lol, freshman".

</comment><comment><USER29> This is very strange advice. I've never gotten a job from an acquaintance and am never likely to. There's a much bigger pool of jobs from people you don't know and a much better chance of a good match being made somewhere in that pool. The numbers are obviously in your favor despite the fact that people you've worked with know you're good. Its unlikely that you and people you know just happen to want to do the exact same thing at the exact same time with everyone else looking to recruit you.

I'd also feel really weird getting a job via acquaintance. Its like a kind of nepotism I don't want or need.

</comment><comment><USER30> Interesting - I haven't applied for a job in 3.5 years (because I own my own company) but at the same time, if I were to apply for a job...I wouldn't.

There's no real point. Don't bother trying to just do the same damn thing everyone else has done. Recruiters and hiring managers get 1k+ resumes a day.

Do something crazy, something nuts. Stand out from the crowd. The last thing you want to do is blend in because you just turn into another sheet of paper in the pile, even if you are near the top!

I'm going to put forth an example here: my cousin just graduated from high school in Grant's Pass Oregon. Small school, small town.

He's going to Oxford.

OXFORD.

Good for him! And he asked me what he should do for a graduation speech. I said "do something they'll never forget - make them remember you in your town forever"

His graduation speech was a two-parter with his best friend. The first part was an adaptation of "who's on first" and the second part was Dr. Seuss.

They'll never forget him, and they are sad he is leaving.

Do the same thing when applying for a job. You won't regret it.

(unless it isn't your style - it might be weird then and as my wife said just now, "context is king")

</comment><comment><USER31> Yes, this is an old concept called "networking". Unfortunately not everyone's very good at it, and unfortunately not being good at networking doesn't mean you wouldn't be good at the job in question. But that's life... social connections are indeed an important factor in all walks of life, and not something you learn in any classroom. It's a hard lesson for some of us.

</comment><comment><USER32> I completely agree with the article. Not a week goes by where I don't see this reinforced further. Just had lunch today with a guy I met through a meetup, and it might lead to paying work of some kind if I wanted it. A lot of the stereotypical application process and resume paradigm is all about filtering out and sorting random strangers who ping you across the transom. And it's only a proxy for the thing you want, not the thing you want directly. By going around that, by avoiding it, you avoid a lot of the pain and inefficiency that's experienced on both sides of the table. Go meet people directly. Show them what you're like. Smile. Laugh. Be kind. Don't smell bad. Be efficient. Do good work. Put examples of your stuff out there. Be findable. Be ambient. Increase your "surface area" and more opportunities will come to you. And if you're prepared when those opportunities present themselves, and you recognize them, you suddenly experience "luck" (where luck = preparation + opportunity.)

</comment><comment><USER33> The trouble with this strategy is that it's really just cronyism - <USER3> your friends and relations - rather than trying to do a less heavily biased search for the best candidate. Resumes/CVs, imperfect though they are, at least represent a sort of level playing field, whereas employing your friends via opaque methods is blatantly cronyistic.

<comment><USER34> Not necessarily. My company is often hiring and I have friends who potentially need jobs, however unless I don't think they would be a good (or great) fit, I probably wouldn't mention it to them.

<comment><USER33> In that case the thing you need to ask yourself is whether you're employing the person because they're the best from a range of possible candidates, or whether you're employing them merely because they're your friend.

</comment></comment></comment><comment><USER13> sounds like a good strategy, at every job I've worked the first question following a statement of "We need more people" was "Does anybody know somebody who would fit in here ?"

<comment><USER35> Every time I say "I know the perfect person", my bosses say, "No, we need to 'put the feelers out' and compare. There's no way to know if your guy is perfect without interviewing to see who's out there."

<comment><USER15> It's silly. They need to feel useful. This reminds me of some previous employers who always breathed down my neck to lay off our current developers and find newer faster developers.

Sometimes you should go for what you have, especially if its highly competent, is vouched for by a valued employee and meets your requirements.

</comment></comment></comment><comment><USER36> agree w/ the other ones... that depends a lot, and it's not that easy here in brazil.

</comment><comment><USER37> Even better - don't try and get a job, create them.

</comment><comment><USER38> Personally I've never applied for a job (I'm 32 now) and in our company the very first thing we do is ask around for personal recommendations when hiring new staff. Advertising the job is the last resort and usually gives the worst results.</comment>


Scientists hope they've found a drug to stop neurodegenerative brain diseases - <AUTHOR> http://www.bbc.com/news/health-39641123 <comment><USER2> My current day job involves doing the tech behind a series of dementia related online courses.

Awesomely, we just kicked off the latest running of our Preventing Dementia MOOC:

[https://mooc.utas.edu.au/courses/preventing- dementia-2017-03](https://mooc.utas.edu.au/courses/preventing- dementia-2017-03)

I emailed this link to our academic team as I'm sure they'll get bombarded with people asking why they should make changes to their life style if there is a magical cure just around the corner....

<comment><USER3> Is there a short summary anywhere of recommendations for life style changes that do benefit the fight against dementia? I don't have it currently, but I must admit the older I get the more the prospect concerns me.

<comment><USER4> The MIND diet

[https://www.ncbi.nlm.nih.gov/pubmed/25681666](https://www.ncbi.nlm.nih.gov/pubmed/25681666) [https://www.ncbi.nlm.nih.gov/pubmed/26086182](https://www.ncbi.nlm.nih.gov/pubmed/26086182)

</comment></comment></comment><comment><USER5> [https://www.gwern.net/Nicotine](https://www.gwern.net/Nicotine) suggests we already have a drug that works fairly well for some diseases.

<comment><USER6> This is a nice reading.

The only problem I see with anything inhaled (that is to some limited extent promoted here) is that it without compromise contaminates the surrounding air and forces the the bystanders to involuntarily to consume the byproduct.

<comment><USER7> There's alternate delivery mechanisms for nicotine. I've been using a rather foul-tasting "mint" oral spray [0]. It tastes like mint-flavoured death, but it's good for a quick 1mg dose.

[0] [https://www.amazon.ca/Nicorette-69547-Quickmist- Duo/dp/B004V...](https://www.amazon.ca/Nicorette-69547-Quickmist- Duo/dp/B004VDQH5O/ref=sr_1_1?ie=UTF8&qid=1493073766&sr=8-1&keywords=nicorette+spray)

<comment><USER8> Why not patches?

<comment><USER5> An ex-smoker might mentally need the quick fix? For a never-smoker, patches are great.

</comment></comment></comment></comment></comment><comment><USER9> New studies indicate that sleep is an important factor in cleaning up protein junk built up in the brain during wakeful hours. I wonder if the "real" impact of trazedone is the improvement in sleep quality and therefore by extension an effective maintainer of neurological physiology.

</comment><comment><USER10> DBM being [https://en.m.wikipedia.org/wiki/Dibenzoylmethane](https://en.m.wikipedia.org/wiki/Dibenzoylmethane)

I'm going to talk to my family whether we should gice this (and trazedone) to my dad

</comment><comment><USER11> Seems to me it would be just straightforward to get a list of people taking trazodone for long periods and measure their rates of neurodegeneration versus the general population versus those taking ssris.

<comment><USER12> Depression is repeatedly linked to changes in BDNF and neurogenesis, so you would probably just see greater neurodegeneration compared to healthy controls anyway. Post-marketing surveillance is hard to draw any causal conclusions from...

<comment><USER13> Trazodone is also used for sleep.

<comment><USER14> I think much more widely for sleep than depression.... it was originally an anti-depressent but had a nasty side-effect of making one very sleepy.

<comment><USER15> Trazodone helps me for sleep, it's incredible. I'm out like a light and it's not addictive. If you have nighttime anxiety and stress-related sleep issues, it can be a godsend.

<comment><USER16> I have heard that it is addictive so I'm curious as to what your experience is when not taking it. No withdrawal symptoms at all?

<comment><USER15> Nope, zero addiction. I take it about 5x a week, generally have weekends off.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> This is great, but if I read the study correctly, it's only been tested in mice for now. So I wouldn't get my hopes too high for now (I'd estimate the chances of success at 5% or less at this point).

</comment><comment><USER18> prion diseases too??? That's hard to believe.</comment>


Alaskan halibut provides a glimpse of Amazon's strategy with Whole Foods - <AUTHOR> https://www.seattletimes.com/business/amazon/alaskan-halibut-caught-by-a-century-old-seattle-boat-provides-a-glimpse-of-amazons-strategy-with-whole-foods/ <comment><USER2> .... in which the Seattle Times discovers that grocery stores use items at or below cost to lure in buyers to purchase other things at the store.

12 packs of coke were often sold at a loss at grocery stores. I'm not sure what they cost now, but cost use to be in the $3.50 range in 2007. Costco was usually about a bit more than the cost but they were selling 24 can flats, so probably still turning a profit. In 2007 it wasn't uncommon to do 4/$10 deals and even 5/$10 deals occasionally around the super bowl. 3/$10 was the average sale if they wanted to try to boost sales. Other examples include family packs of NY Strip/Ribeye.

<comment><USER3> [https://en.wikipedia.org/wiki/Loss_leader](https://en.wikipedia.org/wiki/Loss_leader)

Certainly not a new thing.

</comment></comment><comment><USER4> What is the difference between what they're doing & every other grocery store?

I'm not sure I understand the difference after skimming through the article except that they have a reputation for more expensive, organic foods.

<comment><USER5> Durable, nationwide discounts on low-margin, premium products aren't a norm in the grocery industry. It would be similarly noteworthy if Kroger started selling dry-aged prime ribeyes at $8/#. (Less so if Costco did it, but Costco isn't a normal grocer).

<comment><USER6> Two minutes of searching tells me differently. Grocery stores have used loss leaders for decades to get people in the store. Why do you say the opposite?

<comment><USER7> Loss leaders aren't new, but usually they are either temporary, local, or on low-value products (think oranges, chips or soda instead of salmon)- or all three.

<comment><USER8> I thought the article was pretty clear that the loss leader price was only active for one week? That's very temporary.

<comment><USER7> My mistake, sorry. I got thrown by the parent's "durable".

</comment></comment></comment></comment></comment></comment><comment><USER9> This is basically what dollar stores do. You have to lose profit on some items to get traffic and regain that profit in different items.

Traffic is exponentially better than being profitable in every item since you can expose the customer base to other products and start deploying other fidelization channels. You won't get that if you have the same outlier buyers giving you profit on a few expensive items.

</comment><comment><USER10> Seems like use the discounts to attract customers and convince them to join Amazon Prime. The Prime promotions and connection are everywhere in WF, and cashiers are always asking, even when the card-reader has a sticker(s) on it.

<comment><USER11> For an occasional shopper at WF who is just trying to pay and leave the store, whether or not you have prime the correct answer is "no" to get them to shut up so you can pay and leave.

<comment><USER12> Scanning your app at the scanners is pretty quick and painless, like any other rewards card, and for me at least seems to be worth it more often than not.

(disclaimer: I work for amazon, although not WF/retail)

<comment><USER13> I'm uninterested in having the 'Whole Foods App' on my phone. I'm similarly uninterested in having the 'Amazon App' on my phone.

I offer my phone number to verify my Prime membership. Works fine.

</comment></comment></comment></comment><comment><USER14> > "Do they take the profit from their non-retail efforts, which today is > primarily cloud computing, and then reinvest those profits to take share in > grocery?" Forte said.

Yes. Even better, they can push people to sign up for Prime by jacking up prices for non-Prime members. When faced with these "loyalty" programs elsewhere, I just type in a fake phone number, or an old land line that has probably been reassigned. I suspect you can't do that at Amazon stores.

</comment><comment><USER15> I'm more interested in the fact that someone is fishing for halibut in a 103 year old wooden schooner in 2019. The rest of this article is in my opinion, not news.

<comment> jack-facts This is actually more common than you'd think. There are plenty of older wooden boats still fishing both in the lower 48 and up north. The old halibut schooners are some of the most prized boats out there.

</comment></comment><comment><USER16> This article had virtually no content. An inexperienced reporter was fed a ton of filler, and wound up acting as an Amazon cheerleader. So Whole Foods used halibut as a loss leader. So what?

</comment><comment><USER17> Alaskan black cod is da bomb. Way, way better than any other fish. And more sustainable than halibut and most other commercial fish, at present.</comment>


Show HN: PotterVerse – Visualizing the Harry Potter character network - <AUTHOR> http://efekarakus.com/potterverse A visualization of the Harry Potter character network. Exploring whether it exhibits the same properties as a real social network. <comment><USER2> I'm not sure comparing this to a "real" social network is meaningful. More appropriate might be to compare the Potterverse to another relatively small, socially isolated, insular community like a group of Amish. I wonder how the numbers would compare in that case.

<comment><AUTHOR> That's a great question! I kinda wanted to see if a fictional network would look somewhat similar to a real social network such as Facebook. But exploring other networks that are more secluded would be so interesting! Gathering the data would be a challenge :)

<comment><USER2> I don't have my copy with me right now, but Barabasi has some examples of interesting social network data that were collected by sociologists in his book "Linked" [1]. You might be able to get hold of some of those. IIRC there is a prison network that might be a fair comparison.

[1] [http://www.amazon.com/Linked-The-New-Science- Networks/dp/073...](http://www.amazon.com/Linked-The-New-Science- Networks/dp/0738206679)

</comment></comment></comment><comment><USER3> Worth pointing out if you haven't read the entire series and plan on doing so, you should keep well away - character markers are all (needlessly?) spoilerific.

<comment><AUTHOR> Ah good point, I am sorry about that.

</comment></comment><comment><USER4> Interesting visualization. I'm wondering where this data is coming from. You could probably construct a similar network out of all of the character pages on [http://harrypotter.wikia.com](http://harrypotter.wikia.com).

<comment><AUTHOR> That's where we got our data from! This project was done with a team of 4, and everyone entered data while trying to check facts from the Wikia. I realize that there are some edges that are missing and some other characters, but we hoped that this subset of characters and relations would be a good approximate of the real harry potter universe.

If you want to take a look at the data: [https://github.com/efekarakus/potter- network/tree/master/dat...](https://github.com/efekarakus/potter- network/tree/master/data)

</comment></comment><comment><USER5> It'd be really particularly interesting to understand the connections themselves with some kind of context.

I'd also really like to see things like a subcollection of the network, and how they would interact if they were put into a discrete network.

Cool stuff!

<comment><USER6> If you are referring to ego networks (the connections between your immediate connections), the visualization gets part way there. If you hover over a node, it pops up a character bio. If you click a node, it shows the immediate peer connections, but it does not go to the next step and show the connections between the people you are connected to. Analytically, that is a great social network analysis concept, since you can determine the balanced triads and determine what needs to happen to either unbalance a network (and cause the relationships to unravel) or balance a network and make it stable.

</comment></comment><comment><USER7> What is the compared-to "real social network". Facebook or other online networks? Or derived from studying meatspace communities? I imagine the numbers are very different between the two.

<comment><AUTHOR> Good question :) I was referring mainly to the small world phenomenon [1], there are also some online networks that have ~6 avg path length like Microsoft Messenger [2]. We were just curious how a fictional network would look like.

[1] [http://en.wikipedia.org/wiki/Small- world_experiment](http://en.wikipedia.org/wiki/Small-world_experiment) [2] [http://research.microsoft.com/en- us/um/people/horvitz/leskov...](http://research.microsoft.com/en- us/um/people/horvitz/leskovec_horvitz_www2008.pdf)

</comment></comment><comment><USER8> What is your reference for the average path length within a real social network? Six degrees of seperation?

<comment><AUTHOR> Yup that's right!

<comment><USER8> Cool. I have a question in my mind that you might answer or comment on. As the social networks and internet usage grow steadily, should we expect a decrease in average path length of a social network? Will "six degrees of seperation" be updated to "X degrees of seperation" in the future where X<6?

<comment><USER6> G'day, I am one of the others who worked on this. Study back in 2011 showed that in Facebook at least, the average degrees of separation was 3.74 (and closer to 2 or 3 for regional connections) ... so as we enter a more digitally connected world, Stanley Milgram's "Smallworld" study (that gave us the original 6 DoS metric) is contracting.

</comment></comment></comment></comment><comment><USER9> Can you tell us a bit about the tools that were used to create this?

<comment><USER10> The visuals are generated primarily using D3.js (great data visualization tool).

Source: I'm on the team that worked on this.

Edit: This project is open-sourced - Check it out at [https://github.com/efekarakus/potter- network](https://github.com/efekarakus/potter-network) :)

</comment></comment><comment><USER11> eline sağlık kanka :)

<comment><AUTHOR> Cok tesekkurler :)</comment></comment>


Using mTurk to interview 100 customers (in 4 hours) - <AUTHOR> http://customerdevlabs.com/2012/08/21/using-mturk-to-interview-100-customers-in-4-hours/ <comment><USER2> Google Consumer Surveys (<http://www.google.com/insights/consumersurveys/home>) achieves a similar end for a surprisingly low price, and they've figured out all the boring details like how to poll a representative sample of the US internet population and how to get stats right.

Disclaimer: I work on the product. I think it'd be pretty useful for startups to gauge the market.

<comment><USER3> Sounds like a really interesting product, and something we'll definitely check out, but to be very clear...interviews != surveys.

In terms of customer discovery and problem identification, absolutely nothing beats interviews. Surveys may have their place when it comes to getting demographic information or validating a market size, but interviews should not be replaced with surveys.

<comment><USER2> Wow, I somehow missed that the original article was about interviews despite it being all over the article. I think I read it earlier in the day but only came back later to comment on it and forgot that important part. :( Thanks for being polite about my error.

</comment></comment></comment><comment><USER4> This is a great option if your target is likely to be an mTurk user. Further, this is a great write-up on _how_ to do it!

If you do this, make sure to validate your psychographics and demographics. You will also want to validate your responses with people you've identified in your psychographics and demographics. In other words, make sure the data you are getting is actually valid data and not coming from some 12 year old playing with his mom's phone. :)

<comment><USER4> I decided to do some digging and found some demographics[1] of mTurk users. It's far more diverse than I thought.

1\. [http://www.behind-the-enemy-lines.com/2010/03/new- demographi...](http://www.behind-the-enemy-lines.com/2010/03/new-demographics- of-mechanical-turk.html)

<comment><USER5> Really interesting... thanks for sharing! For our surveys, we also captured specific demographic information to get the most representative sample as possible.

</comment></comment></comment><comment><USER6> What is a useful way to find initial customers for a B2B product? (As other commenters have noted, mTurk is more useful in a consumer setting.)

Is there a way to find initial customers in a scalable manner? i.e. scaling it across many different business ideas and potential customers?

This would be a great service that a lot of people would pay for. I know, I know, I'm asking for marketing to be commoditized and turned into a service, which is hard. I don't really know how to do it.

<comment><USER7> Check out Elastic: <https://elasticsales.com/what-we-do/>

(I don't work for them and haven't used them, but it sounds like they're doing exactly the thing you're looking for.)

<comment><USER6> Is elastic appropriate for customer development and initial marketing?

My understanding was that their use-case was if you wanted to scale out sales on a product for which you have already identified need, price, customer profile, etc.

</comment></comment></comment><comment><USER5> Really great post with 2 super relevant examples to interview and test the theories that make up your business. I'm curious how other people are using mTurk (and other scalable solutions) to help test their theories. Any winning ideas out there?

</comment><comment><USER8> In my opinion probably a more viable approach for testing consumer-oriented ideas (e.g. "Daycare Review Service") than B2B products (e.g "Lesson Scheduling for Music Teachers"), but some really useful and actionable stuff here.

<comment><USER3> By and large, I'd agree with you, but consider that people are still people when they're off work. By that I mean, if the decision maker you're looking for could easily be on Mechanical Turk in their off time. I can promise there are Music Teachers on mTurk, just like there are marketers, hr reps, sales people, real estate agents, etc.

</comment></comment><comment><USER9> Really appreciate the post - especially the thought in making the content relevant for the readers (e.g., the video).

</comment><comment><USER10> I wonder how well this would work for B2B apps, in which case you need to interview professionals of some sort.

For example, I would love to interview PR professionals. Compared to parents, I would venture a guess that they're much harder to find on MT. I wonder if Facebook ads would work better.

<comment><USER11> LinkedIn and Facebook can both be pretty good when you need narrow targeting.

There are three big issues with using MTurk for business research. You can't do much to refine who you get as respondents, the respondents are incentivized to complete the task without regard for the effect on your data, and you have restrictions on what you can do due to the anonymity rules.

If you're following the way of the niche, MTurk may be too problematic compared to just slogging through some cold calls. The benefit for more broadly targeted projects is that it lets you grab a large sample size with fairly low effort.

</comment></comment><comment><USER12> This is a pretty well known strategy. Good to see people using this still and getting great results from it. You can get some surprisingly useful feedback for just $X00, especially if you note down your target user group in the HIT.

</comment><comment><USER13> Any idea how to open non-US requester account?

Right now amazon will only let you signup - if you have US billing address :(

</comment><comment><USER14> Anyone suggest a similar tactic for people outside US, given that Google Voice and mTurk are (mostly?) limited to US?

<comment><USER3> In mTurk, you can select which countries your workers are in and you could use Skype instead of Google Voice.

<comment><USER14> For workers yes, but I don't believe you can be a mTurk provider if you're outside the US though.

Skype would work fine here, true.

</comment></comment></comment><comment><USER15> A great entrepreneurial hack and interesting mix of hustling,marketing and tech.

(ps - watch the vid)

</comment><comment><USER16> from the guy who got into TechStars with Nick - he is one of best hustlers I know</comment>


How Japanese scissors have evolved - <AUTHOR> https://asia.nikkei.com/Life-Arts/Life/The-cutting-edge-of-cutting-How-Japanese-scissors-have-evolved <comment><USER2> > Artisans were hired to sharpen the edges of these general-use scissors' 3mm > thick blades.

Ah, Japan. Champion of factory automation, and yet quixotic believer in the mystique of doing things by hand.

<comment><USER3> > yet quixotic believer in the mystique of doing things by hand.

Dont forget fax machines in every office and the compulsive need to print bundles of powerpoint slides in every meeting for good measure!

</comment></comment><comment><USER4> This is just an ad with some hollow fluff.

</comment><comment><USER5> Reminds me of Hida Tool in Berkeley, CA... the best description I can manage is that it is a hardware store that only sells sharp things from Japan: knives, chisels, saws, planes, scissors, etc. I find it totally fascinating that there's no limit / scoping related to purpose: there are sharp things for the kitchen, garden, construction, woodworking (turns out sharp things are useful in a lot of different domains). Definitely more fun than Amazon.

<comment><USER2> They sell things whose purpose is to be sharp things from Japan, to people who like sharp things from Japan.</comment></comment>


Why Nutrition Is So Confusing - <AUTHOR> http://www.nytimes.com/2014/02/09/opinion/sunday/why-nutrition-is-so-confusing.html?hp&rref=opinion

<comment><USER2> if you think nutrition is confusing try understanding genomics</comment>


Ask HN: Is there a commercial equivalent to the TPU? - <AUTHOR> Hey HN,
I've been learning about GPUs and TPUs and I was wondering if there is any commercial or open source version of something like a TPU? I'd love to help design something like that or at least buy one if possible.
Also in general, is open sourcing a chip design not common in the hardware community? Do you think that holds the world back? <comment><USER2> Yes, there are several TPUs on the market now including [https://www.sophon.ai/](https://www.sophon.ai/) [https://www.graphcore.ai/](https://www.graphcore.ai/) [https://www.intel.ai/nervana-nnp/](https://www.intel.ai/nervana-nnp/) and probably a lot more.</comment>


I am a young, tenured, female engineering professor. AMA - <AUTHOR> http://www.reddit.com/r/IAmA/comments/201xvt/i_am_a_young_tenured_female_engineering_professor/

<comment><AUTHOR> She is also raising money to research a new method of oil spill response:

[https://experiment.com/projects/can-naturally-occurring- soap...](https://experiment.com/projects/can-naturally-occurring-soap-like- materials-be-used-for-oil-spill-response)</comment>


The Apple iOS 9 Review - <AUTHOR> http://anandtech.com/show/9605/the-ios-9-review <comment><USER2> Dupe of [https://news.ycombinator.com/item?id=10226157](https://news.ycombinator.com/item?id=10226157)</comment>


Next Generation Mobile Apps - <AUTHOR> http://www.insetlabs.com/admins/sign_up/#############################

<comment><USER2> I guess this is neat. After skimming over the website for a few minutes, I still have no idea what insetlabs is. Care to explain in the comments?</comment>


Women in US lagging behind in human rights, UN experts report - <AUTHOR> http://www.un.org/apps/news/story.asp?NewsID=52797 <comment><USER2> Haha, these people again? The members of the UN Human Rights Council are like a who's who of oppressive or failed states.

Members include: China, Russia, Cuba, Saudi Arabia, Qatar, Bolivia, the Congo, Venezuela, Ecuador, the UAE, and Kyrgyzstan.

When they're not attacking Israel (which is a permanent agenda item at every single meeting) or hosting Hamas politicians, they're advocating for the prohibition of "defamation of religion", which is code for prohibiting criticism of Islam.

<comment><USER3> UNHRC isn't OHCHR. The former is more like HFAC, the latter more like a State working group -- in other words, politicians vs professionals.

<comment><USER2> Edit: I originally acknowledged my mistake, but upon closer inspection, I was actually not mistaken. This Working Group was commissioned and appointed by the Human Rights Council, the one with zero credibility. [http://www.ohchr.org/EN/NewsEvents/Pages/DisplayNews.aspx?Ne...](http://www.ohchr.org/EN/NewsEvents/Pages/DisplayNews.aspx?NewsID=16872&LangID=E) (see the italic bit near the end).

Other half of original reply because it's still relevant:

Nonetheless, I'm suspicious of a report that cites flawed statistics, such as a gender wage gap of 79 cents on the dollar, as evidence of discrimination and denial of rights. See my comment and sources here: [https://news.ycombinator.com/item?id=10785515](https://news.ycombinator.com/item?id=10785515) . Equal rights does not mean equal outcomes because, even in the case of equal ability and opportunity, people have different preferences. This report is nonetheless equating those.

<comment><USER3> I think those are totally valid objections -- the microeconomic research remains equivocal on gender pay gap differences and, while I firmly believe that American politics and policies regarding women's rights are marching boldly backwards, I also think this is more than a bit of grandstanding (I admire many UN professionals, but there are plenty of excitable activists amongst their peers, though both professionals and rabble-rousers are outweighed by the clock punchers. Bureaucracy, don't you ever change).

Also, the UN org chart looks like a bowl of spaghetti, so remembering who is what and when is an absolute pain.

</comment></comment></comment></comment><comment><USER4> The UN can complain about US equal rights AFTER they have gotten equal rights in Middle Eastern countries.

<comment><USER5> nonsense. all countries should be encouraged to move in a progressive direction.

<comment><USER6> They should focus their limited time and resources on the real problems of the world and not on the alleged wage gap and "reproductive rights" in the U.S.

Women in many parts of the world are dealing with war, kidnapping, sexual slavery and rape, total lack of rights, genital mutilation, lack of birth control, lack of medical care, lack of adequate food on the dinner table. Surely these are far more pressing issues than the First World problems that Americans are dealing with.

</comment></comment></comment><comment><USER7> We don't need to sign a treaty for this...</comment>


Why $250k does not equate to rich [2010] - <AUTHOR> http://www.thefiscaltimes.com/Articles/2010/12/07/Down-and-Out-on-250000-a-Year.aspx#page1

<comment><AUTHOR> The mystical $250k first became "rich" back in 1993, when it became the top Federal income tax bracket, while $200k became "rich" way back in 1943 for the same reason.

$250k 1993 dollars in 2011 $370,000 $200k 1943 dollars in 2011 $2,500,000

</comment><comment><USER2> Only richer than 98% of everyone else.

<comment><AUTHOR> 98% of everyone else where exactly? In Manhattan, NY the average household income is $121,000, while in Cullman, AL it is $41,000. Sorry, $250k in a major US city is "just making it" for the average family.

Meanwhile:

47% of Federal tax filers pay none, ZERO, taxes. In 1988 the burden shared by the bottom quantile that actually paid taxes was 8.7%, while it was 4.3% by 2006. The two quantiles, one that pays no taxes, and one that pays minimal taxes, consume >95% of Federal entitlement programs.

(Sources Non-Partisan Tax Policy Center <http://www.taxpolicycenter.org/>)</comment></comment>


Prefer DEFER Over ASYNC - <AUTHOR> http://calendar.perfplanet.com/2016/prefer-defer-over-async/ <comment><USER2> People litter their script tags with these attributes and then start wondering why they have weird JS bugs. I get that it's their fault and everything, but, ughghghgh</comment>


Show HN: RaaS – Roasting as a Service - <AUTHOR> https://feedbacktoaster.com/ <comment><USER2> You seem to keep re-thinking, re-branding and re-posting the same idea, and I still have the same feedback -- who are these people reviewing the site? Do they have any experience that makes their reviews any better than anyone else I could talk to? Or is this just crowd-sourced out to the general public?

<comment><AUTHOR> I have a crowd of reviewers (and always looking for more) which are pretty much from the general public and good reviewers get tasked more often. I manually review the feedback replies to ensure the quality.

</comment></comment><comment><AUTHOR> Roasting as a Service makes sure someone tells you why your product/startup/website is trash. Because dreaming is too easy.

When people give you feedback they don't want to hurt your feelings. Would you pay $5 to get real feedback?

<comment><USER3> Is it $5 or $15? What if we have a target audience like healthcare? Or is this purely an aesthetics feedback on products?

<comment><AUTHOR> $5 for review texts (but with screenshots and gifs) and $15 for the video reviews. In the special request field you could narrow down the tester audience but that only works if it doesn't get too specific. The feedback itself is about the website, user experience and what the people think about the product itself.</comment></comment></comment>


LinkedIn Buys Business Card Converter CardMunch - <AUTHOR> http://techcrunch.com/2011/01/26/linkedin-buys-business-card-converter-cardmunch-will-offer-its-services-for-free/

<comment><USER2> Excellent, now maybe they can get an Android version out.

</comment><comment><USER3> Sweet - just downloaded the free app!</comment>


Saurik releases Substrate for Android - <AUTHOR> http://www.cydiasubstrate.com/

<comment><USER2> This is probably completely off-topic, but could this be used to create the ability to deny permissions to applications? As a privacy-sensitive person, I would like to prevent some applications from receiving certain permissions, while still using them (for example, why should a game have access to my contacts?), but Android doesn't provide that functionality.

Would this be possible/viable with this framework? I might give it a shot, if so.

<comment><USER3> Not answering your question, but applications for Android are generally written with the assumption that they have whatever permissions they requested at install time, and may behave unpredictably if calls to things that are supposed to have already been authorized raise exceptions. I would expect that if you managed to do this, lots of applications would crash.

<comment><USER2> I'm pretty sure you could fake most permissions convincingly. After all, how is an app to know that that empty contact list or those GPS coordinates on the top of mount Everest aren't actually real?

<comment><USER4> There's been a few mods out on xda for at least a year or two that let you fake most permissions per app so the app would think it was getting legit data and not just blindly crash if it was denied the data totally. I think one was built into MIUI and could also be used standalone. The other one I can't recall the name, but if I think of it I will edit my post in a bit. Both had their source out though so you could mod them.

Cyanogenmod 7 tried to totally deny permissions for apps and it was not a good idea. It resulted in apps crashing a lot. Also the reason they didn't continue to do it in Cyanogenmod 9 and 10. Faking permissions is definitely the way to go though.

edit: pdroid was the other (<http://forum.xda- developers.com/showthread.php?t=1357056>)

<comment><USER5> Pdroid is fantastic. I waste time patching my ROM every time I need to upgrade with that tool. The amount of information you can disable or manipulate to hand to app providers is amazing.

I think Android would have much better cred in the geek community if this was standard, but the legal and business hoops it jumps around and out of make it a pipe dream. I will say when I meet Infosec guys in my area and show them that app, even the iPhone guys are impressed and want to know how to get it if they got Android phones.

<comment><USER2> What legal and business hoops are you talking about? I can't see any legal problem with Android letting me disable my own permissions...

</comment></comment></comment></comment></comment></comment><comment><USER6> Looks a lot like XposedFramework:

[https://github.com/rovo89/XposedBridge/wiki/Development- tuto...](https://github.com/rovo89/XposedBridge/wiki/Development-tutorial)

Xposed has allowed me to iterate much more rapidly on framework tweaks, and also keep them much cleaner (since now I just have the "hooks" instead of directly changing Android framework). Also, I can run on more devices because I don't have to replace some framework JAR which the vendor tweaked substantially.

<comment><USER7> saurik wrote a comparison of Xposed and Substrate that may be interesting to you: [http://www.cydiasubstrate.com/id/34058d37-3198-414f-a696-73e...](http://www.cydiasubstrate.com/id/34058d37-3198-414f-a696-73e97e0a80db/)

> _That said, at some level the libraries are fairly similar: the core > mechanism by which a method is hooked in Xposed (swapping it out for a JNI > implementation) is actually the same one that I described in the talk I gave > on Substrate at a conference called Android Open in 2011. The result is that > there are some similarities in the functionality offered by the two > frameworks._

> _Thankfully, Substrate's injection mechanism does not conflict with the one > used by Xposed: therefore, if users or developers would like to have both > frameworks installed, that is actually possible. There are some places where > the two libraries "disagree" (such as Xposed totally removing the Java > security model that Substrate preserves), but the resulting behavior is > harmless._

</comment></comment><comment><USER8> Upon further reading, I noticed the true purpose of this seemingly allows apps to extend outside their sandbox and violate the intent model in terms of how they interact.

Not sure why this is a GOOD idea though...

\----- original:

As someone with a rooted galaxy nexus on cm10.1, why is this of interest to me?

I understood that cydia was an app store alternative that only could exist on rooted/jailbroken iOS. Android has no such restrictions about app stores; what value does this actually add?

This is based on reading every word of the linked to page...

<comment><USER7> For an example of what Substrate can do, saurik also released Winterboard for Android today ([https://play.google.com/store/apps/details?id=com.saurik.win...](https://play.google.com/store/apps/details?id=com.saurik.winterboard)):

> _WinterBoard is a "theme engine" that allows you to use the numerous themes > you may find in the Google Play Store on your device without having to > install custom ROMs or use custom launchers. It allows you to use almost any > launcher icon theme with your stock launcher and supports "Theme Chooser" > themes without CyanogenMod._

Winterboard is for customizing graphics with more flexibility; it's not messing with how apps work.

You could also imagine people developing a collection of Substrate extensions that each implement a specific launcher customization, so that you can build up your desired set of customizations one-by-one instead of trying to choose between several launchers that each have parts of what you want.

</comment></comment><comment><USER9> No. No no no no no no.

There's nothing wrong with hacks. There's nothing wrong with runtime patching. If you know what you're doing, then you know why you shouldn't do it, and thus you're well equipped to do it anyway.

There _IS_ something wrong with bundling up hacks and runtime patches into a simple user-friendly installer that leads users to believe that they will work and are safe. When the hacks fail (and they will), it happens in ways that leave users confused, frustrated, and blaming us -- the developers of the applications that your hacks crash.

Bug reports from people who use Mobile Substrate are a _massive waste of time and user goodwill_. They pollute our crash reporting system, they make users think our software is broken, and they result in bad reviews in the app store.

You've just made life more ugly for every ISV that supports Android -- and our users -- after doing the same to us on iOS for years.

<comment><USER10> Your app doesn't work on my jailbroken iPhone I'm not going to leave a poor review but I will still think it reflects poorly on your software.

<comment><USER11> He's not just referring to a jailbroken phone. From what I gather, the main purpose of Substrate is to allow apps to monkey patch functionality in other apps. I can see how this could be frustrating if users report issues that are actually caused by another app "hacking" the reported app.

<comment><USER10> The primary purpose of jailbreaking your phone is to run tweaks that use MobileSubstrate. I think Saurik himself has said Cydia only contains a handful of "apps" everything else is a tweak.

Unless the author has written an app badly in need of a tweak specifically targeting it, I doubt it's being patched directly.</comment></comment></comment></comment>


Does John Lewis offer a revolutionary way forward for big business? - <AUTHOR> http://www.independent.co.uk/news/business/analysis-and-features/streets-ahead-does-john-lewis-offer-a-revolutionary-way-forward-for-big-business-1774510.html

<comment><USER2> I find John Lewis/Waitrose very interesting. Imagine combining Wholefoods with Goldman Sachs (pre flotation) & raw Marxism (the workers literally own the means of production) - that's what this is. It's certainly an interesting combination.</comment>


Writing Linux Kernel Modules in Haskell - <AUTHOR> http://tommd.wordpress.com/2009/09/13/kernel-modules-in-haskell/

<comment><USER2> What other unusual languages do people use for linux kernel modules?

<comment><USER3> I guess you could google it, but I also got interested, so here you go:

\- Caml [http://caml.inria.fr/pub/ml-archives/caml- list/1999/02/a7fc1...](http://caml.inria.fr/pub/ml-archives/caml- list/1999/02/a7fc10108667cd633a1f918b9c9a5129.fr.html)

\- C++ <http://www.read.cs.ucla.edu/click/>

\- Cyclone <http://cyclone.thelanguage.org/files/cyclone-drivers.pdf>

\- Pascal <http://wiki.freepascal.org/linux/kernel/module_development>

\- Ada <http://oopweb.com/Ada/Documents/AdaLinux/Volume/16.html>

\- Fortran, D (I'm just guessing, but these should be trivial)

... probably others too</comment></comment>


Ask HN: Do YC-funded users participate less/more on Hacker News? - <AUTHOR>

Compared to the average non-YC-funded individual.<p>My own impression is that participation by the YC family in discussions and submissions is pretty low. Is this impression correct? <comment><USER2> Hopefully less, after all, once you are working on a funded startup your time left over to idle away in online forums is substantially less than for other, less fortunate people!

If it directly relates to your startup that's a different thing of course, but for the most part 'participating in online forums' should take a backseat to hard work.

<comment><AUTHOR> So is HN participation frequency inversely correlated to accomplishment?</comment></comment>


Ask HN: What desk and chair should I buy? - <AUTHOR>

I am thinking about buying an Aeron chair this summer and am wondering what kind of desk I should get to go along with it. Is there a desk that has the reputation of an Aeron chair? Also, is the Aeron chair really as good as advertised? I have started cracking my back and neck and I think that a quality chair might fix that problem, is the Aeron the best choice? <comment><USER2> We're fans of Ikea's Markus chair here at wishli.st HQ. It's a darn site cheaper than an Aeron too...

<http://wishli.st/228>

<comment><AUTHOR> I had one of those when I lived in the USA, it was OK, but really not a chair that I would feel comfortable spending the rest of my life in (dramatic, I know, but I really do spend a lot of time at my desk). Also, one of the screws I used to assemble it didn't quite fit.</comment></comment>


Ask HN: How do you tell your users about your new features? - <AUTHOR>

I've been working recently in my first startup and one thing we keep wondering is a good way to let our users know about our new features, until now we are doing it through blog posts (which based on analytics people seems not to be reading), emailing our users (but we don't want to become spammers) and also putting visual changes in the UI so people noticed them.<p>So, I would like to ask you, which tricks do you use to get your users to know about your product's new features and get them to start using them?<p>*My cofounder and I are engineers, so customer development/marketing is pretty much a whole new world for us :) <comment><USER2> It depends on the size of the update. From my experience in social gaming and consumer web, we use tooltips and login modals greetings for most changes. For more significant ones, we use blog posts (kind of like doing a press release) and then email all users to let them know. As long as you have a unsubscribe link, you're not going to be considered a spammer especially if they signed up for your service. The benefit of engaging with users (increasing conversions and building community) outweighs the cost of annoying your fringe users (churn).

This is an interesting experiment on emailing users. [http://searchengineland.com/extreme-email-experiment-how- muc...](http://searchengineland.com/extreme-email-experiment-how-much-is-too- much-60755)

<comment><AUTHOR> thanks! I'd definitely consider this, actually when we sent email we saw a good click/opens rate. We'll experiment more with modals too.

</comment></comment><comment><USER3> I'd use a lightly blinking notice box at the top of your screen, just below the header. Let it disappear when not clicked within 5 seconds or so. Give a teaser, with a link to take the tour around new features. Only do that when you have several that are worth the time to learn about. BTW - I'm from a marketing/sales background and just getting into IT/Comp.Sc. maybe we can learn from eachother? My email is in my profile.

<comment><AUTHOR> Sounds good, your email is not there though :(.

<comment><USER3> Sorry, my mistake. Just added it.

</comment></comment></comment><comment><USER4> What about showing each user who logins a summary of what's new? It could be in a modal, or could just be a brief area with a link at the top of the page, perhaps pointing to your blog post?

(Also an engineer)

<comment><USER5> I second this. We publish our blog posts on our web app's homepage. Judging from the feedback we receive, people actually read those.

</comment></comment><comment><USER6> What about the way Facebook does it? Short message stating the new feature and a basic tour of what to click.</comment>


Picturing the Future of Messaging: Twilio MMS Now Available on All US Numbers - <AUTHOR> https://www.twilio.com/blog/2014/09/introducing-twilio-mms-nt.html

<comment><USER2> MMS is the future of messaging? Hopefully not ;)

Personally, I don't think I've ever used them, even before mobile Internet. Is it common in the US?

</comment><comment><USER3> Is there still a use case for MMS that isn't better served by facebook mesenger, whatsapp, viber, ... ?

<comment><USER4> You can send to any number, with just the phone number.

When developing an application for the general public, none of the services you suggest come close to solving that problem.

<comment><USER5> > _You can send to any number, with just the phone number._

I don't think that works in practice, some / many people can't receive MMS. I don't even know if I can, think it has to be set up on the phone to match the carrier.. or something =/

Maybe it's different in the U.S.?</comment></comment></comment>


The Hertz Corporation vs. Accenture LLP [pdf] - <AUTHOR> https://regmedia.co.uk/2019/04/23/hertz-accenture-website.pdf <comment><USER2> I don't understand why companies and governments continue to go with outsourced ibm, Accenture, etc. The number of gargantuan sized failures never ceases to amaze.</comment>


Show HN: Developer to Manager (Interviews with devs who moved to management) - <AUTHOR> https://devtomanager.com/ <comment><USER2> Developers who move to management are bad developers.</comment>


How to Succeed as a Poor Programmer - <AUTHOR> https://psgraphics.blogspot.com/2019/09/how-to-succeed-as-poor-programmer.html?m=1 <comment><USER3> The "Avoid Learning Anything New" advice is insane. (Well, practically all of it is, but that one really stands out).

I think the exact opposite advice is far better: never assume the way you know how to do something is best, and always be on the lookout for what others are doing that might be better.

Here's the thing about learning: the more you learn, the easier learning the next thing becomes. You form links, insights on relationships, new concepts that apply to old things, etc. If this guy thinks learning is such a burden, it's probably because he refuses to learn anything in the first place.

If he thinks he's a poor programmer, it probably has less to do with innate ability and 100% to do with the attitudes he gives as "advice" in this blog.

<comment><USER4> He is right though – new tech nearly always disappears.

Example: Learning CoffeeScript was a total waste of time. Learning JQuery helped me for a few years, but now JQuery is basically useless to me.

Based on past experience, I strongly suspect the same will happen with React, Rust and a bunch of other new exciting tech. There are countless examples besides the ones I mentioned.

But on the other hand, the time I put into mastering SQL or Unix will probably continue benefiting me for the rest of my career. Even C will continue to benefit me, even though it'll only ever be a small part of my job.

So I would modify his rule: _Avoid Learning Anything New – Learn Something Old_

<comment><USER5> > _Learning JQuery helped me for a few years, but now JQuery is basically > useless to me._

'A few years' is a solid return on investment. Besides the reason Jquery is now useless is because Javascript now has those capabilities, so your skills were 'grandfathered' to ES6/ES7.

Learning an applicable skill is almost never useless.

<comment><USER4> Yeah, I'm not saying it wasn't useful at the time, just that it's not useful now. As opposed to learning SQL or shell scripting which will probably be useful my entire career.

<comment><USER6> I'm convinced of 'learn old > learn new' in general, but I think there are some interesting edges: the older something is, the larger the gap (maybe chasm) will be between 'basic competence' and 'venerable expert'. Also, the more likely all the common problems you'll face will have been posted on the internet, and that the quality of tutorials and explanations will be superlative.

While the payoff of learning old > new is typically much higher (search: Taleb Lindy effect), I think matching your learning to the 'human api' is more important. For me, learning is very emotional: when I feel a sense of curiosity and intrinsic drive to know, I'll follow my nose, spend my time where it takes me. I want to spend this kind of energy in a certain way.

When I find myself with an instrumental cause or external need to know, it's most likely going to be because it's something typical, something old, in which case learning about it and being useful with it will require less of my spirit and drive to crack.

New language/tech fanatics tend to pressure through both sources (a la "look at our ingenious design breaking paradigms" and "it's so good your boss will want you to work in it (well, soon)"). Often the former argument is stronger, so it appeals to your curiosity - in which case you're best off searching for the useful kernel, followed by a swift exit in order to preserve your sense of discernment. Should you return there, provoked by your general interest, that ought to be your indicator of importance. How hyped you felt that one afternoon you learned about it after reading HN comments is likely not.

On the other hand, the 'should learn' brigade will tend to target the latter source of pressure (employability & centrality). If you find yourself feeling resistant to this and force yourself into it anyway, you'll easily burn out and douse your curiousity for the day. I've arranged learning resources to languages I find fundamentally dull multiple times, and made only very shallow dives into them.

When choosing what to learn, your built-in heuristics will tend to serve you much better than either a long list of common 'shoulds' or a tangle of overhyped 'musts'. Let natural forces do their thing in shaping what things will be presented to you: avoid paying much attention to the loud people where marketing, shills and zealots tend to roam.

</comment></comment></comment></comment></comment><comment><USER7> This is such a bizarre post. If you have the self-awareness to admit this about yourself, you are probably not a poor programmer.

Poor programmers do things like allowing an incoming request to spin up unlimited concurrent threads. Poor programmers erroneously throw exceptions on any operational deviation - even it if can be handled without error.

Most importantly - poor programmers do not learn from their mistakes and are unable to see that they are poor programmers.

<comment><USER8> Why should being aware of how lacking you are as a programmer have much bearing on whether you're good or not?

When I started programming seriously I had a mentor who gave me a long list of my shortcomings. It's taken _years_ of hard, dedicated work to rectify most of those problems and I still have a huge distance to cover to be as good as I want to be.

Being a good programmer is a skillet acquired with hard, concentrated effort over time; not just a good attitude with some self-awareness.

<comment><USER9> In general, people tend to be overconfident in their beliefs and too slow to incorporate new information. There is experimental evidence to back this up (pdf warning: [http://www.researchgate.net/profile/Baruch_Fischhoff/publica...](http://www.researchgate.net/profile/Baruch_Fischhoff/publication/230726569_Knowing_with_certainty_the_appropriateness_of_extreme_confidence/links/00b4952b854b29281c000000.pdf)). I think this applies to engineers as well as anyone else.

</comment></comment></comment><comment><USER10> It's a great, succinct post. _Deeply_ uncool. A programmer should be modest about their skills, skeptical about new-new things, eschew bullshit, and terrified of dependencies. I buy the whole thing.

Moreover, I trust the advice of someone who rates themselves poorly more than someone proclaiming that they're a hotshot.

</comment><comment><USER11> ALAN. Avoid Learning Anything New

Terrible advice and mindset, It's good to learn for pleasure or curiosity. This way, you can enjoy reading SICP, effective java, code complete... Or you can use a new system, Linux, Mac, Android, iOS. Doing it you model your thoughts and mind, learn new ways, practices, or patterns, you don't have to use then only for having learned, but even so, they will be useful to you.

<comment><USER12> It's not terrible advice. You mentioned SICP, funny thing is, years ago when I put someone on to SICP, next thing you know in our production code we started getting these weird ass recursive functions..... Also had similar issues with Design Patterns, all kinds of overly engineered class structures started popping up. On the side of ALAN, I used to work with guy who did a lot of machine vision research, he coded everything the way he knew how for years, and he was super productive doing it. I didn't really like the code. But he got stuff done. Having said all that, learning stuff is still good, practicing stuff on non critical code is the next step.

Taking some lessons from BJJ ( Brazillian Jiujitsu ), when you compete, you go in with your A game, the things you have practiced, the things you have made work over and over again, your high percentage moves. Over time, you add things into your A game as you gain experience in making those techniques work. You may occassionally find yourself in an odd situation which some "new" technique is screaming to be used and you might try it out. But usually, when you encounter a situation you don't really know, you start working at getting the problem to change to something you do know, then throw your A game at it.

I think programmers should understand what their A game is.

<comment><USER3> You lost me at "next thing you know in our production code we started getting these weird ass recursive functions...". I don't mean to be mean, but recursion is pretty fundamental to a lot of algorithms, and it sounds like the SICP coder was just writing stuff more advanced than you were comfortable with.

<comment><USER13> Might also be an inappropriate application of recursion in a language where loops are more common. I've seen people who learn new stuff go overboard with clever code in production that is less readable for their peers.

Recursion shouldn't even be considered advanced though, just like classes and first class functions. I'm all for making code as boring as possible, but to me understanding at least these concepts is a requirement of entering the profession of software development.

<comment><USER11> Sometimes recursion is the good solution, For example a back-tracking solution is more simple with recursion than without it.

</comment></comment></comment></comment></comment><comment><USER14> Two things jump out to me:

> Only learn something new when forced

I think there is a balance between always doing things in a new way, versus always doing things as you've done before. When engineers are pushed too hard on deadlines, some will avoid learning new things as a short term approach for quick delivery. If your in that environment, you aren't going to grow.

> Avoid linking to other software unless forced. It empirically rarely goes > well.

Source? The rapid growth of npm, rubygems, and other ecosystems suggests otherwise.

I was hoping this would talk about how to support your co-workers (code review, culture, cohesion) or how to succeed at non-engineering tasks other 'good' programers may overlook

<comment><USER15> Learning is pretty simple, the golden rule is "Don't learn new tech, learn how to solve new problems".

Learning how to use something like Vue when you already know how to use React (or vice versa) is stupid because they both solve the exact same problem in a reasonably similar way with a reasonably different API.

A better example might be something like Postgres and DynamoDB, since it can go either way. If your problem is 'I need a database for a CRUD app' then learning the second one is stupid because they both solve that problem just fine. But if your problem is 'I have a complex use case, my data is in a bad format for the one I'm using and I'm taking a huge hit in performance' then learning the other one is a reasonable choice and probably not a waste of time.

Basically whenever you take the time to learn something, make sure you're getting something out of it in terms of end results. It feels good to just learn more of the same tech, and if the API is different enough it'll feel like you're making progress, but you're probably not.

<comment><USER16> > Learning how to use something like Vue when you already know how to use > React (or vice versa) is stupid because they both solve the exact same > problem in a reasonably similar way with a reasonably different API.

Settling on Mithril as my front-end library was a long journey from framework to framework. If I had stopped at Vue or React, I'd be much worse off for it.

Really, if I had stopped at the first front-end library/framework I used in web dev, I'd still be using PHP. Sometimes you need to move on, and if later asked about your technical choices in a professional environment, you need to have a professional answer that comes from wide experience.

<comment><USER15> > Really, if I had stopped at the first front-end library/framework I used in > web dev, I'd still be using PHP.

Well, I did specifically give an example of two techs that do similar things that might be worth learning if they're different enough that one solves a problem the other doesn't.

I don't know anything about Mithril, but if you're right that you'd be 'much worse off' then that would be a similar case, no?

<comment><USER16> One could argue that it's not "different enough" seeing as how it ostensibly functions the same as React from a bird's eye view. However it takes learning both to understand the strengths and weaknesses, an uneducated assessment wouldn't be enough. All I'm saying is that if you're curious, find out. Don't drag your company into it but learn in your free time. It doesn't actually take all that long to pick up a framework.

</comment></comment></comment></comment></comment><comment><USER17> > Only learn something new when forced

This could be devastating, much more in little/medium company. I know of successful companies (I mean company with successful products ) with a C/C++ stack they considered "good enough" so they didn't change anything: the C++ standards, architecture, structures. Often that line of conduct was supported by a management looking any change or improvement as a cost. The result is always the same: a day they wake-up realizing that the "product" is a pile of crappy legacy code. I know some cases. One of those company was bought by a bigger company that asked to modify the stack to modern standards with disastrous results because the programmers wasn't skilled to port the code base to modern standards/architectures. In another case, the owners sold the entire division to another company, interested to the clients more than to the product and, after checking the status of the code base, the buyers hired a group of consultants that rewrote all in Java, with results that you can imagine.

<comment><USER18> Just because something is old or uses old framework or old standard doesn't make it crap. Crappy code is crap, but it age doesn't make it crap. Code doesn't rust or detoriarate by itself.

Example if you write good code now using C++14. If it's good code now it will continue to be good code 20 years later. There's no property that adds bugs or "crappiness" to the code as the years go past. The invention of a new "c++40" standard doesn't obsolete old code or turn it "crap".

<comment><USER17> The age make it "crap", but not in the way you think. I can speak about C++. C++ code wrote in the older standard, let say C++ pre-11, who are 20 or more years old make it difficult to maintain because new generation of programmers are not generally interested to legacy code or in learning old c++ standards and skilled programmers don't want be relegated to be eternally maintainer of old projects. For this reason projects die by asphyxia. We have that good code base in Cobol, ok, but the point is: who cares ? Who is important when you need new programmers. Besides, a part considerations on the language, the architecture is important we live in a world of microservices and old code not updated to modern paradigms could became "crap", even if if the most elegant code.

</comment></comment></comment><comment><USER19> This is probably really bad but I totally empathize (and agree?)

KISS => everyone should do this

YAGNI => 95% of the shit I add is ignored (and I've got fairly objective proof that I can develop good projects)

ALAN => Master SQL, one scripting language, and how to use Stack Overflow. You'll be the most useful dev on the team.

I agree with most of the rest.

Bonus point: never be afraid to tell a business person that what they want is an exceptionally bad idea. it usually is.

</comment><comment><USER20> I don't think most of this applies only to "poor programmers".

The advice about KISS is something many "good" programmers would benefit from following. Likewise, I've seen good programmers recommend using arrays as your first attempt at a data structure as well (e.g. Jonathan Blow, [https://www.youtube.com/watch?v=JjDsP5n2kSM](https://www.youtube.com/watch?v=JjDsP5n2kSM) )

</comment><comment><USER21> I've been in a rut lately. Missing obvious things, shipping less than my best code. It's come to my attention that I'm not as good at programming as I am at crafting database queries and tuning them but that's such a small niche given how easy it is to pick up SQL that I'm having an existential crisis.

So I'm working on getting better and getting more confident.

<comment><USER22> You could make a career out of just SQL. I know my company could use a decent SQL programmer. We've got hundreds and hundreds of procs written by SQL amateurs

<comment> denton-scratch Correct. Tuning SQL queries can deliver performance improvements of several thousand percent, in exchange for just a few hours' work. EXPLAIN is your friend.

</comment></comment></comment><comment> denton-scratch I totally agree with this stuff.

I was a professional programmer (now retired), and not a very good one. I'm familiar with Dunning-Kruger; I've worked with good programmers and bad ones, and I can tell the difference. Very good programmers are far and few.

I noticed that most of my colleagues were keen to learn new shit, like new JS libraries, new languages, new source-code management systems and so on. I think I lost interest in newness (for its own sake) about 15 years ago; I got turned over one time too many by a vendor that decided to withdraw support for a programming language that I had committed myself to.

I recommend retiring from programming. You don't have to keep up with the young whippersnappers any more, you can carry on coding in bash, you don't have to use git, Docker, or weird NoSQL systems. I realise that some of this new-fangled stuff is better than FORTRAN or VB6 or whatever; but learning a new programming system every 6 months is a total waste of time and effort. Get to be good with a few useful tools, then concentrate on people skills.

Or give it up completely, and learn cooking, or drumming, or interior- decorating.

I think there may be some rationale behind ageism in software development. For the first 25 years or so I got better at it, but I think after I turned 50 I started getting worse. Or at least, I got better slower. It took me longer to learn new tricks.

But I really think that some of those new tricks were not worth learning - <USER2> example, you can stuff Node and that ridiculous dependency system where the sun don't shine. JS is a very clever language; but cleverness isn't always best.

<comment><USER23> > you can stuff Node and that ridiculous dependency system where the sun don't > shine.

You're really taking embedded computing to the next level

</comment></comment><comment><USER24> If you ALAN you can't KISS. You won't know what the simplest thing is. You'll end up with miles of nested "ifs" instead of 4 lines of recursion. A gazillion "else ifs" instead of case etc.

He's got one thing right. He's a poor programmer. "Success" must be mighty loosely defined here.

</comment><comment><USER25> I was all curious to read about _monetarily poor_ programmers. Instead, this. I agree with part of it. The goddamned arrays really trigger my Refactoring Legacy Code PTSD though. Any time you make an array, you need to make sure that damn thing is big enough. Do you even know in advance how big that bastard needs to be? You could make it just plenty big, I suppose, like an asshole. Just allocate 10,000 4-byte blocks like that shit just grows on trees. Then change it to 15,000 the first time someone has 10,001 things and crashes your shitty shit. Also any time you look at your shit you're gonna need a goddamned shitty index. A whole 'nuther variable! Get some generics ya dufus!

<comment><USER26> Former monetarily poor[0] programmer here. AMA

[0] $7k per annum take-home-pay.

</comment></comment><comment><USER27> > If you are bad at programming, you are still programming, something that > very few people can do.

That's heartening. I bet a very bad doctor or lawyer can still do some good somewhere too, as long as they don't convince themselves they are better than they are.

</comment><comment><USER28> I think the best way to make it as a 'poor programmer' is be a domain specific 'poor programmer'. I am bad a nearly all my programming in all my projects but probably just as efficient at getting jobs done than a 'good programmer' because the feedback loop is fast. I can hack away until something works and then sometimes polish it off when it functions. I suggest work using really popular tools and there is usually a solution written up online easily found through Google. Such are the times.

</comment><comment><USER29> Please don't store everything in Arrays. If your language supports tuples, use them. If it doesn't, at least use a struct if possible. Basically: Constrain the possible input and output space of your functions to the smallest amount of possible values. That way, you are reducing the room for errors significantly. Using arrays everywhere, many errors might even go unnoticed until an edge case occurs.

</comment><comment><USER30> A very interesting post, since it poses one very conservative, tried and true approach to programming productively. I know a lot of programmers tend to arrive at those very same conclusions in their career. That said, I think the article and most of the commenters here don't necessarily conflict with each other; every piece of advice can apply or not, depending on the circumstances.

On a larger scale, it's remarkable that a lot of the general programming advice given today is more of a heuristic/guide than a tautology, but many people still assert that their advice is The One Right Way To Do Things. It's important to understand that the vast majority of all this advice comes from real examples of what worked and what didn't. So, perhaps the best thing one can do as a programmer, in any domain, with any technology, whether you're a great programmer or a poor programmer, is to listen to it all with zen and a grain of salt.

</comment><comment><USER31> I dislike this mindset too. For any other profession it would be crazy, but for programming it's fine? What happened to apprentinceship and mastering the craft? Why is it fine to be considered a fool if you are not an expert programmer from the start? Should a blacksmith never make a sword, because at the beginning they can only make nails?

</comment><comment><USER32> This guy is poor because he is lazy as hell. The most important thing about programming is constantly learning new ideas, tools and paradigms, solving new problems, improving as a person and learning as much as possible. If you don't do these, don't like to think or solve problems, you will stay indeed poor.

</comment><comment><USER33> Kids, trust your elders on this one, the author is correct.

</comment><comment><USER34> With regards to "Avoid Learning Anything New" I would be very surprised if Pete Shirley follows that advice when it comes to things actually relevant to his job. People who avoid learning anything new don't get to be senior researchers at Nvidia or have the following publication list: [https://scholar.google.com/citations?hl=en&user=nHx9IgYAAAAJ...](https://scholar.google.com/citations?hl=en&user=nHx9IgYAAAAJ&view_op=list_works&sortby=pubdate)

I guess what he's trying to say is Avoid Learning Anything New if it's ancillary to your job, and instead focus on your core competences.

</comment><comment><USER35> > Finally, let the computer do the work; Dave Kirk talks about the elegance of > brute force (I don't know if it original with him). This is a cousin of > KISS. Hardware is fast. Software is hard.

Yeah, I don't know. The cloud bill is going to be expensive.

<comment><USER36> It is also terrible advice in regards to Energy consumption

</comment></comment><comment><USER26> One problem I have with 1. and 2. is that they tend to escalate.

Example: "We're doing a combo-box component, but to keep it simple let's not support multiselect."

Retrofitting such a feature when You Eventually Do Need It(YEDNI?) is neither pleasant nor simple.

My take is that one's skill level is not the most relevant thing - we have code reviews to deal with exactly this problem.

What ultimately matters is whether you're adding or subtracting value.

I've worked with people who were _aggressively incompetent_. As in: they had bad ideas and were insistent on implementing them, even going as far as bypassing the regular review cycle.

</comment><comment><USER37> ALAN (avoid learning anything new) is bad advice if taken literally.

Learning fundamental knowledge such as programming paradigms, data structures, algorithms is something that will likely not become obsolete in a year by year basis. You should totally learn this if you have the time.

Now, memorizing every API in a framework that is likely going to change in 6 months, is probably not going to be very useful in 5 years (but it can be beneficial to achieve your short-term goals and move your career forward).

It's not about "avoid learning anything new", it's about being tactical about what to learn.

</comment><comment><USER38> std::vector everything!! TBH I feel anything beyond a simple array/vector/stack/BST/queue is pretty advanced and should only be touched by advanced programmers...

</comment><comment><USER39> "Programming is rather thankless. You see your works become replaced by superior ones in a year. Unable to run at all in a few more." ~ why the lucky stiff

</comment><comment><USER40> This case is making the case for a specialist, it's just worded poorly. There's a case to be made for such folks, there's a case to be made for generalists... and if you're super smart with tons of memory you can be a T shaped person. It doesn't matter which path you choose, you can thrive in any of them.

</comment><comment> rr-geil-j I wished he just used the word 'bad' instead of 'poor'. I thought this is about cash-strapped programmers.

</comment><comment><USER41> ALAN might be a good advice, but software is such a miserable place unless you can learn and apply new stuff. My boredom would get me if I would do things the same way every time.

UPD: just realized who the author is. He _does_ learn a lot of new things, just not in software development, because it's not the focus of his career.

</comment><comment><USER42> Rather than Avoid Learning Anything New, I'd say avoid implementing anything new. Options always come in handy, you don't need to implement every new tech you learn about, but knowing it exists can make the difference between an impossible feature and a possible one

</comment><comment><USER43> There is no formula to succeed in anything. The more people know something the less it values. It is just random, accept it. Just a tech flavor of random. You can always be a salesman but you can't be a good salesman and a good scientist.

</comment><comment><USER44> I wonder if the author has considered the idea that it's not a lack of effort or some inherent cognitive gap that keeps them from being "good" programmers, but perhaps these beliefs instead?

<comment><USER45> I think it's time. Peter Shirley decided to specialize in computer graphics, leaving the programming to people who would implement his ideas in libraries, and the production developers who use those libraries.

<comment><USER44> Interesting, but does that change anything though?

I had a famous cryptographer professor. He refused to learn anything past Pascal. He freely admitted he was no longer a programmer and that he shouldn't be doing it.

That seems like a different message from the messages presented here.

</comment></comment></comment><comment><USER46> Most of this seems like good advice for all progreammer.

Except for the ALAN thing. I think that should be modified with a few qualifications. Don't learn anything you will ever use less than 10 times or something.

</comment><comment><USER47> If "Be aware that most coding advice is bad." is true, then how confident should I be that this "How to Succeed as a Poor Programmer" coding advice is good? ;)

<comment><USER48> Yes.

</comment></comment><comment><USER49> >>I discuss how to be _an asset to an organization_ when you are not a good programmer.

Sounds like it's advice on how to sandbox yourself in the interest of the org.

</comment><comment><USER50> I assumed it was satire

</comment><comment><USER51> Diligent practice?

</comment><comment><USER52> Brutally true :)

</comment><comment><USER53> i love this. this is a _good_ programmer. sure to piss off a lot of people on here who think that because they have big salaries they are good at something.

</comment><comment><USER54> > 4\. Make arrays your goto data structure.

The others are arguable. But, in 2019, this is flat out bad advice.

Your "go to" data structures should be hash tables about 70% of the time and vectors about 30% of the time. In 2019, memory and CPU are so stupidly abundant that the abstraction costs nothing in 99.9% of all cases. The programmer gain for not having allocation, dereference, fencepost, and invalidation errors is enormous.

But, then, this is hardly surprising advice from someone who only learned about a "scripting language" in 2015. The rest of us realized that those silly "scripting languages" were better than C++ for 90+% of our problems way back in 1995.

And anyone who has used a "scripting language" realizes _extremely_ quickly just how stupidly useful hash tables are.

<comment><USER55> > Your "go to" data structures should be hash tables about 70% of the time and > vectors about 30% of the time.

I literally just wrote a comment elsewhere about how hash tables are obscenely overused and cause measurable performance degradation in many situations.

<comment><USER54> That may be.

However, the number of times I see people hit a bug because they fenceposted or flat out overflowed a fixed size array _VASTLY_ outnumbers the times I have seen people have to redo their underlying data structure because it just wasn't fast enough.

<comment><USER55> We're just in different fields. The OP of the post was a graphics engineer, as am I. We drink to celebrate when we shave off a millisecond haha.

<comment><AUTHOR> I've shaved 10 microseconds in large refactors and been told that's great ship it. Other fields might say that wasn't nearly enough to justify the code churn (performance vs. "programmer productivity" argument). A millisecond is a lifetime and can mean the difference between shipping and not shipping in some products.

<comment><USER55> Odd that we feel differently about hash tables then.

<comment><AUTHOR> I didn't mention how I feel about hash tables (I'm not OP), but I think we feel the same? I definitely agree that arrays (potentially vector style growable arrays) should be a programmer's go to data structure, both for simplicity and performance. For my use cases I'd probably swap array and hash table usage with OP (70% array and 30% hash) but really it's probably more like 90, 10. Computing hash functions and resolving collisions can be very fast with the right hash table implementation, but it's absolutely not free. There is a reason why Lua tables can implement array like access and memory usage, even if from a language standpoint a Lua table looks like a hash table with some fancy features.

<comment><USER55> Ah didn't realize you weren't OP. I think any programmer that operates in the realms of microseconds probably would understand the overhead of both the hash function overhead as well as the coherency issue. I'm not a lua programmer but I remember studying the LuaJIT source pretty extensively.</comment></comment></comment></comment></comment></comment></comment></comment>