>If you plan to develop device drivers, or work with artificial intelligence or on real-time embedded systems with loads of algorithm analysis, a CS degree is a must.
This is false. John Carmack, for example, has made significant contributions in terms of real-time systems and algorithm analysis. Others without degrees have done the same in other fields. Even the chief data scientist of the data science-focused Kaggle came from a non-traditional background. An education is a must. Schooling isn't.
Who came up with the idea that education only happens at a university? I knew significantly (by orders of magnitude) more about development (by doing it 8 hours a day for six years) before going into university than what I learnt in my five years there.
Of course, I learnt about lots of other stuff as well, but, if you want to learn something, you can just as well start doing it and learning about it yourself.
Many good programmers I know didn't get a degree, they were just highly motivated and learned to program by themselves/through side projects (these days it's not really difficult to find good learning material and advices online).
Don't mean to ad-homeniem, but this was written by Jordan Poulton - the Apprentice UK finalist that was ousted for failing to comply with the competition's rules (read: lying).
Ahaha that's brilliant. I always thought he stunk of a subset of the HN crowd (the make a lot of noise 'ideas man' caricature).
It's not completely ad-hom as he has no ability in coding-- either through degree or self learning (he teamed up with a coding founder for his idea, was clearly not technical).. which is somewhat relevant for this advert. Was this his idea on the Apprentice (12 week coding course) or did that fail? All the references I can find just mention the mess around it, not the actual business idea.
Nomenclature matters, I hate the term "coder" what was wrong with programmer or software engineer?.
What you call yourself has an impact on how people assess your skills (I know it shouldn't matter but it does).
If someone is called a software engineer that brings to mind a conscientious programmer who writes clear maintainable code that meets the spec however when someone is called a coder I visualise someone who vomits PHP into an editor intermingled with HTML and CSS in a form of code injection bingo.
I always have to smile when someone calls themselves a "coder" (especially when they smugly call themselves a "real coder"). It wasn't that long ago, in the era of big iron, that coder meant something else entirely. Programmers would write programs on paper. It was then the job of the coder to type the programs on the punch-card stations. Coders were guys who could be trusted not to screw up the syntax but not to write their own code. If you wanted to insult a programmer, all you had to do was to call them a "coder".
As a coder (programmer, software developer) without a degree, my question is:
If you have that degree, do you know how to code?
I've worked with a lot of people with degrees that were not coders. They might have written code in university to get their degree, but I am not sure that they could really code, or maybe they weren't interested. They were managers, architects, engineers, analysts, quality assurance, sales-people, directors, presidents and various other titles and roles but they were definitely not coders.
Do not let that detract from getting a computer science degree. I learned from people with a degree: non-coding stuff, and methodologies that I had been clueless about that definitely improved my coding. You need much more than being self-taught, everything helps: formal education and training, working with other coders, work experience, non-work experience, and mostly you need to make mistakes along the way.
The first and only thing you need to be a coder, is to code. Keep on coding.
Two of the best programmers I know have not got degrees. However, I also know a few that have got degrees and are really smart.
Having a good degree does apparently demonstrate that you are able to apply yourself, without someone standing over you nagging you to finish your assignments (ala Mama and Papa whilst at school).
That is an attractive quality for an employer. I have a crap degree, hated my course but have been a successful freelancer for over 10 years, mostly working remotely. I deliver and my clients trust me. I may be an exception, but in my opinion degrees don't really mean diddly-squat.
I'll take work experience over a degree any day of the week.
I am sure there a lot of very smart people with great programming skills and without a degree. However at least in Germany I see another problem: Almost every job ad for a programming positition starts with "Computer science or related degree required". Without a degree you are just filtered out by the Human Resources Department that doesn't know anything about programming at all. They are just checking formalities and doing buzzword matching. You won't even get to an interview or get an opportunity to prove your skills. :-(
Same situation in Austria. Not only for development positions, but for nearly every rudimentary interesting job, you need any kind of university degree. I have got another philosophy in finding the right people.
In my opinion, people only need the right attitude and they need to be willing to learn something. all the rest can be teached / learned.
Here in Sweden the standard line is 'FooDegree or equivalent' and that always mean that competent people are free to apply regardless of if they have a degree or not.
I would argue that a CS degree will make finding that first developer role a lot easier. You should also be more prepared for it. After 5+ years of experience it becomes a lot less relevant, and yes there are lots of people that have got a developer job without degrees but I think it takes a lot of dedication and sometimes a bit of luck.
Although as this article claims, £50000 is indeed hard to justify.
I have seen CS graduates that are unable to use debugger. I think that CS is great if you like it. But in the real world where cows are not spherical and definitely not in vacuum a CS graduate needs some roughing up from uncooperative chips, frameworks, hisenbugs, undocumented features, undocumented bugs, management hell before throwing them in the trenches.
The best developers I know usually come from electrical/communications engineering backgrounds - they are used to stuff not working for no reason and never assume anything.
I don't think a degree is necessary; certainly not necessary in the same sense that you would want your brain surgeon to have graduated from medical school.
I think there are two separate problems here, though - one in which a particular individual is being assessed for his or her aptitude, and one where dozens or hundreds of applicants for a particular position must be evaluated on the basis of limited information, often from a pool of even more candidates.
A degree by itself is not a terribly reliable proxy for capability or potential, but better proxies are harder to scale and apply to many more people. Companies like degrees because they're an easy, lazy way to (at least in the minds of HR people) establish a competency baseline, and if it's true that most companies would rather have false negatives than false positives, it's easy to see why a degree would be "required" in a lot of cases. Hopefully that will change in the future.
Although not entirely necessary or not guaranteeing the skills and expertise, a somewhat scientific (or engineering if you prefer) background is definitely more probable to give solid foundations for a programmer. I am guessing companies would prefer someone with a scientific background too.
Perhaps a degree in Computer Science specifically is not a prerequisite, that's certainly debatable. In particular, once you have some foundations on mid/advanced mathematics and logic I guess you can catch up with software systems and languages pretty quickly, depending of course on your ability to learn and talent, thus becoming self-taught on software engineering.
Growing up on the farm and being able to work directly along side my father and grandfather, I remember being encouraged to solve engineering-like problems, of which you'll find many on the farm, along with them at a fairly young age. I sometimes wonder if higher education has become, in many ways, an attempt to substitute for that kind of mentorship that is so often lost in our now predominately urban society?
Those best suited to solve the problems of a particular discipline are those who are invested in it. Developing software ought to be a literacy that many are able to attain outside of having a CS degree. That way, one can develop their interests outside of software.
Obviously, if technology is your major passion, CS is awesome. However, maybe you want to become a baker, a musician, a painter, etc. who also happens to like developing software.
You either need a degree or enough financial comfortability to take the time to write and sell your own software or service. Accumulation of advantage, and all that. I have neither and I can't get a job.
Before you say you didn't need a degree, consider if people helped you, if people would only help with unreasonable strings attached, or if you have many friends.
I think that designing, soldering and programming simple PCB with a PIC on it that can echo stuff received over RS232 should be obligatory right of passage project for programmers.
[+] [-] xiaoma|12 years ago|reply
This is false. John Carmack, for example, has made significant contributions in terms of real-time systems and algorithm analysis. Others without degrees have done the same in other fields. Even the chief data scientist of the data science-focused Kaggle came from a non-traditional background. An education is a must. Schooling isn't.
[+] [-] StavrosK|12 years ago|reply
Of course, I learnt about lots of other stuff as well, but, if you want to learn something, you can just as well start doing it and learning about it yourself.
[+] [-] cLeEOGPw|12 years ago|reply
[+] [-] tunnuz|12 years ago|reply
[+] [-] roel_v|12 years ago|reply
[+] [-] sarreph|12 years ago|reply
http://metro.co.uk/2013/07/10/the-apprentice-candidate-jorda...
[+] [-] polshaw|12 years ago|reply
It's not completely ad-hom as he has no ability in coding-- either through degree or self learning (he teamed up with a coding founder for his idea, was clearly not technical).. which is somewhat relevant for this advert. Was this his idea on the Apprentice (12 week coding course) or did that fail? All the references I can find just mention the mess around it, not the actual business idea.
[+] [-] noir_lord|12 years ago|reply
What you call yourself has an impact on how people assess your skills (I know it shouldn't matter but it does).
If someone is called a software engineer that brings to mind a conscientious programmer who writes clear maintainable code that meets the spec however when someone is called a coder I visualise someone who vomits PHP into an editor intermingled with HTML and CSS in a form of code injection bingo.
[+] [-] etanol|12 years ago|reply
I bet not many people have the guts to call themselves mechanical engineers just because they know how to fix the break pump of a car, for example.
[+] [-] fbomb|12 years ago|reply
[+] [-] mmphosis|12 years ago|reply
If you have that degree, do you know how to code?
I've worked with a lot of people with degrees that were not coders. They might have written code in university to get their degree, but I am not sure that they could really code, or maybe they weren't interested. They were managers, architects, engineers, analysts, quality assurance, sales-people, directors, presidents and various other titles and roles but they were definitely not coders.
Do not let that detract from getting a computer science degree. I learned from people with a degree: non-coding stuff, and methodologies that I had been clueless about that definitely improved my coding. You need much more than being self-taught, everything helps: formal education and training, working with other coders, work experience, non-work experience, and mostly you need to make mistakes along the way.
The first and only thing you need to be a coder, is to code. Keep on coding.
[+] [-] junto|12 years ago|reply
Having a good degree does apparently demonstrate that you are able to apply yourself, without someone standing over you nagging you to finish your assignments (ala Mama and Papa whilst at school).
That is an attractive quality for an employer. I have a crap degree, hated my course but have been a successful freelancer for over 10 years, mostly working remotely. I deliver and my clients trust me. I may be an exception, but in my opinion degrees don't really mean diddly-squat.
I'll take work experience over a degree any day of the week.
[+] [-] Shish2k|12 years ago|reply
Not sure anything else really needs to be said...
[+] [-] dbond|12 years ago|reply
You either have the knowledge/skills or you don't.
[+] [-] qammm|12 years ago|reply
[+] [-] wusatiuk|12 years ago|reply
In my opinion, people only need the right attitude and they need to be willing to learn something. all the rest can be teached / learned.
[+] [-] louthy|12 years ago|reply
[+] [-] yxhuvud|12 years ago|reply
[+] [-] juhq|12 years ago|reply
[+] [-] cowls|12 years ago|reply
Although as this article claims, £50000 is indeed hard to justify.
[+] [-] venomsnake|12 years ago|reply
The best developers I know usually come from electrical/communications engineering backgrounds - they are used to stuff not working for no reason and never assume anything.
[+] [-] austinz|12 years ago|reply
I think there are two separate problems here, though - one in which a particular individual is being assessed for his or her aptitude, and one where dozens or hundreds of applicants for a particular position must be evaluated on the basis of limited information, often from a pool of even more candidates.
A degree by itself is not a terribly reliable proxy for capability or potential, but better proxies are harder to scale and apply to many more people. Companies like degrees because they're an easy, lazy way to (at least in the minds of HR people) establish a competency baseline, and if it's true that most companies would rather have false negatives than false positives, it's easy to see why a degree would be "required" in a lot of cases. Hopefully that will change in the future.
[+] [-] gpsarakis|12 years ago|reply
Perhaps a degree in Computer Science specifically is not a prerequisite, that's certainly debatable. In particular, once you have some foundations on mid/advanced mathematics and logic I guess you can catch up with software systems and languages pretty quickly, depending of course on your ability to learn and talent, thus becoming self-taught on software engineering.
[+] [-] randomdata|12 years ago|reply
[+] [-] adregan|12 years ago|reply
Obviously, if technology is your major passion, CS is awesome. However, maybe you want to become a baker, a musician, a painter, etc. who also happens to like developing software.
[+] [-] frustration|12 years ago|reply
Before you say you didn't need a degree, consider if people helped you, if people would only help with unreasonable strings attached, or if you have many friends.
[+] [-] ktzar|12 years ago|reply
[+] [-] davidw|12 years ago|reply
[+] [-] lewisflude|12 years ago|reply
[+] [-] dbond|12 years ago|reply
[+] [-] yxhuvud|12 years ago|reply
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] jokoon|12 years ago|reply
Although I strongly advise any programmer to learn a little about electronics.
[+] [-] venomsnake|12 years ago|reply
[+] [-] jheriko|12 years ago|reply