
This Is 2016 Not 2012 - dshipper
http://danshipper.com/124690091
======
edw519

      1979
      Recruiter: "On a scale of 1 to 10, how's your COBOL?"
         edw519: "10."
      Recruiter: "Great! I have tons of work for you."
    
      1983
      Recruiter: "On a scale of 1 to 10, how's your data base?"
         edw519: "4. But I'm a 10 in COBOL."
      Recruiter: "No one cares about COBOL. I need data base people."
    
      1987
      Recruiter: "On a scale of 1 to 10, how's your Microsoft?"
         edw519: "4. But I'm a 10 in data base."
      Recruiter: "No one cares about data base. I need Microsoft people."
    
      1992
      Recruiter: "On a scale of 1 to 10, how's your Oracle?"
         edw519: "4. But I'm a 10 in Microsoft."
      Recruiter: "No one cares about Microsoft. I need Oracle people."
    
      1996
      Recruiter: "On a scale of 1 to 10, how's your HTML & CSS?"
         edw519: "4. But I'm a 10 in Oracle."
      Recruiter: "No one cares about Oracle. I need web people."
    
      2001
      Recruiter: "On a scale of 1 to 10, how's your Javascript & PHP?"
         edw519: "4. But I'm a 10 in HTML & CSS."
      Recruiter: "No one cares about HTML & CSS. I need back-end people."
    
      2009
      Recruiter: "On a scale of 1 to 10, how's your Ruby & Python?"
         edw519: "4. But I'm a 10 in Javascript & PHP."
      Recruiter: "No one cares about Javascript & PHP. I need Ruby & Python people."
    

Number of days without work since 1979: 0.

Lighten up, guys. If you can build stuff, learn, and work well with others,
you'll probably always be fine.

~~~
nirvana
True story:

Recruiter: "So you were writing Java code that talked to an Oracle Database,
right?"

Me: "Right"

Her: "What version of Oracle was it?"

Me: "8i I think"

Her: "Sorry, we're looking for people with 9i experience." (9i had just come
out.)

Me: "Really? You know SQL[1] is a standard and I'm writing Java code anyway,
we were using a ORM as well. I didn't even end up writing that much direct SQL
code."

Her: "Sorry, the client specifically said Oracle 9i -- I'm looking at it right
now. They're not looking for Sequal experience."

This is when I decided to always avoid recruiters if I possibly could.

[1] I pronounced this "Ess Que Ell" but she responded "Sequel" which I think
was the name of another database vendor at the time.

~~~
flomo
I see some value in this type of thing. If someone can't bluff their way past
a (non)technical recruiter, will they be able to handle a requirements meeting
or communicate status to a PM? Some engineers really can only talk to other
engineers.

What's the worst thing that could happen if you fibbed "Oh yeah 9i, I've used
that too."? You'd get an interview with the database guy who actually knows
the difference.

~~~
georgemcbay
IME, a lot of the best programmers are anal (often to a fault), and won't lie
in that situation.

Not because of ethics or morals but just because they refuse to say something
they know is technically incorrect.

~~~
mattmanser
Life just doesn't work that way. IME the people who fib a bit and embellish
when applying for jobs because they know they can, they do a lot better than
those who tell the truth all the time.

Reality is most employers put up fake 'requirements' because they don't know
how else to find 'smart, can learn, gets stuff done'.

~~~
MaxGabriel
Are you advocating lying in job interviews?

~~~
RollAHardSix
I think he's advocating 'advancing your skill-set'.

Oh And: Self-Marketing, it isn't _always_ evil.

But I'm being honest, sometimes you have to make yourself sound good to get
the goods.

~~~
cookiecaper
I think this is a valid to an extent, like accepting a title of "expert" in a
technology used by the company that you know well but are not actually a real
"expert" in. You and I know that the real experts are the guys constantly
replying to stuff on the mailing lists and making lots of significant patches
to the core of the project, but sometimes it's OK to condescend to use the
vocabulary of the plebes and just embrace "expert" within that context. You
aren't deceiving anyone here because it's just a different definition of a
word, and you are using the definition that the other people expect. In fact
one could say it's deceptive to insist on your specific concept of an expert
when you know that the people interviewing just need someone qualified.

But I think claiming experience with an explicit version that was stated is
going a little bit too far. It's important to clarify. Maybe someone actually
_does_ need help with the new platform, and after all, if they're having inept
recruiters do their pre-hire screening, you're probably not missing much
anyway.

There is a bit of line to fudge there but it definitely doesn't extend into
falsifying tasks or skillsets imo.

~~~
RollAHardSix
Definitely. And I suppose I should have clarified; the 'advancing your skill-
set' bit was a joke. Or at-least meant to have humour behind it. Sadly the
internets doesn't pass off the jovial nature of my voice. :D

------
mattmanser
This is absolute and utter nonsense.

Firstly a tiny amount of people know C, C++, Java, Python & Ruby. If you found
someone with that lot I'd probably hire them on the spot. That shows some real
skill, multi-linguists are actually pretty rare, discounting the obligatory
uni taught LISP and Javascript.

Secondly there's a constant need for people who make CRUD apps. Constant.
Almost every business can benefit from a totally custom app with it's own
special workflow. We tried RAD tools, we tried auto-generate tools, we tried
plugin workflow that would be 'user' edited. Turns out if you don't involve a
programmer it all goes very wrong.

After 20 years of promises from Delphi, VB6, Java, Rails, etc. the reality is
it's getting harder to make good apps because everyone's expectations only go
up. Bottom line is to make a CRUD app you still need a programmer. Almost
every business is realising they need a programmer.

The market's only going to get bigger, much, much bigger.

This reads like it's from a person who's never been out of the ivory towers,
hasn't actually been inside a real business.

~~~
dshipper
Thanks for your feedback. As far as the meaning of the article, I wasn't
trying to prove a point as much as elucidate something I was thinking about
yesterday: the skills you pick up through entrepreneurship.

For the past 4-5 years of my life (starting in high school and continuing
through college) I've been concentrating a lot of my time learning how to be a
better entrepreneur. That's to the detriment of almost everything else in my
life. And it's worth it to me because I love it. Even better still, it seems
like a pretty safe bet because worse comes to worse and I completely fail over
the next few years I'll still be able to get a job as a coder somewhere.

But the thing about being an entrepreneur is that it encourages you to get
marginally good at a wide range of skills instead of REALLY good at one area.
And so something I was thinking about is the potential consequences of this
decision on my life. This is what I came up with.

~~~
ziggerg
> But the thing about being an entrepreneur is that it encourages you to get
> marginally good at a wide range of skills instead of REALLY good at one
> area.

Being marginally good at many things show that no matter what gets thrown at
you, you'll pick it up fast. This is necessary in entrepreneurship and it
becomes ever more necessary elsewhere as the pace of software development
increases.

There's no such thing as "algorithms" skills anyway. No matter what skills you
have, you'll probably need to adapt them heavily to whatever new job you find
yourself in.

