
Signaling in tech is some fucked up shit (2016) - luu
https://daiyi.co/blog/2016/11/30/Signaling-in-tech-is-some-fucked-up-shit/
======
iwangulenko
As someone running a technical recruitment agency, I can assure you that it is
true that someone having built stuff in Clojure is more likely to be
considered as a good engineer than someone who did JQuery all the time.

Recruiters use an intuitive approach to conditional probability. Given only
the info alone (if someone did JQuery or Clojure) exposes you to two bell
curves, with the X-axis being "programming ability". The first bell curve that
has all JQuery people is more on "the left" and the one having all Clojurians
is more on the right. The Clojure bell curve has shitty engineers and some
really good people are part of the JQuery one.

Prejudice is sort of rational. If a recruiter looks at one datapoint, it's
unlikely that it is at the tails of the bell curve, so the Clojurian applicant
will get more attention. If you are treated unfairly because of the group you
"belong to", I am sorry - but this is reality.

~~~
braythwayt
I have decades of experience hiring people, and what I find is this:

If I randomly select a programmer from all the programmers who write Clojure,
working or not, interviewing or not, they are likely to be a “better”
programmer than if I randomly select a programmer from all the programmers who
write JavaScript, working or not, interviewing or not.

But of course, that’s not what happens when I interview. I meet one person in
the morning with three years experience working on projects of types A, B, and
C. In the afternoon I meet another with four years of experience working on
projects of types B, C, and D.

If one has Clojure and the other JavaScript, I’m much more likely to be
delighted to discuss Clojure than JavaScript, but as far as HIRE/NO HIRE is
concened, the thing that matters to me are projects Of type A, B, C, or D, and
the candidate’s role/contribution.

If the JavaScript programmer’s experience is solid, I do not want a recruiter
in-house or otherwise trying to save me an interview and filtering them out.

The bottom line is, there are like 100x as many JS folks as CJ folks. So let’s
say there are 100 great CJ people out of 1,000 CJ people. 10% ham!

But that means there are 100,000 JS people. If even 1% of them are great, that
means that there are 1,000 great JS people out there, and I do not want to
pass on meeting any of them just because there are also 99,000 not-so-great JS
people out there.

In my imaginary distribution, a random CJ person is 10x more likely to be
good. But there are 10x as many good JS people as CJ people, and my experience
is that THEIR experience is a far better signal than their programming
language.

—-

p.s. I am competing with people who only want to hire programmers with shiny
signals like ClojureScript or the ability to quote “JavaScript Allongé.” Good!
Let them ignore the 1,000 good JS people, easier for me to interview them and
make a successful offer.

Now that I think about it, please ignore what I just said. Only interview
people who build systems out of Lisp, Prolog, and Maleboge.

~~~
GijsjanB
I have 0 years hiring people, my experience is this. The language(s) you write
code in don't mean a thing. It's the ecosystem. I'm a JS programmer, but that
is not why you should hire me, it's my experience with the DOM, HTTP,
indexeddb, File API, documentFragment, Fetch API, TreeWalker, NPM, WebGL,
interactive SVG, the pros and cons of React, when to use Redux, Basic login,
NGINX, Docker, etc, etc, etc. My point is this: knowledge of Closure(Script)
is a great tool in any programmers tool belt, but it is definitely not the
most important one for a solid frontend engineer.

~~~
denkmoon
When I see an interviewee list out a bunch of things they have "experience"
with like that, I assume they actually mean "I used this once".

~~~
Hydraulix989
It's hard to avoid touching the DOM, HTTP, NPM, React, NGINX, Docker, etc. on
a daily basis if you're doing any kind of serious work; it's not just some
disjoint list of obscure buzzwords.

~~~
braythwayt
Yes, compare and contrast the above to my own partial list of technologies
from 1977 to 1997...

“Nova 1220 BASIC, Acius 4th Dimension, Hypercard, MetroWerks CodeWarrior,
Lightspeed C, Turbo Pascal, MP/M, DigiTalk Smalltalk/V, J2EE, ...”

