Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I made a jobs board for developers without degrees (nocsok.com)
343 points by Pete-Codes on Sept 18, 2019 | hide | past | favorite | 322 comments



I don't have a degree (though I do have a few years of college in the CS /engineering fields) and I'm pretty sure every programming job I've ever had required a "degree", if you were to look at their posted job requirements. If it's known that you can do the work (which is the kicker of course), I've never seen an employer hiring people to write code actually care about the degree. Even in academic environments I've been offered programming jobs (obviously not teaching jobs).

Now, you should definitely get a CS degree or similar if you want to be a programmer. I would have done a lot better having one even though I got by without it. Also, my career path was ridiculous and is entirely non-replicable.


> Now, you should definitely get a CS degree or similar if you want to be a programmer. I would have done a lot better having one even though I got by without it. Also, my career path was ridiculous and is entirely non-replicable.

I agree completely. As a dropout, I've had people bother me asking how they should go about a career in tech, and I will tell them unambigously "for the love of god, please go to school".

Self-studying enough to be competitive with classically-trained people is really hard, and while I've done ok, it's not something I'd recommend for most humans. I like to think I'm fairly competent now, but even after doing this stuff for nearly a decade, I will still occasionally turn up blind spots of fairly-critical information that I never learned about because it was never immediately interesting to me.

Being self-taught is fun, but without credentials you end up having to work at companies that are willing to take chances, and as a result of that these companies have a propensity towards going bankrupt, or being run by scumbags who will run away with all the investor money (true story). I'm not even 100% sure what advice I could give people trying to imitate my career..."Hey kids, repeatedly fail upwards until you accidentally end up working for a company that happens to get acquired by Walmart which will somehow legitimize your experience".


> Being self-taught is fun, but without credentials you end up having to work at companies that are willing to take chances, and as a result of that these companies have a propensity towards going bankrupt

This is one of the notable difference between my pre- and post-degree careers: a degree opened the door to jobs with stable Megacorps. I still get the opportunity to work on cool, cutting-edge stuff, while also having a good salary & health insurance with reliable raises, decent vacation, and a lot of intangibles (nice equipment).

Plus, if you enjoy programming, CS is an incredibly fun degree (when you take the right courses).


I mean, I work for one of the biggest tech megacorps now (not going to say which one but I can guarantee you've heard of it), so it's definitely possible to get the stable job eventually as a dropout.

That said, it was a rocky and scary road to get to this point; if you get your degree you can often start out immediately with some stability.

I never took CS, as I was a math major before dropping out. Honestly, math is still more of a passion for me than CS (despite me loving programming), and I consequently do have some regrets about how I handled school; specifically, I'd like to get a job doing research, but as it stands that would require me first finishing my bachelor's, then getting at least a masters, and probably a PhD. Doing night school for a bachelor's is definitely doable, but I don't think I've heard of a single success story of people trying to work full time (which I would need to do to pay my mortgage and support my wife) and doing a PhD. If I had finished school the old fashioned way, I could have conceivably gone straight to grad school before entrenching myself into my current (admittedly comfortable) lifestyle.


Not sure how helpful my reply is since I did my PhD in the humanities, but I absolutely did my doctorate while working full time and supporting my wife. Rare, certainly, but not as impossible as it once was. And this was at a legit, SACS accredited U.S. brick and mortar school, not some online diploma mill or anything like that.


> I don't think I've heard of a single success story of people trying to work full time (which I would need to do to pay my mortgage and support my wife) and doing a PhD

I worked full time during the second half of my PhD, paid a mortgage, supported a wife, and had a daughter.


Wow! I didn't really know this was a thing...if you don't mind me asking, what was the PhD in? How did you manage to make time for yourself to not go insane?


It was a programming language PhD. I didn’t say the experience didn’t make me go insane!


I'm confused about what kind of wife support are we talking about? Is it not the default and expected behaviour, even in the US, for wives to be self-sufficient and perfectly capable of supporting themselves? Is it very different from European Common practice where for most educated employees and freelancers disability is covered by disability insurance and pregnancy + aftermath is covered by paid maternity leave until children are in child care?


We don't have kids, but my wife is still in school, and wants to be a teacher, which doesn't pay all very well (at least in the US). Because of this, it's unlikely that she would be able to afford the mortgage without my bloated tech salary.


> Is it not the default and expected behaviour, even in the US, for wives to be self-sufficient and perfectly capable of supporting themselves?

If your wife doesn’t have a paid job and so doesn’t have any income, in order to look after the children, then no.


>Plus, if you enjoy programming, CS is an incredibly fun degree (when you take the right courses).

And in some countries it's also an incredibly affordable degree. I was able to pay off all my student debt with part time jobs between semesters.


And in some others it doesn’t cost anything: I just have to pay a 300€ registration fee each semester here in Germany.


After a few years of experience I’ve not had a problem getting interviews at megacorps - it’s just too competitive right now trying to find coders.


I'm on the opposite side.

If anyone asks me if they should go to school, do a bootcamp or learn by yourself I always tell them that "don't take my word for it but I'd personally never go to school to learn and get job as a programmer if that's what you want". Seeing as I've "made it" so to speak coming from a another field, without any kind of degree whatsoever, with no prior work experience in IT, I personally don't really see the value of going to school unless you really want that experience or if you're the type of person who needs a structured way of learning.

My career path is also strange to most people since I started out in sales and marketing, then went into finance as a glorified salesman and eventually got fed up with sales hussle and learned web development on the side. So from that I decided to learn how to code and web development to actually landing a job as a web developer took roughly two years.

I believe that with my soft skills from sales and finance and a decent portfolio made the decision to hire my over let's say someone straight out of college with no other credentials a no brainer.

Sure, I run into those "blind spots" from time to time but so far everyone I've ever talked to who has been in tech and specifically in development positions says the same thing, they all have the imposter syndrome and it won't go away.


The average annual out-of-state cost for a bachelor program in Computer Science is $41,992, with an estimated average four year degree total cost of $167,968.

You have to ask yourself what would be more effective: 4 years in college (spend $170k) or spend 4 years learning on your own (free), working on open source projects (free), and/or getting an entry level job (earn 120k or more)?


I don't know what entry-level job for a dropout is going to pay 120k/year; my first full-time job as a dropout paid 35k/year (in 2011). Granted, this was Orlando, FL, not Silicon Valley, but even still I have a hard time believing that the average entry-level salary is that high.

Also, why the constraint of "out of state" tuition? In-state tuition for CUNY schools is ~$7,000/year. 4 X 7,000 = ~$28,000. Is that a lot of money? Sure, but it's less than my first year's salary as a dropout, even without your inflated numbers.


I agree with just about everything you said but you still have to ask yourself if 28,000 dollars a year is worth it. There's a lot of people coming out of school who just don't really know how to code, you can fumble your way to a CS degree but if you can't put any of that into practice then you wasted a lot of money.

I mean ideally before you entered school you should have had some type of idea about programming. I know many people who started writing code very early but even if that wasn't you you should have at least gave it a shot before you dedicated a major to it right?

Therein lies the problem, if you're intelligent enough to start learning on your own, at what point does the opportunity cost of college outweigh the benefit? If you don't have the initiative or desire to start on your own, then you probably won't make it very far in this field anyway because it requires constant learning and experimenting on your own.

I guess that's why so many companies look for "self-starters"


> Being self-taught is fun, but without credentials you end up having to work at companies that are willing to take chances, and as a result of that these companies have a propensity towards going bankrupt, or being run by scumbags who will run away with all the investor money (true story).

Systems Engineering is what you want my friend. Companies are totally willing to be adventurous in their hiring when staffing roles like SRE, since SRE requires skills that schools haven't figured out how to teach.


In my case I kind of fell into functional programming for similar reasons.

FP has been academic for most of its life, but until semi-recently they didn't teach it much in undergrad. My interest in it more or less coincided with the advent of MapReduce and as a result suddenly FP is all the rage, which worked out well for me.

I guess that would be the advice I could caveat my previous comment with; if you decide to not go to school, try and find a current blind-spot in the current education system and fill that.


Just to be clear, my advice was that Systems Engineering is the blind spot. There are a couple companies that use functional programming, but pretty much all companies need Systems Engineers. They're so hard to find. It pays just as well as Software Engineer. It doesn't require higher education. Systems Engineers also tend to have a lot more power than Software Engineers too, since they control the means of production. Totally worth considering.

Please note the SRE book has been raising awareness of these facts with the public, so the opportunity window is likely to shrink over time as more people try to get in.


After going and getting (most of) a degree this describes exactly what I saw. I taught myself to program in my preeteens and avoided university for a long time because it seemed like a scam to me ("why should I pay someone a significant fraction of a million dollars to read a few poorly organized books to me?"), after going through all the classes I've realised just how easy it is to underestimate how important certian abstract ideas are.


What blind spots? Algorithms 101 etc?


Dumb example; I had been doing concurrent programming full-time for a few years with threads and whatnot, but mostly using abstractions in the language like STM and F#'s async monad and whatnot. Eventually someone used the term "mutex" and I didn't know what they meant...only to be embarrassed when they told me it's a lock, and I just didn't know the name of it. I felt like an idiot.

I know enough algorithm stuff to pass a lot of whiteboard interviews (and I certainly know a lot more now than I did during that anecdote), but I'm not sure I could write a min-heap or merge sort without looking a bunch of stuff up first. I don't think I'm stupid, it's just that I don't typically write explicit merge sorts or min-heaps in day-to-day code, and it hasn't been sexy enough for me to write my own, but I do think having an understanding of the mechanics is useful and important.


Straight out of college, I applied to this engineering job which looked pretty sweet. Big reputable company, seemingly interesting work, rumored to pay well - but one problem, I was woefully underqualified.

Ad stated "3-5 years of professional experience", I had _zero_ experience.

Ad stated "Masters degree, or Bachelors for very experienced candidates"

Ad had a laundry list of software and tools, I had experience with one CAD program.

But what the hell, I didn't have anything to lose, and the company was located a 10 min walk from me. So I applied.

Got called in for interviews, which lasted a couple of rounds, but managed to land the job. I know people with very similar stories.

So yeah, my advice would be for people to just apply, if they see something they'd like. Worst thing is you don't get the job, companies won't ridicule or blackball you for applying.


Eli the computer guy has a video on youtube describing how these job ads get created. It's a riot.

https://www.youtube.com/watch?v=6G3kQyqMFpQ


companies won't ridicule or blackball you for applying.

I have had an experience to the contrary. Of course, it's a good sign you don't want to work for such a company anyway.


> I would have done a lot better having one even though I got by without it. Also, my career path was ridiculous and is entirely non-replicable.

I don't know. I have to say "me too" here and I've encountered enough of us over the years that I think it's just a big lie. There are a certain number of high paying companies that perhaps overvalue a college education and algorithmic competence.

But overall I think about half of the colleagues I've worked with either had no degrees or had degrees that didn't do them any favors in this career. Our career paths are certainly replicable.

In fact, I'm always impressed by the people I meet that don't have the education but have incredibly strong CS fundamentals.


I meant, my particular career path was ridiculous and non-replicable. it was very dependent on the specific time and place that I was living for starters and overall everything about my career was based on very unlikely things that aren't occurring anymore (such as getting a job in the same 6 month period that the "internet" first became monetized, with a very specific set of people, etc.)


As a hiring manager, I fully agree. All our job postings say "CS degree required". But if you have experience and a good resume it absolutely doesn't matter.

It matter a lot more for juniors who lack any sort of experience. I think it make good sense for young people to get a degree but it makes less sense for seasoned professionals to go back and get one.

If you don't have a degree but have experience, don't let the degree requirement stop you from applying.


In case you're not aware, there is evidence [1] that this sort of "required but not really" job posting deters a lot of people, and especially women, from applying even if they would actually meet the (unstated) actual requirements.

Making it explicit that you will accept "experience and a good resume" in place of a CS degree might increase the diversity of your applicant pool.

[1] https://hbr.org/2014/08/why-women-dont-apply-for-jobs-unless...


The whole point of my comment is to encourage people to who don't exactly meet the requirements to apply.

I might attempt to make that more explicit next time but it's a slow process.


Why would I waste my time applying if it specifically states a CS degree is required? If you don't REQUIRE it, state that. It's not encouraging at all.

Last time I was applying for work, I sent out 150 applications/resumes, every single one I look at the list of requirements, if I don't meet one of them, I don't apply because it's a waste of my time.


I telling you exactly why! Certainly anyone who doesn't meet the requirements might not necessarily be considered. But if you meet 90% of the requirements and that last 10% is not having a degree, so what? Why not let the company decide not to hire you instead of you deciding for them in advance?

Sending in a resume or filling out an application is pretty low risk. If a company absolutely won't hire you without a degree, you just won't hear back. Big deal.


It's good advice, but I think the reverse advice is also true. As much as people are missing good opportunities because they don't apply for jobs they think they might not be qualified for, you are missing good candidates by not asking for what you actually want.

I would just say, "Degree in CS related area or related experience highly desirable".


I asked for what I want -- if the candidate doesn't have that, it's up to them to sell me on why they'd be a good choice anyway. I want $100 but I might be willing to settle for $90 and a really nice cookie. I might even prefer that cookie but I don't know what cookie you have. It could be fantastic and worth way more than $10. Or maybe not.

I once got a job with zero qualifications for it -- in fact, the interview was almost entirely just me asking the interviewers how to do the job! They had other applicants but I guess my total and complete lack of experience didn't scare them off. The job was initially daunting but otherwise a fantastic experience overall.


>if I don't meet one of them, I don't apply because it's a waste of my time.

I've gotten many jobs and not met all the requirements. If you're good in something they want, but miss something they want, they might hire you.

Especially if you're the best candidate among all the candidates, none of which often have all the requirements.

Not applying certainly takes you out of the pool.


Because HR and recruiters were involved what gets posted is a very rough approximation to the real requirements. Heck many places I've worked we would invent a job for someone who applied for a different one for which they weren't a good fit.


Man, my friend had all requirements and he applied 175 times in every manner, he landed interviews at amazon netflix google and facebook .


Job 'requirements' are there to get rid of people like you.

If you're not confident in your fundamentals then you won't apply because you can't tick all the boxes.

If you ARE confident in your fundamentals then you'll apply and probably get the job and the posted 'requirements' won't even factor into it.

Knowing that is the difference between 150 applications, and just 1.


You don't want to select for people who are confident. You want to select for people who are competent.

Unfourtuantly, these features are often inversly correlated.


Confidence in one's job skills and confidence in other people’s willingness to disregard what they describe as “requirements” are not necessarily linked.


I have 2 fortune 500 companies, one of which is fortune 100, and many large companies including fintech on my resume. I don’t have a fear of my skills or anything, but I do know I don’t have a degree. Guess what, you state that you need a degree, I will skip your job.


You were a little more direct than I would have been, but I was thinking the same thing. Basically ignore the job posting/resume process, or just work with it only as much as you need to in order to get in front of someone with hiring powers.

Also, remember that the people who actually decide who to hire are often as frustrated with the process and its artificiality as the applicants.


And kudos for doing that - but what about candidates who don't read Hacker News (or happened not to see this exact thread)? HN isn't exactly the most welcoming environment for women either.


There's a balance point. When I did interviewing at FANG.Co I would occasionally just get people that were severely under qualified for the role. It might be a large swatch filter but the degree requirement does reduce the number of those applicants and time lost by devs doing technical interviews.


technical interviews are the worst thing ever. They prove nothing except that a candidate crammed for you exam and/or work well while being watched. I can't imagine either of those are useful.

I did an interview with one of the FAANG.Co once and ended up arguing with the technical interviewer because he was a douche. When I found out he would have been on my team I told the recruiter I wasn't interested anymore. They ended up turning me down anyway because I didn't get along with the guy. Basically he was asking me to implement a JSON parser in brainfuck, not a legit use for either of our time.


That's a myopic and emotionally charged way of looking at it.

When I interview people, I ask straight forward, probing questions looking for how the candidate approaches the problem and the path they take to the solution. I don't ask trick questions, I don't mislead the candidate, and I help them as much as I can to get to a solution on their own. However, I look for and probe for information throughout the process. It's relatively easy to discern whether someone knows what they're talking about and can apply it versus someone who crammed for the interview. Moreover, if someone did cram for the interview and was able to apply the knowledge that quickly - great, I want to work with people like that.

Had someone asked me to implement a JSON parser in brainfuck - I would have got up and left. More generally - if someone asks me to use a _specific_ language in an interview; it's not someplace aware enough to know that 99% of the time the language is unimportant and not somewhere I want to work.

With all that being said - technical interviews are not "the worst thing ever". They serve a vitally important task of ensuring I work with competent and personable people.


> That's a myopic and emotionally charged way of looking at it.

sure is emotionally charged, but I don't know that it is myopic. I have thought many many years about the contents of a technical interview. Taking a step back from the argument I recall decades ago noticing that, I believe it was the bureau of labor statics, software programmers are considered "unskilled technical labor." I was initially offended by this. I have now come to the realization that this is generally true. Skill is not required to make software, nearly anyone can do it. Leading back to the argument though, what makes someone good at being a software developer is not technical skills. It is general competency, critical thinking, and being a good communicator.

> Had someone asked me to implement a JSON parser in brainfuck - I would have got up and left. More generally - if someone asks me to use a _specific_ language in an interview; it's not someplace aware enough to know that 99% of the time the language is unimportant and not somewhere I want to work.

to be fair that wasn't the exact request. It was more along the lines of "using whatever (approved) language you'd like, implement x with that assumption that your base language can only loop and increment." x in this case was something like do division. Which I know is possible, but also something I would never need to do and as such the solution wasn't immediately available to my brain.

> With all that being said - technical interviews are not "the worst thing ever". They serve a vitally important task of ensuring I work with competent and personable people.

was definitely hyperbole, but my point is that a technical interview doesn't serve the purpose that you lay out for them being vitally important. A non-technical interview is far better and easier to evaluate a persons competency, problem solving, communication, and "personable people".

Point being an entry level person with competency and problem solving skills can be taught technical skills very quickly and/or learn as they go. Non-entry level, well, their resume should tell you they have the technical skills assuming their references check out. So I really think we should stop wasting time and talent on "technical interviews"


> to be fair that wasn't the exact request. It was more along the lines of "using whatever (approved) language you'd like, implement x with that assumption that your base language can only loop and increment." x in this case was something like do division. Which I know is possible, but also something I would never need to do and as such the solution wasn't immediately available to my brain.

This sounds like a great interview question. It calls on the candidate to show they understand what a turning complete system is and then put that knowledge into practice to create the fundamental building blocks that are normally given to you.

You used hyperbole to make it out to be something it definitely wasn't.

> Which I know is possible, but also something I would never need to do and as such the solution wasn't immediately available to my brain.

In fact, you do need to do it, you needed to do it for an interview. The fact that you see it that way might underscore a personality trait that the interviewers might not have liked. Thus giving credence to the interview process immediately.

> A non-technical interview is far better and easier to evaluate a persons competency, problem solving, communication, and "personable people".

No it's not. It's far better at providing a "comfortable" place for someone to chat without actually proving anything. A good technical interview is problem solving _with_ time to chat and prove understanding of concepts.

> Point being an entry level person with competency and problem solving skills can be taught technical skills very quickly and/or learn as they go.

This is clearly false otherwise we wouldn't be starved for competent technical candidates. There're thousands of companies looking for qualified candidates and they can't find them.

> their resume should tell you they have the technical skills assuming their references check out. So I really think we should stop wasting time and talent on "technical interviews"

Resumes are worthless - doubly so now that politicians have made lying OK. The majority of people I've interviewed lied on their resumes, either as small white lies, or as large ones. And personal references are also garbage - there was a recent radio host that called random numbers and asked for a "reference" for a candidate they were interviewing. People went out of their way to talk up the fictional candidate.

> Leading back to the argument though, what makes someone good at being a software developer is not technical skills. It is general competency, critical thinking, and being a good communicator.

Yes to critical thinking and communication. You just aren't going to get a good read on a candidate without asking thought-invoking questions. You've either never had a good interview or you don't interview well and disparage the process to feel better.


Yeah, spot on. Thanks for providing the link.


> All our job postings say "CS degree required". But if you have experience and a good resume it absolutely doesn't matter.

So, you lie about your actual requirements (how hard is it to add the classic “or equivalent experience” qualification?) and expect potential applicants to intuit your hidden meaning?


Don't hate the players, hate the game. With job applications and resumes, hidden meaning is all part of the game. I have some input in the job description but for all kinds of political reasons it's not complete control.

All requirements on a job application, from degrees to the technical, are all subject to negotiation. If a job requires JavaScript but you can demonstrate that your other skills more than make up for it (and you can learn) then maybe you'd still be a hire.


Nonsense. If you sell bread at $10, but at the end of the day (when you'd have to throw out unsold inventory) someone offers $6 and you accept, you aren't lying about your stated price.

As with any kind of transaction in business, the terms of employment are negotiable. A job posting is simply an initial ask.


Thinking about this more...I seem to remember we used to have wording "CS degree or equivalent" which takes care of the lying aspect. There may be some detail of US labor law that make this a bad idea, not sure (for me having moved from UK to US the laws and customs around hiring are a bit odd and unintuitive...for what I understand are good historical reasons).


If you don't do that stuff it becomes harder when you want to apply for permanent residence for the guys you want.


Ah, so it's lying to applicants, but that's just incidental, the real target is lying to government to support immigration fraud. That makes sense.

Ethics are another question, but the rationale is clear.


Yep, it's just one of the hacks that everyone's on board with. Like how we allow cash-tipped employees to not report tips, we allow this because (while politically unpalatable to change the law) it's better for the country this way.

After all, it's the law that fails to recognize that 7 years of experience in different environments may trump having a degree. Policy makers recognize this and allow the situation to exist because they know that you're not going to get residence for the 7-year-no-degree dude, you're going to get it for the 5-year-Masters-from-CMU fellow and it's better to have that guy in than out.


Then why the heck would you say that on your job postings, or not pitch that it be changed to whomever runs HR?

As a hiring manager you probably dream of finding more people like your best performers, yet this makes it harder.

I agree there is value in a theoretical foundation and would also encourage people to pursue it.

However it seems like a separate point from the reality of the market today. Even historically, could you have lost out on a chance to hire Faraday or Ramanujan because they were scared off from applying by boilerplate text?


On the other side, the vast majority of applicants are completely unqualified. Do I want to increase that problem? Not at all.

To be fair, I may have lost people with lower confidence in their abilities and a greater fear of failure. That doesn't sound like a great loss. I'd rather encourage people to have confidence and get over their fear than lower the requirements.

It's not as if these aren't important requirements; everyone in the department has a CS degree right now. If we put background in a technology, it's because we use that technology. But I'd open to the possibility that an applicant who isn't a perfect match might still be a great candidate. That's all. I suspect most hiring managers feel the same way.


I may have lost people with lower confidence in their abilities and a greater fear of failure.

That HBR article I linked in the other thread actually addresses that. Their survey indicates that people are deterred less by lack of confidence in their abilities, and more by lack of confidence in your process to assess their abilities in the absence of a credential. The top-given reason (from both women and men) for not applying was “I didn’t think they would hire me since I didn’t meet the qualifications, and I didn’t want to waste my time and energy.”

Now maybe you're actively looking for people who hustle and won't take no for an answer (which isn't quite the same thing as "confident in their abilities"). Maybe that's your team culture, or your company culture. That's certainly your choice if so.


There is a lot of projection going on here. The simple statement that the requirements are not always (or even often) hard factors that can never be overridden should not be controversial in the least. That's true in all aspects of life.

So if you don't have a degree, you probably shouldn't let that hold you back. And maybe because you don't have a degree you should hustle a bit more than those who do. Again, that shouldn't be controversial.


Are you not conflating two related but separate hiring issues here?

1) Are there diamonds to be found in the hiring pool of candidates without a CS degree?

2) Whats the most efficient way to hire people in an era where a hiring managers or company HR can receive thousands of resumes for a position?

You're refuting my point on the basis of (2) for which I made no claim. To that point, yes obviously any process chosen has to be practical and take into account many requirements.

However (2) is an issue whether or not you screen based on CS degree. Moreover, it doesn't necessarily get worse.

Any major change to evaluation process should be holistic and take into account number of evaluations, time and money invested to evaluate, and where resources are spent in the process. You could come out the same or better in time and complexity, hence "process optimization".

Lots of approaches have been tried and some are anecdotally successful. The biggest obstacle I've seen to improving process is scaling it up to large numbers. What's optimal for organizations of every size and requirement set can't be written in stone.

I would just hope that whatever the policy at my organization would have been, still someone would have whispered Faraday's name to me, along with countless other folks who wont be famous but who we've all seen make great contributions.


It sounds like the best way to land a job is to talk directly to you and show you what (a candidate) is capable of, filters and applications be damned!


Don't want to pile on but please put "or a great portfolio" as well.


> All our job postings say "CS degree required". But if you have experience and a good resume it absolutely doesn't matter.

These days, even job descriptions at a lot of the FAANG and other big tech companies phrase it as "CS degree or equivalent experience required". Hopefully that's a practice that will trickle down to smaller companies over time.


My view is if the applicants did a self assessment and meet 75% of the requirements but could cover the gaps through some other way, they should apply.


>If you don't have a degree but have experience, don't let the degree requirement stop you from applying.

Then don't list it as a requirement..?


Maybe it's some company level HR policy? Certainly drives me up the wall.


Indeed.


"Now, you should definitely get a CS degree or similar if you want to be a programmer. I would have done a lot better having one even though I got by without it. Also, my career path was ridiculous and is entirely non-replicable."

I'm wondering for how long Americans are going to be exploited like that. I mean getting a degree is never a bad idea but in my country (Poland) unis are FREE yet I never went to one and roughly 80% of my programming friends never did or they studied something entirely different. And we're working everywhere from big banks in London through Swiss pharma companies, European Commission in Belgium, to Opera or Google. I never got asked if I have any formal education after my first 2 years in IT. The best programmers I know are mostly all self-taught. Almost all the successful ones are. The "educated" ones often become corporate slaves making pennies in places like Samsung's R&D. I know American unis are top-notch but I suppose it's still better to start learning on your own than to pay hundreds of thousands of dollars for something else than TOP5 or TOP10 unis. And most likely it's even not worth (money-wise) paying that much for those. I suppose we will need not thousands but millions of coders in next decades, right now I'm getting like 50 messages from headhunters any given day, I don't think even if we tried it will be virtually impossible to push so many people through education system at that pace.

Also, especially programming is virtually impossible to learn in any other way than coding for years. It's really handy to have some strong technical background but once you put the time and work in it will work out regardless. Of course again it's better to have the education, but hey, if costs as much as a house maybe it's not the best idea after all. Furthermore ot everyone has to be an architect or CTO (BTW I still know extremely good architects and CTOs without degrees).

tl;dr there are possibly millions of degreeless programmers in Europe, can't wrap my mind around the US education situation, could someone clarify why are things the way they are?


I've conducted maybe like 50+ interviews for a big tech company. The only thing a CS degree would consistently tell me, isn't that the candidate had an understanding of CS, but rather that they'd be more likely to be happy existing in a corporate environment, because they were able to follow through on a four year long commitment doing what authority figures tell them to do in their schooling environment.

It's worth pursuing a CS degree if you're the sort of person who will be accepted by one of the best schools. If the schools that teach computer science won't accept you, then please don't let it turn you off to the idea of computer science. If you can code, you're already a programmer, no matter how young you may be. If you've got grit and a positive attitude, you can absolutely be successful.


> If it's known that you can do the work (which is the kicker of course), I've never seen an employer hiring people to write code actually care about the degree. Even in academic environments I've been offered programming jobs (obviously not teaching jobs).

I have recently started getting doors shut for me because of lack of degree. I have 20+ years of experience though and in many of those cases am/was already doing the job they would be hiring me for. I don't know that I'd be doing any better now if I had the degree. I'm at the top in my market already, in fact most opportunities for me tend to not work out because my base exceeds their willingness to pay (without regard for the lack of CS degree).


but, it's really sad that circumstances are such that people need to get useless degrees to compete for a job that doesn't really need the degree.

A CS degree teaches you so much more than what is needed for a software engineering job (it goes far beyond SE and teaches you about compiler design, networking, OS algorithms, analysis of algo, etc)

I have a 4 year degree in CS and a masters in CS. Despite over 15 years of SE experience, I haven't had much use for 80% of the stuff a CS degree teaches you.

However, as the poster has said, it's very useful for getting your foot in the door.


You say "I would have done a lot better having one". Explain?


As someone in a comparable situation, I would have skipped the 5-7 years it takes to be considered "or equivalent experience". I don't speak for OP though.

(That said, I also paid off what little student loans I had much quicker than some of my friends, so...)


if you scroll up you can see jedberg (one of the original founders of Reddit) saying how these days it seems most people know what A* is even if they don't have a CS degree. I didn't :). Just wikipedia'ed it, and sure, I've seen this kind of thing before but I've never had to actually use a shortest distance algorithm. So I'd fail jedberg's interview (even though reddit uses my software, at least they were some years ago :) )


