Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Trained Perl professional or self-taught hack?

by brian_d_foy (Abbot)
on Apr 01, 2005 at 18:46 UTC ( [id://444258]=note: print w/replies, xml ) Need Help??


in reply to Trained Perl professional or self-taught hack?

I don't like the word "professional" in these sorts of cases. I reserve that word for people with formal training and in a job that requires licensing, has a formal code of conduct (lawyers, doctors, civil engineers), and requires continuing education. I see "programming" jobs as just the opposite. A lot of people don't have formal training in the area of their work. Programmers don't have to be licensed, and there certainly isn't any agreement on standards of work or quality. Programmers don't even have to keep up with the times and technology: there are plenty of people out there perfectly content to keep plugging away with COBOL on mainframes (although that number dwindles as people retire).

I also tend to think the people with Computer Science degrees are not formally trained in programming either, but that can vary based on the program they are in. My degree is in Physics, and I went to school with a lot of people who thought since they were smart enough to have a degree in Physics that they could design a bridge or build a tower. Sure, we know all about torques and forces and whatnot, but its not that same as engineer who knows all about concrete and load and technical drawing. The broad theoretical topics like Physics and Computer Science do not necessarily translate to the applied topics like engineering and computer programming.

In my mind, programming is one of the things you learn after you've had the formal training. You study a lot on your own, and you sit next to wise people who teach you things. You read a lot, and you try a lot of things on your own. That's where things start to separate people.

I know a lot of people who have programming jobs, but they do the same thing every day, and they use the same tools everyday. They got into programming when they thought it was a cool lifestyle, that's the job they got, and now that's their career because they are invested in it and don't want to start over (retirement plans, house payments, whatever). They show up on time and go home on time. They learn what they need to accomplish their task. That's not a statement of the quality of their work, just that they have their day job and that's what it is. They do their job, and that's it.

On the other hand, there are people who learn just about everything they can, are trying all the new tools, learn several languages, and read about programming ideas even if they are demonstrated with another language. These people have to take long vacations because after three days in the Caribbean they are still think about their work (or take a GeekCruise and never stop thinking about it). These people would program even if they didn't get paid. They might have a formal education in some area, but not one dealing with technology. They know how to read and they do. They talk to a lot of people and learn their wisdom.

Now, having said that, I'm don't have formal training in programming, but I'm not exactly self-taught either. I know how to learn things on my own, but I've also had a couple of good mentors and have surrounded myself with really good programmers.

--
brian d foy <brian@stonehenge.com>
  • Comment on Re: Trained Perl professional or self-taught hack?

Replies are listed 'Best First'.
Re^2: Trained Perl professional or self-taught hack?
by Tanktalus (Canon) on Apr 01, 2005 at 19:49 UTC

    So, you object to the term professional. Can we all pretend, then, that the OP asked about "in-class education/training in the field of computer programming"? I think we all know what the OP meant, even if it wasn't formally precise.

    To answer the OP's question myself - I have a degree in Electrical Engineering (I'm not sure why brian d foy singled out civil engineers - at least in Canada, all types of engineers need licensing, not just civil engineers). I took a computer minor, which amounted to 8 out of 41 courses being computer-programming-related (two from computer engineering, two from electrical engineering, the rest from computer science). And I have enough hubris to think I'm the best programmer on my team ;-) The rest of my team has either a comp sci degree or diploma each.

    And I need to point out an inference I have from brian's post above: that programmers do not need to be licensed, nor should they need to be licensed. Perhaps this wasn't meant to be implied, but I inferred it anyway. I do think that there should be places in software where licensing should be mandatory. For starters, anything that any engineer, doctor, or other licensed professional uses in the pursuit of that profession (e.g., CAD, aeronautic computation, etc.) should have the stamp of a licensed professional in order to be marketted to that profession. That stamp would also prohibit any sort of EULA which tries to limit damages in the area of the licensing that is not in accord with that industry in general. Yes, this could drive the software prices way up. But then the quality of that software would have to be methodologically proven, which would help so many engineers, doctors, etc., that it would probably be worth it.

    Authoring a spreadsheet or the like would be one thing. Writing rocket guidance or medical-research software is a whole other can of beans.

      There are actually two levels of engineering certification in the US. Basically, once you've gotten your degree in college (from an ABET accredited school), you can then take the first test (Fundamentals of Engineering, which then designates you as an 'Engineer in Training'). After working under a Professional Engineer (someone who's already passed the second test) for about 2-3 years, you can take the PE test. Once you pass the test, you can apply for licensing. I've only dealt with the Board of Licensure in Kentucky (I did some work on their databases ... reminder to self -- never take someone's word that it's 2 weeks of work, without specing it out yourself -- they neglected to mention that I was replacing an existing system, not making something from scratch (which might've taken only 2 weeks)) but the states seem to compare notes on the applicants, to see if anyone else has a reason to black list the applicants.

      Now, my understanding for the licensing is that it's because certain fields in engineering have the possibility to do real economic damage or cause human casualties. Sure, doctors can kill people from negligence, but unless it's misdiagnosing the plague, they're only going to be found out before they've killed a dozen people. Civils, Structurals, and a few other fields have the potential to kill hundreds, thousands, or even more with one bad calculation (building collapse, dam bursting, etc.). That's not to say that electrical engineers couldn't kill people too, of course.

      For quite some time, programmers weren't a profession on their own -- they were scientists, who also did programming, or similar. They knew the problems they were working on intimately. These days, programmers might be brought in on a contracting basis. For some folks, a typo might result in someone not getting their email; for others it might result in people dying.

      I would love to see a form of purely voluntary licensing for programmers, so that you could be sure that the people that you're comparing for a job are similar in skills. I know there's Brainbench, and probably other similar companies, but I'd prefer it to be run by the programmers they're certifying, more like a guild or union. I'd like to see an apprenticeship systems for programmers, to replace and/or build on what they might learn in structured classes. I assume that some larger companies, who focus on software might have a mentoring program, or similar, but I've never worked in that industry.

      I'd also like to see something like the FE vs. PE, where you have a basic skills test, and then a series of higher level tests for specialties. Just as you don't want a podiatrist doing open heart surgery, or a tax lawyer defending you in a murder trial, you might not want someone who specializes in making email feedback forms for websites writing database software to track capital elligible judicial cases, or tracking medical needs for neo-natal care patients. I don't mean to belittle people who make web pages (I do it myself), but there needs to be a different level of due dilligence, when you might adversely affect someone's life in more than just a superficial manner.

      Indeed, I object to the loose use of "professional", and I don't know why I used "civil engineer" otehr than that's who I think of when I talk about this because I talk about building bridges. I want to distinguish that from "software engineer", which is not a proper term in a lot of places no matter what people put on their business cards.

      We don't have to pretend that we know what the OP meant: I addressed that in the rest of the post as I talked about Computer Science degrees and formal training. I wrote a lot more than just the first paragraph. :)

      Also, I don't say that programmers should not need to be licensed. I only point out that they currently don't. That's a different discussion, and don't mistake that to mean I implied anything other than the current state of affairs.

      --
      brian d foy <brian@stonehenge.com>
Re^2: Trained Perl professional or self-taught hack?
by adrianh (Chancellor) on Apr 07, 2005 at 11:29 UTC
    I don't like the word "professional" in these sorts of cases. I reserve that word for people with formal training and in a job that requires licensing, has a formal code of conduct (lawyers, doctors, civil engineers), and requires continuing education.

    I can understand (if not agree with :-) this definition of professional. However I wonder if you have any other terms that you use to describe people who do software development as a career and take their conduct and continual development very seriously, as opposed to people who code as a hobby or know just enough to write some scripts to do some sysadmin?

    Just curious...

      The term "software developer" works for me. :)

      It's not a problem only with programming jobs. There are plenty of occupations that people have as a career, but that other people can do on the side. I think the confusion comes up because people want to identify themselves as what they do at work, rather than who they actually are or what they actually do. For instance, people say "I am a programmer" more often than they say "I program".

      Since people use that first form, I've often seen "title inflation". Some people want to sound more important than what they actually do. "Software engineer" is a fancy term for "code monkey". "Software Designer" seems to mean "code monkey without a spec to follow". You'll find a lot of "Dircectors of" in small business, although they aren't really directing anything more than anyone else. "Vice president" positions in the same company have inflated in numbers over the years too.

      Furthermore, I don't think getting paid or having a job has anything to do with the level of conduct or the seriousness of the activity. The number of hours a person spends on the activity each week also doesn't have anything to do with those things. This is more apparent in the open source world where a lot of unpaid works goes on, often by "hobbyists". :) I think people use the word "professional" to divide those two groups and make the "hobbyists" seem somehow inferior because the "professional" goes to an office and sites in cubicle five days a week, and that somehow makes the activity more worthy.

      --
      brian d foy <brian@stonehenge.com>

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://444258]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2024-04-23 07:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found