On 14/07/13 02:12, boB Stepp wrote:
This may be of interest to some of us:

http://matt.might.net/articles/what-cs-majors-should-know/

Interesting post Bob, thanks.
I think I've covered about 50-60% of the recommended reading
and about 75% of the topics.

But... I think its a tad old fashioned and neglects the biggest areas of weakness and growth in my experience of modern software engineering - large scale systems. More and more systems don't run on single hosts. They don't even run on single CPU architectures within a single box(the mention of GPU processing and CUDA hints at that). But learning parallelism on a single computer is only the tip of the iceberg. The vast majority of corporate programming today builds systems running across dozens and sometimes hundreds of physical servers. (One CRM implementation I did had over 200 servers across 3 sites all integrated and self managed as part of the project design.) There is one disparaging comment about UML but UML is about the only tool we have for documenting large scale systems effectively. It's far from perfect but a critical skill for grads IMHO. (Ironically it's usually taught as a tool for designing OOP programs with a few classes and that is its weakest area of application.)

The other problem in all of this is that it is effectively impossible to teach all of that in a standard 3 or 4 year Bachelors course. Even with 2 years extra for a Masters degree.

I did my degree in Electrical/Electronic engineering with specialism in software. It took me about 5 more years to read up on all the CS bits I wanted to cover that weren't in our course. I discovered these areas by discussion with colleagues who had attended other colleges or done other degrees. None of us had done all that was needed.

And that's the problem. Computing has become too widely encompassing for anyone to learn the breadth of material needed in the time available in an undergraduate and/or masters course. Other engineering/science disciplines have addressed this by specializing and that is already happening with Games programming degrees becoming increasingly common and many courses in Business computing. I think we will see more of this in the future. It's simply unrealistic to ever expect college grads to have the breadth suggested in the article - they may aspire to it and maybe after 10 years or more attain it.
But by then there will be another array of paradigms to absorb...



--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to