Where are you located? I'm in the SF Bay Area and your experience is pretty common here, but I'm wondering if translates to other geographies.


Totally off-topic, but thank you so much for all the fantastic software you've written!


I've worked with a bunch of people who don't have degrees. At the more junior level, you can tell the difference, because while they tend to be really smart and can pick things up quickly, they have funny holes in their knowledge -- CS theory that you'd only pick up from a CS textbook, stuff like Big O notation or A* search (ok maybe that one is a bit more common now, but in the early 00s you didn't really learn that without a textbook).

By the senior levels you can't really tell the difference between someone with or without a CS degree. Experience definitely beats textbook knowledge after a couple of years.


Hiring manager here and I completely agree with this. In my experience there is almost zero difference between a junior engineer with a CS degree and a junior engineer who is self-taught or had a non-traditional CS education.

In actuality the things you learn in a 4 year CS program that you wouldn't get elsewhere (algorithm performance, theory, etc.) don't apply to all professional engineering jobs (especially at the junior level). Triplebyte has some great data on how bootcamp grads fair against CS grads (https://triplebyte.com/blog/bootcamps-vs-college) and my takeaway from this (and from personal experience) is that at the junior level it almost makes no practical difference.


I did Big O Notation in college and I still can't remember which notation is faster/slower.

After college/university you begin to forget a lot of the specific textbook stuff and begin to replace it with the put-food-on-your-table practical stuff.


This is not something to "remember". If you don't know this, you don't understand it.


I don't think so, I think this is one of the easiest things to forget.

Even in school, Big-O is used almost exclusively, very rarely do you see Big-Omega, Big-Theta, Little-O, etc. Even though in algorithmic analysis these are all used to give a more accurate characterization of the algorithms behavior.

Its funny, too, because the professionals (that are admittedly very smart) that like to talk down about Big-O as if it was a waste of time, seem to not realize there is a whole taxonomy of tools for analyzing and characterizing algorithmic complexity...


Again you don't need to remember or forget this. Big O is worst case , theta is always guaranteed bound, Omega is minimum bound. My point is call them whatever, just know the concept to help you make design decisions.


This is something you need to know! What approach you use most definitely needs to keep in mind it's runtime. O(n^2) must be looked at with a skeptical eye and you better be sure there's no better answer when going higher. (I've hit O(n^8) in production code in a data verification routine and O(2^n) in a side project--the latter had to be scrapped in favor of an O(n^2) that wasn't guaranteed to find the best answer.)


Absolutely. But Big O still comes up in practical stuff depending on what you're doing. You can usually get by without it, but sometimes when you need to process a few 100 terabytes of log files, having a basic grasp on Big O comes in handy for reducing your processing time from days to hours by picking the right algorithm.


I think the point the parent was trying to make is that the concept is way more important than the specific notation. Someone that doesn't know Big O could still tell you why one algorithm would be better, it just might be slightly less succinct:

"The execution time of algorithm A scales up with the number of items, while algoritm B's is constant."

vs

"The execution time of algorithm A is O(n), while algorithm B's is O(1)."


In practice I've always found avoiding premature optimization and then profiling better than worrying about Big O.


You save an awful lot of time when you know have an idea of what's going to be slow up front.

I've spent so much time trying to chase down bugs caused by junior programmers because something that worked fine with 100 rows in db, slows to a crawl when we move a feature out of beta and we suddenly have 1000 rows.

If they had some idea that the query they were writing was O(n^3) they could have done a quick estimate and saved us all the trouble.


As someone without a CS this is reassuring.


I really recommend trying to learn just the basics about big-O, because it is really the single most important thing that a CS degree teaches you.


Yeah, I agree.

You can learn it in like 30 minutes, and understanding the concept behind it (not just the notation) is the core of understanding why some algorithms work better than others.


Industry specific certifications can help ease the way into the job market along with a portfolio of (side) projects.


The opposite is also true, for example, highly educated but still directly concatenating query parameters into SQL... "Oh yeah, the IDE provided warning was annoying, so I turned it off"


Yeah, I mean our field is so immensely broad (and deep!) that pretty much everyone you work with will have "funny holes" in their knowledge regardless of experience level.


I'm wondering where I'll be.

I did Chem engineering in college, but have been programming since I was 17.

Now I've moved to electrical design Engineering since it seems to be a hybrid of engineering and programming.

So far my job is understanding everything that goes into my complex system. I'm not sure if this or embedded programming is my future. What is more valuable?


I think there's also a large gap for people who only have a CS education and those with a traditional engineering background.

Traditional engineering skills are very undervalued in this industry and I've met very few "engineers" in this field who understand engineering basics like control systems. IMO that's very valuable for building the systems we build -- I can't tell you how many half-baked implementations of some of the parts of PID I've seen kicking around.

And I say that as a completely self-taught, college dropout senior developer.


I think you have a good point. With today's complex distributed systems, control theory should really be emphasized more. I didn't learn it in school, but I definitely studied it when I started being responsible for the uptime of complex systems!


Not going to lie, it's somewhat validating reading a +1 on this from you. It's usually one of my more unpopular opinions and I work in ops.


I mean my personal take on it is that if you don't have a most basic understanding of control theory, you won't understand what your monitoring system is telling you nor will you know how to programmatically react to it.

In fact, I have a perfect counter example. At reddit, to even out load on our databases, we built a system that would take into account current load on the database when choosing which read slave to select. As it turns out, this doesn't work well, because you overwhelm the slave with the lowest load because the the reaction time is too slow compared to the request time. We had to tweak it to account for this.

Had we known control theory, we would not have made this mistake. On the other hand, that mistake didn't cause us that much damage and we were able to devise a solution that ended up being right. :)


My experience of embedded is that it encapsulates needing to know everything about more complex systems. You can't make any assumptions about anything, which makes life fun. And often it's something totally unexpected which causes you grief.

I do a lot of embedded work without a CS degree. Every board and chip is different, so you learn by doing. But,at the same time a lot of hardware is basically the same. You have some low power cpu and a bunch of standard peripherals. Once you know how most of them work, it's just engineering to figure out what libraries you need.

There's lots of work in embedded that's for sure. There's also a huge amount of variety depending how close to the metal you want to be.


What stands out to me (at my current workplace), is that the guys with a CS degree, tend to spend much longer on building features than the guys without a degree. Mostly because they have really intense arguments about best practices, and have very strong opinions on almost everything.

While the guys without a degree are able to have a quick discussion, and come up with an approach they think is best.


> they have funny holes in their knowledge -- CS theory that you'd only pick up from a CS textbook, stuff like Big O notation or A* search

I don't have a degree but made it far enough in school to take algorithms and we didn't learn A*.. I think there will always be holes in someone's knowledge since schools have different requirements.


You probably wouldn't learn A* unless you took an AI related course. Or specifically studied graph traversal.


Or, had an interest in building video games.


I think you're less likely to run into those issues if all you're doing is building web apps and the like.


> By the senior levels you can't really tell the difference between someone with or without a CS degree. Experience definitely beats textbook knowledge after a couple of years.

Agreed. Absolutely correct!


You can't tell the difference because the senior non-degree people have picked up the useful CS theory or because CS theory doesn't come up anymore?


They've picked up the useful CS theory.


Yeah, that's interesting. I know a few senior people without degrees (or high school diplomas) and that chimes with what they say.


Exactly what I mentioned in my other comment in the thread.


And you can't read a book in teaching yourself?


Well yes, but that's true of any degree - heck, that's true of nearly any education. There are a handful of exceptions like medical school that give you access to cadavers that you otherwise wouldn’t have or a robotics lab that has million dollar equipment that you can play around with, but in general you can (theoretically) learn anything by just reading books/practicing. College focuses you on things you might otherwise not come across and, in theory at least, sets a level expectation: anybody with a CS degree ought to understand elementary calculus, for example. If a CS education is “useless” then so is nearly all education.


Many self taught developers will focus on less theoretical skills related to programming and focus on what's practical.

They may read a textbook to teach themselves but it'll be different than the textbooks they make you read for a CS degree.

This typically is a benefit, many fresh CS grades I've seen are not as comfortable developing in their first job as a lot of self taught developers.


The self-taught guy probably has a lot more experience writing bigger things than the guy who only learned in school.


I have a degree in computer science and still think degree screening is bullshit.

Ironically, it probably hurts companies more than candidates.

If you really look into it there are some good ideas out there on how to do better.

One big problem seems to be that alternate approaches break down when scaling up. For example they can't be easily automated, or cant be easily handed to human recruiters with little tech understanding than are culling tons of candidates each day.

Screening based on college reminds me of screening based on an "IQ test", it may have some correlation to good candidates so people think it's good. However the correlation is weak and highly inefficient. Hard to imagine the productivity and opportunities lost compared to a high-correlation more fair process.


Hmm. Wouldn't this be just a regular job board where an applicant ignores any requirements in the postings that applicants have a degree?

For me, hiring, the criterion is more like "could get a degree". Whether or not you actually have the degree doesn't matter to me. Someone who isn't smart enough/motivated enough to get a degree, if they wanted to and had the time/money, well I'd probably not hire that person. Perhaps this is what folks are really getting at when they say you need a degree?


Hey, author here. You might remember me from posts such as "No CS Degree – Interviews with self-taught developers".

I've made a job board for people without CS degrees. Since I am going to be applying for jobs soon and I am career-changer I figured I would make a solution for myself. It's really annoying to get to the end of a great looking job ad only to find they insist on a CS degree.

All of the job positions are fine with applicants being either self-taught with a good portfolio or having done a coding bootcamp. Let me know what you think!


little feedback - there is lot of whitespace between the email subscriber form and the actual listing of the jobs.. you might want to move the listing to the top over the email subscriber form.


Ok, thanks for the tip!


How do you know someone doesn't have a CS degree? They'll tell you.

You're right: Nobody cares you don't have a degree. It's not impressive, it is just normal. What I have a problem with is the huge chip on people's shoulders about "not having a degree" and insisting on dissing anyone who chose to go a different route.

I have a CS degree, I went to school on a scholarship, did not have these massive loans and "wasted years" everyone keeps harping on about. I volunteered my time, I was on the programming team, I did internships, I got amazing insights and advice from my professors. I went to school at night and worked during the day.

I consider my CS degree the best decision I ever made. I found the training and education I received extremely valuable. However, not all degrees are created equal. I went to a really great school. Probably would have had a different experience if I went to whatever crappy state school was nearby.

I also don't think it is necessary to have a degree to be a great programmer. What I DO think is necessary is study and honing your craft. Experience for software development is worth much less than people give it credit for.

Hacking sucks. Just hacking at stuff for years on end leads to you being an expert beginner. Do you have 10 years of experience? Or have you done the same thing for 10 years. This applies to everything: You can get twice as far in half the time if you don't have to figure everything out for yourself, and listen to and learn from experts.

What I look for in a developer: READS BOOKS. ( Audio books count )

That's the only thing. I'm sorry, if you are not reading and studying to keep up, you are getting left behind. There are so many brilliant people writing amazing books on a huge array of subjects. If I could get every one of my developers to read ONE book in on software design[0] a year, I would die happy and the entire industry would be 10 years ahead.

They don't even have to be technical books. I just want to see intellectual curiosity and a commitment to self improvement.

- 0: In the vein of Clean Architecture, The Pragmatic Programmer, The Mythical Man Month, Designing Data-Intensive Applications, The Google SRE book, etc.


> Experience for software development is worth much less than people give it credit for.

I strongly disagree with this. You can read all the books you want, but when it comes to making a decision about a set of tradeoffs, there is no substitute for the experience of having made a similar decision in production before and having seen what works well and what doesn't. So many of the nuances of real-world production systems get lost in books and articles that it's hard to know when it's appropriate to apply that knowledge.

That said, I concede that "experience" doesn't necessarily have to be your own—you can learn from the experiences of your co-workers, friends at other companies, or random people on HN, you just have to take everything with a grain of salt.

> Hacking sucks. Just hacking at stuff for years on end leads to you being an expert beginner.

Solo tinkering is a poor substitute for the experience of building production systems with a team, but it's a great way to stretch the breadth of your experience. I have learned lots of different programming languages, platforms, and concepts in this way that have all made me a better programmer all around, even if nothing tangible came out of any of it.


You can work on all the real world production systems you want, but not all production systems are created and operated equally. Engineers who haven't received very specific types of training might address issues in ways that doesn't solve the root cause, leading to bad habits and potentially endless cycles of fires.

What I feel matters more than books, experience, and everything else, is simply being plugged in to an environment where you can socialize with the folks who've received the most outstanding training, and by osmosis, having the neural network between your ears attuned to their biases and areas of focus.

Higher education does a good job at this. So does working for a big company.


> the huge chip on people's shoulders about "not having a degree"

Glad to see I’m not the only one who winces at this. As bad as intellectual snobbery is, reverse/anti-intellectual snobbery is worse: “we don’t take to all yer fancy book learnin’ in these here parts!” It often seems to be lost that the difference isn’t between somebody with a four-year-degree and somebody with 10 years of experience, but between somebody with a four-year-degree AND ten years of experience and somebody with ten (or even fourteen) years of experience and no degree at all. With machine learning finally coming into its own, software development is getting to be more mathematical, and what you learn in college actually is pretty useful.


It's interesting that you think you need to attend college to be an "intellectual", and that people who didn't attend or chose not to continue must hold "anti-intellectual" views, that should definitely tell you something about your own narcissism.

It sounds like you went to college and I think that's great, I hope you learned a lot and got a lot of value out of it, but try not to disparage the people who decided not to stick around and are working in the same jobs as you because they were smart/pragmatic enough to see the college experience for what it was.

Personally I thought college was a huge waste of time and money. We live in the day and age of the internet and yet we're paying tens of thousands of dollars to learn things that we can teach ourselves for free and the only reason we do it is because we're too afraid not to. Doesn't that sound ludicrous to you? It did to me, and that's why I saved hundreds of thousands of dollars on my student loans by switching to drop out. And before you hit me with the "It was all about the experience" argument, I'd agree, you paid for a very expensive life experience.

I'm now happily employed as a lead software developer making great money. If I need to brush up on my data structures and algorithms for an interview you know what I do? I go online. If I ever want to delve into machine learning you know what I'd do? I'd go online. Need to brush up on some math? You guessed it.

Strictly speaking I think you made a bad investment by going to college, does that make me an "anti-intellectual snob"? And as a follow up, does it make you "wince" when you see how much you paid to learn what I learned for free?


Hundreds of thousands? Most people don't go that deeply into debt. I think the average is like 30k. And that includes loans for housing costs.

Also, this is exactly what I'm talking about. Huge chip on your shoulder about something that has nothing to do with you. You are so mad about someone else thinking their college experience was worth it.

Don't disparage people who felt like their education was worth it.

You have no idea about other people's life experiences and how they came to the conclusions they have come to.

So maybe accept that some people got a lot out of college and your experience is not universal.


Did you even read my post? First of all I said tens of thousands not hundreds. There’s definitely people who go into hundreds of thousands of dollars of debt to attend school but that’s pretty rare.

Second I don’t know where you’re getting tuition plus room and board for 30K unless you had some sort of scholarship (which, not to drag race into it, seems to be increasingly difficult to get if you’re a white male).

Third I made it a point not to disparage you, I specifically said that I think it’s great if you feel like you got a lot of value out of your college experience. I don’t think anybody should disparage anybody, that’s the point. I’m not “anti-intellectual” because I made the financial decision to opt out of college.


> but try not to disparage the people who decided not to stick around and are working in the same jobs as you

Theory matters, classic example here[1], and if pointing out that people are making well understood mistakes because they haven't studied it is disparaging, so be it.

[1]: https://github.com/promises-aplus/promises-spec/issues/94


That's certainly impressive, though 99% of developers aren't in the business of making high level language design decisions like that. I agree though I think it would be very rare to find a self-taught developer that's studied category theory and other high level mathematical concepts on their own. I think Brian Mckenna made some very convincing points with that article.

I don't think college is bad, I think debt is bad and for the vast majority of people entering software development the key is to get things done in a timely and efficient manor, I think it's pretty safe to say you'll never get the opportunity to apply category theory during your daily standup meetings with your scrum team as your managers are trying to meet deadlines for their clients, it's the unfortunate world we live in, if everything was free and nobody had to work hell stay in college your whole life. I wish I had that luxury.


> I think it's pretty safe to say you'll never get the opportunity to apply category theory during your daily standup meetings

Theory tends to bite when something breaks, though.

Performance problems are often explained through computational complexity, or concurrency theory. Strange values can be due to numerical error. If you see something weird in Javascript transformed by Babel, or really any compiler, you might be dealing with graph theory. If there are problems in a databsae, you're dealing with relational theory.

And yes, you can often Google the problem, but you're definitely doing better if you're the person whose answer everyone is searching for.

> That's certainly impressive, though 99% of developers aren't in the business of making high level language design decisions like that.

I think they do, though, because they get an incomplete spec and have to fill in the blanks.

"Agile languages" can be characterized as having concrete types: strings, ints, floats, lists, maps, sets. And the 99% of developers are using these languages and creating data structures using those types, and sharing those data structures, often via JSON.

This results in what I call "data pasta" being shipped back and forth between systems. And those ad hoc structures are effectively codified when they become APIs or are saved in NoSQL systems.

Does a CS degree help with this? I'm mostly aware of the problem because I've done it and then tried to clean it up in systems I work on. So the theory helps, but you need some practical guidance.

What the dichotomy of CS degree or self-taught misses is that the CS degree is aimed at learning the math, and while the math can guide best practices, you don't actually study best practices.

> I don't think college is bad, I think debt is bad

Yeah, I graudated in '03, so debt hadn't blown up. Even if we stop shoveling money into universities, not working for four years is still a massive opportunity cost, and a partially completed degree is worthless, exposing students to a tremendous risk.

And so it makes a lot of sense for people to do bootcamps to get their start in the industry, and regardless of whether you're self-taught or not, it seems like you could benefit from some formal training before you take on a senior role.

My degree had some courses on software engineering, but they were focused on requirements documents and UML diagrams and other high level stuff, which I wasn't going to see for year to come.

So maybe a software engineering course for people with industry experience could go over best practices and justify them through the math.


> And as a follow up, does it make you "wince" when you see how much you paid to learn what I learned for free?

I find it very unlikely I would have learned the things I know had it not been for university.

Besides, I don't live in the US (thank god) so I was actually paid by the state to study.


Sorry, but do you read your own comments out loud? This reeks of a kind if snobbery, just not the type you're snobby against.


Yeah people always drive by with this exact comment. My writing style comes off this way sometimes, I can't control how you interpret my comments. It's a social media post, not a great American novel.

Oh no my social media comment was read as "smarmy" by some internet drone. Yawn


It didn't come off as smarmy (well it did), but it primarily came off as contradictory.


> Probably would have had a different experience if I went to whatever crappy state school was nearby.

I went to a bottom-ranked state school and loved it.


I've have degrees from 3 different universities; the one I enjoyed the most was at a school that evolved from a community college over the past 30 years: small classes, profs who care about teaching, administrators trying to build something new & exciting and diverse students with no preconceived notion of their own self-importance. It wasn't all gravy but overall I loved it.


I also did the community college route (before transferring credits to a four-year school) and I learned so, SO much in those two years. The community college had some cutting edge classes (at the time) like a web development course that taught PHP, MySQL, and Javascript, but also language-focused courses like Java and C# that focused on teaching OOP. The community college did not teach traditional CS concepts like Big-O, sort algorithms, etc. it wasn't until the four-year school that I learned those. It cost all of $2,500 to attend the community college those two years (with the added bonus of skipping two years worth of general education requirements at the more expensive four-year school school).

Money well spent.

I actually considered taking my newfound web development knowledge (this was in the mid-late 2000s coming out of the Web 2.0 craze) and starting my own website business, but the advisor at the community college recommended I go ahead and get the four-year degree, which I absolutely realize was a good decision.


Yeah, that's fair. I shouldn't diss on state schools. I had a specific one in mind when I wrote this, but it can definitely come off as elitist. My apologies.


I had the opposite experience. I don't think I went to a terrible school but I learned way more practical skills through my internship and work experience after graduation than I did in school. The only language I used both during and after college is PHP. I never learned any C#, .NET or Javascript. I have not used C, C++, Java, Haskell, Scala, Big O notation, graph theory, NP&NPC, linear algebra since then. While a lot of these languages and theories are interesting I feel like it was a lot of wasted time and money.


well, learning Java serves you well for C#; skills with C and C++ have huge transfer value; maybe you haven't been tasked with "figure out the cost of this algo" but I hope intuitively you've used some Big-O, linear programming, recursion and maybe graph theory; IMO those math courses have really helped you understand how a database works and costing execution plans; The practice in picking up new languages in less than a semester should give you an edge in identifying common aspects today; the list goes on...

I'd go as far as to say it's a bad sign if you can draw direct linkages between what you learned in university and what you do day-to-day in your job. That's not really the intent of a degree in comp sci.


Of course learning one languages improves your abilities to pick up other languages but the university curriculum is definitely geared more towards continuing your education or a career in academia/research. I feel like I would have gotten more valuable knowledge/skills from just going to a bootcamp in addition to saving a lot more time and money.


I fell for the propaganda a few years ago and opted not to go to school on the basis of "too much theory" "side projects" etc. and am just now starting to believe that it was the biggest mistake of my career. I'm starting to realize now that if I want the chance to work on interesting problems (let alone be smart enough to work on them), not having a degree will be crippling and I have a ton of catching up to do on CS in general. Unfortunately, I looked at going back and even going to a crappy state school would likely leave me dug in debt


I understand people can "get by" without any higher level CS knowledge in a results-oriented programming world, especially in the era of framework mix and match monkeycoding, but there are fundamental things that the theory of computation, operating systems, and complexity theory gave me.

Aside from single-row pulls (and even still), should someone that doesn't understand basic big-O be allowed to write any code that accesses a database?


I dropped out of college about seven years ago, about 24 credit hours shy of getting my IS degree. The classes left were a mix of business classes I don't care for (Accounting) and generals I don't care for (Biology 100? PASS). I haven't had any problems finding great jobs as a software engineer throughout my career, including working at Apple in Cupertino straight out of college.

Recently, a guy in my neighborhood who works at the school I went to tried to talk me into going back and finishing up. He talked to the dean and said they could waive four of the eight classes I had left to do! So now I only have four classes left, all doable online, most of them easy generals like arts and letters...

That sounds pretty tempting and everything, but part of me has also enjoyed achieving success outside of the path that our society more or less mandates as a requirement. I almost want to skip the degree to continue showing that it isn't the paper that matters, but the line of work that you pursue and the effort you put into it.

Am I crazy? Should I just go get the silly degree?


The degree is an accredited qualification that checks boxes. It may not have short term career value for you, but my degrees have helped me in some situations.

I used it to get my TN1 work permit. If you ever find yourself emigrating, even temporarily or even on a client project, that degree will get you across most borders to work. If you don't have a degree, it is much harder.

I used it on my IRAP grant application. If you ever want a grant from the government for a startup research project, and it requires a qualified individual, the degree is proof you're qualified.

etc.


Can't tell you what you should do, but if it were me I would. Who knows if it could help get you a higher salary at some point in the future, for instance, if nothing else. Given the small amount of work remaining, I'd say go for it.


Who cares about showing people you can do something without a degree? It might get you more money or different opportunities at some point in life at the cost of doing some classes. Which in turn will teach you something you didn’t know already know, which is also a positive and possibly fun thing.

It isn’t as if people are sitting around saying “wow look at archeantus doing all that stuff without a degree, he is sure telling them.”

Do whatever feels right for you, not others.


Does the idea of having a degree mean anything to you?

If the only thing between degree-you and non-degree-you is "4 easy online classes" would you be doing this for the accomplishment or the piece of paper?

>> Should I just go get the silly degree?

I loved school, valued my time there, feel it's had tremendous value in my life and am really proud of my degree. None of that seems true for you, so why not spend the time, effort and money doing something more important?


You probably should, more future security and possible pay raise


At the risk of committing a sunk cost fallacy, I would definitely say that's worth it since you are already so close and a sizable segment of society places a minimal expectation on having such a thing. Degrees are more a certificate that signal something to employers rather than actual vehicles of continued learning. Even if it's not needed now, it would certainly open more doors.

But that's just my opinion. Do whatever feels right for you.


My lack of degree has never been relevant in my 12-year-long coding career, I have never had issues getting jobs I want and often seen them choose me over someone with a degree.

Side projects, my obvious passion for coding, and eventually, of course, my experience got me where I’m at, making a triple-digit salary as a senior iOS developer at a major bank here in Canada.

I’m so very glad I avoided the horrors of student loans that half the people my age I know are going through.

I was able to see ‘higher education’ as the debt trap it was like I can see the sky is blue on a clear day.

At the age of 18, it was: 1) make $50k a year doing something I’ve been doing for ten years every day, know how to do well and love, or 2) go $50k in debt every year for four years paying to struggle through the school system - I hardly passed high school, the way school works just does not click with me or many others.

If you are a coder without a degree, even if it says a degree is required - just apply. This is how I got to work as an iPhone developer at LEGO, Winners, Universal Music, et cetera, until the list of these names became so notable they’d essentially be dumb to not at least look my resume over.

The other most solid piece of advice I can give - just keep doing side projects. If you’re going for your first job, an impressive side project is actually a way better way to get their attention than the dozens of people who will apply with degrees. It’s different, it will always be different, because you made it your way.

A degree isn’t anything unique, and is not actually any serious indication of actual programming talent. A degree in CS basically gives your potential employer the promise that you at least understand the fundamentals of computer science enough to slog it through school. Whoop-de-do. You meet the basic requirements and can even be considered.

Coded a custom instant messenger client while you were in your teens? Played around with ROM hacking, assembly language? Created a Mario fan game? Show them this.

You, your passion and your side projects are. I know this from the utmost experience - because those examples I just gave, I did all of, from the ages of 9-16, which got me doing web sites for real estate agents at 16, which got me working in software at Chase banks at 18. I’ve never looked back and watched my salary and experience grow year by year. :)


A lot of self taught programmers have gaps in knowledge especially when it comes to synchronization, how threading works, basic data structure and operation complexity on them. Whenever it's required they say "it's not required for web development". Of course I don't say this for all but many of them have this problem. Bootcamps don't help.


To counter - I have met all too many folks some with a CS degree that don’t understand these concepts, either.

I hear about them every day because I sit next to the HR manager, and hear the horror stories of the blank faces when basic concepts were asked. The phrase ‘how did they even make it through a CS program?’ is common.

Fortunately, I have a ton of experience with threading and data structures, I wouldn’t personally make such generalizations - I knew this would be among the first responses I got from someone with a degree.

No, our lack of degree doesn’t imply we lack fundamental concepts - any more than a degree assures you do - and, I don’t know about you, but most of the full-time employers I’ve had would happily pay for a coding boot camp for me on a topic of my choice. shrugs


> I hear about them every day because I sit next to the HR manager, and hear the horror stories of the blank faces when basic concepts were asked. The phrase ‘how did they even make it through a CS program?’ is common.

That's true but entirely beside the point. Being given the opportunity to learn CS concepts and failing to do so is separate from never having been exposed to the concepts in the first place. They don't even know what they don't know.

> No, our lack of degree doesn’t imply we lack fundamental concepts

It doesn't guarantee that they lack fundamental concepts but I would say better than 95% of the time, they do.


You maybe an outlier. I clearly said some are great. "Our" - you don't represent all self learners.


I have a degree, but this is such an over-generalized comment. Many degree-owners have those same gaps you talked about, and some self-taught devs do not. I can't comment on Bootcamps, mainly because there seems to be a huge range in quality of graduates from those.


The point is probability. The probability of someone having these gaps from a top 50 school is way lower than one without a degree.


I'd like to see the statistics that demonstrate the probability you claim.


What do you need the statistics for? The people doing a degree studied the material under the guidance of an expert and had to demonstrate their mastery of the subject.

Self-learners aren't doing that.


Great rebuttal.


Can you also prove self learners are proficient in the same numbers as CS grads ?


I can't, but I didn't make the claim, you did.


Why didn't your original comment contain the 'top 50' addendum?


When as the last time understanding how threading works helped you in your day to day job? I ask earnestly as a professional self taught developer who doesn’t know how threading works and has never needed to


Any one working on any sort of back end infra needs to know this. Ask yourself how a simple webserver can process multiple incoming requests efficiently ? Or an app wants to do a network call without blocking it's UI from being updated.


So what does it mean to “know how threads work”? Do I really need a CS degree to use Go routines or redux sagas?

Tbh I wonder constantly if I should get a CS degree. I’ve been working for 4.5 years now and while I feel competent it’s hard to determine the value of things like this.

I can profile my code and optimize it, I can determine if a request is blocking and I can fix it using whatever tools are provided in the language or it’s ecosystem so what good does it do me to “know how threads work”?

Hope I’m not coming across as combative, I really genuine want to better understand this perspective of “developers should have CS degrees”


Threads, processes and OS primitives are a big part of your foundational knowledge. In your own words, you are only limited at attacking an problem by the tools and language primitives afforded to you.

What about thinking for yourself when those tools have limitations ? For example, when you have a "heisenbug" very few tools can help you fix it. However, if you understand how threads work, what data they share, you have a higher chance of solving the problem. Your profilers etc. are useless in this scenario.

I realize this is HN so the notion of "why do I need this" is king. It's hard to show someone the world outside when they are so closed in their bubble.


Do you think I’ve never had a difficult to debug problem? Sure it might have been easier to solve with the knowledge of a CS degree but that’s hard to reason about since I lack one (aside: perhaps you should reconsider your perspective on bubbles friend, it’s not as easy as “looking” at something to escape your own limits and biases) but I was still able to solve it.

I do see validity in what you’re saying but I fail to see how it’s as important as you seem to make it out to be. Is it really worth tens of thousands of dollars of debt and 4 years of time spent just to be able to debug stuff faster than your average bear?


Your employer may think it's better if you debug stuff faster. That may or may not directly lead to better career growth.

I can't make the CS education choice for you. And I have no personal beef with you or anyone who is self taught. You asked me a question and I replied with a context and situation. Cheers.


I’m guessing you don’t do a lot of work in games or media. o.o

Geez, how about even a network call that doesn’t interrupt a UI thread?


GCD and Operation Queues :)


I'm finding it increasingly difficult to fill those gaps. The process typically goes like this.

1. Realise I need to learn x, out of interest, necessity, etc.

2. Start reading a book on x, the book assumes I have an understanding on y and z as well, which I don't, so I realize I should learn those first.

3. Buy a book on y or z

4. Repeat step 2, but for whatever I just started reading on.


So what? A lot of college educated developers suck too. I know, because I've worked with them.


You can pick that up pretty easily and most do when they start interviewing for BigCorp jobs.

Feel like I had to comment since I'm self taught and I just read "Java Concurrency in Practice". :D


Java Concurrency in practice doesn't tell you that at the kernel level what is the difference between a process and a thread.


Sure. That is something else you have to learn.


I'm in between--I went to the university but no degree because allergies chased me off campus. As I'm older the only thing on this list that was covered was basic data structures. Complexity of algorithms was barely touched, not in any way related to data structures.


...and math.

It's easy to learn those topics independently with self-study. But learning linear algebra or stats on your own is much more difficult. People might claim that this isn't useful for most programmers, but it is absolutely is for a growing subset of them.


I have a degree and I know a great deal about those things. But I learned none of it in my degree. otoh the mathematics I learned in college is highly useful to me every day. ymmv.


>At the age of 18, it was: 1) make $50k a year doing something I’ve been doing for ten years every day, know how to do well and love

Many self-taught developers in the industry share this story. They didn't go to college, but they did invest thousands of hours into learning before entering the job market. Very different story than your typical bootcamp/udemy student, or a typical college freshman for that matter.


I somehow did both. I spent a fortune on art school to be a painter, only to change course in my late 20's and teach myself how to code. So I don't have a (tech) degree to my name, but with all the associated debt. lol.

However, I have luckily had the same experience as you. It's never held me back.


Artists are used to maintaining side projects. That’s possibly part of the thing?

I swear, the side project thing is everything. Even with a degree, you should have a side project to differentiate yourself from the two dozen other people applying with a degree.


My lack of degree has been relevant, stopping me from getting a visa to work for an IoT company in New Zealand. I actually have an accelerated Masters (first-class honours MEng after 4 academic years instead of BEng + reapply and study 12 months for MEng).

The case officer for my visa application still decided to deny my Work-to-Residence visa, because BEng is on his list, and MEng is not on his list.

The degree didn't matter for the company or the interview, but immigration care a lot about paperwork like this. I guess you started in Canada and didn't try moving overseas.


Immigration is a completely different issue that I can't comment on. I was born in Canada.


I feel like iOS development is especially lenient for degree requirements. Barely anyone learns Swift or dabbles with iOS while in school. I know that some places do offer specific iOS classes (e.g. Stanford), and some students will end up doing iOS internships, but the vast majority of students don't.


> iOS developer at a major bank here in Canada.

Is it the one that forced me to upgrade their app to a version that didn’t support scheduled payments anymore?


Many a time, I’ve hired software engineers without degrees over software engineers with Ivy League or top-10 school CS degrees, and I haven’t regretted it even once.

Nowadays, I don’t even put education “requirements” in job descriptions, and even if you mention your school during an interview, I don’t really care for it, to be quite honest. At the end of the day, our real technical/programming interview (no whiteboard nonsense) will tell me the things that I need to know about your technical abilities.

I remember interviewing one candidate with a CS degree from RIT, and I honestly spent a good portion of the interview genuinely feeling like this poor individual just flushed the tuition $ down the toilet, because he was just failing the interview miserably! Funny thing is, he knew a lot of theory, but when it came time to produce, it didn’t work out too well for him. (He could use whatever set-up that he preferred, Google usage was obviously allowed, he was given space to work without disruption at various points, and most importantly, the problem was a legitimate problem that we had to solve at the company.)

All of this to say: Just apply! If you have the skills and a company doesn’t give you a chance because of a stupid degree requirement, they aren’t a good fit for you and don’t deserve you! Cross them off of your list, move on, and apply to another company.


This shouldn't be a thing. It really doesn't matter nowadays. You can send your resume and nobody will care.


I've been on both sides. Sometimes you definitely care. If I have a small pile of resumes for a fairly specific job, I'll give each of them a lot of consideration and nobody will get tossed just because they have no degree. But if you hand me a stack of 300 resumes of [presumably] largely qualified individuals, I'm going to pick some reasons to make the stack more manageable. Some people definitely use degree status for that purpose.


It shouldn't be but while adding jobs to the site there were tons that require a CS degree. And I know people with 13 years of experience that have been turned down for jobs due to no degree.


I personally don't want to work for a company who turns down somebody because of not having a degree. If they are not smart enough with their hiring process, it's a good sign that will be other, bigger problems too.


This is the attitude of someone with a good job or lots of opportunities and seems pretty common on HN. Many (most?) people do not have the luxury of high-minded ideals like this.

Plus, you do realize you're categorically ruling out a company by projecting one trait onto their entire culture, for the crime of using an arbitrary signaling factor?


> you do realize you're categorically ruling out a company by projecting one trait onto their entire culture

I usually don't do that, but I can't tolerate this kind of rigidness with old habits.


I posted a job and you wouldn't believe the number of resumes I got that had neither the education nor the experience for the role. I can see past education -- but if you don't have either, and I'm trying to fill mid-level to senior engineering roles -- I just can't consider that candidate.

If it were a junior role, and they only had bootcamp experience, then I'd consider it.


Is this actually a problem still? I haven’t hopped around as much as most SWEs I suppose, but I’ve never faced an issue not having a degree in any of my previous hiring processes.

I work at a large bank and we don’t screen candidates for degrees.


I’m a college dropout and have about 8 years of experience as a developer. I’ve been interviewing a lot lately at mostly startups (7 onsites in the last month). Every single place except for one asked me about college or why I dropped out. One place asked me incredibly difficult whiteboard problems which appeared to be to filter out people without CS degrees (very specific algorithms to implement which I’ve never heard of before). One place had me reverse a linked list on a whiteboard, and was rude and standoffish when I commented that I’d never thought about doing that before so I didn’t have the algorithm memorized.

The job I accepted is the one job that didn’t even mention my lack of a degree and gave me practical coding problems.


> One place had me reverse a linked list on a whiteboard, and was rude and standoffish when I commented that I’d never thought about doing that before so I didn’t have the algorithm memorized.

A good interviewer prefers it if the candidate does not have the algorithm memorized. The whole point is to gauge their problem solving skills. Reciting something from a textbook doesn't tell the interviewer much. The reason you didn't get a favorable reaction in that situation could be because not knowing the algorithm was perfectly acceptable in that situation. It's expected that you figure it out instead of challenging the validity of the question.


In this case, it played out as a wrote it - I offered some solutions to the problem and thought about different ways to solve it, then implemented the one I thought was best on the whiteboard. About halfway through he asked me why I wasn't implementing the best version, so I thought some more about it and couldn't come up with an in-place solution (which is very hard to find in an interview setting), so I continued down the same line when he wouldn't give me any help. After the interview his feedback to the manager (which I received because this was through a referral) was that he expected me to have this algorithm memorized and he gave me a "Strong No Hire" because I couldn't give the best solution.

Its worth noting that I received offers from over 50% of companies I interviewed at and I certainly am not bad at coding - this was just a particularly bad interviewer using a very bad problem. With this company, I actually told them I wouldn't accept an offer even if they did give me one because the interview was so bad.


You had a hint that there was an in place solution and a set of pointers. I mean the only real question here is how many spots you need to look ahead...

I understand that whiteboard can be frustrating and hard, but it sounds like your interview was the exact kind of interview people try to make


It really depends what type of candidate you are looking for and what sort of job it is. One of the often overlooked roles of a hiring manager is understanding the signals coming in from the interviewers, weighing the results properly against other information, and making sure that the interviews actually gave information which can correlate to on the job performance.

In the past when I've been the hiring manager, I've had inexperienced interviewers ask my candidates questions like this for all kinds of positions - when you look at who does well in other interviews and gets an offer (and performs well), it basically never correlated at all to performance in whiteboard-only CS-focused interviews.

In this case I was interviewing for a full-stack senior position where there would almost certainly be zero systems-level coding, so the interview should have been a throwaway at best.


The point is that interviewers should not be looking for a "specific" answer. They should be looking for how well a candidate matches the expectations of the position. Asking for specific algorithm implementations is objectively bad interview practice.


So, it sounds like the candidate was interviewing for a senior engineering position and was given a problem to reverse a linked list in place. This is an entirely reasonable constraint and something that you would expect someone in a senior position to be able to do.

Space constraints do come up frequently and being able to reason about them is important.


I still maintain that asking for specific answers is a bad interview practice. It's a sign of a poor interviewer, not necessarily a bad candidate. It could be both in this case, but I'm talking about it at a more meta/higher level. IMO, it is objectively BAD interview practice being described here.


Sounds like you dodged a bullet in that case :)


I don’t mean to be rude, but there’s no non-obvious “algorithm” for reversing a linked list in-place. If you can keep the details straight, you’re done. If a candidate had trouble with this problem, that would tell me that either 1) they have difficulty working at a fine level of detail, or 2) they aren’t comfortable with pointers. Either possibility is problematic for jobs that require attention to low-level detail or manipulating pointers or references.


I think the interviewer may have been a bit standoffish because he/she was expecting you to work out how to reverse a linked list rather than memorizing the algorithm.

My CS degree only taught me what a linked list is, not how to reverse one.

It's not a great question to ask because it's such a common one and many people will have learned an algorithm from a text book, but if you haven't memorized the solution it's simple enough to understand the requirements yet difficult enough to work out that you can get a good amount of insight into how a job applicant can solve rather than memorize problems.

After all, being able to separate candidates who can solve unseen problems from those who can't is one of the goals of interviews


Wow, that screams gatekeepers. If you are interested in doing an interview for my blog, https://www.nocsdegree.com let me know :)


I dropped out of my computer science degree program in 1993.

> Every single place except for one asked me about college or why I dropped out.

In the 26 years and 8 companies I've worked at since, along with hundreds of interviews, I've never been asked that question. In fact, my educational background has never come up.

Granted, 26 years is a lot longer than 8 years, but I'm quite surprised to hear your report. 8 years is, objectively, a good bit of experience.


Currently finishing up a job search and I've gotten some disappointed looks and noticed some cooling of tone when its revealed that I have a humanities degree. It's not super common (maybe 1/5 interviews?) but it is deeply frustrating given that it's on my CV.


I hope the website provides you with some value then. (A fellow Humanities grad)


Already at the negotiation stage (finally! lol. I hate the interview circuit) this time around but next time I'm looking I'll check back in.


I don't have a degree and I've never had a problem, I've worked in Healthcare, for startups and for a publicly traded company. The biggest issue I've had was on a personal level, whenever I interview I'm anxious that others won't view me the same without a degree.

I signed up for the newsletter to this site, I like the idea of companies flat out saying a degree isn't required - otherwise I feel like I'm being judged negatively for not having one.


Thanks for signing up - I hope it provides value and feel free to reply to the newsletter with your thoughts. And yes, I think it does help when people walk into an interview knowing that not having a CS degree won't make a difference.


Yes, take this woman with 13 years experience who got turned down for jobs over the summer for not having a degree. She has since landed a job at Webflow though. https://twitter.com/codehitchhiker/status/114577619387617690...

Obviously every company is different and I'm glad you're company doesn't screen for this. I was surprised to see JP Morgan don't, for instance.


Wow, that's wild. As someone without a CS degree and about 15 years of experience, I didn't think that was something that I'd have to worry about anymore. Guess it can still happen.


Pete, just a heads up your copy in the about says $50 for a post and the button says $99. I don't have particularly good input on which price point makes more sense but you probably want it consistent to avoid confusion.

That said, slick looking site. Best of luck.


Thanks! Oh, I thought that had been changed. Thanks for catching that!


I may have to try this job board out sometime.

I hold a 4 year degree in Graphic Design and sort of fell into programming. I was working at a small print company as the only graphic designer and was being "groomed" to take over the management position. I was asked often to provide quotes, make orders, take calls from customers, etc. We didn't have a good system in place for quoting or keeping track of our workflow so I started building a dashboard with PHP. In the end I really loved the work I was doing, it felt good knowing I was providing a ton of value. When they asked me to take the management position I told them that I was going to work for another company as a web developer (they loved the dashboard there as well). I worked in that position for 2 years making similar dashboards/internal applications when the company decided it was time to start a Software Department and hired another developer to work beside me.

I've now been with the company for 5 years but things are starting to get a bit rocky with the lack of meaningful work to do. I'm dreading the interviewing process as I feel inadequate not having a formal CS degree - despite several years of experience in software development. We've made cool things (surgical training simulators, dashboards for manufacturing, custom BLE Mesh network, mobile applications to name a few) but I feel they may just be overlooked by the recruiters.


I didn't know that degree existed until I found a coworker with it. He switched careers because being a color-blind graphics designer was difficult. He had to constantly use a color picker to read out the RGB values.

We got him doing assembly code. He was lots better at that.


Was super confused by the name (was reading it as Noc Sok) until I clicked through to the about page which formats it as "No CS OK".


Fair enough - I might roll it into my other website No CS Degree in future.