Yes, we're mainly startup-ish people around here, but I'm pretty sure that
even if I wasn't on, I'd hire a jack of all trades with a proven track record
over skills in "math" and "algorithms", whatever that means.

~~~
EToS
Most multi-skilled people i know (and i include myself) would not be happy
dedicating their time and talents to a single thing. Although its not a
technical limitation, i would say the reasoning makes sense to me.

------
sgentle
I thought this was great. Very clever. Every frontier seems like it will be a
frontier forever, until suddenly it isn't. Perhaps software is going to settle
down, start a family, and quit this cowboy nonsense. I don't think it'll
happen by 2016, but I'd be hard pressed to say it won't happen ever.

On the other hand, I like to think that maybe what we call entrepreneurship -
the hacker ethos, audodidacticism, uppityness, get-shit-done, rationality,
self-improvement, a weird mix of skills cut in a wide swath of "whatever I
needed to learn at the time" - is actually an overarching set of tools and
attitudes for turning your ideas and ambitions into real things.

I can't imagine a world where it's not useful to do that anymore, even if the
technology changes. It's true that the entrepreneur toolkit and the 9-5
megacorp toolkit aren't compatible, but every trend I can see points to people
needing less and less to get more done. Economies of scale are technological:
they shrink as the cost of production shrinks. Diseconomies of scale are
sociological: as long as people are still the same, they'll stay the same. The
advantages of being a large organisation might not always outweigh the
disadvantages.

What if it's not us that get left behind, but them?

~~~
guard-of-terra
Software might never end. It will grow and grow and grow and grow until
everything is software (or food). Your chair? Software. Your medicine pill?
Software. Your glasses? Software. Your boots? Software. Walls of your house?
Software. Your car? Software. The road you drive on? Software.

I think we've not even yet tapped this. Not only we're not over "peak
software" hump - it's not anywhere in sight, we're not even on the main
exponential growth curve.

~~~
grogs
Interesting ideas. I'd love to read some good sciene fiction novels based on
this.

It has the potential to be very relevant. 3D plastic printers are interesting,
but too limited at the moment. 3D concrete printing has existed for a while
though, that can definitely allow software to be/create the walls of your
house.

