This Is 2016 Not 2012
Number of days without work since 1979: 0.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."Lighten up, guys. If you can build stuff, learn, and work well with others, you'll probably always be fine.
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.
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?
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.
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 :-)
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.
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.
"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.
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.
There is a way to be prepared for 2016:
http://www.coursera.org/ http://www.udacity.com/ http://www.mitx.mit.edu/
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.
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.
I am reminded of Steve Yegge's excellent post on "Math for Programmers" : http://steve-yegge.blogspot.in/2006/03/math-for-programmers.... (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.
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.
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.
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.
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 :(
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.
"Computer science is no more about computers than astronomy is about telescopes." - Edsger Dijkstra
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.
If you don't know algorithms, I certainly wouldn't want to hire you today.
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.
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.
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.
undefined
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.
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.
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.
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?
undefined
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... - 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.
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.
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.
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.
undefined
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.
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.
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...
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!
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.
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.
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.
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...
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.
Definitely inspired me to put in more effort into my CS degree than I do currently!
You just desmoralized me even more to study CS.
Not entirely sure I get this!
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.
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.
"As I walked out of the interview and stepped back into my time portal device, destined for 2012, I couldn't help but wonder - Why was she using a pencil on that 'Gorrila Glass' screen...
Could it be that she was still hanging on to a corporate process or HR career that was as obsolete and irrelevant as the 'handbook criteria' she was trying judge me by?
Or was it just that she was destroying her iPad as fast as the guy (with the beard and john lennon glasses) on the cover of my CS101 course book was turning in his grave.
Then I kicked myself for not short-selling my Apple stock back in 2012... but wait, I thought... I guess I still can!"
Wrrrrrrrrr--ZZZZzzzzzapppp!!!
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???
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.
undefined
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.
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.
undefined
Does anyone else feel that this Op-Ed piece is more 2012 : 2007 than 2012 : 2016?
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???
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???
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???