Code Artists: BFA in programming
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
It is long past time that software authoring was recognised as the art that it is and the kind of undergrad course described was put into operation. Also a great deal of effort is put into trying to formalise software development so it can be treated as a science but not nearly enough into preserving its fragile and ephemeral history as an art. Who is their among us who could not learn something from an analysis of the source code for some of Geoff Minter's early Atari games or the 6502 port of Chuckie Egg, or the original SuperCalc, SHRDLU, MIRA Graphics... When software authoring is studied as an art understanding and appreciating such classics, their historical context, limitations and innovations would naturally be part of the subject.
Nothing is exactly what it seems but everything with seems can be unpicked.
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
Yea, I worked in a live shop. However, the live shop was really a student club with a pizza budget. however, we learned a lot working on projects and developing in the lab as teams and so on...so i'd say the more of that type of work, the better.
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
That would be why I went to a college that prides itself on its co-op program -- two semesters working in the field with experienced professionals on real projects. :: Plug for alma mater :: http://www.wit.edu/index.php[^]
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
There is nothing quite so disheartening as interviewing candidates for programming jobs. My wife is often surprised by my confidence that I can find another job easily if I ever really need to. Once you see the competition it really becomes more of a question of picking the best jobs available at the time.
This blanket smells like ham
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
Shog9 wrote:
much less anything approaching a love of, or pride in their work
It's almost old fashioned to enjoy your work. I worked for a short time in a company where my interest in work and programming was met with hostility all the time. Nobody seemed to enjoy their work or take any pride in it. Needless to say I left them after 8 weeks... I'm glad to see someone who values this aspect of programming. I'm lucky to work with people at the moment to whom you can describe code as being beautiful and not get laughed at or ridiculed. :) I agree with the point you make about quality. It is difficult sometimes to convince newer programmers to sit down with a piece of paper first. In my first year of computer science at university. We were not allowed(we still did :-D ) to write any code until we had shown a JSP diagram that was correctly drawn and that was functionally correct. Also our computer time accounts were limited to 40 minutes a week - this meant that we usually only had enough time to type in the code we had written then to briefly test it before our time ran out. So we had to have all our code written out by hand before we went anywhere near a computer - and this was only as far back as 1988. This all may sound a bit over the top, but it stood me, and another colleague I work with, in very good stead for writing maintainable and well written code(if I say so myself). Rant over...
You always pass failure on the way to success.
-
There is nothing quite so disheartening as interviewing candidates for programming jobs. My wife is often surprised by my confidence that I can find another job easily if I ever really need to. Once you see the competition it really becomes more of a question of picking the best jobs available at the time.
This blanket smells like ham
I've been hearing that a lot lately. And not just from the states. Pretty much from all over. We're doing some mass recruiting (we're hiring about 120, from juniors all the way up to team leaders). We've gone through 3,000 (I kid you not) and we've selected only 14 out of the first pass. TBH, if it were up to me out of these 14 not one would have been a first choice. So, say I were to go back home to Canada, the general consensus is that if you actually know a thing or two about your own job you'd get hired practically on the spot?
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook "There is no wealth like knowledge, no poverty like ignorance." Ali ibn Abi Talib "Animadvertistine, ubicumque stes, fumum recta in faciem ferri?"
-
Shog9 wrote:
much less anything approaching a love of, or pride in their work
It's almost old fashioned to enjoy your work. I worked for a short time in a company where my interest in work and programming was met with hostility all the time. Nobody seemed to enjoy their work or take any pride in it. Needless to say I left them after 8 weeks... I'm glad to see someone who values this aspect of programming. I'm lucky to work with people at the moment to whom you can describe code as being beautiful and not get laughed at or ridiculed. :) I agree with the point you make about quality. It is difficult sometimes to convince newer programmers to sit down with a piece of paper first. In my first year of computer science at university. We were not allowed(we still did :-D ) to write any code until we had shown a JSP diagram that was correctly drawn and that was functionally correct. Also our computer time accounts were limited to 40 minutes a week - this meant that we usually only had enough time to type in the code we had written then to briefly test it before our time ran out. So we had to have all our code written out by hand before we went anywhere near a computer - and this was only as far back as 1988. This all may sound a bit over the top, but it stood me, and another colleague I work with, in very good stead for writing maintainable and well written code(if I say so myself). Rant over...
You always pass failure on the way to success.
GuyThiebaut wrote:
to write any code until we had shown a JSP diagram that was correctly drawn and that was functionally correct
I used to work for a company in Scotland that was run by a friend of Michael Jackson (of JSP fame). Even Jackson admitted that JSP was a mistake.
Deja View - the feeling that you've seen this post before.
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
-
GuyThiebaut wrote:
to write any code until we had shown a JSP diagram that was correctly drawn and that was functionally correct
I used to work for a company in Scotland that was run by a friend of Michael Jackson (of JSP fame). Even Jackson admitted that JSP was a mistake.
Deja View - the feeling that you've seen this post before.
Pete O'Hanlon wrote:
Even Jackson admitted that JSP was a mistake
What was the mistake? Regards Guy
You always pass failure on the way to success.
-
Pete O'Hanlon wrote:
Even Jackson admitted that JSP was a mistake
What was the mistake? Regards Guy
You always pass failure on the way to success.
It's too ephemeral for complex systems, and doesn't go far enough when dealing with business process implementation. He wrote a book here[^] that details how his thinking evolved. Shameless plug here, because I worked for the company that this book refers to and worked on the workflow engine that he talks about in the book. Buy the book, it's good (I was one of the reviewers).
Deja View - the feeling that you've seen this post before.
-
It's too ephemeral for complex systems, and doesn't go far enough when dealing with business process implementation. He wrote a book here[^] that details how his thinking evolved. Shameless plug here, because I worked for the company that this book refers to and worked on the workflow engine that he talks about in the book. Buy the book, it's good (I was one of the reviewers).
Deja View - the feeling that you've seen this post before.
Thanks. That might explain why I no longer use it. I think I found JSP very useful in helping me to learn about logical progression - but as you say with more complex systems it's just not as good. Nothing like my current extreme programming methodology :sigh: The book looks interesting. My current business is looking to change it's main accounting systems in around two years time (muggins here will be doing a large part of the migration/bug fixing) so I might ask the business to get a copy. Also I don't fancy using dry old SSaDisM in the analysis phase. Regards Guy
You always pass failure on the way to success.
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
Software development is NOT an art, let alone in the BFA category; it is an engineering discipline. It is no coincidence that the best programmers I know majored in, or spent substantial time studying, engineering. (Conversely, the worse developers I know who make any sort of claim of being professional developers ALL majored in CS--I honestly can't think of an exception.) I do think CS programs are way to heavy on theory and don't do even project oriented work. We recently hired several graduates of Neumont University which emphasizes doing projects. I've been quite impressed with them (and all the students we interviewed from there.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
Shog9 wrote:
The System will work around it by building processes that don't require skill... to the detriment of us all.
Hmmm, seems to me that's already happened... hasn't it? ...says the contractor diein' for an employee job that can't get one because he expects WAYYYYY too much money compared to the other code monkeys. My art ain't done in the workplace for money (any more). Sure, I've got a day job that's SORT OF like computer programming (If you can consider Oracle and Perl programming... I really don't think you should.) But any artful code i check into (shudder) cvs will soon be reformatted and turned into mush by the next employee code monkey who really likes to reformat with an average of 200 characters per line and comments with enough punctuation to choke a horse. From my viewpoint, every facet of the world is becoming a business. Schools, churches, organization - all being forced into a "business"-y mold. And business is the new war. And, let's face it. Businesses aren't interested in art. It's up to the computer programmer to work the art angle I'm thinkin'... My art originates at home where it's safe. If some of that bleeds out into my work, then great. But business is war. There's no place for art there. It'd be nice. But, well... I'm not gonna hold my breath... I'll stick with writing my little midi sequencer in c++ at home for my artistic side. ...SteveH http://shazware.com[^]
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
I must disagree with the basic premise. The great artist Pablo Picasso said "There is no abstract art. You must always start with something. Afterward you can remove all traces of reality." Unfortunately with programming the reality is that it is built on mathematics. Modern languages have "abstracted" this reality away from newer programmers with sophisticated libraries. But I do agree with Mathew Faithfull's post about reading and analyzing classic code. Just as writers of today read the great authors like Dickens and Hemingway so to should programmers read the classics. I personally would suggest Kernighan and Ritchie. Picasso also said "It took me four years to paint like Raphael, but a lifetime to paint like a child." I feel my four year computer science degree taught me the basics. Now I am capable of stripping away reality and painting like a child. But without the foundation you truly do not know what you are doing.
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
In the last few years the federal government reclassified programmers from a clerical(secretary) designation (I believe it was series 340) to programmer designations (series 2210, 1550). Some say this was a good thing. But having worked with some fed programmers, I would say the old designation was more accurate.
MrPlankton
-
Software development is NOT an art, let alone in the BFA category; it is an engineering discipline. It is no coincidence that the best programmers I know majored in, or spent substantial time studying, engineering. (Conversely, the worse developers I know who make any sort of claim of being professional developers ALL majored in CS--I honestly can't think of an exception.) I do think CS programs are way to heavy on theory and don't do even project oriented work. We recently hired several graduates of Neumont University which emphasizes doing projects. I've been quite impressed with them (and all the students we interviewed from there.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Electrical Engineers are capable of getting the programming job done and colleges are still turning them out, even math majors are very capable. When hiring one might skip cs altogether (and we won't even talk about "information tech")and focus on EE's. However doing maintenance on code an EE wrote tends to be an unpleasant experience.
MrPlankton
-
Software development is NOT an art, let alone in the BFA category; it is an engineering discipline. It is no coincidence that the best programmers I know majored in, or spent substantial time studying, engineering. (Conversely, the worse developers I know who make any sort of claim of being professional developers ALL majored in CS--I honestly can't think of an exception.) I do think CS programs are way to heavy on theory and don't do even project oriented work. We recently hired several graduates of Neumont University which emphasizes doing projects. I've been quite impressed with them (and all the students we interviewed from there.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Whereas I agree that Software development does not belong in the BFA category, I believe it IS as much art as it is discipline. I remember while attending University that we had to diagram out all programs prior to writing code. I believe this discipline helped a lot. It helps sell the idea for a new project - or sell how one would solve a current problem. It also helps to get the concepts across to a team of (especially junior) developers, not to mention keeping track of 'where you are' on a project that has been overcome by creep. Also, there was a required course that spanned the full cirriculum year where we were required to go out into the business world, find a company willing to work with a bunch of students, and solve a problem for them. Our grade was determined by a discussion between the POC at the business and the Prof. There is a certain amount of art to developing code that is maintainable after it has been deployed and you have gone on to other things. The discipline in it is to keep it documented enough for someone that was not in on the development to understand what the original intent was - and/or in documenting what has been done to upgrade/modify it as it matures in use. Life is not measured by the number of breaths we take, but by the moments that take our breath away. (George Carlin)
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
I totally agree with the concept of "programming as an art". Personally that's how I look at the code I write. It's a matter of balance between black and white, complexity and simplicity. The way the code looks (literally) always is an important aspect in the code I write. Is it balanced (in many aspects)? Well indented? Not cryptic? The size of names is not too small or too big? Are the naming rules consistent? Is it well documented (inline documentation explaining whys and whats)? Is it easy to understand by other developers? ... All these things influence the look of a piece of code. For me, the look is also highly correlated with the quality of the code, because it shows the care the programmer took in every aspect of it. Generally speaking, for me, "the preetier the better". Ok, ok. I know performance is very important. But being performant does not necessarily exclude being "full of art". Most developers I know (sorry: any coleague seeing this) never even worry about many of the stated aspects of programming. They only know how to criticize the code (written by others) they have to mantain, ignoring that their code might be even "worse"... The proper balance between "looks" and performance is itself an art. "Art in programming" is not a "nice to have" or an "if there is time" thing. It must be taken into account in every line you write, in every variable you name. It's not something to leave for a later "refactoring" phase, because almost certainly there will be no time for that. For me, this kind of attention given to your code is necessarily tied to loving your work. Loving to code and think. I surely do.
-
Software development is NOT an art, let alone in the BFA category; it is an engineering discipline. It is no coincidence that the best programmers I know majored in, or spent substantial time studying, engineering. (Conversely, the worse developers I know who make any sort of claim of being professional developers ALL majored in CS--I honestly can't think of an exception.) I do think CS programs are way to heavy on theory and don't do even project oriented work. We recently hired several graduates of Neumont University which emphasizes doing projects. I've been quite impressed with them (and all the students we interviewed from there.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
I rarely respond to messages on forums but felt that I had to on this one. {$RANT+} I have to disagree whole-heartedly with this one. I've worked on many projects fixing code that was written by engineers. Logic branches into the ether, insane database models, equally insane data manipulation and wading through page after page of spaghetti code with little structure and very bad variable naming conventions gave me some very nice paycheques over the years, so in a way I'm thankful that many engineers have considered themselves to be programmers. I have to admit that I've seen a dramatic degradation in the quality of code produced by CS-educated developers in the last five years and feel that the weakly-typed programming languages currently in heavy use are partly responsible. Strongly-typed languages can help enforce better development habits through the passive enforcement of discipline. They also seem to produce faster executables. The "elegant solution" that top-level developers strived for seems to be a thing of the past, replaced by the BFI (Brute Forace and Ignorance) model. In the old-time database analyst parlance, "assume infinite resources" seems to rely on the increasing horsepower of computing platforms to compensate for good coding practices. In the end, I think it comes down to discipline and dedication to your craft, whether it's cutting code or cutting meat. Whatever you do, strive to do it to the absolute best of your abilities. {$RANT-} Thanks for listening.
... Doug Filteau http://www.littlemountain.com
-
http://www.joelonsoftware.com/items/2008/01/08.html[^]
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.
Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?
<blockquote class="FQ"><div class="FQA">Shog9 wrote:</div>http://www.joelonsoftware.com/items/2008/01/08.html\[^\] Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing. Frankly, i'd love to see this... and not because i consider CS topics to be too abstract or impractical. To me, it seems as though programmers are being pushed further and further into the category of interchangeable grunts/clerks, with all-too-little value being placed on the style or quality of the work they do. The last time we were hiring, it was all we could do to find any practical experience in the candidates we interviewed, much less anything approaching a love of, or pride in their work. Of course, it doesn't help that The Powers That Be remain convinced that all problems will be solved by farming out work to consultants who consider writing code akin to building prefab homes, sans elegance and quality control. IMHO, this isn't something that's going to be fixed top-down (all claims of the Six-Sigma for Software folks aside). If crap coders are all that are available, The System will work around it by building processes that don't require skill... to the detriment of us all. Thoughts?</blockquote> Liberal Arts or any number of non-tangential courses don't benefit a developing mind that is disinterested in them. So to toss out ratios of particular classes in the hopes they will aide and increase some creativity and style component is a pipedream. As to having people from industry teaching courses - I had that 15+ years ago when an undergraduate student - the graduate students that taught my Software Engineering, OOP, and assembly courses were all just a few years older working for various companies in Milwaukee and working towards their MS in Compsci. It's almost always beneficial to a degree because they've been in the trenches; be careful though of those who follow lousy practices at work teaching courses though lol!!!! Why does everyone almost always bring up game development industry examples? They have some of the worst quality assurance practices across software; I wo