Most tech content is bullshit - <AUTHOR> https://www.aleksandra.codes/tech-content-consumer <comment><USER3> Good is hard.

When I left O'Reilly Media in 2005 we were just ending a period where many programmers worked with a set of physical O'Reilly books on their shelf. And everyone at O'Reilly could see that their business was being eaten away by free. Stack Overflow didn't exist yet but we could feel it coming.

At the time, we hoped that UGC would have some sort of wisdom of the crowd thing that would lead to high quality. I remember this sort of was true in the PHP documentation. The official documentation was always deeply flawed, but the comment thread attached to that documentation generally had the right info.

But that was a precursor to our current situation. To get correct info you had to read a lot of conflicting info and synthesis it yourself.

So I think we are seeing as good as the free ecosystem can get and what's sad is that we seem to have lost the paid ecosystem. It's not nearly as strong as it used to be.

What people probably don't know about O'Reilly back in the day is what went into a book.

The author was almost always a subject matter expert already. And their editor was also a subject matter expert. Then the book would go through tech review and those people were generally also pedantic luminaries. Then the book would be published and bugs would come into an errata tracking system. The vast majority of those bugs would get fixed between printings.

And then, on top of all that, there was a tech support number. And if the code in the book wasn't working for you, then you could get a live person to try to work through it with you.

That all costs a lot of money, but when you split the cost out across consumers it was only $30 or so per book.

I value my time. And there are many, many places where I wish I could pay for quality. Tech content is one of them.

<comment><USER4> Seems kind of like the video game crash of 1983[0]. A flood of low quality content that begins to drown out the high quality content. One of the best things about the internet is that anyone can create and publish what they want. One of the worst parts about the internet is that anyone can create and publish what they want.

I'm a big fan of books because that is where a lot of experts seem to prefer to publish their knowledge, and it's usually worth the price. Of course that's not always the case, but I feel like I get much higher quality content from books than Medium articles.

