Hacker News new | past | comments | ask | show | jobs | submit login

"Being a software developer in the modern world... has little to do with computer science."

Is a categorical falsehood that has cost me alot of time and money.

There is not one top tier technology company software team that you can get on without having a strong grasp of at least the basic fundamentals of CS (namely data structures, algorithms, and some college level math.)

You will ALWAYS get passed on if you only focus on domain specific knowledge (ie. web development or mobile) to the complete detriment of theory.

Why? because because eventually said tech/language/toolchain/development target/ or platform will become obsolete and good companies want to know your skillset won't die with them.

I've written about this before

http://www.quora.com/I-am-quite-bad-at-algorithms-but-good-w...

Anyone reading this who is interested in being a software engineer for the long haul please DO NOT discount the importance of a strong CS foundation as I did early in my career.

Edit: If you downvote please explain. I have strong evidence to back these claims in the form of missed jobs opportunities at multiple name brand tech companies. You can stick your head in the mud if you like but it wont make you anymore correct.




> There is not one top tier technology company software team that you can get on without having a strong grasp of at least the basic fundamentals of CS (namely data structures, algorithms, and some college level math.)

This just in: Getting on a top tier team requires being top tier.

This doesn't mean you can't teach for the rest of the industry, nor does it mean you can't go into the top tier work later. Just the path to top tier changes, from college to having solid experience and code out there. This can come from blog posts, open source, or simply working on hard problems at whatever gig you can get.


What's interesting to me is that every time this argument comes up, the argument of the party stating that fundamental CS skills are not required generally revolves around the work, and the argument of the opposing party generally revolves around the interview.

>> not one team... you can get on

>> passed on

Is the problem that you can't join the team without fundamental skills, or that you can't do the work?


>Is the problem that you can't join the team without fundamental skills, or that you can't do the work?

In some of the easier cases, a person who is only a bootcamp graduate will be able to do the work. In other cases, they absolutely won't. The latter will be those that require more knowledge of at least some CS theory (parts of it), algorithms, data structures, OS fundamentals (and particularly the interactions between the programs you are building and the OS, i.e. system calls, I/O to/from peripherals, data representation format and conversion issues, etc.), troubleshooting (and I don't count looking up issues on StackOverflow as troubleshooting), etc.

https://mobile.twitter.com/vasudevram/status/656512523840147...

https://mobile.twitter.com/garybernhardt/status/656512550570...

For example, I've come across both devs and sysadmins who didn't know that a binary (Unix term) / EXE (Windows term) compiled for one hardware/OS platform will not run on another hardware/OS platform (with maybe some exceptions). - due to the different hardware instruction set and OS system calls.


Very interesting observation.

I would argue you can still do the work without it but it will be at a completely different level if you have a strong CS foundation because you'll understand at a fundamental level how to build software that is performant among other things.

Many software teams have decided by using that as the interview process to have it as a floor for the aptitude of people on their team.


"(namely data structures, algorithms, and some college level math)"

If you're smart and perceptive, then you can learn enough of these things, for the average job, by osmosis or by day-to-day exposure over the course of a career.


There are lots of successful profitable companies making lots of money who are not "top tier tech companies". They still have software built for them by developers without CS knowledge.


We are talking about people who did not learn the fundamentals in college, for whatever reason. For those people I would advise them to get a job first then worry about getting strong in fundamental areas. Experience and employee referrals >>>>>> fundamentals where HR search tool are concerned.

You can learn fundamentals (and see them applied to real problems) while being paid on the job


If what you say is true, then how come the dev bootcamp hiring statistics say otherwise?

Look at any of the statistics. These bootcamps graduate people making 80k-100k. That is a good salary for someone who didn't graduate with a CS degree from a top 5 tech school.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: