Over a million developers have joined DZone.

There is something rotten in the state of Computer Science education

· Agile Zone

Learn more about how DevOps teams must adopt a more agile development process, working in parallel instead of waiting on other teams to finish their components or for resources to become available, brought to you in partnership with CA Technologies.

When I went to university, most of our programming tests and projects where evaluated based on our grasp of various algorithms for sorting, tree traversal, hashing functions and numerous other things, you know, the sort of thing that most high level languages will actually give you for free in their standard API’s.

What we didn’t get to learn, or what our teachers just glossed over, and glossed over in ways that where harmful where basic object oriented concepts like polymorphism and encapsulation. In fact, one particular programming teacher told us to do outright bad things, bad habits that took me years to scrub off as I trusted the teachers advise.

I have a sneaking suspicion I’m not the only one with a similar experience: looking at the amount of bad code in production systems today, and the sheer amount of people who write software in object oriented languages, yet do not grasp even the basics of object orientation becomes mind numbing when you consider it. More people in our industry fail to grasp simple things like polymorphism and encapsulation than those who actually understand it, to use two prime examples. They are happy to use endless if-statements, switches and enumerations rather than polymorphism, and to have systems and sub-systems where each component and class must know about all the internals of all the other parts of the system.

To me, this all exposes a fatal flaw in the current Computer Science education system at all levels (university in particular): the education prepares people well to memorize various algorithms they don’t actually need to memorize, but it leaves people ill prepared to know the basic fundamentals of software design. The flaw is so fatal that it is actually an active liability to the whole industry and a big driver of the pervasive and excessive costs and schedule overruns, as complexity grows exponentially instead of being hidden and limited.

There is something rotten in the state of Computer Science education: it puts emphasis on the wrong things, doesn’t teach at all, or teaches the wrong principles in the areas that matter and fails horribly in preparing future software professionals for the demands of software development.

Discover the warning signs of DevOps Dysfunction and learn how to get back on the right track, brought to you in partnership with CA Technologies.

Topics:

Published at DZone with permission of Wille Faler, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}