For medicine it's just a case of getting the simulation down. It'll also be
interesting if robots get better. There's a lot of boring lab work in the
natural sciences, if this can be automated and controlled by software... Your
testing can be done by software... Genetic algorithms could be used to find
cures to things. (Although using robots to physically test would presumably be
much much slower and more expensive than a computer simulation. :( )

~~~
andrewflnr
I think by "your walls are software" he meant that your walls are controlled
by software. Think heat management, view screens, maybe re-arranging them with
a remote. But they're probably constructed with software, too.

~~~
kragen
I think he meant more than simply "your walls are controlled by software".
Think of Utility Fog: your walls could be made of hundreds of little robots
linked together, and can be reconfigured to a different shape in seconds under
the control of software. The robots are sort of like three-dimensional pixels;
the shape they assume at any given moment is just the shape that the currently
running software gives them.

Or perhaps dozens of little robots built the wall in the first place (by
lashing together sticks and filling the space between with gravel, say) under
software control, and can disassemble it and reassemble it in a different form
under software control in an hour or two. In this case the sticks and stones
are the pixels.

------
chrisrhoden
Wrong, wrong wrong wrong.

It's so easy to forget how much we had to learn to build websites. It's
incredibly easy to forget how much time getting the event loop or even MVC to
click took. It's easy to fail to remember how hard it was to learn the 5
different languages required to build the app we made in a couple of weeks
over the summer. But those are skills, as challenging to learn as algorithms
and big data.

As someone who has had to learn data warehousing very quickly, before being
shown the joy of such things as MapReduce, before being slung into serious
number crunching performance eeking territory, I can say with absolute
certainty that, as "web scripters" or entrepreneurs, we have a huge advantage
- we're the people who taught ourselves how to make things instead of
regurgitating what a CS program teaches us.

I started a CS program at a decent university. While I think it's true that
ivy league and extremely competitive programs might force one to think about
this stuff the right way, State University absolutely do not. Most of the kids
coming out of there will not be as qualified as someone who has taught
themselves how to build a business.

Most importantly, If you're coming out of college, there is approximately a 0%
chance the folks hiring you will have any expectation that you will be useful
for several weeks while you get up to speed, which is plenty of time to become
competent enough to be dangerous.

~~~
dshipper
I'm by no means suggesting that a CS degree is the only way to get good at
this stuff. In fact, I think that most of the best programmers I know didn't
graduate. The difference is concentrating on being an entrepreneur vs
concentrating on being a coder.

This part is reposted from another comment because I think it's important to
your point:

As far as the meaning of the article, I wasn't trying to prove a point as much
as elucidate something I was thinking about yesterday: the skills you pick up
through entrepreneurship.

For the past 4-5 years of my life (starting in high school and continuing
through college) I've been concentrating a lot of my time learning how to be a
better entrepreneur. That's to the detriment of almost everything else in my
life. And it's worth it to me because I love it. Even better still, it seems
like a pretty safe bet because worse comes to worse and I completely fail over
the next few years I'll still be able to get a job as a coder somewhere.

But the thing about being an entrepreneur is that it encourages you to get
marginally good at a wide range of skills instead of REALLY good at one area.
And so something I was thinking about is the potential consequences of this
decision on my life. This is what I came up with.

~~~
csomar
Well, my opinion is that the Internet will just get bigger than ever.
Opportunities made up by huge platforms (like Kick Starter) will mean that
you'll have the advantage of making money faster and more than anyone else.

You'll be able to leverage your entrepreneurial knowledge with such platforms.
Think of Facebook, Twitter and the AppStore. How many times they made it
easier to make money starting extremely small and almost at no cost.

------
adrianhoward
I've had this kind of argument presented to me every few years since the
1990s. It was probably happening for the forty years before that. Soon we'll
need "real engineers" - and these fly by night part timers who don't have a
"proper" background in computing are doomed! DOOOMED I SAY!!!!

Tosh.

I'm a guy who has got a subject specific degree - more than twenty years ago
now (1st in Computing and Artificial Intelligence for those who care). I was
selling software before that, and have spent most of the time since in
industry.

What have I noticed since then? Amount I've actually used the "hard" CS stuff
I learned there - close to zero. Correlation between "being good at math" and
being a successful developer - basically zero. Correlation between having a
degree and being a successful developer, after the first few years in
industry, basically zero.

I don't see that magically being different in the next four years.

(Curiously the "being good a math" thing seems to be something US centric.
I've not noticed the same focus on that with folk in the UK or elsewhere in
Europe).

The space that developers get to play in has got larger and larger over the
last 30 years. I don't see that changing. Quite the opposite in fact.

Sure some of that is going to be in areas that really need some hard-core math
or engineering skills. Those jobs are out there now (embedded development is
exploding again, big data has been around for years, the clever end of game
development). I'm sure they'll be more in the future.

But there are also many, many jobs out there that don't. Many, many jobs that
involve developers being good generalists, or having cross-over with UX and
design, or having a decent understanding of economics, or understanding big-
money. I'm sure they'll be more of those in the future too.

One thing we're really excellent at is wrapping up complicated stuff in
abstractions that are stupidly easy to use. We're excellent at de-skilling our
own job. And every generation whines that the previous one can't build their
own computer / write microcode / write assembler / manage with less than 1k
RAM / cope without a visual editor / manage their own memory / build their own
OS / write their own application stack / whatever.

Yet people somehow carry on building new and neat things.

If you're a hard-core CS/algorithms person - go for it. They'll be lots of
work for you. If you're not? Go find another niche. There are many, many out
there. Be a good developer. Have fun. Make neat things.

And thus ends this particular Grumpy Old Man's Saturday Rant :-)

~~~
SomeCallMeTim
To follow up with a Grumpy Old Man Postscript:

Reading Commications of the ACM (most recently, [1]), there's been an ongoing
problem getting enough people into computer science programs (in large part
because of the broad fears of "outsourcing"), and the projections are that
EVEN MORE graduates will be needed through 2020. [2]

So yes, many times yes: This article is completely and totally wrong. And as
adrianhoward says, it's the same sentiment that my parents chided me with back
in the 90s, and that I hear all the time from people who imagine that the
silver bullet is just around the corner that will make it so that we need
fewer rather than more programmers. (FWIW: My degree is in "Cognitive
Science", the "other CS", and I haven't had problems getting jobs when I've
wanted one.)

And as an aside, if you look at the graph with yellow and brown bars about 2/3
of the way down [2], getting a job where math is the primary required skill
looks like a slog (looks like about 2x as many math grads as math jobs), while
in order to hire people AT ALL, companies are going to have to ignore whether
they have a computer science degree, because there are nearly 3.5x as many
jobs in CS-related fields as there are graduates in CS.

Based on these numbers it looks almost inevitable that we'll see echos of the
"You've put together a web page? By yourself! You're hired!" dot com boom,
just because it will be so hard to hire anyone at all.

So, while the story was cute, its premise is FUD that has a chance of scaring
people away from CS at precisely the time that we need more people in CS. OK,
end rant.

[1] [http://cacm.acm.org/blogs/blog-cacm/148620-hot-job-market-
fo...](http://cacm.acm.org/blogs/blog-cacm/148620-hot-job-market-for-computer-
science-graduates/fulltext)

[2] <http://cs.calvin.edu/p/ComputingCareersMarket>

[edit: typo]

~~~
jseliger
_there's been an ongoing problem getting enough people into computer science
programs (in large part because of the broad fears of "outsourcing"),_

Then what fields _are_ these people going into? Law? I hope not:
[http://www.slate.com/articles/business/moneybox/2010/10/a_ca...](http://www.slate.com/articles/business/moneybox/2010/10/a_case_of_supply_v_demand.html)
. Medicine has its own problems too. Are they majoring in the humanities?
Getting bogus business degrees?: [http://www.amazon.com/The-Marketplace-Ideas-
Resistance-Unive...](http://www.amazon.com/The-Marketplace-Ideas-Resistance-
University/dp/B0058M7PN0/ref=sr_1_1?ie=UTF8&qid=1332223647&sr=8-1) ?

It might just be that undergrads have serious information asymmetry problems,
of the sort I tried, probably futilely, to correct here:
[http://jseliger.com/2012/04/17/how-to-think-about-science-
an...](http://jseliger.com/2012/04/17/how-to-think-about-science-and-becoming-
a-scientist) , but I wonder how these kinds of asymmetries can really persist.

~~~
dangrossman
Part of the problem is that we don't know how to teach computer science to
students that haven't already been programming for years before college. The
major has the highest first-year dropout rate.

[http://www.siliconrepublic.com/innovation/item/18532-compute...](http://www.siliconrepublic.com/innovation/item/18532-computer-
science-courses-ge)

<http://dl.acm.org/citation.cfm?id=1151604>

That _suggests_ that one reason there are so few CS graduates despite demand
is that those who enter CS programs because of said employment demand, and not
because they are already interested in programming, don't make it out with a
CS degree.

~~~
srconstantin
With respect to CS in particular, I think it's different from all other school
subjects in that it is and has always remained a predominantly self-taught
subject. You don't really get "taught" to program.

(I think this may be part of the reason that while there are increasing
proportions of women in all the other sciences, the proportion of women in CS
is dropping. Girls are statistically better in all school subjects than boys,
and tend to be more diligent at homework and so on. Math and science fall
neatly into that paradigm; programming doesn't. You get no gold stars from
grownups by programming. So a lot of people who have the problem-solving
aptitude to be good programmers never actually get started -- because nobody
TOLD them to.)

------
lchengify
So I've done a bit of hiring, and my message to you is as follows: If anyone
actually does this to you in an interview, be glad they acted like that
because you shouldn't work for them anyway.

For companies who have their shit together, this scenario is unlikely for a
few reasons:

1\. Experience, not classes or school, is paramount. We're hiring. We need you
to do X. Have you done X or things close to X before? If so, you're better
equipped to do X than anyone who has only taken a class on doing X.

2\. School does not indicate coding skill. I've met many people who
(supposedly) went to every class who couldn't code their way out of a paper
bag.

3\. Academic coding != production coding. The two are light years apart, and
the latter is worth way more than the former.

4\. Classes don't give a good signal on the ability to execute. Execution
means doing what is necessary so you can ship. It means knowing there's a
first 90% then a _second_ 90% that looks like 10%. Finished, launched projects
show execution. School do not.

5\. Algorithms are fantastic and useful, but not in the ways they taught you
in class. If you can use Google or use your copy of the CLRS to find what
you're looking for, then engineer it into your solution, that's almost always
more than enough.

6\. If entrepreneurship is ever 'just applauded' in your interview ... run.
Don't work there. Entrepreneurship indicates that you know this is a business,
and that engineering doesn't exist in a vacuum. It means you can balance sales
concerns against user concerns against design, UX, product, scale, and not
just do things and throw them over a wall. It means you can be trusted to make
decisions that add value and not just code.

------
maxklein
This problem will be faced by many developers soon. The Internet is huge. Very
large. The big companies are going to be dealing with huge data. You'll need
to understand algorithms and math, and frankly, this stuff is a bit difficult
to learn on your own. I thought I knew it all till I went into the algorithms
class - that when I realized that not only did I not know it all, I was not as
smart as I thought I was, and I would never have had the motivation to go
through with this if I had not been forced to. And that goes for many
developing.

Programming is a scarce profession now, but the simple stuff will soon be done
by too many people. Software will become a real engineering task. In 20 years,
the age of the code monkey will be gone.

~~~
kolinko
I think it will be the exact opposite. As computers take over more and more
jobs from us, we will need less "office workers" who know how to shuffle
documents around, and more workers with programming skills.

You want to be a mathematician? You need to know how to program. You want to
be a "secretary", you need to be able to dig through your boss's e-mail using
regexpes when he needs to find sth, you are a dentist - you will install your
own scripts on the website because you know how to do it from high schools.

In 2016 (or 2012) it won't be "oh, we need more skilled programmers", it will
be "sure, you know programming, everyone knows, but what really you know?".
Programming will have the same place on CV like "MS Office", or "keyboard
typing" has right now. No big deal if you know it, but much harder to find
your job if you don't.

Of course there will still be place for real computer experts - algorithm
designers et al, but the basics will be known to more and more people.

~~~
encoderer
Give this test to the next 5 random non-technical friends and family you talk
to:

A = 1

B = 2

C = 3

A = B

What does A equal?

I'm not saying people can't be taught. But think about how big the workforce
actually is, think about how widespread MS Office skills are. For every power-
user analyst and project manager that's really taking Excel out for a workout,
there are 10, 20, 50 people who use Office in every day non-challenging tasks.

I've given that little test to my MBA wife and a GP family member and several
other people. Hardly anybody gets it right.

Edit:

The x-factor here, btw, that determines whether or not somebody understands
it, is whether they see that assignment is happening, not some sort of "wha? 1
equals 2? what is that?" And those that didn't just _get_ it, even after I
explained assignment they were just as puzzled. Just the concept of variable
symbols confused and (i presume) disinterested them.

What we do here everyday, this is difficult, challenging stuff, that I don't
think most the workforce will _ever_ understand. Instead, people like us will
be busy for decades to come, building tools so they don't have to.

There was a time when machines were new concepts versus simple tools. You
could say, in the early stages of the industrial revolution, that soon
everybody would understand and be able to fix their machines. But machine
complexity has out-paced the desire and ability to learn those skills.

Software is no different, I don't think.

Edit Two:

[http://www.codinghorror.com/blog/2006/07/separating-
programm...](http://www.codinghorror.com/blog/2006/07/separating-programming-
sheep-from-non-programming-goats.html)

~~~
hdevalence2
I don't think it's unreasonable for people to assume that = means equality,
not assignment.

Edit:

In particular, the link posted in the second edit has a rather poor test using
a and b, because it uses = in two different ways with no indication that the
meaning of the symbol has changed. Maybe the problem with the test isn't just
the people, it's the sloppy notation that assumes people with no programming
background are able to infer when we mean equality and when we mean
assignment.

~~~
encoderer
The population that took that test were self selected computer science
undergrads!

And even after three weeks of instruction most of the people who didn't
understand it immediately never understood it. I'll quote from the article:

"Either you had a consistent model in your mind immediately upon first
exposure to assignment, the first hurdle in programming-- or else you never
developed one!"

My wife is a brilliant woman, fantastic at what she does. The GP I mentioned
in my post is a very good doctor who had no problems getting into a medical
school, passing his boards, or running a successful practice. But that doesn't
mean that everybody is meant to be able to understand the abstract concepts
you have to master in our line of work.

------
jdlshore
"The problems we’re working on involve in-depth data analysis that require an
extensive math and algorithms background."

I can see why a college sophomore would fear this response. But in my 18 years
of programming, I've seen that the vast majority of software development isn't
about the stuff they teach you in school. It's about design, collaboration,
languages, libraries, and frameworks. It's about working around crazy cross-
version incompatibilities, solving heisenbugs, and keeping everything
maintainable. Math and algorithms? Feh. Not the real issue.

Let's assume the startup bubble bursts and programming jobs become scarce.
There won't be any kindly interviewer at the large bureaucratic companies.
There will just be a faceless HR person with a keyword-searching database
saying, "No CS degree--no interview."

But personally, even if the startup bubble bursts, I don't see the demand for
programmers going anywhere but up. And that entrepreneurial background will
only be an asset at the smaller, more interesting companies.

~~~
randomdata
Besides, starting your startup on the downside of the bubble is exactly where
you want to be. You don't get rich starting up at the peak. If you think there
is a bubble about to burst, save up everything you can earn right now, and
then start your business after the pop.

------
InclinedPlane
Couldn't disagree more.

There will always be more people, and more need for people, writing high level
application code, glue code, and "spit-and-polish" code than people writing
deep, difficult systems code. Always.

Here's the thing, in computing the advances in tooling and performance
continue to pile up at an amazing rate. In 2016 it will be even _easier_ to
roll out a product built by a couple "web guys" with little in-depth technical
knowledge that does an amazing amount of business and has a profound impact on
the tech world. Indeed, in time it will be possible to run ventures which
support billions of active users per day on incredibly cheap hardware and with
a rather modest amount of dev-hours behind them.

Imagining that the future is only for hard-headed systems programming is the
time honored ego-stroke of the hard-headed systems programmer who sees all of
these "dilettante" "web guys" doing amazing work in the real world and making
an impact and money doing so. But that's just a fantasy. The truth is that
software is art. It's often a thousand times more valuable to write software
which communicates with users and evokes in them strong feelings and strong
connections than to write software which is technically pure and strong, but
sterile, impersonal, and useless.

------
dhawalhs
There is a way to be prepared for 2016:

<http://www.coursera.org/> <http://www.udacity.com/>
<http://www.mitx.mit.edu/>

~~~
keeran
I found <http://khanacademy.com> extremely helpful when trying to catch up on
the math involved in the ml-class / ai-class material.

------
16s
Knowing data structures separates the men from the boys. If you do not
understand the difference between a tree (C++ std::set for example) or a hash
table (std::unordered_set) you have placed yourself at a disadvantage. You can
learn these things, they are not rocket science and you don't need a CS or
math degree to do so, but it's important that you do learn about them and when
to use what data structure especially if you have to scale to more than you
ever thought possible. Most all programming languages have containers (lists,
sets, dictionaries, maps, etc.) that are backed by various data structures. So
you can experiment and learn.

~~~
gdubs
Very true. My objective-c skills got dramatically better after spending some
time learning the stl in a c++ project. Reading about where you would want to
use a deque vs some other container was enlightening, and upon returning to
objective-c I started to pay attention to its various containers and design
patterns in a whole new light.

------
orbitingpluto
Barrier to entry is going down, not up.

No one cares if you can do an algorithmic analysis on different ways of
sorting to choose the most appropriate way. These days it's dynamically _built
into the function._ Just call sort.

Educationally there's not much of a difference between a philosophy, math or
computer science degree. All of them are doing the same thing - logic.
Philosopher approaches it classically, mathematicians do it formally, and comp
sci do it ad hoc or practically. Each has it's virtues when you design or
program.

~~~
gdubs
That's a pretty bad example, since sorting is exactly the kind of problem that
really depends on the application. Eg, depth sorting objects in a game would
run quicker if you pick an algorithm based on the fact that consecutive frames
typically don't change that much.

------
architgupta
I am reminded of Steve Yegge's excellent post on "Math for Programmers" :
[http://steve-yegge.blogspot.in/2006/03/math-for-
programmers....](http://steve-yegge.blogspot.in/2006/03/math-for-
programmers.html) (posted multiple times before on HN).

There are literally 100 cool things to learn and try: Like this weekend I
thought about writing a small program for the DCPU-16, trying Meteor, making a
small app using firebase, etc etc. Possibly, learning more Math has a higher
long-term ROI.

An another note: When everything melts down, it might be a good time to start
another company, rather than look for employment though.

------
paulsutter
The critical skill for creating value is understanding the customer PLUS the
80/20 rule of software development. A creative technical guy can come with an
elegant MVP if and only if he is attuned to real users.

This will be even more true in 2016 than in 2012.

A nontechnical MBA is just blocked from this insight. And a great algorithm
guy who is tone deaf to users is likewise blocked. Even together, they are
handicapped compared to the guy who sees both sides.

The most powerful problem solving of all is a group of people who can see both
sides. Pud's thread about 400K users and what to do next was stunningly
wonderful to me. You don't see that on stack overflow and you don't see that
in the Harvard Business Review. You see it here on Hacker News.

------
Dn_Ab
I see in this thread that a number of people are talking past each other, each
with a different subtle sub definition of the word "know".

I know of 7 basic subcategories of know - all but the last susceptible to
phrasing:

(1) Knowledge that is immediately accessible at great depth and can be
traversed quickly

(2) Knowledge that is not immediately accessible but resides in the
unconscious. It surfaces in dreams, showers and intuition.

(3) Knowledge that is not immediately accesible but can be so quickly
understood from a search (physical or digital) that it might as well have been
remembered. Truly, the old fashioned idea that all your knowledge can only be
kept inside your head is quaint.

(4) Knowledge that is not had but can be quickly acquired due to the
similarity of the underlying structure to already possessed knowledge. With
speed of acquisition proportional to similarity.

(5) Knowledge that is not had but can be acquired due to available learning
strategies, knowledgebase and skill in acquiring knowledge.

(6) Knowledge that will be had in the distant future

(7) Knowledge that can not be gained due to difference in interests, lack of
motivation or sufficient strength of reason, entrenched mode of thinking and
set of beliefs which inhibit deftness with abstraction and for a very small
few - reasons of biology.

Knowledge that cannot be accessed by Human Brains.

For many cases, the level 4 definition of knowing is sufficient and anything
above should be good enough for almost all problems.

------
csomar
You push your super-repos to the datahub, and link to them on your resume; as
we are doing it today but putting repositories in Github instead.

The point is: A university degree no longer mean the accredited person is
capable. It has lost its value, that's why some recruiters are turning to
GitHub and other solutions to find skilled people.

To assure the author: I don't hold a University degree, and I live in a third
world country. I was offered, a week ago, a software dev. position for 30% of
what a fresh Engineer (5 years of study) would get. The recruiter insisted
that it was a starting salary but it was only a fraction of what I make
online. He told me that the position is available anytime I changed my mind.

4 years earlier only, in this same place, you'll be laughed at if you don't
hold a University degree whatever skills/capabilities you can show off to the
recruiter. Don't dream getting that job, and even if you did, you'll be paid
only a third or less than your colleagues.

------
hirak99
I fit that storyline background perfectly. With one major exception, I got a
job into finance risk management from campus, because my major was in
Statistics. (Though after 8 years of experienced, I learned that statistics is
not really used in such jobs - anything more than regression is not understood
well (even regression in some cases), and 'intuitive' non-statistical
solutions are always sure to be better received and sold despite offering far
subpar solutions - but I digress.)

I recently got a call from Google for my rank in Code Jam. I explained my
position and expressed my desire to work on programming. The HR, a very nice
person, made it all but definite that because of my background and experience,
I should look for a risk analysis role and not coding. He is still willing to
set up a programming interview if I insist... but I don't know what to do :(

------
grannyg00se
This is a nice little story, but I don't see what the problem is. The hiring
manager states:

"The problems we’re working on involve in-depth data analysis that require an
extensive math and algorithms background"

So if you know a bunch of programming languages and built some fairly
successful websites, why would you even apply for that job? You're and
entrepeneur and a "general programmer" at best or maybe even a "web
programmer" only just good enough to hack a CRUD site together.

If the job posting actually indicated the need for in-depth data analysis with
extensive maths and algorithms then this applicant wasted everyone's time by
even applying.

I suspect that there is some assumption that the hiring manager doesn't know
what she's talking about regarding the in-depth data analysis but I don't see
where that assumption would come from.

------
oliland
"Computer science is no more about computers than astronomy is about
telescopes." - Edsger Dijkstra

------
Mc_Big_G
Normally I get this kind if post but this one not so much. Some knowledge
isn't something you just "pick up". I'm a software engineer now but my degree
it's in mechanical engineering. If I were going for a M.E. job that required
advanced knowledge if thermodynamics, heat transfer, calculus, statistics,
etc, it would be ridiculous to say that I had started and run a few car repair
shops and even ran a high end racing team where we built our own custom off-
road truck and won the baja 1000. It's amazing experience but totally not
applicable and doesn't mean I can just pick up the requires skills. Am I
misreading this? The recruiter doesn't seem clueless.

~~~
buff-a
I think you hit the nail on the head. The number of brogrammer entrepreneurs
out there is huge. They are equivalent to Big Jims Baha XTReme Racing Shop
that slaps lifted suspension on other people's 2WD Tundras.

But then there are a few start-ups who are designing and building fuel
efficient diesel engines, or fully electric cars built from the ground up.
These guys will absolutely know thermodynamics etc.

So if someone built "mycollegematehavingsex.com" and got 40,000 sign-ups via
launchrock, who fucking cares. If they made twitter-for-squirrels and got
10,000,000 active users before the Great Nut Famine of 2015 killed the
company, then there may conversations to be had.

------
pnathan
If you don't know algorithms, I certainly wouldn't want to hire you _today_.

------
jiggy2011
Ok, I'm going to throw out an open question to the HN community here. I'm a
working programmer working mostly on web dev/internal apps for an established
company. However I do most of the work on my own rather than in a team and
have never worked on a team of more than 5 people (and even that was brief).

I am an OK Java & PHP programmer with some Linux Sysadmin experience (mainly
running servers for apps I have built). I have basic CS credentials but am
mostly self taught (starting with BASIC -> PHP -> Java) and have messed around
with a bit of Game Dev & System programming in my spare time but nothing earth
shattering.

I want to take the "next step" but my skills in math and Big Data analysis
type stuff are fairly poor by HN standard, I am quickly approaching 30 and
have very limited money.

Should I:

A) Take a pure math degree (possibly also with stats) to improve my overall
math skill in the hope that this will open more doors for me in stuff like NLP
, Big data etc (but also cost significant money+time).

B) Hack on existing open source projects to increase my knowledge of working
on large & complex code bases (significant time cost buy little money
cost).Possibly compliment this by working on the free online courses from
Stanford etc.

C) Work on my own projects in the hope that I can build something cool that
will get me recognition in some way.

D) Try to improve other skills outside programming/math and become more "well
rounded".

Discuss.

~~~
anandkulkarni
You should take one of the free online courses from Udacity, Coursera, or even
University of Reddit, on algorithms and machine learning (separate topics).

A pure math degree will not teach you the skills that you are specifically
after: it is pure mathematics.

~~~
jiggy2011
That is true, but if many jobs will be in big data analysis I would think that
this would be rewarding to people with knowledge of statistics more than CS.

------
petercooper
Paraphrasing Kenneth Williams from
<http://www.youtube.com/watch?v=CdDtwc9HA7s>

It's frightening to think with modern medicine and all the technology
available, they can't really help you. In the old days, we were better off
because now they're all "specialists." Everyone's getting better and better at
less and less. Eventually someone will be _absolutely amazing_ at doing
nothing.

------
Aloisius
My knowledge of how a red-black tree or how hidden markov models work or that
a quicksort is n^2 worst case and n log n typically has saved me literally
_hours_ of searching. Over the course of my 15 year career.

Good lord, DADS + ACM + CiteSeer and a healthy dose of curiosity and
intelligence is enough to get most people through 99% of the "hard" stuff
you're going to see even in the era of Big Data.

~~~
mjn
I agree you can self-teach a lot of it, and a lot of it isn't needed in a lot
of jobs, either. I somewhat disagree on the last part. I think there's a
significant amount of work in Big-Data-related areas where not having a solid
knowledge of statistics greatly increases the odds of doing something
completely wrongly, or interpreting the results wrongly. On the other hand,
there's a significant amount of work where deep knowledge of statistics is
optional at most. But companies like Palantir do seem to put a strong emphasis
on the statistical background of people they hire.

------
vectorpush
Honestly, CS is not that hard, it's just that a PDF/textbook isn't as sexy as
1080p Rails tutorial. If an experienced developer spends 2-4 months working
through a quality textbook (Skiena, Cormen etc), then he/she is already
significantly more qualified than _most_ four year CS degree holders.

------
gavanwoolery
I think people are missing the point of the article -- I think that what the
author is getting at is the market might be soon flooded with CS graduates
with a nice set of accomplishments. Probably not by 2016, but at some point
its going to become more competitive I am sure.

------
jeffreymcmanus
This is like saying every plumber needs to know how to mine copper and smelt
it so they can manufacture their own pipes. There are different kinds of
software engineers, and the kind that you happen to be may not necessarily be
the kind that's in demand by every employer.

------
keithpeter
Disclaimer: I'm not a programmer

Have a look at puredata.info and Eastgate Systems' Tinderbox, especially the
export template definitions and use of 'agents' for the latter

Why can't I have a visual flowcharty type thing that I model a business
process in, click a button, and generate a Web app?

~~~
rcfox
Having worked with Pure Data before, I can tell you that it is pretty painful
to use for anything substantial. When you've got 3+ lines crossing other lines
and coming into the same terminal, it's next to impossible to keep track of
how stuff works. You spend a lot of time wiggling components to see how their
attached wires move.

------
scythe
As a theoretical physics grad student, I have deep knowledge of math and
algorithms and things of this nature (but mostly as related to physics), and
I've worked in the world of corporate engineering and programming, and from
what I've seen -- having a lot of deep knowledge is not really the norm and
it's not really the expectation. Usually, if something difficult or
complicated is required, you paper over it with Mathematica or Maple or you
use one of the algorithm libraries released by e.g. LLNL or you use ANSYS,
things like this that do most of the heavy lifting automatically. Even in
experimental physics -- people who have doctorates and loads of experience and
such -- you don't typically run across anyone writing that sort of thing from
scratch because the majority of problems fall into some categories which can
be attacked by a lot of the fancy tools out there these days, and so training
to do this stuff doesn't require the intuition and abstract knowledge that
might go into understanding the algorithms behind the curtain. To some degree,
this drove me away from having an ordinary career that actually pays a living
wage and towards academia. The other thing is that you can learn to use the
libraries in two weeks or less and it's pretty easy to declare "I have some
experience with *" if you've tried it out on your own and can do something
with it.

And as much as I would like to see a world where people take the time to learn
theory, people are lazy, and that sort of thing isn't always viable (See also
Sikha Dalmia's Gandhi Rule:
[http://www.thedaily.com/page/2012/04/19/041912-opinions-
colu...](http://www.thedaily.com/page/2012/04/19/041912-opinions-column-
buffett-dalmia-1-3/) \- if you don't learn it, don't expect anyone else to).
The consequence is that the computer is often smarter than the people using
it.

Somehow, I don't really see this resulting in job losses, though, unlike many
people claim. The variability and the amount of problems to solve usually mean
that there is someone doing some design work, even if it is not on a very
serious technical level. It also opens up new possibilities for startups, and
I'm sure Stephen Wolfram would talk your head off about it...

As regards "cowboy nonsense": you don't always have to attach negative
behaviors to ordinary things. Getting exercise and having a social life can be
good for everyone, not just douchebags.

------
srconstantin
I'm not sure if this article is saying people with more CS theory and math do
better than people with more work experience, or if it's saying it's hard for
everyone to get hired.

~~~
babarock
This article is saying that web development (using frameworks a la Rails)
might be enough to get you a job today, but as soon as the web-trend passes
other skills will become needed. Recruiters are becoming more and more stupid
(not in the derogatory sense, they just do pattern matching between job offers
and what's written on candidates' resumes).

This article is a reminder that it's never too soon to start adding different
skills to your arsenal.

------
Drbble
Dans premonition is actually one step behind. Knowing the mainstream skills of
2016 will not be enough. But you will have enough room in your inventory
because the mainstream skill of 2012 will be irrelevant.

10 years ago if you learned Perl on the side it opened doors to great jobs.
It's always the way that learning the up and coming not yet mainstream skill
will give you an edge in employment. Data analysis is the skill for 2012.
Something else will be in 2016.

------
davemel37
Recruiter: I have access to great CS people I can place at your company.

Company: Sorry, some dude named Dan Shipper hacked the recruiter industry 4
years ago.

Recruiter: So, do you have any jobs for me myself?

Company: We need hackers, on a scale of 1 to 10, how good of a hacker are you?

Recruiter: only a 4 but my cleaning toilets skills are a solid 10.

I would hope by 2016 someone finds a way to make recruiters obsolete. Sounds
like a perfect process to Hack with way too much inefficiency.

------
stoolpigeon
It's like my anxiety closet in print. uncanny. except I've been a lot less
successful on a number of metrics AND I don't have the hard skills.

------
martingordon
As a Penn grad, I'm really glad to see a fellow Quaker hitting the top of HN.
I graduated in '07, when most engineers and Whartonites went to work for large
consulting/finance firms. In the past few years, I've noticed a bunch of
startups come out of Penn and as someone who went to work for a startup out of
school, I'm glad to see others choosing this route as well.

~~~
dshipper
Always good to hear from a Quaker! I'd love to chat some time :) my email is
dshipper@gmail.com

------
EGreg
It depends on what you are looking for.

Are you looking to make a big difference and make lots of money? Be an
entrepreneur. Who was that famous entrepreneur 80 years ago that said, when he
was being questioned by an expert in court, that he didn't know the answers
himself but he could easily hire someone who does?

If you are looking to get a job, then get the credentials AND be able to help
them with what THEY need. Just like you need a product-market fit, you need an
employee-job fit. If you are applying to a high speed trading firm, you'll
probably need to know C++ and Java and low level concurrency mechanisms (this
is what I was interviewed on), and if you know math and stochastic calculus
you can make more money as a quant. I didn't like those jobs, so I got out of
it. But you can still make a lot. Chances are though, you don't want to make
money that way.

If you are looking to understand things better, then LEARN. It doesn't have to
be in school. Personally I learned a lot from Wikipedia. Before that, I was
coding on my own.

At 17 I enjoyed math and computer science. Check this out:
[http://www.flipcode.com/archives/Theory_Practice-
Issue_00_In...](http://www.flipcode.com/archives/Theory_Practice-
Issue_00_Introduction.shtml)

It has a lot of math in it, but in an accessible way. Why? Because I liked it.

So to summarize: it depends on what you want. If you don't have what it takes
to help THEM and back it up with information, then do something else. Finding
and picking your opportunities is often the secret!

------
demian
I don't get it. Does people without (hard) engineering or CS education, and
without any kind of equivalent experience, get that kind of engineering/CS
jobs _even today_?

It's like hiring an architect to do the structural engineering of a bridge.
They both "make" buildings, but their heads are in different places.

------
Swizec
Didn't we go through all of this once before? Back when people were saying
"This is 2002, not 1999"?

I wasn't old enough to actually experience it, but I'm sure it was actually
exactly like that. Job scarcity comes in cycles, but, assuming civilization
doesn't collapse, tech jobs should be pretty safe ... forever.

------
mackyinc
I have studied Marine Transportation for 4 years worked as a seaman for 7
years and still end up as an animator. I feel the same way applying to a job
with a competition that have the papers/diploma with them.

------
peterwwillis
This reminds me of the shock I got when interviewing at big tech firms for
lowly-sounding "scripting" positions, where most of the questions required a
CS background. _If only I had gone to college..._

~~~
guard-of-terra
Did the questions check for knowledge or a piece of paper?

If former, go get some. No excuses! If latter, find a way to print yourself
one.

------
iamgopal
If I will do maths and algorithms, what will all smart people of this world
will do ? I am stupid by intention and not by chance.

------
Fizzadar
Definitely inspired me to put in more effort into my CS degree than I do
currently!

------
dysoco
You just desmoralized me even more to study CS.

------
PezCuckow
Not entirely sure I get this!

~~~
jacquesm
In four years you will. If not before then.

------
michaelochurch
Interesting. My angle of approach is opposite what the OP describes. I say
this as someone who studied math as an undergrad, and has a pretty solid grasp
of algorithms and the mathematical principles, but who's had a weak point in
the front end for a long time, that I'm now working to remedy, because
presentation is just as important as algorithmic excellence and efficiency.

Currently, I'm studying Play (the Scala web framework) and, at the same time,
having to ramp up on JavaScript, CSS, HTML... and getting an appreciation for
how much there is to learn (MVC, database configuration, integrating a web app
with a typical build system). It's not mathematically hard, but it's difficult
in the way that biology is: there's a lot to learn, and between the concepts
are equally important and intricate relationships.

For my part, I think that people who can present complex ideas well will
always be employable. I think anyone who doesn't learn basic front-end
programming concepts is doing himself a serious injustice.

The challenge of 2016 won't be solving hard mathematical problems. Yes, there
will be high demand for people with those kinds of talents, and that kind of
work will be (as it always has been) important. However, I think the biggest
challenge is going to be _educational_ in nature. It won't be enough to build
great software; you'll have to teach people (who are too busy to learn and
compare the intricacies of 35 technical assets just to do their jobs) how to
use what you've built.

------
nirvana
My perspective might be in a minority, because I'm an autodidact. I did go to
college- and studied Physics. But it has never hurt me in getting a
programming job -- in fact, I have always simply ignored any requirements
listed in job listings.[0] Several times it has come out- many months or years
after I was hired, and people are surprised I don't have a CS degree. Its like
a prejudice- they assume that anyone competent must have gotten a CS degree.

Maybe non-autodidacts need to go to college in order to learn how to program?
(But I would doubt this-- you all knew how to program long before you were
freshman in college, right? I mean, hackers are born, they're not created in
CS classes, right?)

On the other hand, the people I've interviewed with and worked with who were
non-hackers, who went and got a CS degree, often were weak performers. Much of
what's needed in the workforce is not taught in CS programs, and something
about the way CS programs are taught seems to often condition people such that
they have to unlearn a lot of stuff before they're fully effective in jobs.

Of course, I've known lots of good hackers with CS degrees. Hackers do tend to
follow the custom and go to college and get their CS degree and arguably could
be better hackers than they would have been without the CS degree (though I
think its debatable whether 4 years of employment experience or the CS degree
makes the better engineer- for some people its one, for others its the other.)

When I entered the work force, if not having a CS degree meant I couldn't get
jobs it would have been a real issue-- but these days, its is a whole lot
easier to start a company, and thus you don't need to be dependent on passing
arbitrary HR requirements[1].

If you aren't playing the startup lottery (e.g.: starting an instagram like
business and want thus need VC funding) it is vastly easier to start a
profitable-from-day-one business now than it has ever ben.

And 4 years from now, that's not going away.

[0] This also shows how well resumes are read. Mine doesn't lie, but I put job
history first. I'd usually have so many interview choices that I'd pick my top
5, do 5 interviews in a week and get 4 offers and a callback. I'm sure some
companies did read my resume and didn't give me the chance to interview as a
result- but that's fine- it is like a built in bozo filter from my
perspective. [1] Frankly I think the requirement for a college degree is a bit
like hazing. The people before you went thru it, and so they aren't going to
accept anyone who also didn't have to go thru it. It has nothing to do with
skills, just a way to exclude people who are different. Lord knows that piece
of paper is not proof you can program.

------
goggles99
This is pointless has nothing to do with that year it is. Companies who need
students who know differential equations or linear algebra have always had
these requirements (even before computers or programming languages existed).
There is no way a humanities student knows this stuff and no way a company
wants expend the resources to have them to learn DE on the job...

He applied for a job where knowledge and/or experience in complex mathematics
was required and did not get the job because he lacked the qualifications. how
is this interesting or even news???

~~~
marshray
I agree that we could look at it as simply a case of a bad match in the
skillset.

But that's also the point right? Everyone with more than two years experience
in software development knows skill sets are changing continually. This story
is speculating that data analytics will be next the long history of
hot/baseline skills for the developer. It does so using the powerful narrative
device of not saying directly at all.

Is data analytics going to be the next critical skill for developers like
relational databases, object-oriented, or internet technologies has been in
the past? Or is it going to be (or already is) the next bioinformatics, an
interesting subspecialty but far from being the primary source of demand for
software development talent?

~~~
goggles99
There is no comparison to be made here between mathematics and programming
languages as far as continually changing skill sets go. Mathematical concepts
have had no new paradigms in my entire lifetime. Mathematics progression moves
slower than any science or technology that I am aware of. Higher level math
fundamentals may be required for data analytic companies because the math
needs to be understood and applied to their rules. Figuring out different ways
to collect data is not math, it is innovation of technology or psychology
perhaps, but the math that this innovation is paired with is not new or
changing in any way.

What I am really saying is that data analytics is nothing more than the
combination of math and programming. The programming part is evolving quickly,
but not the math side.

~~~
DennisP
The algorithms used in things like machine learning are progressing quite
rapidly.

~~~
marshray
As well as things like graph algorithms for dealing with Google-scale data. We
might even put skills like map/reduce, GPU programming, and some as-yet-
undetermined cloud management API into this bucket too.

------
noduerme
First of all, a person with a C/C++ skillset is not just capable of "building
an app or a website". Most web devs now (and I include myself in this) don't
have the requisite skillset to write the database engines, low-level graphics
routines, browsers -- all the numerous layers we take for granted to print
'hello world'. And yet self-taught coders, by definition, are always learning.

I have never applied for a company coding position; I came from design and
learned to code as I went; but 75% of my business now is in custom business
apps. I've yet to meet a client who doesn't value the fact that I'm willing to
learn what I need on the fly. Many times I take projects with the caveat that
a certain amount of cash and time is probably going to be spent filling in
what I don't know, and hacking around until I figure it out; and that if that
becomes onerous, I'll knock some of it off the tab. I bill at $100/hr, modest
by freelance coder standards, but obviously many times higher than coders on
oDesk, and at least double what I'd earn in an office (if they'd hire me -
which they probably wouldn't). And yet my clients end up paying less for
rewrites and fixes, spend less time on the phone, and end up with a product
they're happy with.

The small-to-midsized business owners who understand the value of letting me
hack away, who ask what I think about how they can analyze their data, etc.
get _great_ value for their money, and I don't see a shortage of them. When I
really, really don't know, I hire out to other hackers who do. I wouldn't want
to hire a company composed of people who can memorize algorithms, but can't
think on their feet; I'd much rather have the exact opposite, and my clients
at least feel the same way. And I'll use whatever tools are at my disposal.
The first time I wrote an online store, in 2001, I did it from scratch. I had
NO knowledge of databases at all... I actually didn't know there was such a
command as serialize(). I ended up writing a whole custom back-end in PHP that
did its own serialization, flat file writing and retrieval on products,
customers, orders, etc... hundreds of products in the store, thousands of
customers... and that site _is still running_.

Companies that would rather have drones with degrees aren't companies I'd work
for, and I'd argue that they aren't who successful businesses looking for
software want to hire, either.

------
its_so_on
The blog entry should end with the guy waking up in a cold sweat, tripping
over his bedlinen to get to his laptop, fumbling for his 2-factor
authentication fob, and checking his bank account. Inputs the second factor
key. Navigates to total in all accounts. Counts the figures, one, two, three,
four, five, six, seven, and some cents. Counts them again. Breathes deep, and
goes back to sleep.

Thank God, that job interview was just a nightmare.

------
Tangaroa
I grew up hearing stories from the '70s that any intelligent teenager could
get a job in computer programming. No experience was necessary. No one was
expected to have any experience. They would train you.

When I entered college, the general consensus was that anybody who knew HTML
alone -- not Javascript, not CSS, not backend development or server
administration -- was guaranteed a high paying job.

Upon entering the job market, I've encountered the new reality that the
requirements for an entry-level position are going up faster than I can learn
the new things that are required each year. Every position requires experience
in something that I do not yet know or have only minimal experience playing
with in a personal or academic setting, but there are many qualified
candidates competing for the same position. Too many experienced journeyman
programmers are out of work and competing for a smaller number of jobs.

The author's bit of sci-fi seems entirely reasonable. It's not where things
are headed. It's where they already are, and it's been like this for years.

~~~
SomeCallMeTim
Huh. Where is this mystical place where there are lots of qualified candidates
competing for jobs?

It's certainly not the Bay Area in California, where there are far more jobs
than competent developers. I'm out in Colorado, and I still get constant
offers even though I'm not looking for a job.

If you're not able to learn what's required, then maybe you should question
whether you're in the right field. I've been keeping on top of HTML, CSS,
backend development and server administration, especially high performance
servers and NoSQL databases, with a smattering of JavaScript on the side, in
my spare time while working on video games as my full time day job. Suddenly
I'm finding that I needed all of those skills after all; understanding the
whole stack can be quite useful, it turns out.

If you don't even have a day job, then you should have plenty of time to
become an expert (or at least competent) in at least one narrow field that
people are hiring for. If not, then there's no way you'd be able to handle a
serious job if you were hired, since just about any job you take will require
that you do a lot of learning on the job.

The key skill to have is how to learn. Unfortunately school (elementary
through University) tends to hammer that skill out of people. Try to find it
and reclaim it. Then build something that you can show off to prospective
companies -- or sell it yourself! Good luck.

~~~
Tangaroa
It certainly is the Bay Area in California, specifically the North Bay. There
do seem to be more jobs south of the Golden Gate, but that is too far for me
to commute and I have not built up enough of a financial cushion to survive
long if I move and still cannot find work.

Nobody hires in one narrow field anymore, at least not according to the job
ads. You need to show competence with six to a dozen different technologies
from the basics (languages, server software) to the specifics (frameworks).
Miss one and you're out. Have you worked with a CMS but not that specific CMS?
You don't qualify. Have you lots of experience with several similar languages
but never used this specific language in the workplace? You don't qualify. Are
you an expert in the previous version of the language but you haven't caught
up with the changes in the latest version? You don't qualify. Someone else
evidently does because the company closes the position.

~~~
audax333
So they did actually reject you for one of those reasons or did you just not
send them your CV?

~~~
Tangaroa
For these reasons. I am generalizing from specific cases in my past: having
used Drupal but not Joomla, knowing Java and C++ and object-orientation in
general but not having used C# outside a brief school project, knowing early
Perl 5 but not the changes up through 5.10, having programmed a bit in Ruby
but never used Rails when the job description just said Ruby. "I can learn it"
is never an acceptable answer when they can get someone else who already knows
it well.

------
StCroix
Does anyone else feel that this Op-Ed piece is more 2012 : 2007 than 2012 :
2016?

------
goggles99
Ridiculous - This is pointless has nothing to do with that year it is.
Companies who need students who know differential equations or linear algebra
have always had these requirements (even before computers or programming
languages existed). There is no way a humanities student knows this stuff and
no way a company wants expend the resources to have them to learn DE on the
job...

He applied for a job where knowledge and/or experience in complex mathematics
was required and did not get the job because he lacked the qualifications. how
is this interesting or even news???