What does any of that have to do with each other.

~~~
scroot
There's one thing: Hypercard and DigiTalk represent directions personal
computing should have gone, but didn't (although that's not relevant to the
thread topic)

------
SCdF
> when I told other software people I’m a web developer, I got treated like
> shit. I was a lower class of coder because I wasn’t “solving cool problems”
> because making web sites is easy.

Of all the stupid arrogant awfulness in tech that has crossed my path this one
is definitely high on the list of the most baffling. Web dev is the hardest
and most intimidating dev work I've ever done, by a country mile.

 _(Whether that complexity is 'justified' is an entirely different discussion
that, while no doubt interesting, has nothing to do with this person's post)_

~~~
BurningFrog
The problem is that you're both right.

Putting up a simple web site that does something basic, that you then walk
away from _is_ easy, and _is_ what a lot of people who call themselves web
developers do.

Building something like Gmail or Facebook OTOH are endeavors only slightly
below the moon landing in complexity and “solving cool problems”.

And it is equally legitimately "web development"...

~~~
jacques_chester
I am not sure I would class either of Gmail or Facebook with the Apollo
Program in terms of headcount (est. 400k), total cost (estimates from $100-200
Bn), complexity (hundreds of contractors, millions of moving parts, dozens of
directly-operated sites, thousands of projects), or novelty (landing on the
fricking _moon_ ).

~~~
jholman
I think Google's total cost is more than $100-200 billion. It's a bit hard to
pin down what "total cost" means in this context, though. But their 2017
operating expenses were $82 billion. Each year is higher than the last, but if
you add up the last four years, they're over $250 billion.

Facebook is about an order of magnitude less, so the Apollo program fits
nicely between them.

~~~
jacques_chester
> _It 's a bit hard to pin down what "total cost" means in this context,
> though._

I realise looking back that comparing a company to a project/program isn't
really correct. One kind ends, the other tries very hard not to end.

------
js2
Where are these horrible places that people work and hang out? I’ve worked at
places as small as a tiny ISP where I was basically the only tech employee,
startups with a dozen employees to companies as large as HP and everything in
between. I’ve worked on the east coast and west coast. I’ve worked for private
companies and public ones. Ive been on small teams and large. Ive had dozens
of managers. I’ve been an SA and a programmer and sometimes the jack of all
trades who’s responsible for IT and the web farm. I’ve racked and stacked
gear. I’ve punched down Ethernet. I’ve got a CS degree from a state school.
I’ve coded in Basic, assembly, C, C++, scheme, Perl 4 and 5, python 1, 2 and
3, Java, JavaScript, PHP, Shell, TCL, Pascal, Fortran, Lua, and on and on.
I’ve contributed to open source small (chpasswd) and large (Apache, git).

I don’t ever recall running into someone who would treat me badly based on
what I do. I’m not arguing it doesn’t exist. I certainly believe the author. I
just haven’t experienced it myself. Have I just been lucky?

~~~
freetime2
I think the author was exaggerating a bit, or perhaps is more sensitive to
other peoples' opinions than most (e.g. the bit about crying in the bathroom).
In the past I have definitely worked at companies where "web developer" was a
completely different job title than "software engineer" (back-end developer),
and paid less money. Definitely second-class citizens. The industry seems to
have turned a corner with the advent of single page app frameworks, npm, etc,
and everyone these days seems to be "full stack", but I'm sure there are still
plenty of companies out there still doing it this way.

Also, from what I can tell people in academia and certain open source circles
are brutal to each other (e.g. Linus Torvalds). I'm sure they would shit on
the work I do every day... but I'm too busy to care.

~~~
js2
Weird (to me). I don’t care what a coworker makes or what their title is. I
don’t even care what my own title is. When a former employer let me choose the
title for my business card I went with “problem solver.” All I really care
about is having competent coworkers with integrity who are respectful to each
other. It’s not my job to judge the value of a coworker’s work.

~~~
userbinator
_It’s not my job to judge the value of a coworker’s work._

It most certainly is, when you have to work with and clean up the mess.

Much like there is the notion of "10x" programmers, there are also "-10x"
ones. Unfortunately they can stay around for a surprisingly long time.

~~~
js2
What I was trying to say by “value” is that it’s not my job to determine the
worth of a particular position to a company. i.e. it’s above my pay grade to
decide what a web developer is worth vs a backend engineer, etc.

Judging the quality of someone’s work _may_ be my job if I’m asked for peer
feedback, but even there I disagree. I feel it should be up to a manager to
determine whether his or her reports are doing good work. (I’m not a fan of
peer feedback for a variety of reasons.)

Of course if someone is incompetent, that’s a different matter. How I’d deal
with that is too circumstance specific to outline here. I’ve been fortunate in
that I can only recall a few such people.

~~~
zBard
Shouldn't everyone be judging (and improving) the quality of everyone's work
in a team, if you want the project to succeed ? How is a manager to judge the
quality of technical output other than peer feedback ?

~~~
js2
Sure, code reviews, architectural review, etc. First line managers should be
technical enough to know whether their reports are doing a good job.

------
zaptheimpaler
I was (am maybe.) one of those douches that looked down on webdevs. I was so,
so wrong. It came from fetishizing complexity and "smartness".

Even setting aside the issue of complexity, from a business perspective, web
dev is immensely valuable and only becoming more so.

And as for complexity, I always thought I could learn it easily because its
"not real CS" but man its a huge, complex, ever-changing ecosystem and not at
all easy. And it takes a much broader set of skills (both technical and non-
technical) than pure backend programming or whatever.

Mad respect to all web devs, and all devs. The sooner we get rid of the caste
system within software the better.

~~~
Zelphyr
There's also something to be said for us working hard at getting rid of the
complexity in web development.

------
fhrow4484
> It’s fucked up that being interested in this random programming language,
> not even for the reasons the fangirls love it

I'd argue that the real signaling here is the op showed genuine curiosity.
This is hard to fake, and the "fangirls" in this example could be people
pretending to like Clojure because that's the hip language/framework of the
day.

Maybe people respect you more for being genuine.

------
nine_k
A general advice: don't be, or position yourself, as a "programmer in
${language}". Your value proposition as an engineer is ability to comprehend
and solve problems.

Learn enough concepts from a few different schools of thought to be able to
make sense of a language in a reasonable time. Master a few, eventually.

An ability to use a semi-obscure language to solve a problem, and an ability
to _explain why it is superior for the task_ is indeed an important signal of
the above-mentioned abilities, and a costly one. Costly also for the employer
(in terms of your negotiated salary).

------
Tade0
The other day I was (lightheartedly, but still) asked: "what went wrong?" that
I had chosen front-end development even though I graduated from university -
because apparently these two things are related somehow.

I've found that while I can't change peoples' biases, waving the flag of "I do
stuff in Rust in my spare time" is enough to scare off at least the Java folk.

There's an interesting power struggle I've been caught in more than once:
Back-end devs describe their work as _very_ hard so that they're left in
peace, and the easiest way to strengthen that is to describe someone else's
work - front-end developers' in this case - as easy.

This way whenever a change in requirements occurs there's pressure to avoid
doing changes on the back-end in favor of changing things on the front-end. At
the same time interesting and "hard" things are meant to be done on the back-
end even though nowadays it's possible and sometimes easier to do them on the
front-end.

The fact that back-end devs are paid approximately 20% more naturally only
worsens this.

------
portal_narlish
This type of signaling is very real and present in functional programming
languages specifically. Java programmers feel insecure because they're not
writing Scala, the Scala people wish they were as functional as the Haskell
people, the Haskell people wish they were as advanced as the academic Idris
people.

It's a never ending comparison contest. And despite functional programming
having an objectively higher barrier to entry, it is entirely possible to
write absolute garbage code in an FP language as well.

~~~
Tade0
_it is entirely possible to write absolute garbage code in an FP language as
well._

I can attest to that as I in college had a course on functional programming
with Haskell and the way I did my assignment was awful to say the least.

------
freetime2
This article was written in 2016. A couple years later in 2018, the last
couple times I've heard Clojure mentioned it was it was to sarcastically mock
the trendiness of the industry. E.g. "My side project is a social media
platform that leverages big data, machine learning, and blockchain... and it's
written in Clojure".

Has Clojure already lost its cool mystique in the 2 years since this was
written? If so I think that further proves the point that assuming good/bad
things about a person's talents based on the tools they have used in the past
is foolish.

------
EngineerBetter
Maybe it's my age, and a youth of grunge, metal, hardcore and punk, but
whatever happened to doing what you love and not giving a shit what naysayers
think?

~~~
tmh88j
>but whatever happened to doing what you love and not giving a shit what
naysayers think?

I'm in my 30's and have used a lot of different languages and have worked in a
lot of different aspects of software development. As long as I'm being
compensated at my skill level, I couldn't care less what language I'm using.
I'm currently a web dev and the company I work for primarily uses PHP. To make
a long story short, a good friend of mine works for a huge university and if I
hang out with him during the week, I'm inevitably going to be around some
college kids. The typical icebreaker conversations of "what are you studying"
often times leads to chats with CS students. The amount of trash talking I get
from kids who haven't even graduated and have no professional experience once
they find out I primarily use PHP is astounding. Golang and Python seem to be
cool amongst college students, so once they find out I also have more
experience with those languages than they do with programming in any language,
I suddenly become cool and worth their time.

------
d0m
It's just probabilistic.. someone who's really into SICP and clojure is
showing signs of being interested in more than your typical minimum 9-5 job
requirements. It's not "THE" sign, just one of many. SICP teaches many things,
such as how to write compilers, how to think about abstractions or the
benefits of immutability. Is it so weird to think that someone's willingness
to get better and learn more is more likely to get more job offers?!

Here's one way to look at it, considering everything else equal, if you were
an employer, would you pick someone who knows X (where X is jquery or whatever
requirements you need) or someone who knows X + Y (where Y is some interesting
technology that may eventually turns out to be useful)?

------
GijsjanB
I think everybody who writes HTML, CSS and JS for a living experiences this.
For me it's the never ending jokes about "JS was written in 9 days" and
remarks on how easy it is to fix a problem, because "it's just CSS". I compare
it too subtle discrimination. I am a white male and I won't pretend to know
how it feels to be discriminated, but I do know how it feels too fight the
uphill battle of condescending remarks. And I also play my part. I downplay
what I do ("I build websites"), because I don't want to hear myself pounding
my chest.

~~~
gameswithgo
Javascript being sub optimal makes what you do harder, which implies you are
smarter. You aren't being made fun of, the language is.

And CSS is harder than programming!

~~~
GijsjanB
I think the assumption is: he's willing to code in a suboptimal language, so
he must be a suboptimal engineer.

PS. I use TypeScript, love it and don't believe it to be suboptimal.

------
pmichaud
This was entertaining to read, I like your style.

I also find the webdev low status pretty unjustified. It's true that it's less
mathy than other disciplines, but at scale, "webdev" is every bit as
architecturally challenging as anything else, and in some cases moreso because
of the sheer number of different technologies and stacks you have to be fluent
in to make it all work together.

~~~
fermienrico
I presume the hatred comes from the purists looking down on the entire mess of
web stack: PHP gets a bad rep, JavaScript is at the butt of every joke from an
embedded C developer, and the front end of the stack is a total nightmare -
CSS, w3c and all.

Web Dev is hard __precisely__ because of this mess!

~~~
sverige
I think it's the fact that it's a mess that makes people who strive to write
correct code and keep it all neat and tidy look down on webdev. It's sort of a
variation of the "clean" vs. "messy" roommate conflict. Messy loses status in
an industry that aspires to be "scientific." Not that it should be that way,
just my take on similar observations.

~~~
d3sandoval
You're definitely onto something here. "Messy" makes money. An obsession with
"correctness" can kill a business, especially in its early stages.

Fail early and fail often. Web dev has very low (technical) overhead and
aligns with "startup" mentality. The good news is that the customer has
different expectations every 6 months so it's not the worst thing in the world
to have a slightly different set of technologies to meet those needs.

------
munchbunny
I know this is a bit off topic, but I'm curious what stack you're using for
your blog. I like the minimalism of it, and I've been looking for a lower-
effort way to maintain something like that.

RE: your actual post, I've also personally noticed this, and a similar concept
that when you reveal that the bulk of your experience is on a "dinosaur"
language, you are automatically lumped into the set of less competent
programmers. It pretty explicitly informed my choice of programming language
for interviews.

Fortunately, I've found that there's a fairly direct correlation between
people you would want to work with and learn from and how much this signalling
affects them. Many of the programmers I respect most openly don't care what
your language background is, just that you can wrestle your tech stack into
good software. That's been my experience too: the good ones can ship great
software on pretty much any (reasonable) stack. The okay ones ship okay
software on pretty much any stack.

~~~
RexM
[https://github.com/daiyi/blog](https://github.com/daiyi/blog)

------
jxub
(2016)

Nice article, the self-deprecating/funny tone is rather sparingly found in
tech blogs (well, apart from Julia Evans).

------
johngalt
As a sysadmin at the bottom of the signaling hierarchy, I find this hilarious.
Am I managing a complex integration and operations task? Nah, clearly I'm just
someone who clicks through installers in windows.

~~~
SauciestGNU
I've worked as a sysadmin in the past. When I moved from a linux shop to the
first windows environment I administered I found that a lot of the windows
admins were "next next install" types. I'm sure that's not the case
everywhere, but as long as those people are called sysadmins they're going to
dilute the value of actual professionals.

------
Ologn
> I instantly get elevated to a respect-worthy status for free...Coming upon
> the Correct Signal by accident

I have worked at companies with open positions, and I have had to sort through
a lot of resumes. I also get an informal Bayesian probability heuristic in
seeing the resume and then seeing the person who wrote the resume. People who
are on the ball, who are the standard deviation above the rest, know what to
put on their resumes which looks impressive. People who are a standard
deviation below the rest not only don't know how to put together an impressive
resume that stands out, they don't even know how to put together a median,
average resume.

If I was hiring programmers with little experience, and everyone has the same
skillset - Javascript, ES7(8,9...), V8, Javascript framework du jour (React,
Angular, Vue, Node.js) - they all look the same. If someone has Clojure on
their resume as well, it sends a certain signal out. You still want to talk to
that person, and verify that they are a standard deviation above the rest, but
it sets you out from the pack. If we don't go by such signals from resumes and
the like, I don't know where to go from. The OP is correct though, once you
send up a signal you are a standard deviation above, then you have to follow
through and you start feeling compelled to be able to produce at a level a
standard deviation above.

------
dokem
It's really not that complicated. Technical people recognize technical
ability. Throwing together a CRUD site in some framework is really not that
complicated and can be achieved without really understanding what's going on.
When you started learning Clojure you got a little more respect because you
were broadening you're horizons. It's not some conspiracy systems programmers
have against web-only devs: The web dev learning curve really is not that
steep.

~~~
jordanlev
"Throwing together" anything using anything is not really that hard, but
understanding the problem, making trade-offs with limited time and budget,
writing maintainable and well-tested code, making something easy to use,
accessible, efficient... these are all very difficult to pull off regardless
of whether you're building a CRUD site or not.

I would also disagree that the web dev learning curve is not that steep...
sure to get something to "compile" (well, show up on the screen) is stupid
easy (<p>Hello world</p>)... but to actually make a functional, usable,
performant, efficient, accessible, beautiful site or app requires managing a
lot of complexity across a bewildering amount of environments and tools.

~~~
dokem
I'm not saying all web software is simple and all web devs suck. The fact is
that most web apps are CRUD, and not well designed or 'beautiful' and written
by devs that really don't care about SWE or broadening their skill set - just
collecting a pay check - and that's fine. The ecosystem of operating system,
compilers, distributed systems, embedded etc is a bit more rigorous because
the bar to entry is higher.

------
dizzystar
As a Clojure dev, I find this attitude absolutely baffling as well. I can
assure you that nothing at all about Clojure makes you a good dev. Nothing
about any language makes you a good dev.

Want to fast-track a new project into a convoluted legacy codebase few humans
can grok? Hire a bad dev and have them write in any language, it doesn't
matter. I've seen Clojure code bases passed through a dozen hands that no one
could figure out.

~~~
idontpost
I think the attitude comes from the fact that Clojure is almost never
someone's first language, and someone that went out of their way to learn it
probably learned it to solve some problem they had with another platform.

Those two factors right there weed out a certain bottom percentile of
developers.

------
jancsika
There was an apocryphal meme reddit where a carrier apparently sent a text
asking how the user would rate the reliability of the network on a scale from
1 to 10. The user replied, "9." The user was notified that there was an error
and the text didn't get delivered properly, to which the user replied, "8."

Signaling of the kind the author describes is information. If it truly is as
widespread as the author suggests it is valuable-- just take note of the few
people not signaling in this manner and then try to forge relationships with
them.

------
ChrisCinelli
For me this is another lesson about biases and ambiguity.

1 - Learn to recognize biases.

2 - Scrutinize your thoughts to limit the influence of your biases.

3 - Work on processes to limit unconscious biases.

4 - Since you cannot eliminate biases, use biases to your advantage.

------
nodesocket
The same is mostly true of two candidates one with go experience and one with
Node. The one with go will either get the position, or recieve a higher offer.

The exception might be demand based. PHP for example is generally sneered and
looked down upon, but if a successful startup is built using PHP (there are
lot's) then demand will be high for that specific expertise.

------
drawkbox
The deeper tech you know the more underground and probably experienced you
are. The more languages you know, you are probably better in all of them
because knowing multiple languages is better to see core parts like standards,
systems and patterns. If you know a functional programming language that also
probably means you have more experience in the deeper end, doesn't mean you
are better but you have been around and devs that have been around probably
are better.

It is the same with any subject, music and movies also has this, the more
underground music/movies and more original/classic movies you have seen the
more you appear to know. It is snobby but it is a signal that you
probabilistically are more experienced.

Even the OP posted how he came into programming with javascript and webdev,
then tried Clojure and went into SICP. The latter two aren't gateway
languages/areas. The gateway languages are javascript, java, C, C++, .NET,
Ruby maybe Python now are usually the first languages people know, learning
Clojure meant it was at least your second language, rarely do people start
with Clojure, so it signals you have gone deeper in knowledge and have
somewhat leveled-up even though day to day you seem the same self.

~~~
neonate
Not a he.

------
sethammons
A number of years ago, one of the co-founders at work asked various people,
"how would you feel if I said you looked like a $LANGUAGE programmer?" And he
substituted Perl, Ruby, Python, and PHP for $LANGUAGE.

We often mock up in our minds what it means to work in a language or framework
and bucket people based on these poor signals.

------
epberry
Well, this person "missed computer science" and picked up SICP to scratch that
itch. Then he did the examples in clojure instead of scheme! It would seem to
me that his colleague's signaling was correct. Would your average frontend
engineer engage in either of those two activities?

------
casion
What does "signalling" mean in this context?

I tried to look it up and failed to find a definition that made sense.

~~~
cuddlybacon
This is signalling in the economics sense:
[https://en.wikipedia.org/wiki/Signalling_(economics)](https://en.wikipedia.org/wiki/Signalling_\(economics\))

~~~
casion
Thank you

------
dev_dull
> _ack in the day (as in a couple years ago) when I told other software people
> I’m a web developer, I got treated like shit._

I see this a lot in our field unfortunately. "You program in X? A real
programmer would program in Y because...".

------
bastijn
I think the negative comments on webdev come from the php era where websites
were not much more than information portals. Nowadays webdev is more about web
apps, considerably harder to create and maintain. In addition the usage
expanded so scale became a thing. Over time it is more that the apps
traditionally seen as "true programming" moved to the web but the stigma is
only starting to fade.

On the writing style; hope you are more fun over lunch talks :). Hope it is a
jokingly written article because the dark writing style can easily be confused
with a negative attitude for people who can only judge by the article. Cheer
up!

P.s. the fangirl comment is a little out of place in an article on signaling
written in this tone. It's like you think less of people who love the language
for reasons that qualify them as "fangirl" in your eyes. Just saying.

~~~
DoreenMichele
The author seems to be female, so "fangirl" maybe isn't so out of place.

~~~
bastijn
Even so, fanboys, fangirls, it is all said in demeaning manner in this
context. I don’t think anybody would feel proud to be categorized in that
group of the authors collection.

------
bradknowles
In this context, the word “signaling” means ... what?

You know, sometimes I wish HN would do a bit more editorializing/subtitling
and less slavishly copying the damn stupidest subject lines that the original
author thought would be cool....

------
fiatjaf
Wait until you see all other markets.

Seriously, what's your experience out of "tech"? "tech" is the best signaling
environment ever created.

------
bbeonx
I dunno, to me the whole 'abc coders are xyz' is a heuristic. I value
curiosity and I find that devs that are solid at a wide variety of paradigms
often get there through curiosity. So if someone tells me they are learning
Clojure/Haskell/Scheme/Racket/OCaml/Br __nfuck /Scala/Smalltalk/etc I'll think
that's interesting and wonder what made them decide to learn the language.
Without further information it's a safe guess that they are curious and enjoy
learning new things/challenging themselves, things that I think are cool to
do. And people who do cool things are often times cool people.

But Daiyi's main point isn't that abc coders aren't xyz, but rather that
_other people_ are also xyz, and that if an efg coder becomes an abc coder and
are found to be xyz then they were probably xyz back when they were efg before
becoming abc coders.

And this point should be well taken. There is a common trend that analytic
subjects contribute more value than artistic subjects. This, in part, is due
to the phenomenon that analytic subjects have values that are easier to
calculate (...analytically, whence this is somewhat circular) while artistic
subjects have effects that must be evaluated more subjectively. A coder works
for a week and adds a new feature which increases marketability. A painter
works for a week and produces a painting that may eventually sell for $500 in
a couple years. But this undervalues the painter---the effect of arts on a
society is more than their retail value.

I think this in part describes why web devs/front end engineers are socially
valued less than coders in the development community. Their contributions are
harder to quantify and the problems that they solve are more diffuse and
subjective. This leads to "it's hard to quantify an efg coder's contribution"
being conflated with "efg coders contribute less".

But this is BS---I have yet to come across anything that isn't both an art and
a science if done correctly. In fact, this thought lead me to my own answer to
one of the great philosophical questions of the ages: "what is art?": I
contend that art is anything done well.

And as a computer scientist with a prior life as a musician I can assure you
that there is plenty of 'calculation' that goes into the arts. Sometimes this
is explicit. For instance, say that I have a closed voicing CFA (closed
voicing means everything is close together) and they are moving to B?G that
will then move to CEG. What do I want to replace `?` with? Well we don't want
F to move down (we try to avoid parallel motion, this can be thought of as a
sort of axiom) so F must either remain fixed (oblique motion) or go up
(contrary motion). We also don't want voices to cross (while voice crossing is
less taboo than parallel motion it is still often avoided, and our adherence
to this restriction makes our problem much easier). Since we are working with
a closed voice we have two (diatonic) choices: we can double the G or stay
fixed on F. Doubling the G is boring but staying on F creates dissonance (B to
F is a b5 and F to G is a M2). Luckily this dissonance is nicely resolved by
the subsequent voicing and we win music! Yay!

Notice something? This is just a constraint system! But rather than solving a
SAT formula we are adding in some subjective data to consider as well. I like
to phrase this as "In math, `1 + 2 + 3 = 6` while in music, `C + E + G =
happy`".

These calculations can also be done implicitly: say I'm taking a break over
some jazz tune and I'm hitting a turn around, a ii-V7-i. I have a vague notion
that I want to hit the "Billie Holiday special"
([https://youtu.be/KUCyjDOlnPU?t=2m59s](https://youtu.be/KUCyjDOlnPU?t=2m59s))
at the end of my break (a melodic 5-2-1 with a slight scoop up to the 2 which
falls back to the 1). I'm in the key of Bb and I want to play this around the
tonic at the 8th fret of my D string. Right now I'm in the upper area of the
neck and about to change to the ii chord which holds for two beats. I want to
leave a pause over the V chord to make the tag more interesting, so I have
exactly two beats to get from where I am to where I want to go, and I have to
quickly 'calculate' this transition in real time. This is, of course, very
natural since I've been playing for most of my life, and the 'calculation' is
more of a feeling than an explicit mental exercise. But underneath the hood
there is a shitload of precomputation that I did, practicing similar harmonic
and melodic situations, honing my instincts, expanding my ear, studying
theory, etc. I have just, in real time, solved a complicated constraint
problem in front of a room full of people. And they are all cheering for me!
See? People love math!

I'm sure I don't have to argue the reverse direction on this site (namely that
coding/engineering/mathematics/etc are all forms of art) so I'll omit this.

All this is to say that the distinction between the artists and scientists is
very blurry. I won't go so far as to argue that it doesn't exist since it
clearly does. But when I try to figure out what that distinction is I find a
number of qualitative differences but nothing quantitative.

------
endorphone
Often when people perceive signalling it is a confirmation bias -- they feel
something and think it exists in the behaviors of others. e.g. I'm doing
something I think is cool, therefore positive interactions are because of it.
I'm insecure therefore everyone is dismissive of me.

Having said that, I don't know what timeframe this person is referring to but
web development went from _extraordinarily_ hackish and ill considered (the
WebForm/php/intermixed render blocks era) to being a quite disciplined portion
of the industry. I remember when the overwhelming bulk of web developers
wouldn't grok that JavaScript had closures, and they didn't have to use
globals to store state during an event handler.

~~~
reificator
Rewriting your frontend every six months using the current trend isn't my idea
of disciplined.

------
h4b4n3r0
I was a hiring manager once. The mere mention of "off the beaten path"
languages on the candidate's resume signaled one thing to me: that the guy is
willing to put in the effort and learn something new. That gives you a leg up
over the horde of other folks who, all other things being somewhat equal,
don't really give a shit about their craft.

------
jstewartmobile
Coming from embedded, the web is such an awful platform. No versioning.
Polyfills everywhere! XML (satan's markup). Javascript... Every line of code
is a rabbit trail into "can I use" BS.

Web devs didn't make it that way. They're just the ones who have to live with
it.

We should be buying them lunch and thanking them for their service, not
crapping on them.

~~~
h4b4n3r0
Embedded has plenty of its own ugliness, though. It just doesn't change at
such a rapid clip. In fact, once you ship a thing, it's unlikely to change at
all. I appreciate this "do once and forget about it" approach, but at the same
time the tooling for embedded can be ugly AF as well.

~~~
jstewartmobile
Depends on your chipset. Last project I worked on was for the Z80 (only a few
months ago, strangely). Like buttah.

~~~
h4b4n3r0
Z80 was like a brief breath of fresh air in late 80s: hands down the most
intuitive assembly syntax I have ever experienced. I bet I could whip up
something decent in it even now, in a couple of days. What would one use to
compile assembly for it on Linux?

~~~
jstewartmobile
I used Zilog Developer Studio and C for that particular project, and there was
very little inline assembly required.

I don't think I've had to write anything 100% in assembly in 20 years, so no
idea what you'd use on Linux.