[0][https://en.wikipedia.org/wiki/Video_game_crash_of_1983](https://en.wikipedia.org/wiki/Video_game_crash_of_1983)

<comment><USER5> What are some high quality books you'd recommend that are somewhat recent (last ten years)?

The only ones I can say, that I've also read, are YDKJS and Secrets JavaScript Ninja (work in web, but willing to read anything, good information is good information regardless of the tech).

<comment><USER6> Pro Git, Coders at Work both are ~10 years old. A recent one is Site Reliability Engineering published in 2016

<comment><USER7> Whoah, it's already ~4 years since the SRE book... How time flies.

I wrote two of the chapters in the SRE book but I have very mixed feelings about them. I'm glad that I got a chance to talk openly about some of the work I've been doing for the last decade, but I felt that, in the end, I couldn't devote to my chapters as much time as I would have liked, so I don't feel as proud about them as I would have liked. Boy, this really took soooo much time!

I don't know what I'm trying to say, I guess just that I find seeing someone praise the book interesting. What were your favorite chapters?

<comment><USER6> Embracing Risk changed how I think about downtime, the other chapters didn't really offer anything new for me, I already used those principles in practice, so I can't really pick a favorite from those.

Despite that, I still recommend it to anybody new to DevOps/SRE/Cloud Engineering/whatever you call it, with a grain of salt that you don't operate at Google scale so you shouldn't implement it as is. Just reading the principles chapters helps a lot to talk the same language.

</comment></comment></comment></comment></comment></comment><comment><USER8> There's a particular brand of young developer where every opinion comes from a blog post, talk or HN comment. They have strong views on many different topics and believe that they're knowledgeable and smarter than the average developer^[1].

The only issue? They don't have actual experience to back this up. Because not only is most tech content bullshit, the small percentage that isn't BS may not apply to their situation. You may not be working on soft real time systems. You may not be working with big data. You may not be running a company.

I should know—I'm certainly guilty of assuming that because I read about software development, I'm a better software developer. When really there's a big big big difference between reading about development and actually practicing the craft. Especially if you've only been programming casually. There's a massive difference between writing code for fun and writing code that needs to be a value-add for the company.

[1]: [https://en.wikipedia.org/wiki/Yogi_Bear](https://en.wikipedia.org/wiki/Yogi_Bear)

<comment><USER9> Being young is hard, no need to judge to harshly, often a rivalrous blogpost- driven discussion can be turned into a cooperative exploration, which is exactly a way for them to gain the experience.

Quiet, or at-arms-length, dismissal hurts self-confidence and reinforces this blogpost-driven defense mechanism.

<comment><USER8> It's definitely not the worst to be overly well read in programming literature. But oh man does it get old arguing with someone who is taking advice from a very niche, very particular field such as game development and applying it to general software development.

</comment></comment></comment><comment><USER10> Call me a cynic, but the whole "think critically and figure it out for yourself" solution is inefficient at best, harmful at worst. Global warming skepticism is exactly the kind of thing that often occurs when people trust their own judgement more than that of subject matter experts.

There are very effective ways to get high quality recommendations, with minimal effort on your part. Want to get good medical advice? Find two highly regarded medical specialists and ask them independently for a diagnosis and treatment plan. Not two doctors next door. Not two doctors who published random blogs. Two doctors who are highly regarded by their peers and by the wider industry.

Want to get good financial advice? Do the same thing with financial advisors. Looking for good fitness advice? Do the same with fitness trainers or nutritionists. Looking for good software engineering advice? Do the same thing with developers.

Eventually the day will come when you have learnt and grown so much, that you are just as capable as the "highly regarded" experts. When that day comes, feel free to debate the merits of their arguments. But until then, don't try to be an expert at everything. Don't feel pressured to derive every single thing from first principles. That's just not scalable.

<comment><USER11> Many of us were told growing up that we were a special snowflake. Not sure there's correlation (not sure how you'd prove it), but I have my suspicions. IMO we're in the age of individualism. Hopefully it's just a cycle.

The real kicker is it seems to be self-fulfilling. If experts are no longer trusted or respected, the market / margin for expertise shrinks. You get lots of self-proclaimed experts to fill in the gaps with less investment (lower margin == lower investment, clickbait), and then the individual is justified in thinking most expertise is crap... because it is now crap (advertiser supported business model).

Maybe we wake up some day and say "Holy shit, it's all just bullshit!" and then expertise can again attract an audience that's willing to pay for it.

<comment><USER12> How would the non-experts differentiate between true expertise and self- proclaimed one?

<comment><USER11> Lack of consensus I suppose, but that can also be a false positive.

</comment></comment></comment></comment><comment><USER13> Sturgeon's Law: Ninety percent of everything is crap. Tech content is no exception. As the article points out, the corollary is that you have to think for yourself, assessing every piece of content you come across.

<comment><USER14> Since we're arguing by aphorism, Brandolini's law a/k/a bullshit asymmetry principle: "The amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it."

[https://en.wikipedia.org/wiki/Brandolini%27s_law](https://en.wikipedia.org/wiki/Brandolini%27s_law)

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

The value of a _healthy_ established pedagogy, curriculum, and canon is that these distribute the bullshit-sifting role and guard and promote the jems.

<comment><USER15> 2 orders of it's your boss!

But seriously I hate working with non self critical developers because it's exhausting trying to refute what they say. Although "asking questions" can help.

</comment></comment></comment><comment><USER16> I believe part of problem is Google SEO. Tech content maybe bullshit, but marketing content is even more bullshit.

I remember times when we had slow internet and/or only subset of blogs we read from time to time. Most of development was done by reading books, specification of devices for writing drivers and so on.

Now, literally everyone is trying to do SEO and use lots of words in articles, kind of creating content, but in reality copying from someone else and modifying a little and trying to get lots back links. I remember when Quora had quality content, now everything is sales pitch. I feel like people are not trying to create quality content, they are trying to sell and to sell you need more back links.

<comment><USER17> Personal brand building is another major contributor to search engine content dilution.

Whenever I Google for something in hot new languages or frameworks, I have to sift through 10s of Medium articles from beginner developers who are trying to establish themselves as industry experts.

I don't want to read some junior developer's Medium post full of animated GIFs and a pseudo-tutorial that is really just entire source code files embedded as GitHub gists one file at a time. I just want to skip to the documentation and get to work.

<comment><USER18> The truly worrying development is when those same Medium posts start circling HN.

I'm not trying to be elitist, but what I enjoy about HN is seeing truly novel and interesting content, and every "crappy" article on the front page bumps an interesting one downwards into oblivion.

<comment><USER19> I'm ashamed to say that was me at some point. On top of that, those articles did nothing to further my career. All that mattered so far is my past experience, projects and how well I can (leet)code. Now if I start blogging again, it will have to be purely out of intellectual curiosity.

<comment><USER20> I confirm this doesn't do anything for your career, or at least not as much as just focusing that time on actual, paid _work_. I find that in my career my resume and experience that's on it as opposed to any side-projects or attempts at writing.

<comment><USER21> Yes, however on helping the career I think the writing is like a nice little detail on the resume, a way to make it standout a bit more, I also found that in a recent interview for a project an article I had just written on SVG was naturally relevant. As a general rule talking about little articles you've written isn't going to naturally happen in the interview because the interview process is focused on past work and horrible trick questions.

It has also been somewhat useful in projects where a concern with documentation has been expressed because the writing is a better example of my ability to document things than having worked on a lot of projects where you may be able to go see what we shipped but not be able to see anything of the documentation.

I think of the writing as the equivalent of a side project:

* it allows me to focus on something I want to learn

* it helps to make what I learn stick in my head

* it gives me a deadline and people who will send me emails to say how's it going with that

* it works as documentation for what I've learned

* it gives me a trivial amount of money for having taken the time to learn something. Basically the last article I wrote is paying for an annual Dropbox account, and a couple days worth of food for my family. It was way too much work for that to be worthwhile, but I did learn some things that will help with later stuff.

</comment></comment></comment></comment></comment></comment><comment><USER22> I think it has something to do with this current culture of 'personal branding', wherein a lot of content online aimed at beginners says you should be blogging, writing articles, basically telling people how to do the thing you learnt that day on dev.to, blogs, Twitter, Medium, etc. I don't think it is necessarily bad per se, but it all seems a bit useless? I think there is good value in writing a personal blog, a log of what you've learnt coming from the perspective of a learner, rather than a teacher.

<comment><USER23> Do you have any suggestions for blogs that come from a perspective of a learner, rather than a teacher? I feel like DevLogs in the game dev corner could be an example of that.

<comment><USER22> That's pretty much what I was thinking of haha. I like watching game devlogs too.

None come immediately to mind but I've definitely come across some before on the web. Basically they kind of go "here is my problem, here's what I tried first, that didn't quite work so I tried that, but then I learnt about super_mega_amazing_tech and I wrote my code like this and it seems to work."

I find those kind of things quite interesting to at least skim through if not read in full if it's well-written.

</comment></comment></comment><comment><USER24> I've said this for a long time:

The people actually doing the work don't have time to talk about it and the people spending all their time talking about it aren't doing the work.

Of course there are exceptions but I'm extremely skeptical of a lot of stuff I read.

Also that the HN bubble will always make readers feel behind when in reality 90% of the industry hasn't even begun to catch-up. I felt behind with K8S in 2016, for example, not realizing we were just seeing the wave form when I felt like it was cresting.

<comment><USER25> > The people actually doing the work don't have time to talk about it and the > people spending all their time talking about it aren't doing the work.

I think that's a really sad and cynical view. I assume you don't spend 16 hours a day writing code. I assume you have hobbies and other interests. For some people, educating others about their favorite topics is their hobby. Writing about their projects is their hobby.

Here are entire blogs by people who are "doing":

[http://www.brendangregg.com](http://www.brendangregg.com)

[https://perspectives.mvdirona.com](https://perspectives.mvdirona.com)

[https://netflixtechblog.com](https://netflixtechblog.com)

[https://www.allthingsdistributed.com](https://www.allthingsdistributed.com)

[https://airbnb.io](https://airbnb.io)

[https://engineering.fb.com](https://engineering.fb.com)

Those are just a few I can think of in one minute. If I went through my RSS feeds and bookmarks I could find more.

<comment><USER26> Obviously the people who write for fb or airbnb or netflix might well be professional tech bloggers or people in tech-leadership positions that tell other people how to do the work. Or even researchers (I see the last one appear in ms tech blogs a lot). Or it might have been heavily edited. Brendan Gregg is a professional tech author. Not a hobbyist. Mr Vogels is a CTO, far from a programmer. That's not to disrespect any of their content. In fact i think its great that companies bother with it and that we have so many tech authors willing to put in the hours it takes to come up with something sellable. Arguably the people writing such things put their companies rep on the line so should be more trusted than the average grunt programmer who is still on the implementation level. But if these are the best counterexamples we can find, then I'd say OP has a point. That's not to say coders don't write blogs, I've written a few technical blogs myself and I am very much on the implementation level. But that's not something people will actually read because it's pretty low effort and not about work stuff (every work contract has a secrecy clause these days).

<comment><USER25> > Brendan Gregg is a professional tech author.

He gets paid to write, yes, but that doesn't mean he's not also an engineer. I've worked with him, he does quite a lot of heavy engineering and then writes about it. His writing is so good sometimes he gets paid for it.

But OP said that tech blogs aren't written by implementers, and that's not at all true.

</comment></comment></comment></comment><comment><USER27> I basically realized this when I was at an internship talking to a buddy about a compilers course I could be taking and his language he was making for fun. He was talking about a couple topics I'd probably go over in the course.

Then a more senior coworker came over to join the convo and mentioned a few similar words that were clearly jargon related to compilers etc. He spoke with such confidence that I didn't want to admit I didn't know about them, but figured I shouldn't be ashamed at not knowing stuff. I asked him what it meant and he said he didn't really know and wasn't entirely sure. ¯\\_(ツ)_/¯

<comment><USER28> I once mentioned off-hand that I was a SIGPLAN member so that I could get the proceedings and learn about future tech in compilers and JITs and GC.

One person did a double-take, looked at me, and said, "You can _understand_ those?" I knew exactly what he meant, and consoled him by saying "only about 2/3rds," at which point all of the tension drained out of his shoulders. I had communicated that yes, some of it is just bullshit not fit for consumption, and that he was not an idiot.

As a Feynman dilettante, if you can't have a human conversation about a subject (note: conversation, not 'curing cancer'/winning the Nobel) then you don't really know the subject. Or perhaps more generously: It doesn't matter if you know it because you can't pass that knowledge on. You are dead end as far as human progress is concerned.

I suspect Tech people feel this more than pure researchers, because we know that in a couple years we will be focusing on something else, and 5 years at most we will be gone. If we haven't passed on our knowledge, then there will be consequences that are readily apparent. In academia you get so many opportunities to connect and if you connect with 5 people, you probably feel like your work is done, and you forget about people like me who regret ever encountering certain teachers because they set me back or in one case, put me off a course I believed I would stay to the end.

Me, I have 10-15 people not of my choosing and I have to connect with 2 and 1/2 of them. It's a tempest in a teapot.

</comment></comment><comment><USER29> > At the beginning of my career, I would never, ever, post anything technical > on the internet. I thought that if someone was brave enough to post a blog > post or take part in a tech discussion, they always know what they are > doing. I couldn't be more wrong!

So true.

I think this is just personality trait of people who are over-confident. I started out profesionally at roughly the same time as another dev in a non tech company. Pretty much the only devs in the company.

Technically, I was more skilled and had more engineering mindset. Both of us were savvy on biz side.

However, I was more reserved and less cowboy solutions than him. He was a nice guy and a friend but the difference in personalities were stark when it came to technical things. (This was a mature, real business who previously had outsourced the only dev system they used(ERP)).

He jumped so quickly from doing technical to _just_ talking technical and his career climbed. All the while, I'm wondering how the heck can he take that position when he doesn't know shit about the tech. Turns out if you drift towards management, nobody gives a shit if what you're talking about is a good idea or feasible - the people above you in non-tech companies generally know less than shit.

Now an engineering manager at Bezos company.

<comment><USER30> I hate to diagnose over the internet, but it is possible you have engineer's blindness. This usually only happens to technically excellent developers.

When an developer lacks some productivity, political, or teamwork skill, they sometimes simply don't know that they are missing that skill (or they think it is a worthless skill), and can't understand why someone else gets promoted over them.

In this case, you could ask the other dev, because if he has a skill that you are lacking, he should be able to recognise your lack of that skill. This sounds a bit Dunning-Kruger but it usually isn't. The issue is more about deliberate blindness (e.g. considering technical skills are king and politics as valueless), and usually a wilful disdain for recognising the hidden skills of others ("how did that idiot get that promotion" - maybe that idiot has some skill you struggle to recognise?)

If you think you might have engineers blindness, and are in a big enough organisation then:

1\. try to look at "successful" idiot/wanker/useless engineers and see what things they are good at. Try to look at those you might disdain (sales/marketing/exec) and try to see where their value comes from. If someone can get their mind to be non-judgemental about others and be interested in the unobvious skills of others, they learn a lot (in my experience).

2\. Look at what holds back other engineers, and look within yourself to see if you have any similar pattern.

Disclaimer: I would definitely call myself an engineer type. The above took me decades for me to recognise, and I still can't do politics (but I now recognise the value, and I am learning to see when someone is good at it). And it is quite possible none of this applies to you: I am likely to be misreading you completely.

<comment><USER29> Well, it could be. However, a family member who had years earlier excelled in a (non software) technical field before jumping to management positions then founder had given advise. Become excellent at $skills then move up. Good advise. Advise i'd pass on with the caveat that talking tech is so f*kin easy at 10,000 feet, be prepared to see less able people jump upwards before they're anywhere near ready.

edit: this was ~10 years ago at this stage. I've stayed hands-on technical by choice(in various roles) while the other jumped to "pseudo-leadership (incl. Thought Leadership©").

edit edit: By no means was he an idiot. Just cavalier.

<comment><USER30> Sorry, I didn't intend for my comment to advise moving "up" into management.

It is about maintaining an open mind. How can you tell the difference between someone who has valuable 3_048 metre advice versus someone who has highly negative value at 3km?

I have remained in a developers rôle for my working life so far.

I wish I could find the anecdote where this guy recognised that this one woman was always on successful projects within a business. He didn't know what she did, but he recognised that if she was involved then somehow the project was successful (I think surprising him because many software projects fail). I wonder why he didn't ask her what her secret was? At least he was open minded enough to see she had some magic, even if he couldn't directly learn her presumed skill.

Thanks for reply - I'm still working on my own blindnesses - I can say trying to be non-judgemental and looking for hidden skills in others has really helped me.

<comment><USER31> Here it is, from peopleware:

> I was teaching an in-house design course some years ago, when one of the > upper managers buttonholed me to request that I assess some of the people in > the course (his project staff). He was particularly curious about one woman. > It was obvious he had his doubts about her: "I don't quite see what she adds > to a project; she's not a great developer or tester or much of anything." > With a little investi- gation, I turned up this intriguing fact: During her > 12 years at the company, the woman in question had never worked on a project > that had been anything other than a huge success. It wasn't obvious what she > was adding, but projects always succeeded when she was around. After > watching her in class for a week and talk- ing to some of her co-workers, I > came to the conclusion that she was a superb catalyst. Teams naturally > jelled better when she was there. She helped people communicate with each > other and get along. Projects were more fun when she was part of them. When > I tried to explain this idea to the manager, I struck out. He just didn't > recognize the role of catalyst as essential to a project.

\</comment></comment></comment></comment></comment><comment>---

I don't think engineers blindness is the cause in the majority of cases, and that woman would be put on a PIP.

To get ahead things like unethical behavior, lying and corruption matter far more than competence, teamwork and making real contributions. A lot of people simply can't stand to admit this.

<comment><USER30> > To get ahead things like unethical behavior, lying and corruption matter far > more than competence, teamwork and making real contributions. A lot of > people simply can't stand to admit this.

I am a cofounder of a successful small bootstrapped business where competence, teamwork and making real contributions absolutely matter. I suspect those positive traits matter for ycombinator startups too.

I must admit I have never worked for a large corporation, where perhaps unethical behavior, lying and corruption are effective. However I have seen many founders fail trying to use those negative traits.

Thank you for recalling the Peopleware reference: great book!

<comment><USER31> Yes, once the corporation gets large enough it becomes almost purely political.

</comment></comment></comment><comment><USER32> Counter-argument: coming up with your own, carefully considered solutions to every technical challenge is absurdly time-consuming. The reason we can build such complicated applications in such a small amount of time is partly because we're relying on other people to make default, sensible tradeoffs - <USER2> framework supporting a particular type of SQL database, or NoSQL, or PHP or Django or whatever it might be. The mental effort of analysing all the tradeoffs of doing something one particular way (with such a wide range of possible options) for every little decision rapidly gets overwhelming. Of course it's worth doing a bit of research (which often ends up being "read someone else's blog" for bigger decisions, but unless you're willing to spend 2 months building a prototype application in each of Ruby, Django, PHP, and whatever other fun new JS framework du jour there is, it's perfectly valid to go for the path of least resistance and hope it doesn't cause you too many problems in the long run.

<comment><USER33> > _Counter-argument: coming up with your own, carefully considered solutions > to every technical challenge is absurdly time-consuming._

You should really understand the problem you're trying to solve. Once you understand the problem, evaluating a solution is not so hard.

And implementing a solution without understanding it is negligence that will bite you in prod sooner or later.

[https://blog.nelhage.com/post/computers-can-be- understood/](https://blog.nelhage.com/post/computers-can-be-understood/)

<comment><USER15> There just isn't time for what I think you are saying. Analysis is a cost itself. Shortcuts have to be taken to get anything done. Judgment is required to navigate those shortcuts. Some might be unknown unknowns.

</comment></comment></comment><comment><USER34> I don't think people realize how much hyper-focused tech content is out there these days. I work in developer relations (at Firebase) so I see a lot more of it than an average person.

There are entire channels devoted to making YouTube videos that show you how to solve a very specific error message for a certain combination of Framework X and Library Y.

This content is obviously great for SEO but the people making it often record it 30 seconds after finding the solution themselves and because it's video it can't be maintained, it just rots.

Often I'll get to work in the morning and see 5 new GitHub issues where people are making the same hyper-specific mistake. Why? They are all misled by the same new blog post or video.

That said, I love how passionate developers are about teaching each other. No other industry shares knowledge as rapidly, excitedly, and broadly as we do. Even if there's a lot of bullshit, I find the whole scene very energizing.

</comment><comment><USER35> I agree with the problem presented by the author, but not necessarily with the solution.

If blind acquiescence to random blogs and forums is a sin, then so is blind acquiescence to one's own limited experience. Most categories of software problems have already been solved. Being a "creator," in the truest sense of the word, is therefore rare. Most of the time, when we endeavor to "create" instead of "consume," we are just reinventing the wheel. That's often a good use of time, but it can also lead to bad code.

Instead of abandoning "consumerism," I try to challenge others to refer to prior art. It is only by filtering through books, documentation, and yes, random tech blogs, that we can get a sense of how much of what we're doing truly needs to be "created."

<comment><USER36> I would say author meant not "create from scratch" as in "reinvent the wheel", more like be a creator who is making conscious choices. You can still be a creator by making a remix using samples created by other people. Difference is that you just don't blindly copy-paste with a bit of tweaking so it "fits", but to know what you do.

<comment><USER35> That's a reasonable conclusion. If that was the author's intent, I think it would have been helpful to have described that further. In particular, I've noticed (anecdotally) that many early-career devs tend towards trying to code their way out of problems like it's a test or challenge.

</comment></comment></comment><comment><USER37> I believe this all started with the advise to write blogs and books to market yourself as an authority.

As a result, nowadays, most blog posts are written by people who are seeking a job in that area, not by people who have experience working in that area.

I mean I'm sure that I would have experience about different topics. But I rarely have the time to write about it. Customers and their projects keep getting in the way.

So if someone has time to write one 2000 word blog post every 2 days, ask yourself: Why does that person have so much time for writing? Aren't they working?

<comment><USER38> Ok, it might be true that a lot of inexperienced people are writing blogs now as a way to build a personal brand. But your reaction is an over-reaction. There are also lots of incredible experts writing, and writing its self is an incredibly rewarding and educational activity. It's not a waste of time, no matter how busy you are.

<comment><USER37> Of course, there are also articles written by experts. But those experts will be busy and, thus, publish on a slow schedule. So I believe my heuristic is accurate that anyone posting content too quickly will most likely not do much actual work.

Also, if the internet is 95% articles by job seekers, then I'm better off distrusting everyone instead of expanding the trust that only 5% deserve to the other 95%.

<comment><USER21> >Also, if the internet is 95% articles by job seekers, then I'm better off distrusting everyone instead of expanding the trust that only 5% deserve to the other 95%.

I guess if better off means not finding anything good but no crap either, instead of only finding some good and lots of crap.

<comment><USER37> Well, I deliberately chose the word "distrusting" here.

If I know that the internet is 95% crap, I will treat every article as wrong until proven correct, meaning that I will not copy & paste anything without verifying myself that it works as it should.

If I had a provably reliable author, on the other hand, I could skip that work and just take his/her word for it. But only about 5% of the people writing on the internet deserve this level of trust.

</comment></comment></comment></comment></comment><comment><USER39> From personal experience, including reading a lot of HN, I think programmers as a species are especially biased towards putting forth opinions in the hopes of being validated for our experience or intelligence, even when we know we don't know much about the subject. The fact that IANAL (I Am Not A Lawyer) [but...] is a common enough statement in these circles to deserve its own _acronym_ is telling. We often throw out unchecked opinions in hopes they may be right, because that would feel really good, and just let others tell us if they're wrong. When those opinions take the form of a blog post, rebuttal often doesn't exist in the same place as the content, making it seem more authoritative than it often deserves to be.

<comment><USER40> I am not a sociologist, but I think it's not only programmers. A lot of my FB friends suddenly became COVID-19 experts, or experts on US police violence (or lack of thereof).

In programming, at least the code needs to work. Maybe it is a bad pattern or anything - but the barrier of entry is non-trivial. For anything else (e.g. politics), a lot of people have opinions, with their strength being not much correlated with their knowledge of the subject.

<comment><USER41> > I am not a sociologist, but...

Please tell me you did this on purpose.

<comment><USER42> IANAS!

</comment></comment></comment></comment><comment><USER43> "Those who can't do, teach". While I think this is usually a pretty offensive statement, I think it is an apt one in the world of tech blogs. The people who really know what they are doing are not writing blogs. That's why the content that the Netflix team releases really sticks out. If only they broke their 1h-long presentations into 500 word tech blogs.

<comment><USER44> Those who are doing, also teach, but are constrained in their audience and time with which they can disseminate their know-how by employment contracts.

This is a feature; not a bug given the way our quasi-free-market founded on protection of trade secrets over actual marketwide innovation that lifts everyone else.

I try guiding anyone who'll listen how to do things I'm well versed in; but there is only so much one can do in a day.

</comment></comment><comment><USER45> I disliked a lot of this article, as "there is bullshit _everywhere_ " seems like something that should just be an axiom at this point.

However, I will expand on a specific _pattern_ of bullshit that is common in the tech world: over-complication for the sake of some sort of "theoretical purity". I think Redux is a good example of this. I think Redux can be used well, but it became the "recommended way to do global state in React" and IMO way many more code bases have become an incomprehensible nightmare because of Redux than have been helped by it.

Similarly, and I'm probably dating myself, but anyone remember the original Enterprise Java Bean specs, and the laughably bad "Pet Store" demo app from the early 00s? It was as if you took a collection of "architects" with no real world experience, and certainly no regard for performance, and had them create the most elaborate Rube Goldberg machine possible.

<comment><USER46> Ironically, Dan and I have spent more time trying to convince people to _not_ use Redux all the time than we have trying to actually market it :( [0] [1]

We specifically have info in our docs on when it actually makes sense to use Redux [2] [3], but that doesn't change the flood of Medium blog posts out there.

I created the Redux Style Guide docs page [4] to try to give some clarification on our actual current recommended patterns and usage practices, and our Redux Toolkit package to simplify common Redux use cases [5]. Unfortunately, there's only so much we can do - a lot of people never even look at the actual docs.

[0] [https://medium.com/@dan_abramov/you-might-not-need-redux- be4...](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367)

[1] [https://blog.isquaredsoftware.com/2017/05/idiomatic-redux- ta...](https://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux- part-1/)

[2] [https://redux.js.org/introduction/getting-started#should- you...](https://redux.js.org/introduction/getting-started#should-you-use- redux)

[3] [https://redux.js.org/faq/general#when-should-i-use- redux](https://redux.js.org/faq/general#when-should-i-use-redux)

[4] [https://redux.js.org/style-guide/style-guide](https://redux.js.org/style- guide/style-guide)

[5] [https://redux-toolkit.js.org](https://redux-toolkit.js.org)

<comment><USER47> Just like to chime in and say I'm really appreciative of these efforts. I get devs at my firm who are learning to do web dev for the first time and ask why we're not using Redux by default. I link them to Dan's article and the Redux FAQ as part of my explanation that Redux is a life-saver when you need it and aggressive overengineering when you don't.

<comment><USER46> Thanks :) I also should have linked my post "Redux - Not Dead Yet!" [0], which talks about how Redux compares to other tools like context, useReducer, and GraphQL, when it makes sense to use those, and reasons why Redux is still useful depending on what you're actually trying to do.

[0] [https://blog.isquaredsoftware.com/2018/03/redux-not-dead- yet...](https://blog.isquaredsoftware.com/2018/03/redux-not-dead-yet/)

</comment></comment></comment></comment><comment><USER48> What's more, I think the incentives are not aligned. People who write content nowadays don't usually have the reader in mind, but instead focus on promoting something (a tech, a tool, or their personal brand): [https://angryscript.home.blog/2020/05/08/in-2020-all- content...](https://angryscript.home.blog/2020/05/08/in-2020-all-content-is- marketing/)

<comment><USER49> >...personal brand... This. Unfortunately it appears that these days if you want to get ahead in your career is to publish content and develop that "personal brand".

<comment><USER50> If it creates new opportunities why not?

Of course your work can speak for itself, but who can hear it? Advertising through technical writing seems to be a very good thing as long as its valuable and honest. Because if it isn't we filter it out.

</comment></comment></comment><comment><USER51> I agree with every argument she made and I think following her advice is great for every developer. But I would like to add a small caveat that I think doesn't detract from the good advice.

Some of the reasons she mentioned are legitimate (meaning, they are good reasons to follow random blog posts and stack overflow answers), like having no time, or it is comfortable. Some are not exactly good reasons, but happens often since we are humans (we are lazy, we don't believe in our selves).

I also would like to add one more legitimate reason: it is not that important. Like it is an edge case, a temporary code, a piece of software where the highest performance isn't necessary.

I think it is important to maintain an attitude of always having a critical mind while reading tech content. And understanding her point that something being published does not mean that something is right. But, once that's your default attitude, it is ok to accept that, sometimes, you can critically conclude that it's ok to just follow that tutorial and copy that code without much thought.

If that is challenged in the future, it is also ok to answer that you did just because you copied someone on the internet. As along as you accept that this is not a strong reason, and recognize that it might have been a misjudgment on your part.

</comment><comment><USER52> I am in the process of preparing a video class on Core Bluetooth (the native Apple framework).

I thought that I knew it all pretty well, but I found plenty of places that I needed to recalibrate, as I reviewed my materials.

I am now a great deal more confident in my grasp of the technology; thanks to my class.

I do a lot of writing, cast as a "teaching" exercise; even though no one cares. Doing this helps me to understand the material much more comprehensively.

When I teach, I then have a Responsibility. It is even more important to know the material than if I am developing a shipping application.

Speaking of "shipping"...

I write every line of code as "ship quality" code; even if I never have any intentions of shipping it (like test harnesses). That also helps me to make sure that I know what I'm doing. I heavily document my code, because explaining the code is like a built-in "self-peer-review." It helps me to see the code through fresh eyes.

I also write about my personal processes and approach to engineering, as that helps me to focus and make sure that I am speaking from a position of knowledge and experience.

I don't claim expertise I don't have, but I am constantly trying stuff I don't know how to do (I write about that here: [https://medium.com/chrismarshallny/thats-not-what-ships- are-...](https://medium.com/chrismarshallny/thats-not-what-ships-are-built- for-595f4ae2c284)). That's how I learn new stuff.

 _" The most erroneous stories are those we think we know best -and therefore never scrutinize or question."_ -Stephen Jay Gould

</comment><comment><USER53> Oh, there's so much to unpack here...

Vast majority of my blogposts that have reached HN front page were ... inflamatory and controversial. The (IMO) wise content that isn't steering up the argument seems rather ignored.

... or it was about Rust. I love Rust, I really do, but I feel some of the things I wrote weren't really thaaaat worthwile, and it's just jumping on Rust bandwagon. SWE is mostly driven by fashion and trends, and not by merits.

I have a lot that I wish to share, but don't have to write it down in well- structured way.

The more you know, the more you realize the that right answer to everything is "it depends". And it's really hard to turn subtle context-dependent knowledge to something more universal that benefits broader reader. It's good to seek after most knowledgeable and skilled people you can find at your job and pick their minds whenever possible asking about opinions, experiences, and so on. The context is already there.

And in SWE as in anything complex it's just hard to verify any theory. Nothing is reproducible, really comparable. What worked for me don't have to work for you, and we don't even know why. Everyone, even if well informed and experienced, has just a fraction of the picture and is trying to deduce the whole as best as they can.

Then there's a whole thing that ... people in SWE aren't as smart and knowledgeable as they often think they are. Being __Senior __Software Engineer doesn 't mean anything anymore. Oh, you did two bigger projects, and you think you know a lot, hmm? Even after a lifetime of practicing the craft, keeping up with the tech, languages, tools ... there's still so much to learn. And a big part of SWE is not the tech itself but psychology, management, business, social skills... .

My advice for people that are looking for great content ... "you have to dig through a lot of dirt to find a couple of gold nuggets", and "weird&niche" is efficient way to get familiar with new stuff: You're not going to learn a lot of if you only travel the mainstream paths. Learn Haskell, Forth, Lisp, write some side-projects using some really weird and niche tech just to get familiar with it and gain some new perspectives. You'll talk with people who have some interesting opinions and learn things that will be surprisingly useful even on the mainstream path.

</comment><comment><USER54> My two cents many people can't think individually any more. Tech has become complex some people can only justify a decision based on what other people did. Honestly the solution is a combination of the scientific method, hacker mindset and being prepared to RTFM. No tech content is worth its character count it is just one persons perspective, their biases and mistakes. However reading code is another story, that tells a story I don't think you need to write content if you code. A project on GitHub is worth more than 1000 words.

<comment><USER55> I think at least part of the reason tech has become complex is because so many tech stacks today are a briar patch of 3rd party libraries and components that no one person can understand. The 'Don't reinvent the wheel' rule of thumb has practically become a mantra, and enables this. Newer developers who grow up in the online community are so afraid to think for themselves, lest they get mortified to death for doing something dumb. So it's sort of a self- perpetuating complexity problem.

</comment></comment><comment> a-nikolaev A lot depends on the programming language used in the online tech materials. It's very hard to find anything worthy in Python or JS, because for many people it's their first language, and "teachers" are only one lesson ahead of their "students".

On the other hand reading something explained in OCaml, Scheme, Erlang, Julia, D or similar niche and not hyped language can be of very high quality. C also tends to be good. Interestingly, C++ is also slowly becoming a niche high- quality language recently.

<comment><USER56> This is just flat out false. You're showing your (lack of) age here.

The nature of niche languages is people who like them run to the next niche when the next niche springs from the aether. And when their blogs and youtube channnels die, so will they wither on the vine.

There has always been higher quality documentation for Python things than most languages, because as a community, Python encourages quality documentation by providing tools to help developers write it more efficiently. There are quite literally entire platforms that teach a complete beginner who has never written a line of code how to write javascript, for free.

There's a difference in having good documentation, and someone reading the documentation to you. Sounds like you're equating the latter with the former.

You realize C++ has been around since 1979, right?

<comment> a-nikolaev Okay old man, show me your age and knowledge: do you know about Oleg Kiselyov and his amazing articles? See here: [http://okmij.org/ftp/](http://okmij.org/ftp/)

<comment><USER56> It's not my age and knowledge, it has been this way since before I was born in the case of the derivatives of C.

[https://en.wikipedia.org/wiki/Programming_languages_used_in_...](https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites)

The most ubiquitous languages used in the most highly trafficked websites in the world are Javascript (1995), PHP (1995), Python (1990), C++ (1979), and Java (1994).

No, I do not keep up with individuals' blogs and articles. I am very familiar with the O'Reilly books mentioned by one of their authors in another comment in this thread, however. And it's a universally accepted truth at this point that Stackoverflow and blogs are poor replacements for them.

<comment> a-nikolaev Your argument is weak. Popularity of a language does not correlate well with the average knowledge of the users of the language.

OCaml and Scheme are both very old languages. The original dialect of OCaml (Robin Milner's ML) was created in 1973. Scheme was also created around the same time in the 1970s, and Lisp even earlier, so the technology I refer to is hardly a novelty from aether. Rather, the opposite is true, they are all older than Python, JS, and the derivatives of C.

People using these less popular languages are not blogging/posting a lot, spending more time writing code. Nevertheless, most online discussion is high- quality with high signal-to-noise ratio, much easier to learn new things, find good code and smart people.

<comment><USER57> Actually both ML and Scheme were at first implemented in Lisp.

<comment> a-nikolaev Yeah

</comment></comment></comment></comment></comment></comment></comment><comment><USER58> "Your solutions are not any worse than the ones on the internet."

Sorry, I just don't agree with this. Of course you need to vet the solutions you find online, but chances are you will find solutions that have already worked through bugs and edge cases you would only learn the hard way if you went forward naively.

</comment><comment><USER59> This is sadly too true.

I have seen new libraries becoming popular not because they solved their target problem better in a measurable way than the existing ones, but because they used [insert fancy tech that is hype right now].

I have seen articles reposted in tech newsletters that were completely bullshit. The last one was about manually cleaning up some weak references because that would magically help performances, without any data to back that up.

Performances in general is HARD. There are very few general truths that hold true and many rules of thumb that change rapidly as mobile platforms evolve. Most of the performance optimizations I used to make 5 years ago just don't matter anymore. Measuring the bottlenecks is not that hard but still very rarely made, even in performance articles.

</comment><comment><USER60> Yes.

On one side there are blogs that just post content to keep momentum, say csstricks.com, and don't care to fix their errors even after you report them.

On the other side there are absolute noobs that post unresearched content just because some VIP tweeted that you don't need to be an expert to blog.

Well, that's what you get: Bullshit everywhere.

Then of course you get awful StackOverflow "top" solutions that are straight up "worst practice"

</comment><comment><USER61> >> Believe in yourself. Your solutions are not any worse than the ones on the internet.

This needs to be clarified. If taken literally then people will never improve and Joe average will continue to post bullshit on the internet.

Most solutions are probably comparable to much of what is on the internet, but that doesnt make it ok. We need to filter what we see on the internet. If you learn a new concept that's good, and maybe it's what you need. The key is to keep trying to do better while looking out for fads.

I've seen a lot of change over the years regarding big new paradigms. Some I tried, some I tried and passed on (Java) only to see them fade. Maybe I'm ready to start a blog ;-)

</comment><comment><USER62> This is true for all types of content - the art is to develop a sense of smell for quality content. And to do that you have to first have been exposed to a lot of bullshit.

<comment><USER20> Filtering out Medium, HackerNoon and possibly FreeCodeCamp sounds like a good first step.

</comment></comment><comment><USER63> > Adapt solutions to your particular use case. There's no one-size-fits-all > solution for everything. Compare different approaches, analyze them. > Tutorials or articles show an idea, but may not present production-ready > code. Always analyze it before you decide to use it.

This advice seems weird to me. I've been a professional software developer for a decade, and probably 95% of the time it doesn't matter if you're doing things in the most ideal way. The important thing is that it works, is reasonably performant, and is reasonably maintainable. If you can get that in 20 minutes from stealing somebody else's solution, it's probably better in the long run than spending 4 hours figuring out a slightly better solution. Maybe the hard part is identifying the 5% of the time when it does matter that you do something the most ideal way?

</comment><comment><USER64> I'll just share a recent anecdote from work. A developer asked someone 'What are the pros/cons of using _____ library?', here was the answer — 'This is what everyone is using right now'.

There must be a limit to this nonsense. So we're just going to drop this into our stack because that's what everyone else is doing?

<comment><USER65> It's the "beating the averages" debate all over again. You get certain economies of scale doing what everyone else is doing, and face less political friction getting it adopted. But it may not be the absolute best solution for what you need, and over time, it may hold you back.

It's why we're not all writing our stuff in Lisp. ;-)

</comment></comment><comment><USER66> I'm in a similar position as the author. I never thought I was expert enough to blog about how to code. I did rely on other people's blogs. Sometimes they were good, but quite often, as I developed my own expertise, I discovered better ways of doing things. At some point I started discovering that some people gave just bad advice. And not even just anonymous bloggers, but official documentation might present examples of things that seemed like a good idea at the time but the community eventually discovered better practices (I'm looking at Angular 1 in particular here).

Unfortunately, as I discovered better ways of doing things, I still didn't start blogging about them. I probably should.

</comment><comment><USER67> I'm 51 years old. Think I was about ~40 when I realized the dipshits I went to high school with (and thousands more like them) are running the world now. That was an absolutely terrifying realization. The author's point about tech content is true in my opinion and experience, but the larger point also applies to most every aspect of our society. 'Appeal to authority' indeed.

Fuck everything about that.

My friend from middle school, Mike 'the douche' W. is now the MAYOR OF A FUCKING CITY. Just no.

BECOME an authority on a given subject (takes a little longer, is much more valuable long term.) This also means you have to pick your battles... life is only so long, pick your shit and get good at it.

All that being said, community knowledge is a GOOD thing. We don't exist in an isolated state, the tech. community in particular. There's no one person who knows how all this shit works anymore, so thoroughly documenting what we do know, and sharing it globally is also incredibly valuable in a communal sense. None of us makes this stuff happen, whether you like it or not, we're all working as a team.

Oh, and also, passing on some wisdom here... never trust a contractor with clean boots.

</comment><comment><USER68> >At the beginning of my career, I would never, ever, post anything technical on the internet. I thought that if someone was brave enough to post a blog post or take part in a tech discussion, they always know what they are doing. I couldn't be more wrong!

It's unfortunate that to have any sort of success as a software developer you must write about your opinion on frameworks, languages and techniques even if you know little about what you're talking about. Many developers and engineers blog because that's just what you do, not because they have anything important to say.

<comment><USER69> The problem is that many people are willing to admire and praise the action and infer something from it because they aren't willing to spend time actually judging the work.

That makes the action prestigious in itself.

</comment></comment><comment><USER70> > this blog may be bullshit as well

Maybe all blogs should say this lol

<comment><USER71> Or you could just assume the possibility regardless.

<comment><USER70> Sure but I appreciate humility in an author

</comment></comment></comment><comment><USER72> People tend to follow paths that are tried and tested, and often blindly so. Why? Because it's incredibly efficient to do so, and the vast majority of products do not need some incredibly levels of tolerance or performance.

If everything on the web were to be bespoke items, built from scratch, things would stop up. Simply too resource consuming.

For many, the process is to simply copy something that works, and use it until it breaks - and then look at the needed upgrades / reasons to why things failed.

</comment><comment><USER73> This might sound a bit unrelated, but maybe there is a correlation with our current deterioration of moral values. We started valuing dishonesty a while ago as a creeping normality, it was a slippery slope from there on. We are just seeing the repercussions now. [https://email@example.com/why-we- are-dispensable-7a5...](https://email@example.com/why-we-are- dispensable-7a577eba4f3e)

</comment><comment><USER74> I think 'doing it yourself' vs. 'search online to find a solution' are two sides of the same medal and we should be good at both things.

An old friend of mine has a tendency to dig deep through searches and while I tend to fire a few searches and then start doing it myself. There have been many examples when he came up with something he found online, which was even better than the thing I started building.

So while it contributes to my programming skills to get some practice, I think you have to find the optimum between building mediocre results yourself (using your own amount of limited time) and not being afraid to get your hands dirty (as opposed to the 'someone else has built it' attitude). In the end, both skills reinforce each other: The better you are at programming, the better you can judge a solution you find online, and the better you are at searching, the faster you can find something that is actually good.

</comment><comment><USER75> I have seen first hand two people getting hired (I did not interview them) who had reasonable blog posts and who, once they arrived at a desk, _could not program_. (Fortunately the second time I was in a position to change the hiring process).

I have also worked with several people whose skill was _sounding clever_. One liked to read MSDN magazine, and then regurgitate the talking points to the CEO and CTO, who liked to trot him out in front of potential investors and customers. The content was just advertising Microsoft products utterly inappropriate for our startup, and eventually the company died after failing to deliver feature after feature because of vast over-engineering.

There are communication skills and then there are programming skills. Being good at either one is rare. So statistically if you meet someone who is good at talking or writing about coding then, absent any other evidence, that actually tells you nothing about whether or not they can code. Script kiddies are still alive and well, and some of them are Blog Kiddies now.

Yet, though it is a small intersection, it is not empty.

</comment><comment><USER76> The author is complaining about random internet content but it seems to me he should be complaining about cargo cult programming by his team.

</comment><comment><USER40> "Big data" was the biggest "appeal to authority epidemics". fortunately, it seems that now people have a more balanced view on small vs big data.

Way to often I heard "Google uses Hadoop, so you need to use it to" for companies with data good for an old laptop.

Now I hear a bit of "appeal to authority" when it comes to monorepos.

</comment><comment><USER77> If tech is kinda full of bullshit, which on better or worse kinda need to rely on math, and most of the time can be reviewed - then wait until you go to socio science, like psychology. You need to see there how much bullshit it is, you won't believe it. But, just like tech, it's better with it rather then without it.

</comment><comment><USER78> Most content is bullshit, including this comment.

For possibly the least bullshit content you'll ever read, I defer to HN user RobertoG's comment from ~2 months ago: [https://news.ycombinator.com/item?id=22792243](https://news.ycombinator.com/item?id=22792243)

This blog post shoots itself in the foot with its conclusions:

> _Realize that there 's tons of misconception in the world. People and their > solutions aren't flawless._

Therefore, any solution you come up with yourself is likely to be flawed and full of misconceptions. Might as well use someone else's code / misconceptions / flaws.

> _Adapt solutions to your particular use case. <snip> Always analyze it > before you decide to use it._

Who has time for that? We're all too busy being distracted by contentless- content. Or you could just say something like: it seemed appropriate at the time.

> _Believe in yourself. Your solutions are not any worse than the ones on the > internet._

This is the real kicker. My solutions probably aren't any _better_ either. On the whole half of all people engaged in a profession or job-role are _below average_. You'd probably do just as well to outsource all of your decisions to either someone else or the crowd.

> _Being a developer is about constant learning._

That's _very_ idealistic. Maybe some / many people just want to go to work, do the minimum possible, and get home, and for a lot of people that's probably _okay_.

> _People sometimes use libraries without a more profound understanding._

Correct me if I'm wrong here, but isn't at least part of the reason for using libraries that they abstract away the need to have a profound understanding of the topic?

</comment><comment><USER56> Speaking of how much of it is bullshit, it's also amazing how much of a language, frameowrk, insert multi-year project involving dozens of people, are willing to cede their entire knowledge base to... a google group? Blogs? Stackoverflow?

If your documentation sucks, your thing sucks. And as time goes on whether you like it or not, the collective record of community supporting itself _IS_ part of the documentation.

What happens when Google or Microsoft buys Stackoverflow and drives everyone away from it, and it eventually goes dark? What happens when all of those blogs start to disappear as people move on to the next thing (Ruby/Rails...), what happens when google just wakes up one morning and declares that they're tired of groups and are going to delete them all like they've done with a dozen other failed projects?

</comment><comment><USER79> It's funny because I agree with what she says, but the amount of black/white in her post (and many of the comments) also trigger me.

I don't always go on a blog post searching for THE truth. I go to get someone's view on something. Maybe get excited by the journey or what was achieved. Learn about the use case. And somehow, in some cases, because they are less biases junior developers that write actually have interesting insights.

If I want the dry and no BS info, I'll go read the source, or the doc. If I go on a blog post to read about X, Y or Z, I don't just swallow it and take it at face value, I just hope to find something that will interest me to learn more about it.

And yet, I agree that a lot of what I see lately is marketed to no end, and it becomes harder and harder to separate actual value, from tooling marketing.

</comment><comment><USER80> This resonates with me. I use caution now, as much security (and cryptography) advice on StackOverflow is wrong and Perpetuates harmful patterns, yet is never taken down. What's worse? It often shows up at the top of Google. Many devs don't show the same level of caution until something blows up

</comment><comment><USER81> I call this (BDD) blog-driven development. There is nothing inherently wrong with tech content posted online... the problem is when people don't put some critical thought into it and decide whether the solutions they see online actually match their current needs.

</comment><comment><USER82> > There's bullshit everywhere

The words of George Carlin ring in my ears:

> Bullshit is everywhere. Bullshit is rampant. Parents are full of shit, > teachers are full of shit, clergymen are full of shit, law enforcement > people are full of shit. > The entire country is completely full of shit

<comment><USER83> That was my thought as well. It's hard to define something to not appeal as bullshit but so many people do not care or can't comprehend the outcome/judgement on the reader side. A few comments above mentioned hackernoon and I saw that on our slack a couple of times. Now that I checked it its a complete shitshow with people just starting in the sector or shilling their crypto coin.

A bit hard to get around the whole thing when up to senior engineers seems to enjoy this type of content.

And thats why I am enjoying HN and more unfiltered channels like /g/. You can have a somewhat anonymous review/judgement/comment on topics which you would never came across on these blog posts.

</comment></comment><comment><USER84> I think the observation is OK, but the conclusion is wrong.

Engineering is not only about hard science, but also about processes. The way processes evolve is often based on empirical data rather than hard science.

Now, that does not mean that one can just forget about science entirely. As engineers, we should try to use a logical, rational, data-oriented mindset when making decisions.

If the reason a decision takes place is only because an authority said so, with no real reasoning behind, that would dogmatism: strongly held beliefs that will not be rationally discussed.

We should always keep an open mind and understand that a large part of our knowledge is simply a local maxima in our way to a deeper and better understanding of things, and dogmatism puts a stop to that process.

</comment><comment><USER85> Making a ton of mistakes early in your career, being lucky to work with those that took the time to have constructive discussions/arguments with you (i.e. they're passionate and actually give a crap about budding talent), and paying it forward are a few key things that make for a good engineer.

I've pulled whatever hair out that I have on a Friday night trying to figure out something with a solution or approach unpublished elsewhere when I could be watching Doctor Who or getting fat on fat free ice cream and sedentary on my couch instead. Sometimes spending that personal time experimenting pays dividends in the form of a working solution. Other times it builds grit.

</comment><comment><USER86> So... the author works as a developer since 2017.

The reality is most tech content is written by people with relatively little experience. People with lots of experience tend to have way more on their plates to bother writing blog posts or (tech) books.

Also the market is stacked against content for advanced users. Whether you are for ad impressions, visitors, likes, subscribes, book sales, you want to produce content that sells to masses of people and making it advanced is definitely going to cut your readership.

There is still a lot of value browsing through it. The reason is that since finding good information is difficult, the nuggets of wisdom make up for the lost time reading cruft.

</comment><comment><USER87> As long as we're using project tracking systems like Jira and agile development, and at the same time developers are evaluated on the basis of how many "story" points they closed, this isn't really going to change.

</comment><comment><USER88> A lot of times I want to share, and while I'm a pretty good writer, I really don't have the bandwidth to write a great article, but can usually throw it up on a screen. Example: [https://medium.com/@bdcravens/fixing-docker-for-mac- and-rail...](https://medium.com/@bdcravens/fixing-docker-for-mac-and-rails- performance-baf35f554bc7)

I'd probably share a lot more, but it's not about not having time to share, as much as not having the time to bring the quality up to a level I'm willing to attach my name to. I suspect many are in the same boat.

</comment><comment><USER89> This is not a tech problem. This applies to all the content on the internet.

I like your suggestion to motivate people to start thinking about what they are going to use and _why_.

When we have team refinements at work we learned to question everything. There are some senior developers that get most things right, but not every time. Sometimes some junior dev just throws an idea that turns out to be way better.

This is why I think the process of coming up with a solution is much more important than the solution itself.

With that being said - please remember that there is a fine line between valuable skepticism and just being annoying :)

</comment><comment><USER90> I'd go even one step further: doubt what you think you already know.

I often check documentation of even well-known functions like printf() to remind me of details that I might have forgotten or remember inaccurately.

</comment><comment><USER91> This is very true. I think I'm breaking at least several dozen "Rules for How It's Supposed To Be Done" in my fairly large software system (self-funded SaaS). But each and every time I thought carefully, considered it, and then made a decision. It's worked out great each and every time I did that.

My takeaway is the same as the author's — rational approach is king, things should not be taken for granted and "best practices" might be good ideas, or they might just be the current fashion du jour.

Think for yourself.

</comment><comment><USER92> > Articles have plenty of conceptual mistakes. And people are not perfect, > either! Senior developers are not always good developers.

I think this point is well made. It is a good caution when consuming content on the internet to always be assessing. I seek to understand how something works before I use it.

Yet here's my question: Does this mean I should not be writing for my personal blog?

Writing helps me work out, articulate and understand better the tech that I am working with. And it might help others to work it out as well, even if it's not perfect.

</comment><comment><USER93> Software libraries, APIs, tools, dependencies have exploded exponentially since the early days of C language and a handful of Berkley/Bell libraries. I often use a dozen different things for my projects and the next project invariable needs a different roster.

Thus I want to voice my contrary opinion that it is okay to "consume" and not "create" for non-core parts of your project. Need to do dump an arcane data structure to a remote logging tool? Go ahead and copy paste that StackExchange snippet kings!

</comment><comment><USER94> I agree that is difficult to find good blog posts/tutorials on technical stuff. When I want to learn something for the first time, I usually go through the docs and if they aren't friendly enough (for me) to read them and learn, I go and google a nice book about the topic. That being said, there are a lot of nice blog posts about technical stuff, not tutorials/teaching but actual experiences/opinions, people sharing and documenting what they learnt. I appreciate those.

</comment><comment><USER95> I forget the exact numbers but half of all programmers have been doing it less than five years, and this has been true the whole time. Exponential growth, eh?

Also, IT is _fashion-driven_ and largely ahistorical. I have worked with people who don't know who Alan Kay is, for example, or have never heard of Prolog.

I think we are in an _alchemical_ phase and (hopefully) transitioning to a _chemical_ phase of knowledge. (Alchemy was mostly bullshit too, but there was a hellofa bull in there, eh?)

</comment><comment><USER21> a propos this I just thought of a writer who I used to follow at the beginning of the millennium. I'm not going to mention their name, and I think their articles were not bullshit per se, but... whenever I downloaded the code for his longer articles and tried to run it locally there were always lots of bugs (although to be fair I only did this for the really complicated things he wrote and only 3-4 times)

Just crazy that I would spend hours working on it to get it to work, I was always weirded out by it. This guy was sort of famous. Smaller bits of code were always fine and he had some pretty cogent insights on things, but big bits of code was just not working without significant rewrites.

To be fair perhaps this was a different time and things not working reliably was more widespread, I reemmber this article I wrote for SitePoint in 2008 [https://www.sitepoint.com/rewrite-web- chickenfoot/](https://www.sitepoint.com/rewrite-web-chickenfoot/) (please excuse me if too much bullshit, but I was less old) got a remark from the editor that testing took longer than normal, which I was of course surprised by because such is the time-honored reaction of a programmer when the code works on their own machine.

</comment><comment><USER96> Every thing you read needs to be taken with a grain of salt. Always look back in the history to see if the same problem came up and how some one solved it. If you can find it, use it. Only by using some existing solution you can find faults if any and improvise. The write about that. This cycle will keep going on. Thats how we have evolved. There is no BS, it is just how they solved it

</comment><comment><USER97> If most of it is bullshit, then the harm of bullshit mustn't be that high.

If it were, then none of this would exist.

But that there are some many tech companies taking so many different approaches (the majority bullshit) stands as evidence that there must be some acceptable amount of bullshit an organization can handle.

Textbook code is nice, but shipping and improving product is nicer.

</comment><comment><USER98> I like how "choose boring technology" and "most tech content is bullshit" are simultaneously trending.

</comment><comment><USER99> I think it comes down to task turn-over. We get lazy when our job is about story points. There is no real reason to reinvent the wheel most of the time. When you need to eek out every bit of performance you need to dig deeper. I think finding the right balance of time spent vs perfection is important.

</comment><comment><USER100> If something works, we keep doing it. Often we learn by looking at others. Or we try out different things and stick with what works best. For example: Every day you brush your teeth, why do you brush it that way? Probably you where told by a Dentist, but you haven't question it.

</comment><comment><USER101> Agreed

The "most popular" (and maybe click-bait like) the content, the more crap you'll get. Especially when people think they know the subject but they don't.

Most common offender nowadays: ML and Data Science. I've found articles with glaring errors, techniques that don't make sense, very shallow tutorials, etc (Disclaimer: nobody is immune from making mistakes, not even me)

And then you get "oh but you start training and then your loss go to zero, right?! This means it works, right?" Yeah. No.

If your training loss goes to zero, your are probably overfitting or the problem you're trying to solve is too simple. If your testing loss goes to zero, you're probably doing something wrong. Or my favourite: your loss is very low but what you're trying to predict has result A 99% of the time and result B 1% of the time. What's your loss if you only predict result A?

I mean, if even the myths about /dev/random and /dev/urandom keep circulating around, can you imagine about other stuff?

<comment><USER102> I took a grad level course on data mining/machine learning back in the early 2010s, before the current gold rush, and while there was some level of theory and programming, the professor spent a lot of his time discussing these finer points. The (apocryphal) example of armoring planes in the wrong spots [0] sticks with me to this day.

It's human nature to focus on the more immediate, tangible outcomes - eg going through a pytorch tutorial - over spending time trying to really understand the problem they are trying to solve. Great teachers try to guide their students there, and great students are perpetually calling themselves out mentally to try and stay on the track of understanding rather than rote repetition. But it's very hard.

[0]: [http://www.ams.org/publicoutreach/feature- column/fc-2016-06](http://www.ams.org/publicoutreach/feature- column/fc-2016-06)

</comment></comment><comment><USER103> I think the major cause for this is the self branding phenomena that started together with the social media boom. Suddenly people got it to their minds that they are supposed to market themselves like products. And with the best tradition of PR, the truth don't matter, only the optics. So you got a bunch of mediocre engineers, some hardly out of uni swamping the net with opinions and shoddy advice , written in a very knowledgeable tone, because "that's the game". Combine this with tons of tech startups using same PR technics to sell their often than not, less than perfect technology.

With the crazy boom in developers, you got a whole generation of mediocre devs without any tradition to build on, surrounded by silly opinions and fads to learn from.

Now replace "developers" with any information age occupation , this remains true.

</comment><comment><USER104> As are recipes. I don't understand why recipe blog writers want to be seen so much that they're willing to compromise their content. It's just a bunch of bullshit to pad out for SEO and then at the end the actual recipe.

<comment><USER105> The "padding" is for their existing followers who actually do want to read the padding (life stories,whatever) irrespective of the recipe itself. The recipe is advertisement to gain new followers from Google traffic. Merging both together works better than separating them out from the point of view of gaining more followers.

</comment></comment><comment><USER106> This site is one of the reasons.

</comment><comment><USER107> And then your manager/architect reads this content and asks you to implement this, saying "it's easy and it just works". They never go deep enough to understand the costs, consequences and tradeoffs.

</comment><comment><USER108> To be fair, any writing that is labeled "content" is indeed bullshit.

<comment><USER109> Weirdly, the word "content" for articles or other media seems to actually devalue the _content_ of the piece in lieu of its marketing value. Great stuff. They'll have to come up with a new word for this practice pretty soon, as more people realize that they're reading fancy ads instead of actual content.

</comment></comment><comment><USER110> There might be a lot of BS content, but there are also some gems. It is sort of like the Web at large, really.

Turn up your BS filter and let it roll.

</comment><comment><USER111> See also, Cargo Cult Programming: [https://en.wikipedia.org/wiki/Cargo_cult_programming](https://en.wikipedia.org/wiki/Cargo_cult_programming)

</comment><comment><USER26> Does the fact that this, 'everything is bs' article by a junior developer is taken so seriously on this forum have anything to do with the fact that the author looks like a gorgeous hacker from a science fiction movie? Or maybe just that she has a female name? I was just discussing that with my roommate in the kitchen. My roommate is of the opposite opinion that women get taken less seriously. And I don't want to hate on OP obviously. But I want to ask what do you think?

I do think it was well-written and the writing kind of saves the content. Besides there's absolutely nothing wrong with looking good. We might need a bit more of that in tech. So I'd encourage her to continue blogging.

</comment><comment><USER112> Sure, most tech articles are bullshit... but the question is, is the average developer going to do better figuring it out on their own? Are articles worse than the average developer?

</comment><comment><USER113> This is pretty good, but I had to chuckle when the author threw in a suitably impressive quote from Sagan about the dangers of appeals to authority.

</comment><comment><USER114> Twitter is non-stop tech garbage in my opinion, to me it seems like an endless stream of marketing pieces...

</comment><comment><USER115> Most of the things are bullshit. Especially on the internet where everyone can share their thoughts virtually without any filters.

</comment><comment><USER116> The word "most" is mostly used between 60% and 90%, or more precisely greater than 50% and less than 100%

</comment><comment><USER117> "Don't consume. Create."

vs

"We have two ears and one mouth so that we can listen twice as much as we speak."

</comment><comment><USER118> _Thinking is the hardest work there is, which is probably the reason why so few engage in it._

Henry Ford

</comment><comment><USER119> "I was just following the pattern" is the programmer's Nuremberg defense.

</comment><comment><USER120> Crypto is not bullshit, probably. Don't roll your own crpto, probably.

</comment><comment><USER121> Personally, my favourite one is seeing 1000th tutorial post on React.

<comment><USER122> Hey c'mon, back in elementary school, every cohort has at least written about their favorite past-time during writing classes. Just because the subject/title is the same, it doesn't mean the writing is the same. Every writer ends up with a style of their own and as a teacher, it was mostly a joy to read. ;) The only reason why there isn't a 1000th tutorial on Favorite Past-time is because there wasn't high speed, unlimited internet back then and students weren't allowed to use the computers back then. ;)

</comment></comment><comment><USER123> so am i no longer allowed to copy-paste from stackoverflow?

<comment><USER122> Haha, no. You can still copy-pasta and also blog about it as real content. C'mon, how else can I feel good about my shitty self?

</comment></comment><comment><USER124> I think this applies to a whole lot more than tech. ;)

</comment><comment><USER71> As a saying that used to be popular back in the day goes, Nobody has been fired for buying (from) IBM. This in my view is what explains much of the problem.

<comment><USER98> so... "Choose boring technology"

</comment></comment><comment><USER125> Has anyone else faced the raw existential horror of how many programming tutorials there are online for a single question? Look up how to concatenate arrays in JS, and there are just _so many sites_ that it almost makes my head hurt. I guess complexity and competition are necessary tenets of capitalism, but I feel some sort of terror at people just churning these articles out when there are so many already.

</comment><comment><USER126> thisIsAField thatThoughtCamelCase wasASensible idea

</comment><comment><USER127> Sturgeon's law.

</comment><comment><USER128> Agreed</comment>


I think I've accidentally created a fully encrypted social media app - <AUTHOR> https://benwiser.com/blog/I-think-I%E2%80%99ve-accidentally-created-a-fully-encrypted-social-media-app.html <comment> core-questions Didn't Gab do this, with Dissenter, and get banned quickly?

Seems like a great idea, but you can see why some powerful folks would like to crack down on it. Too much opportunity for, well, dissent!</comment>


Fl0wer.png.html - <AUTHOR> http://demoseen.com/windowpane/fl0wer.png.html

<comment><USER2> Huh, didn't think this would be posted. This is a little demo effect I threw together last week when I was bored. It's built on top of WebGL (the effect itself is really just in a shader), and the reason it looks like a PNG is that it's a self-extracting PNG as described in my article here: <http://daeken.com/superpacking-js-demos>

</comment><comment><USER3> (Note: I'm not blaming anyone!)

Impressive: Firefox hold fine and rendered it, but after I opened it the second time, _all_ the text in my system (that includes the browser, but also the terminals, Awesome, etc) was FUBAR - even after restarting the X server!

I have no idea what kind of bug leads to only the text being corrupted (so, it doesn't seem a bug in the graphic drivers, since AFAIK they're agnostic to that) but survives restarting the display manager.

<comment><USER4> I've had similar experiences with graphical corruption in X, and Firefox was almost always involved. Same radeon driver as you. And it seems to be distro- agnostic: I've seen it with Arch, Gentoo and Mint. All I know is that it's a recent thing: if I run an older version of my Gentoo build, it doesn't happen. But otherwise I see the same results.

I have no idea what to point to, because it's really weird. Scrambles /everything/ that goes through video. (And until now, I figured it was a quirk of my bizarre hardware. Guess not.)

<comment><USER5> its a bug with cairo and the radeon driver:

<https://bugs.freedesktop.org/show_bug.cgi?id=47266>

on debian you can pin libcairo to fix the issue. /etc/apt/preferences:

      Package: libcairo2
      Pin:version 1.10.2-7
      Pin-Priority: 1001

      Package: libcairo-gobject2
      Pin:version 1.10.2-7
      Pin-Priority: 1001

<comment><USER6> Fantastic. I've been trying to pinpoint the cause of it since aeons. It's absolutely dreadful in awesome wm and at some point I laid the blame on (cairo-)XCB, or some Xft bug, but it cropped back too, only less often, under gnome/xfce.

</comment></comment></comment></comment><comment><USER7> I think the comments hilight very nicely why some people are not all that thrilled about having OpenGL in their browsers in the form of WebGL. Graphics drivers seem to be extremely difficult to "get right", especially if any degree of performance is wanted.

<comment><USER8> My considered opinion (from the industry) is that its really shocking how under-invested-in the drivers are.

If a fraction of the effort that went into making the card went into making the drivers and maintaining and fixing them, we'd all be massively better off.

<comment><USER9> The problem may be too much investment in drivers. Modern graphics card drivers are little operating systems unto themselves; they even have built-in compilers. They are incredibly complex, yet written in unsafe languages for maximum performance, with tons of ugly hacks for compatibility.

What we really need is a simplification of graphics APIs so that graphics drivers don't need to be so complex. That may be impossible without convergence in hardware though.

<comment><USER8> Not really.

That graphics drivers are a mess internally says more about the insufficient resourcing to do it properly and cleanly and refactor than it does about the really rather trivial and well-understood APIs that the driver implements.

<comment><USER9> You think OpenGL and DirectX are "trivial"? I'm sorry, but an API that involves passing text strings of complete programs for the driver to compile, link, and asynchronously run on a vector coprocessor is _not_ trivial to implement, not to mention the complex NUMA memory management going on.

</comment></comment></comment></comment></comment><comment><USER10> I think we need to start using a [WebGL] tag or something for these... obviously some browsers don't take it well, and it would keep a lid on all the (kinda pointless) "Doesn't work"/"works for me" comments.

Works for me. Super cool.

<comment><USER11> In some cases, it's even worse. Low end netbooks running Chrome will load the page and then the entire machine locks up as the WebGL starts rendering and takes over the weak GPU. Easy way of DOSing someone is to send them a WebGL link if they're on a weak computer.

</comment></comment><comment><USER12> It worked the first time in chrome. Crashed it the second time. Very clever.

The blackhat-spidy-sense in me is getting a tingle. XSS injection if a PNG could used to execute javascript possibly.

<comment><USER2> This can't be used for XSS or the like, really. The way it works is that the PNG is first interpreted as HTML by the browser (hence the filename) and then it loads itself into an image tag, causing it to be interpreted as a PNG. Once it's loaded into the image tag, the image is drawn to a canvas so that the code -- embedded in the PNG -- can be extracted and executed.

While fun, the only real security concern here is that it's really good at pissing off IDSes.

Edit: I linked my article describing the technique in another comment here if you want to see how horrible it really is. I'm always both proud of and disgusted by myself for this technique.

<comment><USER12> I just dug into and can confirm. MIME is returned as text/html and browser reads it as such. still very clever.

It's actually kind of a good test of browser compliance in a sick way.

<comment><USER8> The Duff's Device of browsers? :)

</comment></comment></comment></comment><comment><USER13> This crashed my mac entirely. avoid.

<comment><USER14> If viewing a web page crashes your OS, seriously, you need to take that crap back and get a refund.

<comment><USER6> How do I get a refund on my Arch setup? Seriously, WebGL talks to the driver almost directly. All it takes is a browser/driver bug and the whole display stack goes down, possibly bringing the OS with it.

<comment><USER15> Good thing we don't use composited rendering these days, or rely on hardware- accelerated interfaces.

Oh wait.

</comment></comment></comment></comment><comment><USER16> Works on Chrome/MacLion

... but I'm not sure what it's _doing_

</comment><comment><USER17> If you're having WebGL/video driver issues and you'd like to assist the developers in fixing them, here's a link to a crowdsourced driver test at Khronos: <http://www.khronos.org/webgl/wiki/CrowdsourcingDriverTesting>

</comment><comment><USER18> Not seeing anything (totally white browser) in both Firefox 12 and Chromium 18 on Ubuntu.

<comment><USER15> >Ubuntu

There's your problem. Are you using an ATI card, by the way?

Make sure you have restricted drivers installed. If you're using an ATI card you'll have to do the further step of going to about:flags in Chrome and making it ignore the software rendering blacklist.

<comment><USER18> Actually I'm on a nVidia Quadro card with the Nouveau driver.

</comment></comment></comment><comment><USER19> All I see is the text "‰PNG  IHDR[$'þVœjawh". MIME type screw up server side?

</comment><comment><USER20> NoScript is the new subject for "I run Linux, I don't have to worry about..." But after I enabled scripting it worked fine, very neat-looking demo. Also I admit that I enjoy reading about the problems of others here...

</comment><comment><USER21> Crashed Firefox 12 on OS X. Crashed latest Opera Mobile on Android ICS.

</comment><comment><USER22> Shame. It's not working on Safari 5.2 beta (Lion 10.7.3); nor does it work in Opera, or any of iOS browsers. But is fine on both Chrome and Firefox...

I'm sure Safari supported WebGL...

<comment><USER23> There's an option in the Develop menu to enable WebGL, but even with that on this doesn't work.

</comment></comment><comment><USER24> Doesn't work in Safari.

</comment><comment><AUTHOR> The file seems to be a png with some html tags in it that trick the browser. Seems to work on firefox and conkeror but not on my chromium.

<comment><USER25> Works in Chrome/Windows.

</comment></comment><comment><USER26> Ah! My browser! I lost my thesis :(

<comment><USER3> What kind of crappy online editor are you using that doesn't save continuously?

<comment><USER27> Office Live. You have to click on the save button. I'm not even making this up.

<comment><USER6> You mean the one with a floppy disk (honest question: I'm not even remotely a Office Live user)?

</comment></comment></comment></comment><comment><USER28> Doesn't work on Chromium/Ubuntu.

18.0.1025.151 (Developer Build 130497 Linux) Ubuntu 12.04

<comment><USER29> Same here.

<comment><USER15> 1) Restricted Drivers

2) about:flags disable software rendering blacklist

</comment></comment></comment><comment><USER30> Had no effect in Opera 12 alpha with HW acceleration and webgl turned on, just black screen

</comment><comment><USER31> Works, Amazing, I think you accidently just created a way to hypnotize people in a second.

</comment><comment><USER32> Shouldn't there be some kind of seizure warning to go with the link?

</comment><comment><USER15> Goes well with trance music. Keep forgetting it's not in the demo.

</comment><comment><USER33> I'm freakin' out, man!

</comment><comment><USER34> This crashed my OSX Lion running Chrome, lost all my work and had to reboot. Just tested Firefox too, crashes as well. Safari doesn't load anything, just a bunch of PNG binary text? Might want to work on compatibility ;)

<comment><USER35> .. same platform but none of the problems you experienced, perhaps you're using some old versions ?

</comment></comment><comment><USER36> What is this supposed to do, other than attempt to crash my browser?</comment>


RoR Gem serious_business: Good application practices in a handsome DSL - <AUTHOR> https://github.com/axelerator/serious_business <comment><USER2> Dude, I know you would like to brag that you created a _language_ , but _you did not_. It's not _domain specific language_ , it's just Ruby API.</comment>


A new, transactionally updated "snappy" Ubuntu Core - <AUTHOR> https://insights.ubuntu.com/2014/12/09/a-new-transactionally-updated-snappy-ubuntu-core/

<comment><USER2> So now we have CoreOS, Redhat's Project Atomic, and snappy from Canonical.

This post is almost 100% buzzwordy marketing fluff and zero technical content, but I can't wait to see more technical details. Perhaps the new breed of "dom0" like container hosts can learn and improve from each other.</comment>


Ask HN: Starting iPhone developer salary for new grad? - <AUTHOR>

We're a small iPhone/iPad development company and we're considering hiring someone just out of college as a iPhone developer.  We already have a couple senior iPhone developers on our team, so this new hire would be focused on a few of our existing apps to improve them while our more experienced developers work on new ones.  We're looking to hire someone right out of college to save costs and also so we can have a part in the growth/development of the new hire.
I'm wondering what would be the salary range we should expect to pay for a programmer right out of college?
a. 25k-35k/year b. 35k-45k/year c. 45k-55k/year d. 55k+/year <comment><USER2> I'm not that closely in touch with iPhone dev rates, but I pay a bit of attention because I like to track them relative to software security bill rates. My sense of it is that commodity iPhone dev bill rates are between $100-$150/hr. Call it $125.

Multiply by 2 to get a fully utilized rate, subtract 30% for overhead, multiply by 60% real utilization, and that's what an FT senior dev might get.

A scale running from $25,000 all the way to $105,000 seems a little unrealistic.

Ultimately, there's no real "default starting salary". You need to fill in the blanks for:

* What your bill rate is (how much is the role worth to you)

* What your utilization is (ditto)

* How skilled the applicant is (knows C? knows ObjC? knows appkit?)

* How much the candidate is going to cost to train year 1 (in billable hours of senior talent spent actually training, and in reduced utilization for the candidate)

You figure out your negotiating ceiling, and from there work out what you're "comfortable" paying, and then you negotiate.

If you're running a competant, reasonably successful shop, my gut is that you come out somewhere around 60-65k for a junior that you think develops into a solid producer within a year. Someone who won't develop into a producer in a year, you don't hire. Someone who already is a solid producer, you can't apparently afford to hire. (That's not a barb).

</comment><comment><USER3> The answer is highly dependent on your location.

</comment><comment><USER4> Many colleges publish average salary data; just google: "[University near you] career services salary", and you can get an idea about what an average college grad from your area will make. For example, here is Indiana University's: [http://www.informatics.indiana.edu/careers/hiring_statistics...](http://www.informatics.indiana.edu/careers/hiring_statistics.asp)

</comment><comment><USER5> Totally depends where you are:

Atlanta/Austin 55k ny/Boston 75k San Fran 80k Bumblesticks 40-45k

</comment><comment><USER6> I'm an undergrad student, and I make close to 8k a month freelancing when I'm working full time (like right now).

Don't settle for entry level if you're good and can reliably delver great code. You'd have to pay me competitively with my freelancing gig to even think about hiring me.

Other grads aren't as self motivated tho and don't know what's out there. Good luck snagging one!

<comment><USER2> While I definitely sympathize with you more than the original poster, I note that the idea that salaries should be competitive with bill rates is kind of a pernicious trap. In exchange for a steep discount on your freelance rate, a salary gives you, in rough order of value:

* The employer's half of FICA

* A paycheck when you're not utilized

* Access to group health and some contribution towards your monthly payment

* Someone else to hunt down and close gigs for you

* Vacation and sick days

Take your freelance rate, knock off 30% for health and taxes (your "fully loaded" rate, which might include office space), and then another 40% for unutilized time, and you're ballparking what a salary looks like before you factor in the amount of effort you put into marketing, sales, and contracts.

<comment><USER6> The figure I gave was net. After paying my Internet bill, after buying my WWDC ticket and a couple of ipads, a development machine or so a year, and finding all my gigs.

Plus factor in that OP wants someone to maintain existing apps (far from bad, but not terribly exciting work) and you have what would be (for me) a really crappy deal.

There are certainly people out there for whom this would be a good fit. I'm simply not one of them, and I suspect there are quite a few people out there my age who make more than I do between the app store and consulting.

With normal programming, you can sort of snag developers right out of school before they know what's competitive pay. All qualified iPhone devs already have a paying gig with apple, and many consult for decent pay.

<comment><USER2> (a) I'm not trying to sell you anything. I don't know the original poster.

(b) All I'm saying is that an FT salary and an FT freelance rate shouldn't be within throwing distance of each other.

(c) By my math, _you_ indeed should actually be getting something like $8k * 12, because if you're well utilized and paying part-timer-bracket taxes, you're probably undercharging.

</comment></comment></comment></comment><comment><USER7> I would say B and a half 45-50k

<comment><USER2> I would say anyone who can reliably deliver ObjC code within a few weeks rampup would be a sucker to accept 50k, though I don't doubt you can find suckers.

</comment></comment><comment><USER8> For iphone development, b</comment>