Keep the name. Definitely keep the name. Six letter dotcom, easy to rhyme and easy to remember. Easy to brand, easy to put on things to distribute & promote.

At first glance the name seems a bit odd. That is quickly overwhelmed by the benefit of being easy to remember and being very short. It doesn't get much easier than noc sok (knock sock as someone else noted) when trying to remember the site later. Plus, this is a site for developers (for now anyway), they will appreciate the benefits of knock sock as a memory device, far outweighing the no-cs-ok vs noc-sok issue. And there's no bad connotation with noc sok (the classic ExpertSexchange issue).


I actually love it. Knock sock.


Very few "real" tech companies require degrees now, certainly none of the sensible ones do. Looking at the front page of job listings on this board, you see Dropbox, Google, Uber, Oracle, Amazon, Visa, Atlassian, and Bank of America all with serious tech jobs (some of them quite senior) with no education requirement.

But what you will need is the knowledge that you would have otherwise gotten with a CS degree. If you don't know a priority queue from a linked list, or you can't name an example of an O(nlog(n)) algorithm, then you're going to struggle in way more than just the interview; this crap comes up in real life more often than might be obvious.

Luckily there are more than enough free places to learn this stuff. It's far less structured than a college, and requires an absurd amount of discipline to do on your own time, but nothing is missing. Beyond the ad-hoc content, several top-tier universities put their CS courseware online for free, and you can totally get the same CS education that others pay $200K for. You don't get the paper that says you did it, but you don't really need it.

Getting through the resume barrier is a bit more tricky, but here's a tech recruiting open secret: Stack Overflow. It's gold for recruiters, and extremely heavily used. They find people who consistently post strong answers on topics relevant to the company they're recruiting for and directly recruit them to interview. Skip the job listings. If you have a strong S.O. profile and provide enough information for recruiters to track down who you are, you'll get no end of attention.

That and GitHub. Write some code that demonstrates good design and put it up. When I was doing talent vetting for small firms, a person's Github page was a far more valuable signal than their "qualifications".


I love this, though I'd be curious to know how often developers without degrees will actually get hired (versus those with degrees).

Some really quick feedback: I think multi-tag search is a must. As an example, I typed "nyc js" and got nothing, despite there very much being plenty of jobs in NYC with JS requirements.


Experience of the dozens of devs I know with no degree is that if you can manage to get 3 years of experience under your belt you're golden.

That's not to say there aren't doors that are closed to you, but by and large the industry just doesn't care.

The better you are, the truer this becomes. I know a highschool dropout I'd consider at least a 95th percentile developer, he turns down offers for work on a regular basis.


Hey, thanks for the nice comment - glad you love it! It's a good question but really there are lots of devs doing great now that do not have degrees. I dunno if it's ok to link here but if you check my other site https://www.nocsdegree.com there are lots of successful people there.

Yeah, that's a good point about the filter! Will change that :)


This is a tough one for me. I wish I had a CS degree, because, well, I just want one.

But I don't have one - I studied for a different BA degree, found computers, neglected classes, and then proceeded on to 27 years of programming. I'm nearly 100% self taught.

And here's the weird part. At the handful of companies I've worked at there has most certainly been mild disdain for those with degrees. Nothing overt, but it was understood that if you didn't have the passion to teach yourself, and went to school to learn your programming, you were somehow inferior. We did have lots of people with degrees who turned out great, but they were always considered the exceptions, not the rule. I found this fascinating. Nearly all the senior developers, even lead developers, had no degree.


This is good, myself being a no CS degree who worked as a lead in a high performance company, I appreciate if more of those can surface.

But I made a comment on another job board show hn that's relevant here: https://news.ycombinator.com/item?id=20973309

> What's the relationship with the employers? I find the main issue with job website that are posted here is that there is usually zero relationship. Meaning it's mostly information copied from the career page of companies. That's why most these job boards disappear after a couple years.

> I suggest if you gather enough interest here today, use it to get actual connections with employers, even if it's a handful.


hey, yeah that's a fair comment! So I've actually gotten to know some senior devs and CTOs from interviewing them for my other blog - https://www.nocsdegree.com - so for things like pricing I have input from them. I'll definitely prioritise talking to companies and building relationships. I've also been in contact with some bootcamps.


Many jobs are CS degree or equivalent experience but people misread them as CS degree only. The domain name is somewhat misleading and perpetuates a misconception. People without CS degrees sometimes have plenty of CS skills and knowledge.

(Off topic: This is a case of “naming is hard but not for the reasons you think.” Naming is hard in part because being picky about names has a social cost. My being picky about the name here, perfect example. How do you (other HN readers) feel about me being picky? I suspect many of you would think I’m kind of annoying for making a big deal of it. Just saying this is a big part of why good naming is hard.)


The problem is what is considered equivalent. I've seen jobs that claim the equivalence as a decade of industry experience.


In my 18 years of career, the best of the best engineers I have worked with did not have a degree. They learnt engineering as a passion. It just boggles my mind that there is still a requirement for a degree despite that.


I have done some interviews for front-end positions and it is interesting watching non-degree candidates crumble on certain really easy questions. Even something simple, like a while loop can trip up some of the newer devs who try to figure out which of the canned JS array library functions I am asking for.

Not that you often need a while loop, it's just interesting that modern web development has shifted to be so functional that you could be a professional programmer who does not fully grasp a while loop.


I am not sure how this is correlated with not having a degree. In my degree they didn't teach me while loops specifically. I taught myself them before the degree because I programmed as a hobby. I'm sure bootcamps would teach `while`.

I also don't see what this has to do with FP. I bet there are few people who understand map/reduce functions and don't get for/while loops, unless they are literally just memorizing tutorials without understanding them.


map/reduce deals specifically with an array whereas a while doesn’t? Most people get traversing an array with a for/while loop vs traversing with map, but using a while loop in a more algorithmic question trips people up.

Let’s say my terminating case is that a number no longer has a remainder when divided by X, that confuses people, different from terminating at the end of the array.


Is a degree absolute requirement an actual "thing"? I don't have a degree, never went to uni. I didn't even finish high school properly. But I've been in very good work coding for over 20 years now. Almost every position or contract I took had some sort of a degree "clause" in it, but not once was it ever asked, raised or inquired about anywhere. Ever.


Not sure for how much longer this will be true, but if someone can survive in the market without a degree, something about them must be exceptional. Not having a degree is a ridiculously expensive counter signal that is costly enough to be honest in many cases, so as a fast filter, it's often worth interviewing them.

I get that a business that needs autodidact polymaths to run it is by definition going to have trouble scaling, will probably fail because nobody else could understand it, and that it is probably not a very good business, but this describes the vast majority of businesses, which fail in their first few years anyway. The outcome of blowing your capital on mediocre staff vs. unproven mavericks is the same.

However, expecting unconventional outcomes while only risking conventional failure seems a bit self fulfilling.


I agree with the many people who've said (in essence) that for 90%+ of programming jobs -- i.e., writing CRUD apps or the like -- a CS degree is unnecessary.

But how about that last 10% of jobs? Does the degree open doors to cutting-edge, exciting opportunities that aren't available without it?

I'm in the process of deciding whether or not to drop out right now. I know that I have what it takes to self-study and get to a similar level of knowledge as a CS grad, but I'm wondering if not having a degree will preclude me from the less common, more exciting jobs that I'm most interested in.


Consider these sets of skills:

a) skills acquired through a CS program

b) skills acquired on the job

c) skills acquired in a programming bootcamp

d) skills acquired studying on your own (MOOC, books, videos, documentation, etc.)

To build the first iterations of a product, you may need only c) and d).

Once that product gets traction, things get exponentially more difficult and problems can get very abstract. That's when a) and b) makes a difference.

Most software engineers can create a simple Twitter clone, but only a small tiny fraction can make it work at Twitter scale.


I never graduated high school and have been in the software industry for about 20 years. No one has ever asked about my education or where I went to school.


Another interesting job board would be for people who are trying to switch fields. For example, how do you transition into web-dev with 5 years of experience in embedded (or vice-versa)? I find it funny that in the era of standard tests for interviews (i.e. Leetcode style), employers still ask for relevant experience in their tech stack, too. Somehow the industry helped them have their cake and eat it too.


I hope you pronounce it "knock-sock" because that would be brilliant. Leave the "No CS OK" reference for people to think about.


I understand the desire for a site like this from a job seeker's perspective (no CS degree here either), but what is the incentive for the employer?

Are these no-CS job hunters not on every other site? As a job poster just put "No degree required" and your inbox should be flooded.

I don't see "no degree" as a skill that needs to be sought by paying $99 to post a job.


I can imagine a company reasoning that someone who doesn't have a traditional CS education may approach problems from a unique perspective as they wouldn't have the standard logical flowchart in their heads you might expect from a CS graduate.

I remember taking a geology class as a substitute for an ecology class I couldn't get in to before I moved states for my environmental studies degree where the professor would often comment that my descriptions of certain geological principals were interesting to read through because I couldn't just regurgitate the info my classmates had from taking pre-requisite classes I didn't have to take.


It's another distribution channel for your job, with a highly concentrated audience.

It's like you want to advertise to parents, so you put your ad on the park bench at the playground


It's the same value-add as any other niche job board.


In other words, jobs for devs who are willing to work cheap.

None of my dev jobs ever required a degree. None of them advertised the fact.


I dropped out of college. I self-studied CS and I've now worked at both AWS and Google.

A degree is just a piece of paper. The only thing that actually matters is what you know and what you're able to do.

Getting through the door the first time is the hardest part. Keep trying. Once you have any experience, you can keep building on it.


Who needs a CS degree? I don't have one and I've been a software engineer for decades.

Nobody has ever asked or cared.


If you are going through the front door, it will matter. Your resume has to make it through some filters before the hiring manager sees it, and they might have their own filters.

If you only get jobs by referral, it doesn't matter.


It's interesting to see job boards becoming so diversified. Are there ones for women in dev, PoC in dev, and LGBQT in dev? What about disabled people? What about over-middle aged people? (...there probably are, I didn't search)


A lot of countries will not give you a work visa unless you have a degree.


Nice. Just wondering how are employers going to filter candidates qualified for their postings... Isn't this just transferring all the responsibility to verify qualifications on the employer?


I was so lucky that my high school was able to send me to a three year vocational CS class.

Don't have a real degree. But once I was shown what a function was my passion for this stuff just took off.


Makes sense; You don't really need a degree to be a web-dev anyway. On the other hand, people with CS degree rarely become a web-dev.


> people with CS degree rarely become a web-dev

Source? I think there definitely needs to be a better categorization between simple CRUD development, and jobs that require more in-depth knowledge of CS, but plugging "software developer" or "software engineer" on any job board seems to yield vastly more "web development" jobs than anything else.


A degree only matters if you have zero experience, which could be supplemented by personal projects or open source contributions.


Immigration is the biggest reason for citizens of non-wealthy/previously-colonised countries to get a degree.


When you have 100+ applicants for a job, you have to apply a filter. Requiring a degree is an easy one to apply that your boss will support. Whether you get the best candidate or limit your hiring pool is immaterial.

A guy I met years ago at a very large company had another filter - he used to split the pile of resumes in two, and throw half in the bin. He then said "I want the guy I hire to be lucky".


For every one position we hire for we’ll see 100s of applicants, and we might have 5-10 good choices to hire. Filters are a critical part of managing a candidate pipeline, and for better or worse a degree is widely used as a filter for those companies that don’t lack a pool of qualified candidates, which also tend to be pretty attractive companies to work for.


> Requiring a degree is an easy one to apply

It’s also a safe one in terms of low rate of false positives and low rate of false negatives. There are a few, of course (if there weren’t any, there’d be no need to meet the candidates), but ability to complete a four-year-degree correlates highly with ability to complete software projects.


> ability to complete a four-year-degree correlates highly with ability to complete software projects

[citation needed]


Just had first two sales now :)


great url


Not entirely on-topic, but the cover image on your homepage is scary — it looks like the exact type of workplace I wouldn't want anyone to end up, degree or not. Noisy open office where people are like cattle, essentially the same as cubicle era, except no cubicles.


This is not an office, I took it during programming competition/hackathon. Originally posted it here https://unsplash.com/photos/QBpZGqEMsKg


