14 ms·
Two out of three developers are self-taught, and other trends from a survey
- ultramancool 11y agoNote that this doesn't mean completely self-taught! Most (good) developers are definitely at least partially self-taught, but those who are employed in the industry also tend to possess, not necessarily a CS degree but at least on in a related field.
- razster 11y agoOur developer went to Poly and it shows. He can think of a solution to our programs needs almost instantly, were as our other devs whom were self taught and no longer with us because they hit a brick wall. It pays to have a good programmer with degrees.
- fishtoaster 11y agoI suppose I can't tell you your anecdata is incorrect, since an anecdote is just an anecdote. I can counter it with my own, though. Of the top 10 best devs I know, about half were didn't get CS degrees. And I say this as someone with a CS degree.
- cylinder 11y agoHe went to Poly because he is smart, he is a good developer because he is smart.
- grahamel 11y agoI can second fishtoaster and add that I've worked with people who've been to university, some who did computer related courses and others who didn't - more often than not an arts based course, and have also worked with people who didn't do a degree at all. All of those hasn't been a factor in if a developer is good or not. It's when they "hit a brick wall" and give up. The best developers ask for help when stuck and help others when they're stuck.
- mmgutz 11y agoThe best programmers I've worked with are first and foremost problem solvers. One had a CS degree, the other was an accounting major and another a musician with a high school degree. There are very few CS courses I took at the university that prepared me for the real world. I'm sure there are certain fields like AI, DB algorithms, Math/Science applications, compilers that benefit from formal academic training but for the most part being logical and a a good problem solver are the most important skills.
- Bahamut 11y agoI too have found problem solving to be the most important skill - understanding the problem so you can craft the proper fix or implementation is vital to saving time. Of the best developers I've worked with/know, only 1 has a CS degree. One has a liberal arts degree IIRC (works at Netflix), another is a college dropout (works at Google)...and the one with a CS degree has a tendency to overengineer systems with great flaws that the others I know wouldn't do (tries to be too clever). Myself, I have a MS in math from a top 15 program (PhD dropout).
- jwhitlark 11y agoMy Accounting degree has actually been really useful when working with distributed systems, as accounting systems were the original rigorous distributed systems. I only wish I'd gone heavier on the math.
- andersen1488 11y ago>related field. What exactly is a "related field" to programming though? I guess you could argue math and statistics, but even that's not really applicable to the average CRUD app developer.
- city41 11y agoI have a CS degree and still consider myself self taught. I started programming as a kid, and learned mostly from books and coding. I only got my degree because I thought it'd be necessary for getting a job.
- gravypod 11y agoI'm in the same boat right now. I have been programming since 12 and I'm getting a degree because I don't think I'll get a job without one (or more so my parents think that). Is this true? Can I start looking right now? Granted, I am not in the valley. I'm all the way in New Jersey.
- surfmike 11y agoA lot of doors will be closed to you if you don't have a degree. And college is a great place to make connections with like-minded people too.
- mgr86 11y agoAny advice for those who have a degree in an unrelated field, and has been coding since they were 11 and are approaching thirty. I'm considering other options sometimes, but feel this might be an issue. It wasn't every middle schooler who reads a book on perl for leisure.
- jwhitlark 11y agoThe book "Cracking the Coding Interview" is a huge help for getting through interviews. It's a real grind to work through, but worth it. You don't have to do all the problems, but make sure you do some from each section. Most business degrees can be useful, because you understand the business much better. Accounting actually turns out to be useful for distributed systems. Edit: It wouldn't have occurred to me, but I think Anthropology would be very helpful in understanding why systems were put together the way they are.
- deleted 11y ago[deleted]
- metaphorm 11y agoI would say that 3 out of 3 developers are self-taught, but that about one third of them also have a degree in Computer Science.
- deleted 11y ago[deleted]
- pklausler 11y agoOr mathematics, or physics, or astronomy; and I'd rather hire any of those than a modern CS graduate, everything else being equal.
- Sahonon 11y agoA purely selfish request, I know, but may I ask why? :)
- pklausler 11y agoIt's a lot harder to fake one's way to a mathematics degree if one lacks or cannot acquire rigorous reasoning skills, and those are critical to the construction of quality software. Whereas I interview a lot of CS graduates who have degrees from fine schools and can't solve simple analytical problems or write a straightforward predicate expression to test for a well-defined condition.
- twright0 11y agoBut you said "everything else being equal", so I'm confused why you're highlighting the extreme negative examples. If you interview a math major and a CS major and they both do equally well on those simple analytical problems - would you still rather hire the math major?
- mreiland 11y agoyes, his point is that he could be wrong about the hire decision, and going with the mathematics degree is more likely to be right. Whether or not that's true is another discussion, but that's the point he's making. I have a degree in CS & Math, so I'm guessing I'm good to go :)
- cdnsteve 11y agoWhy is the photo of a gaming conference or is that what people think developers look like?
- gexla 11y agoSome interesting take-aways. Most developers here are self-taught? Nope, we're all self taught. Though in this case you are faced with a survey with an option of self taught next to others which include school. Most developers aren't looking? This may be the point which the government doesn't understand about tech jobs and immigration. I don't know what it's like to be looking for a job in the U.S. these days but I imagine most people who are decent at programming aren't looking. If you want a bunch of coders you need to get them fresh out of university or start looking abroad. The thousands of resumes going out to development job openings from the unemployed must be from crazy people who can't code. People finding jobs from others they know? This sort of goes along with developers not looking. If nobody is looking, then how do you find people to work for you? Get your current employees to hit their Rolodex. Nevermind all that stuff about degree requirements, etc. In my experience, the requirements hit the listing and then you never hear about them. I imagine that's because the listing attracts the crazies and then you get the gig when you sound like you halfway know what you're talking about.
- hajile 11y agoI believe the biggest takeaway is the shift from preferring science fiction to preferring a soap opera in space. It seems like the number of thinkers relative to the population has remained static while the number of programmers relative to the population has increased. What happens when you need more thinkers than society has to offer?
- hajile 11y agoCS teaches a lot of theory, but not as much practical. Let's face it, 90% of programming is CRUD and the hardest part of such applications (managing all the state) isn't something that can really be taught in 2 years worth of CS classes (the other 2 years being used on non-CS-specific stuff). Employers don't want to pay to teach new programmers (even CS grads who couldn't get an internship), but generally expect a couple years worth of experience before they'll even consider someone for an "entry-level" dev position. Programming is a job that requires constant learning. If a programmer has what it takes to do that, then it's not too surprising that the programmer can learn the basics on their own. A lot of devs like myself started learning to program around 10 or so. When college enters the picture, these devs are bored for most of the classes (except perhaps things like algorithms or compiler classes). If a would-be programmer had the foresight to look into the programming, then they'd probably note that there's more profit in skipping the degree and putting that 50K on the mortgage instead. CS has more free teaching material online than any other white collar job I know of. A programmer can get the exact same education quite easily if desired (you can't really say the same about other STEM fields except perhaps math).
- Kinnard 11y agoThis contrasts strongly with "Dropouts need not apply": https://news.ycombinator.com/item?id=11393671 https://news.ycombinator.com/item?id=11393671 blogs.wsj.com/economics/2016/03/30/dropouts-need-not-apply-silicon-valley-asks-mostly-for-developers-with-degrees/
- TranquilMarmot 11y agoSilicon Valley != the entire programming world
- womplord 11y agoTOP KEK M8
- JoshGlazebrook 11y agoI started programming when I was 10 or 11 and continued on to get a CS degree. One thing I did notice was that a lot of people in some of my classes seemed to have just woken up one day and decided they wanted to get a degree in computer science. And all throughout my years in school, those are the people who never ventured out of the curriculum (which was java based) to explore and learn other things. Which just seems to set you up for a life in boring corporate java desktop app development (unless you like that kind of development). An example is my upper level elective class on database systems and design. For the final project of the class you were to take everything you've learned about relational databases and design your own schema, get all of the data properly normalized, and make an app that uses it. Other than that, the sky was the limit. You could use whatever programming language, framework, and database that you wanted, and the app could literally do anything. There was nothing limiting you to building a desktop Java app coupled with MySQL, yet 95%+ of the class did just that. I ventured off and used Postgres + Node.js and made a single page web app for my project, using skills I learned outside of school, on my own time, learning these things (I longed for a friend that knew what a promise was or that bluebird wasn't about a damn live animal). Now to get to my point. I'm not going to say that self taught developers are strictly better, but I feel like they are the other 5% like myself that see what we do as more than just a class, grade, job, or paycheck. They are the ones that spend the time to learn new emerging things in the software development realm and do it on their own regard. I would much rather work with someone who is not an uncustomized, straight from the java CS degree factory college/university. Someone that ventures outside of the path they are guided on in their career and skill sets and takes the time to learn on their own, and learn the things they want to learn just because. I'm lucky enough to have my first job be somewhere where I get to dive right into Node.js, Angular, etc. which is what I want to do at this time. Maybe the other 95% feel this way about their first jobs which probably are making internal business Java applications, but I really can't believe that.
- hajile 11y agoThat's the real reason we need to require programming courses in middle school. Lots of those people didn't really know CS was a thing when they were in their early teens. They hit college, but by then they are 6-8 years behind. They graduate and nobody wants to hire them because they have zero usable experience. We need to require one year of programming to get the talented kids started early then move all our "intro to CS" classes from the main syllabus to remedial college courses (you wouldn't call pre-algebra an "intro to physics" course). This would also help other professions. Engineering especially suffers from this problem where they take the required C or Java intro course then have matlab dumped onto them the next semester. They muddle through and graduate with little skill in programming despite the fact that their entire job will revolve around programming.
- racl101 11y agoThe weird thing is that I went to University for a computer science degree and took 2-3 programming courses where I used C and C++ but 95% or more of what I know I learned outside of University. So does that make me self taught or not? If so, I wonder if that should be 4 out of 5 developers being self taught.
- emodendroket 11y agoThis is from the SO survey and I think it's a bit misleading. Only 13% of respondents say they are only self-taught as opposed to combining autodidacticism with some other method of learning.
- enobrev 11y agoI absolutely agree with the general sentiment in this thread that we're all self-taught. I've had quite a few friends ask me to help them become programmers, and my first response is that (to paraphrase) "it's not just a job to learn and then work towards retirement. It's a constant learning experience where you have to wake up every day and realize you're ignorant, slow, and unimaginative compared to your peers and if that's not the case, then you're probably going to fall into obscurity. If you're ok with that, then let's get started." One avenue I haven't seen yet approached here is that schooling was far behind the times at least through the mid-90s. I was set to graduate from a highly regarded prep school in 1996, and in the "advanced computer class", we were learning Pascal. My queries about the internet weren't answered well enough to keep me interested in the conversation. By then I'd built a couple silly websites for myself, met hundreds of people from around the world, and had my own little secret educational source - a step up from my peers in school, which I needed because they were all Definitely smarter than me. I was hooked and had zero interest in plain old desktop applications, which was the end-game to what was being taught in every school I looked at (from my 17-year-old perspective). A book on Perl understood what I was after. It wasn't even necessarily a very good book on Perl. It had an open source web-store on a CD in the cover and it told me step-by-step how to find a web host and then set up the web-store on a server. I set up a web store for my mom's retail business, which then stayed afloat for a little while longer (she now sells online full-time). I proceeded to drop out of college and haven't stopped learning since.
- DanielBMarkham 11y agoI remember sometime in the early 90s I was working at my first really huge contract -- hundreds of programmers. One day after lunch I get off the elevator and take a look around the huge room. I could probably see 100 folks or so. There were a dozen different nationalities, people of all ages and genders. There were extremely smart guys who didn't have a degree. There were extremely smart guys who had PhDs in things like particle physics. Here I was, a self-taught guy, leading a team of 30. I had 3 PhDs working for me. I knew more than one person with double degrees in a foreign country who came here for a better life. And it didn't matter. All that mattered was whether you got along with people, what kind of attitude you had, and whether or not you could push through and solve problems for folks. I think this was the moment that I decided that I love this industry.
- cmdrfred 11y agoIt's the only industry in America that to me reflects the American dream. I'm a high school drop out and so far nobody has even asked about my education. They check out my portfolio of work and go on that. Results are results, everything else is just window dressing.
- andersen1488 11y agoSame here. I was scrubbing toilets for $8/hr two years ago, and now I work with PhD's and MBA's making six figures. God bless america.
- DanielBMarkham 11y agoMy oldest son grew up fixing computers and programming them, but he wasn't so good at structured education. By the time he was 20, he was out of school and working fast food. Programming on various projects in his free time. Making minimum wage. I begged him to start looking for programming work, but he always told me that he wasn't qualified. How could he compete in the job market with all those professional coders? Finally he tried. Of course, he got a job -- at a startup. He ended up being the go-to guy for both coding and infrastructure. He's done a lot of things since then, but I'll always remember him looking at me, rolling his eyes, and telling me that what I was saying was impossible. Yes, there's a huge role for luck, for having good parents, for being born in the right country, and for networking skills. But this is still an industry where if you love it, you can make terrific money just by being passionate about it.
- vkjv 11y agoDoes self taught simply mean "doesn't have a CS degree?" I don't have a CS degree but I don't consider myself self taught because I didn't learn in a vacuum. I would say that 75% or more of what I know, I learned from great colleagues.
- Raphmedia 11y agoEven if you started out from school, you are going to need to be self-taught after a year anyway. What you learn in school is going to be obsolete quickly enough and most workplaces are going to assume that you will magically be up to day at all time.
- deleted 11y ago[deleted]
- coldcode 11y agoI had one class in high school and that was 1973. Other than that I was self taught and still coding today (iOS). A number of friends in college got the (new at the time) CS degrees and all but one eventually were unemployable as they had learned nothing beyond the degree content (mainframes at the time). As long as you are into keeping up to date, after a while the degree no longer matters.
- p4wnc6 11y agoIf you make use of your university time correctly, then the primary value of virtually any degree is that it teaches you how to self-teach to an extent you could not reach if you just started self-teaching on your own. Aside from occasional prodigies, the folks who are best at teaching themselves new things are folks who proved they could do it through degree programs. Don't get me wrong, though, a lot of people do not actually make good use of their university time, and they get through to graduation without learning much about self-teaching. I'll never understand why they would want to waste so much money for that. If I had my choice when recruiting, I'd select people in this order: 1. Someone whose degree and job experience clearly shows they are thoughtful and can self-teach. 2. Someone who acquired abilities by self-teaching even without a degree and/or prior experience. 3. Someone who has a degree and/or experience, but who clearly doesn't have much skill to self-teach. 4. Someone who does not have a degree, experience, or self-teaching ability. Really, I'd prefer to never hire someone from groups 3 or 4. But sometimes it can be hard to detect fakers from group 3. I think a lot of people share this opinion, which is somewhat tragic since very few hiring processes make even the faintest attempt to determine if a candidate is good at learning new things or self-teaching. Instead, just as with the tired old thread about HackerRank from yesterday, we spend all our time quizzing people on rote memorization of standard examples, which is something that the group 3 people are very good at faking their way through.
- ksenzee 11y agoTwo out of three developers who answered a survey on a self-teaching site are self-taught. I see this is yet another article assuming the SO survey is representative of developers in general. It is not. It is representative of people who use Stack Overflow heavily enough to see and click on a survey link. Clearly there's a lot of interest in finding out what is true of developers in general: What languages do we prefer? What's our educational background? What are our demographics? It would be great to have a survey that would answer such questions. This one doesn't.
- ef4 11y agoEven within CS education programs, this has a profound impact. You can't design a useful introductory computer science course that works well for everybody. A subset of your class has been dabbling with code since childhood, while another subset needs to start from the beginning. Other degree programs don't seem to suffer nearly this extreme level of experience gap within their incoming students. What fraction of incoming mechanical engineering students have had the chance to build a working motor and then take it through a dozen revisions until it works the way they want? It has to be much less than the comparable fraction of CS students. I think this is a big reason for the famous bimodal distribution of outcomes experienced by most introductory CS classes.
- eludwig 11y agoI was self-taught as well. Back in '82 I was an in-house illustrator at a children's book publisher. The company (now defunct) brought in Apple IIs in order to do some house-branded educational software. I fell in love with the little machines immediately, even though I really had no exposure to any computers in high school or college (art school). The real software guys that were hired taught me 6502 assembly and off I went. I got my first job as a programmer in '85 doing Mac assembly (68000) programming. So much fun. That said, I have a huge amount of respect for CS grads. I have seen it. My background in algorithms is totally non-existent, besides what I've been able to pick up on my own. I've been at a disadvantage MANY times due my lack of formal CS/Math (my "formal" math edu stopped at plane geometry in HS!). Thankfully, I've always had good friends to help me through these issues, but it would have been a lot easier for me if I had had real training. Google is a huge help now that we no longer need programming manuals, as such. I have always gravitated towards the visual, GUI aspect of software development, which is probably not a surprise given my art school background. I really think that companies should keep open minds regarding education. It really takes all kinds of people to do what we do, especially at big, diverse companies. Being visually oriented and a capable programmer is a unique kind of background that can be used to great effect. Not all cookies are the same shape.
- CM30 11y agoI'm self taught as far as web development and programming skills are concerned. But to some degree, it feels like that was really the only option over here in the UK. Okay, things have apparently improved significantly in the last few years, and schools are seemingly teaching a few more things actually considered programming now, but back when I was learning HTML and CSS and Javascript and all that stuff in the early 00s, the standard of teaching in the IT classes at school and sixth form was absolutely dreadful, and it likely didn't get much better at university. GCSE classes for IT were literally 'how to use Microsoft Office was dummies' and A level course were basically devoid of programming tasks. As a result you basically had to teach yourself, since there's no way in hell your school education would teach useful skills for any sort of development and you'd likely struggle significantly to go from there to a degree level.
- 2ifrgtmypss 11y agodid it really take a survey to prove this lol