Author Topic: Coding Horror: Why Can't Programmers Program?  (Read 12729 times)

0 Members and 1 Guest are viewing this topic.

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
It's not a hard split, you just simply have two curriculums with some overlap.  I'm a Comp Sci/Comp Eng myself and there's already a lot of overlap even though the Comp Eng field is much more hardware-centric.  A Comp Sci/Software Engineering setup would just simply tailor the program to better define what a student might actually be useful for.  If nothing else the unis at least need some more emphasis programs within Comp Sci.  You literally cannot tell what kind of alternative courses I took just based on my degree title from the Computer Science department.  I could have taken nothing but AI classes and graph theory and algorithm design, or I could have taken every class we had on modern software design practices and all that jazz.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Iss Mneur

  • 210
  • TODO:
Re: Coding Horror: Why Can't Programmers Program?
One of the failures within CS etc programs is that students are often given assignments like: write a program that does X. What they should be given is a large, more or less messy code base where they need to implement a new feature X. That's what most of them will be doing anyway, once hired by a company.

Actually, it would be good if students would be working with the one and same code base the whole period of their studies. And at the end the whole of the code is evaluated: how well it works, did the code become more messy or more readable in the process etc. That would teach students to give the necessary "love" to their code from the beginning.
I don't think giving a student a messy code base to start with is really necessary. A more useful change to the CS programs would be to force the students to work together as 2 or 3 person teams.  This will produce plenty of "bad" and "messy" code because the members will never be at exactly the same level.  As part of a team, you would learn quickly how to modify an existing code base, because while the team started from scratch it will quickly become legacy code especially if it is done over 1 or 2 years.

i realized shortly after getting my 2 year degree that education was a scam. anyone can teach themselves anything in their spare time and end up having better mastery that someone who went to school for 4 years to do the same thing.
Maybe.  The thing about Colleges and Universities (at least good ones) is they will force you to be exposed to several languages, paradigms, and theories whereas the self taught programmer is very likely to be a one trick pony.  That is, they will only know how to code and not do anything else.

The other thing that seems to be missed here is that Colleges and Universities are not in the business of giving people job skills, they are in the business of providing the knowledge and theory about a job field. In this way a Bachelor of Science in Computer Science is no different than a Bachelor of Science in Chemistry.  With the Chemistry degree you would not be expected to start providing chemical analysis of some factories output without on the job training or previous (on the side maybe) experience doing the same thing.

Sushi's and chief1983's replies while I was typing this post also reflect a far more fundamental problem with the entire Computing Science/Computer Science field.  There is nobody to control what a degree title entails, unlike engineering which has a governing body and, at least in Canada and (I think) the USA, the term engineer has a protected status, which is where the terms "Software Engineering" and "Software Engineer" gets into trouble.
"I love deadlines. I like the whooshing sound they make as they fly by." -Douglas Adams
wxLauncher 0.9.4 public beta (now with no config file editing for FRED) | wxLauncher 2.0 Request for Comments

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: Coding Horror: Why Can't Programmers Program?
I've said it before and I'll say it again:  We need to scrap the whole college system and go to apprenticeships.  The only way you truly learn is by doing.  What they teach you in college is either theory that doesn't apply to the real world or already so outdated by the time you get a job you are years behind what industry is using.  This applies to everything not just CS.  

i realized shortly after getting my 2 year degree that education was a scam. anyone can teach themselves anything in their spare time and end up having better mastery that someone who went to school for 4 years to do the same thing.

:nod:

EDIT: Which is not to say nothing can be gained by the classroom education.  It's just it's lifeless without practical application.

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
Engineer is generally discouraged from use in the states unless it is an actual engineering job, but some states like Texas do go so far as to protect it.  But my last job title in Missouri was "Software Engineer".  I *****ed at my boss about it, as he should have known better having gone to the same engineering school I went to.

IssMneur, that's kind of what I've been getting at too.  The IEEE has been trying to reign it in and create a true Software Engineering discipline but it's been going awfully slow from what I can tell.  Plus, it shouldn't even be under their umbrella I don't think.  ACM would be the ideal choice but I don't really know how those societies all work to a great extent.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline castor

  • 29
    • http://www.ffighters.co.uk./home/
Re: Coding Horror: Why Can't Programmers Program?
I don't think giving a student a messy code base to start with is really necessary. A more useful change to the CS programs would be to force the students to work together as 2 or 3 person teams.  This will produce plenty of "bad" and "messy" code because the members will never be at exactly the same level.
Well, if large code bases that aren't messy exist. :D
Anyway, it needs to be big enough, so that students can't simply "rewrite by will" everything that doesn't fit their way of looking at things.
It needs to be a struggle, they need to learn how to be productive with code they have limited control of, which looks like nothing textbooks would ever teach. They need to be forced to look for second, third and fourth solution to the problem, and learn to know when to be satisfied with what they got.

Instead of writing code that is bound to collapse under it's own weight, write something that at least has a fighting chance to survive. Many, many programmers don't even realize the difference between the two.
 


 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
I don't think it's something to spend 4 years on, but maybe a semester or two.  Although that tends to be what the internship stuff is for.  You'll probably end up dealing with something like that at your first job anyway, and that's the point.  College isn't for that kind of stuff.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Mika

  • 28
Re: Coding Horror: Why Can't Programmers Program?
If my observations of CS students are correct, the most likely thing that will happen if team work is forced on the courses is that the one guy who can program does all the work for everybody in his group. This has actually happened to my friends (Theoretical Physics) learning courses in Computer Sciences. They were quite pissed about it, as they realized that the rest of the fifth year CS students didn't know any programming language.

By the way, our department (Physics) actually had a course in Electronics, Processors, Assembly and computers. It was interesting to decipher what's going on in the data bus when using 8086. See all those instructions turn to ones and zeros and seeing the replies by all components, using oscilloscopes and logic analyzers. However, attempting to decipher anything newer than a 80286 is going to give a headache, as the bus traffic might not happen in the sequence listed in the Assembly code... 

In the hindsight, it was one of the best extra curriculum courses I took in the University. Highly recommended for CS students and programmers.
Relaxed movement is always more effective than forced movement.

 

Offline Mongoose

  • Rikki-Tikki-Tavi
  • Global Moderator
  • 212
  • This brain for rent.
    • Minecraft
    • Steam
    • Something
Re: Coding Horror: Why Can't Programmers Program?
I know that the assembly class I took as part of my language and/or CS requirement for physics was something I found incredibly useful, even if we wound up having to change professors halfway through.  It taught me far more about how computers actually function than I'd ever learned elsewhere.

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
Any computer engineering degree will cover that stuff, I dual majored with both.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 
Re: Coding Horror: Why Can't Programmers Program?
I wonder if I'm a special case (I'm sure my mom would agree!  but she doesn't frequent this forum .. that I know of).

I have 10+ years of systems and network engineering experience architecting and leading enterprise scale/class web application projects (i.e. platforms generating millions of dollars of revenue for my company).  I've had to lead teams of programmers, DBAs, network and systems engineers to build application platforms from conception to implementation and support (and BEYOND!  lol).

I've been teaching myself C and C++ for fun, and to build out my skill set professionally.  I'm not a high school grad coming into IT cold, I've had to wrangle teams of developers, DBAs and network/systems engineers into A) talking to each other  :hopping: B) figuring out WTF we're going to do and in what order  :beamz: C) keeping anyone from shooting themselves (and the rest of us) in the a** because they've got their "my stuff" blinders on and the whips of the biz at their backs and D) making certain that everything works as it's supposed to.    :nervous:

My background gives me a perspective that I don't think many college grads have.  I understand the stuff that programs run on, I read network traces de rigeur.   I've compiled BIND daemons for DNS server builds.  I've seen, firsthand, MANY times how bad design can drop a platform into the mud and leave it kicking weakly for help.

And I've forgotten at least 10 times as much as I currently know (as in: know off the top of my head).  But I have a strong grasp of fundamental IT concepts and relationships, and am very successful at finding out anything I don't already know.  I've worked out the orbital elements of a 15 body solar system for fun (masses, densities, orbital elements, etc.).

Can I be an effective programmer w/o college?  I think so.  I'm currently studying function templates and classes.  The hardest concepts to grasp so far have been understanding the complexities of using overloaded operators with various data types, honestly.  There's so many ways to evaluate data.

Interesting discussion!  :yes:

« Last Edit: March 03, 2010, 06:28:54 pm by spaceranger »

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
No one said you can't.  And there's been many a watercooler argument between your so-called 'white collar' CS grads and 'blue collar' self-taught programmers about which is 'better'.  I wouldn't say either is, but to say that a college education offers no benefits is just not true.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 
Re: Coding Horror: Why Can't Programmers Program?
Agree.  Education is experience, so any experience vs. education arguments are essentially moot, imo.  I suppose my reply may have sounded defensive or accusatory, not the intention at all.  I was throwing out a case study of sorts for dicussion, really.  Cheers.

EDIT: More useful to discussion perhaps:  what could a self-taught programmer (like me specifically, or generally, w/e) be missing or lacking vis-a-vis a college CS degree?  I'm sincerely curious!
« Last Edit: March 03, 2010, 07:05:45 pm by spaceranger »

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
Breadth of study typically.  As was stated, self taught programmers tend to have a narrow focus, not a guarantee to be avoided in college but perhaps less common in a good program.  It depends on how thoroughly self taught you are, and that's at least what a degree is supposed to say.  A student is at least _this_ educated.  Depends on the reputation of the school.  Of course, any self-taught programmer worth his salt can probably impress an employer in an interview just as well if not better than a student, but I think it's easier to get a leg up on the job market out of college than out of high school, if you didn't already have an 'in' to the industry.

There's probably a lot of self-taught developers out there who aren't familiar with things like Scrum, agile development, pair programming, code refactoring, ORM, MVC, etc.  But I'm sure there's some that are, so like I said it depends on the quality of your own education.  You can't get a degree at my school without at least a minimal exposure to those however, and some classes require utilization of some of those practices in the capstone or other high level team development courses.  Self-taught programmers are also, from my experience, less likely to have spent much time working in teams, but again that's not always the case.

My friend Andrew though is an amazing sys admin, who can also code very capably, and never went to college.  There's a few industry-type subjects I know a bit about that he hasn't been exposed to but by and large he's a hell of an employee.  He's probably going to work for Facebook in the near future.  But he didn't work on a team of devs until 6 months ago, and he's 26 years old now, been working for the last 8.  He was always a one man show, doing sys admin, web development, the whole works for small companies.  But he's been doing great on a team too.  A lot of your lone coders aren't like that.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 
Re: Coding Horror: Why Can't Programmers Program?
Gotcha, I see your points.  Education implies some certainty of a programmer's breadth of assumed knowledge.  They'd have to learn the more soft/social aspects of working in a dev shop on the job like everyone else, sure, but a coder who comes out of hacking mods in high school could be really caught off guard on all those fronts, as well as only being really good at, say, programming object physics for maps in a particular engine (where they may not even have to work with anyone else on the project more than peripherally).

A college curriculum forces one to study more than they might want to learn.  A coder could come by that philosophy through their own discipline, but that's iffy.  I remember when I first picked up playing guitar, I didn't think I'd have to learn all kinds of things that I wasn't interested in at the time, or that I wasn't going to "need" or use (like modes, lol), but as it turned out I ended up learning all that stuff anyway, the hard way, years after I could have got into them and developed them.  My initial narrow attitude on playing guitar held me back in the long run.

It does come down to one's background, exposure and intention.  One pitfall in structured learning that I've observed is that it can foster a "make me do it" attitude in some, versus an "I'm going to do this" attitude in the really motivated students.  A college degree doesn't necessarily ensure the greatest capability (that's up to how an individual applies themself to the curriculum) but it does ensure a certain degree of exposure, at least.  One can be metaphorically dragged through a curriculum, or one can pioneer their own course through it.

One thing about self-learning is that it's a self-filtering endeavour.  Only those motivated enough to apply themselves to the endeavour really get somewhere with it.

Cheers!
« Last Edit: March 03, 2010, 11:41:26 pm by spaceranger »

 

Offline FUBAR-BDHR

  • Self-Propelled Trouble Magnet
  • 212
  • Master Drunk
    • 165th Beer Drinking Hell Raisers
Re: Coding Horror: Why Can't Programmers Program?
Well I don't know where you get the college educated people don't have a narrow focus.  When I went to school 90% of the stuff was taught on one platform using one language Pascal.  C for instance was 1/4 of one class.  The only other language that had a full class was FORTARN.  You know how much I ever used VM on a mainframe?  Never.  You know how much C and FORTRAN I've ever used?  0.  (No the FS2 source code doesn't count because it doesn't even resemble the C from back then) You know how much of anything I learnd in school I used in the workplace?  0. 

Nothing from school was practical outside in the real world.  The only useful thing I got out of college was learning how to pack the optimal amount of beer in the available fridge space.   

Now for those of you who thing all this theory and other stuff is a must then go through the apprenticeship first then when you have your time in move on to higher learning.  Also I'm not talking about just college I mean school in general.  By the time you get to 10th grade you should have a field chosen and half you school time should be working in that field. 
No-one ever listens to Zathras. Quite mad, they say. It is good that Zathras does not mind. He's even grown to like it. Oh yes. -Zathras

 

Offline Mongoose

  • Rikki-Tikki-Tavi
  • Global Moderator
  • 212
  • This brain for rent.
    • Minecraft
    • Steam
    • Something
Re: Coding Horror: Why Can't Programmers Program?
But who the hell knows what they want to do with their life by the time they're 16?  (Hell, my mom still says that she doesn't know what she wants to be when she grows up. :p)  Even when you get to college, the average person changes their major a few times, and the average worker ends up flat-out changing careers several times over the course of their life.  The whole point of the general education that high school provides and the breadth requirements that most degree courses require is to expose you to a number of different fields, just in case what you want to do now isn't what you want to do in a year or two.  Hell, I'm a living example: I have a B.S. in physics, but by the time I hit senior year, I seriously disliked most of my courses, and now I have no idea what I want to do with my life.
« Last Edit: March 04, 2010, 01:37:33 am by Mongoose »

 

Offline FUBAR-BDHR

  • Self-Propelled Trouble Magnet
  • 212
  • Master Drunk
    • 165th Beer Drinking Hell Raisers
Re: Coding Horror: Why Can't Programmers Program?
That's one of the whole points of apprenticeships.  If you start young enough you will know if you picked the right choice and still have time to change.  I had a good idea of what I wanted to do by the time I was 12 and had already been reverse engineering programming on my Apple  ][+
No-one ever listens to Zathras. Quite mad, they say. It is good that Zathras does not mind. He's even grown to like it. Oh yes. -Zathras

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
Re: Coding Horror: Why Can't Programmers Program?
Quote
But who the hell knows what they want to do with their life by the time they're 16?

The only way for people to become really and truly good at something is to 1. be innately talented at it and 2. be taught it from an extremely young age. I mean teaching math to a 2 year old and getting started with programming with an 8-10 year old. The catch, as you have pointed out here, is that no one knows what they're actually good at and what they want to do until its far too late to teach them anything. There's no point in teaching math to a 2 year old if they're actually a brilliant artist.

I started programming when I was 14 and I wish i had discovered it much, much sooner. I try to compensate by absorbing as much information as I possibly can and forcing myself to deal with increasingly complex problems, but the only reason I even knew about it in the first place was because my dad once wrote me a little program and I was absolutely fascinated about the concept of making the computer do something you wanted it to do.

College is useless because its trying to teach programmers things they should have learned 5 years ago.

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Coding Horror: Why Can't Programmers Program?
Well now we're getting into a debate about primary education styles and theories.  I could go on all day about that stuff too, but since as was said, you can't tell what someone's going to do, the best you really can do is stick to the basics, and attempt to develop the core parts of the brain as much as possible.  I'm talking about promoting things like critical thinking, problem solving, but also the imagination, and artistic endeavors as well.  Skills that will simply help you slide into your field of choice with ease.  It's up to your parents to teach you the family business or something if that's what they want, when you're only 10 years old.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Sushi

  • Art Critic
  • 211
Re: Coding Horror: Why Can't Programmers Program?
Furthermore, being awesome at "your field of choice" isn't everything. It's very much worth it to have breadth in education as well as depth: just because it doesn't directly apply to your chosen career doesn't make it a waste of time.