It looks like a sweatshop.


Bingo. Environments like that seem to be the new “wave” now. I can’t stand them! Maybe it’s just me but I don’t understand how anyone can get any work done in those settings.


looks like a college exam room


I hate these affirmative action initiatives. I get you want to help a minority, but you do so by implementing discriminatory practices.


How many of the job listings are above entry level positions?


I just checked - there are 7 out of 50 marked that have Senior in the title or description. Only 6 are marked as junior (I should have added more junior positions for the launch tbh)

So that leaves about 37 mid-tier positions that aren't entry level.


This only matters for one's first job, if that. Afterwards it's irrelevant. Regardless of what the job description says, it's never mattered in my experience working at well over a dozen companies in the last twelve years or so.


At a lot of places, yes. However, try getting even a "no thank you" form letter in response to a job post at a desirable company without a degree. First step in the hiring funnel: no 4-year degree --> /dev/nul.

I live nearby Netflix, Space X, Hulu, JPL, etc with twenty years experience in what they do and have never even spoken to a single person at any of them despite applying for years. I'm good at what I do, now I ignore their job postings.


I have had no issues getting interviews with Microsoft (and a position), Google, Netflix, FB (turned down), etc. No CS degree. I doubt it's because of my philosophy degree. Marketing is very important however.


Hmm, I've always been told getting FAANG interviews as an experienced developer (regardless of a degree) is near to impossible as an experienced dev unless your work history is already FAANG or unicorns


Well there's your mistake. If you apply through their website, you're instantly being funneled into an HR tool that weeds out anyone without a BS in CS.

The trick is to get in contact with that company's recruiters using a site like LinkedIn. Establish a bit of rapport, send your resume and portfolio, and let them handle setting up your phone screening and technical on-site.

Recruiters are an amazing resource in our industry and are great for getting your foot in the door... Especially when you're being blocked by those automated HR filters.


I won’t use linkedin and am gainfully employed on the east coast but get your point. I’ve talked to a few recruiters at meetups and such and it often goes well, unless they ask me to use linkedin. Too sleazy, no thanks.


It certainly is possible that the HR folks at the places you've applied just are not reading correctly the skills and experience that you have conveyed. I think i heard some people refer to this as an "HR Fail". While it hurts you (by not getting you that job), it hurts the company far more, because they lost out on talented individual.

The alternative could be that they're discriminating you because of your age. Just for the sake of argument, you noted "twenty years experience"...if i assume that you started working on your 20th birthday, that means you are theoretically 40 years old...ripe for being the victim of age discrimination (or at least the beginning of it). And, if true then this sucks royally!

I've recently been looking to jump to another gig. I have a degree and almost 20 years of experience. (I'm 45 years old this year, by the way.) In my summary I would always begin with something along the lines of "Technical professional with over 18 years of diversified experience...etc." And, while that has worked ok in the last several years, lately, I get barely any replies. Jobs that in the past i would have easily gotten, are no longer even replying to me. Then, a friend noticed my opening line, and suggested i drop the number of years, and remove 1 or 2 of my early jobs...In essence make it seem like I'm younger...Wow, what a difference. While i still have not gotten any bites (my job search is still early), i now have many more replies...Which confirms that employers don't want to hire "older people".

I feel for you. My suggestion: make yourself appear a bit younger on paper, to at least get your foot in the door and interview. Best of luck with your job search!!!!!


I get quite a good response rate in general, and most folks are rather impressed with my resume. The visual design as well. Its one weakness is having only a two-year degree.

There's not a lot of dates on it though, and only go into detail over the last ten years. So while ageism is a thing I've encountered when people see me, this happens long before that moment.

Not surprising at any place that receives a hundred resumes a day. You need a leg up advantage just to get noticed. JPL was the worst, my application was rejected within 15 minutes of submitting.

If I had known it was possible to work at such a place as a kid, or that Netflix would even exist, I'd have gotten a degree.


Complete opposite of my experience. I have no degree either. Interviews with 2 of the 4 you've listed, google as well. Only 2 years of experience.


I'm "overqualified" for junior positions unfortunately.


It's probably more that you have 20 years of experience than the lack of degree that is holding you back with those companies.


This has been my experience as well. I've also applied for job listings that required a degree and still interviewed (and received offers).

I think the degree requirement is often interchangeable with professional experience.


Maybe.

I have worked at both startups and FAANGs.

There are developers with CS degrees who are clearly worse than those without. But I could always tell who did not have a CS degree, based on poor understanding of things like running time analysis, good systems design, more complex algorithms etc.

The best developers always had at least a CS undergrad. Though there are clearly diminishing returns with going above that, unless you are a researcher.

Still, the goal of this site is commendable. There are tons of folks who don't have degrees because they could not afford it.


Many people with CS degrees don't understand those topics and many people without a CS degree do. So I don't buy this.


Well, that's what I said.

But non CS folk never did understand, in my > 10 year experience.

Of course there will always be exceptions. John Carmack is one of the greatest programmers of all time, and he never went to college. To be fair, he did excel a lot further under the mentorship of Michael Abrash, who was a researcher in 3d graphics.

But for your average Joe schmoe, this is likely not to be the case.

Would I not hire someone on the basis of no CS degree? No.

Would I be more skeptical? Absolutely.

Would I consider them for a senior advisor role? Probably not.

Unless it's from another technical field (math, physics). Even then, I don't know, it depends on the role. I've seen a lot of shit code from people who were mathematically brilliant.


I've found it much more common for a non-CS degree holder to start down a path that boils down to "first, I'll solve the halting problem and then I'll apply that to the problem I'm actually facing" or similar foundational errors. (I say this as someone who has had a 26 year career in software without holding a CS degree.)


If you aren't demanding 100% reliable success, "first, I'll solve the halting problem and then I'll apply that to the problem I'm actually facing" is a viable strategy. My workplace does this, especially with the PhD holders. It's kind of amusing to put aside well-founded fears about the halting problem. If you are clever, it works more often than most people would imagine.


It was challenging for my 2nd job, which was really my first job hunt with real interviews, working with recruiters, etc. Still I was rarely filtered purely due to lack of degree, it was more of a problem that I was severely underpaid (learned to try to avoid salary history questions the hard way) and partially because I was attempting to switch into a "new" industry that is hard to get into initially but relatively easy to continue to work in once you've had a job or two.


> working at well over a dozen companies in the last twelve years or so.

That is the one legit reason I've ever heard for a degree -- To know that people are able and willing to stick with a multi-year effort. Moving every year or two when getting rolling with your career is one thing. More than one job per year for over a decade is something else entirely. It doesn't mean I would throw out your resume, but it does mean I would only consider you as a contractor, not a perm employee.


I've been in my current position for almost six years. Also, I do have a degree. It's just not in CS. And yes many jobs were contracting at the beginning or hopping for better pay. Everyone in the valley does it if they can.


If you do have a degree, how can you know that it has never mattered?


Because it’s not a CS degree or at all related, which is what we’re discussing here.


How many companies that got your resume didn’t interview you? How many companies did you interview with but not get hired? Of those companies you worked for, what was your total compensation vs. your coworkers who had degrees?


How am I supposed to know those numbers? I'm getting paid towards the top of the median range in what I do, working remotely, often less than 40 hours a week. Hard to get something better than that. The point of my post was that not having a CS degree shouldn't discourage anyone from applying for jobs that claim to need one. I've had well over a hundred interviews in my life in person, over a dozen jobs in the past twelve years, and never has it come up. Not at faang, not at startups, not anywhere.


Well, you'd be surprised then. Cher Scarlett was turned down for a job this summer with 13 years experience due to not having a CS degree and I have been going through a ton of job ads the last few days so I can tell you lots of non-entry level roles still require a degree. https://twitter.com/codehitchhiker/status/114577619387617690...


I had the same experience, but I did see quite a few positions in the list that were catered towards juniors or entry level positions so it seems like it would still be really helpful for some people.


$99 to post a job? I want a developer, but I won't pay that price ever unless I need dozens of developers and I'm posting on a big site with big audience.


That's peanuts compared to the 15-30% of salary a recruiter will charge


You are only charged that if a recruiter delivers. $99 for a posting on a brand new job board, for which we have no idea if it will ever gain traction, is expensive. Not because the price is wrong, but because we have no idea if this board will be there next month, or next week.

If they had metrics proving out the number of devs who look at the board, and the number hired through the board, that would be a reasonable price. But as far as I know, this board could have been set up last night, with jobs scraped from other sites. I can't spend $99 on every job board that exists. I need to choose the right boards.


Exactly.


Most devs would never knowingly work for someone cheap enough to not put any resources into getting quality employees.


How much do you spend on recruiting? Genuine question. I was told to price it at that by someone who is a self-taught developer at a fairly small company in America and he said even that was cheap.


"Recruiting"? I'm not Google, I'm a small software shop and I only want 1 random developer which I can pay directly. I think you're missing my point here.


Similar niche job boards charge many multiples of $99 to list an open position.


I agree, but how would you drive me as a recruiter to post the job here. "Hey, want some non CS degree developers" ?!

Honestly, not criticizing. Want to understand what if I was the founder of this.


If you're going to hire a developer for their first job, don't think twice. Developers without degrees are better than developers with degress in 100% of the cases.

If they don't have a degree that means they've learned something without being forced to, they love the subject and are genuinely interested.


Yeah, I have to be honest. If you've taught yourself to code whilst working as a waitress you are going to be motivated like hell!


On the flip side, in college you learn why stating something is true 100% of the time can be problematic.


100% of the cases? That is absurd.


Right. Because no degreed devs ever learned something without being forced to. They just put guns to our heads once we willingly decided to go to school for CS and tortured us all those hours we spend developing side projects for fun.


Yes generally interested in six figure salaries with relatively low entry barrier.


In my first-hand experience doing hiring, for every coding savant who doesn't need a CS degree, there are 10 others who just want a shortcut to SWE $$$ but don't have what it takes (motivation, skills, whatever) to get a degree. For better or for worse, when you're working your way through a stack of 100 resumes, having a degree is an easy filter.


I've probably looked at hundreds of resumes and I can't recall ever seeing someone list their education credentials at the top, it's always their work experience first unless they don't have much professional experience and I've rarely been a position to hire junior developers. Unless you're going through some Nazi-era HR department then I probably won't even make it to the last page of your resume before deciding whether you're worth interviewing or passing on.

And by the way, if you're part of the 9 in 10 developers who don't have a degree and aren't cut out for development then your resume won't even make it to my desk, that's what the recruiters filter out.

All of that being said I'm not sure who you worked for but sorting through 100 resumes seems like a colossal waste of time. Lifehack: Just tell the recruitment firm "Give Me Your Top 5" and that's that.


> All of that being said I'm not sure who you worked for but sorting through 100 resumes seems like a colossal waste of time. Lifehack: Just tell the recruitment firm "Give Me Your Top 5" and that's that.

You're right. The filtering is/was done by recruiting, but I had some insight into their general content. And yes, education is almost never at the top for senior positions. At that point it is mostly irrelevant.

My comment was a response to OPs statement that 100% of non-degreed candidates are better than those with degrees because they are more motivated. This is certainly not the case for entry level positions which is what I was referring to.


Negative on that. I started coding as a tween and spent so much time (frequently through the night) coding that I compromised my chances of escaping high school with a diploma. After a couple years of figuring out how to adult, I went and got my CS degree. Because I loved coding and computers, of course, it was the obvious choice.


What about people like me who taught themselves to code long before they even knew CS was a thing? All I knew is that my family had a computer and I had somehow peeked behind the GUI veil when I discovered DOS. I wound up researching in a CS program because I found it interesting and just kept wanting more.


> taught themselves to code long before they even knew CS was a thing

It seems like things are changing a bit, but back when I was in college in the late 80’s/early 90’s, this was almost everybody in the CS program. I don’t think I took a CS course with anybody who didn’t grow up banging on a C64 or Apple II or TRS-80 and hadn’t figured out quite a bit about software development concepts before they even learned algebra.

It does seem like the ubiquity of computers is changing this, though: computers are everywhere, but they’re so much more like consumer devices now that they’re paradoxically hard to figure out _how_ to program.


Formal education would have taught you better critical thinking than this.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: