3 ms·
I took that phrasing to mean something like: "CS is taught more in abstract principles like data structures than actual core mechanics for something like PHP"
by w0rd-driven 13y ago
I took that phrasing to mean something like:
"CS is taught more in abstract principles like data structures than actual core mechanics for something like PHP"
A former co-worker about lost it when the CEO asked "Does GA Tech teach PHP?" because one doesn't get a CS degree revolving around specific languages and semantics, but abstract concepts that surpass all languages.
Having said that, there does need to be at least some portion that teaches on the real world concepts. Things like documentation, requirements gathering, and yes specific language implementations not just whatever they decide to use to propel a class along. I've found a lot of the language-agnostic portions of the CS degree I took part in weren't nearly enough to handle the application of that CS knowledge. I had to get my hands dirty and it had to be quick.
The sad reality is, a lot of kids and people today just don't want to "get their hands dirty" and expect that a degree means they're a Ruby black belt or some shit.
- moron4hire 13y ago>> I took that phrasing to mean something like: "CS is taught more in abstract principles like data structures than actual core mechanics for something like PHP" And what is not a core mechanic about data structures? I don't agree that A) the math that is being taught is not a real world concept, and B) that syntax is so difficult once the math is understood that it elevates to the level of needing instruction. If one were to take the approach that syntax were a major differentiator between programming languages, then a 4 year degree program with gen ed requirements is not enough time to teach programming. There are just too many programming languages to be able to cover them all, and there is not enough agreement on programming languages to be able to define a core set. All of that math is what the core concepts of every programming language are built on. The fact that these things have to execute on deterministic computers guarantees it. Syntax is nothing. Syntax should take a cheat sheet and a project to cruise through to get down. Core concepts of type theory, object orientation, functional programming, hell, even algebra, are all the same, regardless of programming language. I see programmers all the time who are perfectly capable of satisfying the syntax, as modern compilers are very good about telling them what to do, but who have no idea what they are doing with it. They do things like call "ToString" on string objects, or ParseInt on an object that they've ToString'ed, when that object was itself already an integer. That is why software projects fail. There is a fundamental lack of understanding of basic concepts in most programmers. They stuck to this concept that the "math isn't practical" and they code by taking random shots in the dark against the compiler. It's not because they only learned how to write a linked list in C++ and not PHP, it's because they never learned the linked list in the first place. But, Computer Science departments around the world have been pressured to produce code factory workers who hit certain Human Resources-produced bullet points. It's because of the time taken to study so-called real-world issues of trivial import that sacrifices the fundamentals. And it has been an emphasis on graduation rates that have pressured professors to pass students who have not fully grasped the fundamentals, erroneously certifying them as trained and suitable. HR doesn't know what makes a good employee, because most of them are pretty bad at their jobs, too. If they were any good at their jobs, they would realize that most of what makes a good employee cannot be quantified on a resume. So instead they stick to the resume bullet point mantra. Industry yells at universities for not making enough students that fit their bullet points, and parents yell at universities for not making their kids fit the hiring company's bullet point. The problem is the bullet points.