The last computer course I took was a first year Fortran course over 25 years ago. But as a research scientist, programming was an ever-present work tool. Something you just opened a book on, learned, and applied. During ~15 years as a research scientist, I programmed everything from an old Rockwell AIM portable computer for data acquisition from test equipment, to IBM 3000-series mainframes for statistical analysis data crunching programs, to silicon wafer probing robot controllers, and much more, in every language from Basic, to Fortran to Assembler to proprietary PLC languages.
But every one of those projects were hacked together by having a programming manual open beside the computer, extracting just enough knowledge to get the job done.
The other end of the spectrum would be someone with full trainig in general programming theory and in specific languages. People with on-going training to keep their skills up to date. Real programming professionals.
So, which are you?
Forget that fear of gravity,
Get a little savagery in your life.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Trained Perl professional or self-taught hack?
by merlyn (Sage) on Apr 01, 2005 at 15:20 UTC | |
-- Randal L. Schwartz, Perl hacker
| [reply] |
Re: Trained Perl professional or self-taught hack?
by brian_d_foy (Abbot) on Apr 01, 2005 at 18:46 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 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> | [reply] |
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. | [reply] |
by jhourcle (Prior) on Apr 02, 2005 at 19:44 UTC | |
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. | [reply] |
by brian_d_foy (Abbot) on Apr 01, 2005 at 22:23 UTC | |
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> | [reply] |
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... | [reply] |
by brian_d_foy (Abbot) on Apr 07, 2005 at 19:25 UTC | |
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> | [reply] |
Re: Trained Perl professional or self-taught hack?
by Limbic~Region (Chancellor) on Apr 01, 2005 at 15:09 UTC | |
This is a hard question to answer. If you are asking if I was taught in school, the answer to that would be a resounding no. I barely graduated highschool and never matriculated into college. On the other hand, I believe I have gotten an equivalent high-priced education hanging out here at the Monastery. There is nothing wrong with a little hubris and to be honest, I believe I am a fairly competent hacker. As you can see from Road map woes, my self-taught programming was not in the same playing field. So while I haven't formerly been taught, I certainly owe my education to others and not necessarily myself. Cheers - L~R | [reply] |
Re: Trained Perl professional or self-taught hack?
by BrowserUk (Patriarch) on Apr 01, 2005 at 21:25 UTC | |
I think that in programing, like most other fields of endeavour, there are four main traits: Most people are a little of all of them. The critical factor is the mix. Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco.
Rule 1 has a caveat! -- Who broke the cabal?
| [reply] |
by cazz (Pilgrim) on Apr 01, 2005 at 21:29 UTC | |
| [reply] |
Re: Trained Perl professional or self-taught hack?
by dragonchild (Archbishop) on Apr 01, 2005 at 14:30 UTC | |
| [reply] |
by jacques (Priest) on Apr 01, 2005 at 22:50 UTC | |
A trained professional is someone who has been trained in a professional setting. College does not turn you into a trained professional. | [reply] |
Re: Trained Perl professional or self-taught hack?
by cog (Parson) on Apr 01, 2005 at 15:23 UTC | |
I started learning Perl at my final year at university (2001), but the Perl I learned I learned because I liked it :-) I have a bunch of Perl books, I read a bunch of stuff, I'm always trying new things... And if all goes well, I'll receive some official Perl training sometime this year... which I'm looking forward too, but not in the sense of "I'm finally going to learn something"... No, I'll merely receive official training! To tell you the truth, I don't even know whether I want that in my resume :-\ Anyway, I don't consider myself a guru (japh), but (and I'm not trying to brag myself) I have done a couple of interesting things, I guess... at least I'm organizing this year's YAPC::EU, I have a bunch of modules on the CPAN, I wrote a guide on writing Perl modules and a couple of other things (one of which even got the best paper award at YAPC::EU::2004)... I didn't learn those things from training, but I was at the university, so... I guess one could call me a self-taugh-Perl-hacker :-) | [reply] |
Re: Trained Perl professional or self-taught hack?
by jhourcle (Prior) on Apr 01, 2005 at 16:57 UTC | |
I find that I do the same as you -- I learn enough to get whatever job I'm working on done. Now, I try to take the time to do some research so I don't write too crappy of code, but there are those times when you come back to something you wrote a few months (or a few years) down the road, and you realize just how bad the code was that you wrote, given what you now know. As for being self taught, yes and no. I've taken basic programming classes (although my undergrad is in civil engineering, and my current master's work is in library science) I've taken classes in Basica, Pascal, C, C++, 68k Assembler, just because I felt like it. Fortran (back when it was still FORTRAN) and Logo, because they were required for school (okay, one was elementary school, but still). And one of my past employers sent me to learn PL/SQL and CFScript (well, ColdFusion in general). But that whole 'self' taught thing is really hard so say what qualifies as 'self'. I've learned a lot from people I've worked with over the years. Even if they're not teaching you directly, I never would have gotten to my current point without help from others when I learned Perl, VBA, LPC and k?sh. I guess the only ones that I'm really self taught in are those that I don't really use that often (ie, the ones I suck at), like AppleScript and Java. Well, I guess I can get by in JavaScript, and I've never had someone to apprentice to or had formal training in it... just books and websites. As for keeping skills up to date, I get that from using them, or reading books, for the most part. My current employer has a training budget for me, but I don't find that training is worth it unless I can immediately apply it to what I'm working on. If I don't get the change to use it, and burn it into my memory, I forget it rather quickly. I've never had any classes in general programming theory (I thought about taking a class on data structures once, but they required you to take Ada first, so it wasn't worth my time), but tend to get that sort of stuff from books for the most part. To some degree, it's actually helped me, as I (used to, less so now) approach problems from a different direction than the folks I worked with who were trained as compsci. | [reply] |
Re: Trained Perl professional or self-taught hack?
by 5mi11er (Deacon) on Apr 01, 2005 at 15:42 UTC | |
In other words if you don't have the passion to learn on your own, but went to school, you're not going to be better than simply adequate, and if your a hack with no schooling, there will be concepts that you're never going to be introduced to. Those with both the passion and schooling are going to make up the upper eschelon of any discipline. And a tiny percentage of those will turn out to be the True Wizards. -Scott | [reply] |
by ww (Archbishop) on Apr 02, 2005 at 20:28 UTC | |
My eyes don't exactly glaze over when I'm following a thread where the knowledgeable turn the discussion to some truly CS-type byway, but a little voice says -- "ummm, more to study!" and a second little voice asks "with what for time?" The second voice doesn't squawk at purely perlish study-time, but gets a tad touchy when deeper knowledge, much as I may want it, gets in the way of dandling grandkids on knee; earning my keep, etc. | [reply] |
Re: Trained Perl professional or self-taught hack?
by bluto (Curate) on Apr 01, 2005 at 16:26 UTC | |
I started as the typical 13 year old hacker ... about 30 years ago. I had access to some "big iron" back then, and some people were helpful/foolish enough to allow me to use it. Yes, those were the days -- saving your monster 200-line basic game program to paper tape from a 300 (or was it 110?) baud terminal and hoping you could read it back in later; wrangling with the punch card machine; threading reel-to-reel tapes; hand mounting disk packs; grabbing passwords off of printouts carelessly cast into the trash (really). Now I have a BS and MS in CompSci, so I guess it's both. I think just having one or the other would cause me to have gaps in perspective/knowledge (i.e. I think both are beneficial). So I should have no excuse for not knowing what I'm doing. Of course I still make excuses... | [reply] |
by sundialsvc4 (Abbot) on Mar 09, 2009 at 12:52 UTC | |
Hey! That was my password you swiped off that printout! (But don't worry... I swiped yours, too.) :-D | |
Re: Trained Perl professional or self-taught hack?
by jimbojones (Friar) on Apr 01, 2005 at 14:44 UTC | |
| [reply] |
Re: Trained Perl professional or self-taught hack?
by Mutant (Priest) on Apr 01, 2005 at 15:40 UTC | |
I don't really think the difference between a 'hack' and a 'professional' is whether they've had formal training or not. And often, as others have posted, it's actually the other way around from what you suggest (i.e. those without formal training actually become more professional than those who don't). I learnt Perl well before I started my degree, but I was certainly a hack at that point. I was lucky enough to do a degree that was actually worthwhile, but the lessons learnt there didn't really manifest themselves in my programming until I began working full-time. And I learnt a lot more off my more experienced colleauges. | [reply] |
Re: Trained Perl professional or self-taught hack?
by adrianh (Chancellor) on Apr 01, 2005 at 20:42 UTC | |
I'm another one who fits in the "both" category I guess. Got my first computer when I was eleven, did some commercial code in my teens, did my degree, mostly working as a software developer ever since. Personally I find the whole academic/industry divide daft. Idiots on both sides throw stones where there is a heck of a lot of useful info in both camps. Never had any formal training in Perl. Just worked through the old pink camel book when I needed to write some Perl code for work. As for on-going training - depends what you mean. I've not been on any official paid-for courses in many a year. These days I tend to teach them rather than attend them :-) However I spend a chunk of my day, every day reading mailing lists, RSS feeds of clever folk, books, papers, etc. If my personal circumstances allowed it I'd be at every conference I could spare the time and money for too. Not to mention trying to find people cleverer than you at work or online and doing your best to learn from them. In my opinion that's what you have to do if you want to be a professional developer. | [reply] |
Re: Trained Perl professional or self-taught hack?
by tlm (Prior) on Apr 01, 2005 at 14:34 UTC | |
Sounds like a good starting point for a poll. the lowliest monk | [reply] |
Re: Trained Perl professional or self-taught hack?
by RazorbladeBidet (Friar) on Apr 01, 2005 at 14:43 UTC | |
-------------- "But what of all those sweet words you spoke in private?" "Oh that's just what we call pillow talk, baby, that's all." | [reply] |
Re: Trained Perl professional or self-taught hack?
by Anonymous Monk on Apr 01, 2005 at 17:57 UTC | |
I learned Perl, but not at university. I did a 3 year general math degree, but didn't have the marks for a 4 year CS major. (Largely because I flunked too many electives: I guess serves me right for trying to learn physics and astronomy where everyone else was taking like Psych 101 & Film Studies.) I took all the CS courses I could (stuff like Introduction to Concurrent Programming, Numerical Representation, Theory of Computation, and the first two introductory courses, but many of the useful ones, like Data Structures & Algorithms, Real Time Programming, and AI were for CS majors onlys). I also took as many 'Combinatorics and Optimization' courses as I could qualify for: the Introduction to Cryptography course was quite interesting, for instance. I learned Perl, but not at University. However, learning a new language wasn't considered difficult at our school. In three different courses, they threw a manual at us, spent about three weeks giving us an overview of the language syntax and features, then asked us to write useful programs in the language. This practice actually worked fine for Turing and Ada, but when they asked people to learn C in 3 weeks in the Intro to Concurrency, half the class failed. Admittedly, asking the class to learn C *and* their own in-house concurrency language extensions was probably a bit much. In one course, I remember "learning" about 5 different languages: some form of assembly language, I think, an intro to Prolog assignment, and an intro to Scheme. They never taught us Perl; I looked at it first during a work term, but didn't really do much more than glance at the syntax for a long time. After I graduated, I wanted a job, and decided to learn Perl. So, I picked a little toy problem to help me learn. I re-wrote most of a 12,000 line C telnet based chat program as a 1,000 line Perl program, put that on my resume as a demonstration I could use the language, and got a job working with Perl a few months later.
That was in 1998, and I've been using Perl professionally since. | [reply] |
Re: Trained Perl professional or self-taught hack?
by CountZero (Bishop) on Apr 01, 2005 at 20:52 UTC | |
Taught myself programming, although I did follow a summer course in COBOL and systems analysis. Strange, the only programming language I have a formal training in, I have never ever used. CountZero "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law | [reply] |
Re: Trained Perl professional or self-taught hack?
by thekestrel (Friar) on Apr 01, 2005 at 18:29 UTC | |
Regards Paul. | [reply] |
Re: Trained Perl professional or self-taught hack?
by jonadab (Parson) on Apr 02, 2005 at 01:30 UTC | |
"In adjectives, with the addition of inflectional endings, a changeable long vowel (Qamets or Tsere) in an open, propretonic syllable will reduce to Vocal Shewa. This type of change occurs when the open, pretonic syllable of the masculine singular adjective becomes propretonic with the addition of inflectional endings." — Pratico & Van Pelt, BBHG, p68 | [reply] |
Re: Trained Perl professional or self-taught hack?
by g0n (Priest) on Apr 03, 2005 at 10:51 UTC | |
Since I've been a regular visitor here my coding has, I think, improved immeasurably - just reading posts & being able to ask quick questions of much more experienced programmers in the CB has taught me an awful lot. Very often a subject (PUGS/coding methodologies/functional programming/etc etc etc) will come up on a post or in the CB that will send me off on a little voyage of discovery, finding new and interesting things along the way. Which sort of leads to the point: many of the people posting here may be self taught, but through experience they have been exposed to a wide range of different methodologies, programming languages and ideas. All these things may be taught formally, and that might give someone a head start, but the combination of formal structured knowledge, rather than necessarily training, with experience, is IMO what makes the difference.
g0n, backpropagated monk
| [reply] |
Re: Trained Perl professional or self-taught hack?
by arc_of_descent (Hermit) on Apr 02, 2005 at 14:07 UTC | |
I'm sure I'm self-taught. But no offense to the numerous people out there who one way or the other have helped out. Like my numerous bosses, colleagues, people here at perlmonks, and others. I guess it really boils down to the art of learning. If you're inquisitive enough and motivated you can damn well learn most of the stuff out there (I don't mean hardcore stuff like rocket science though). Whats keeping anyone from learning a new language? I learnt Perl by myself by reading the Camel book. Although I had to do it cause my first job involved writing a Perl CGI. I do have an engineering degree, but I honestly feel it has contributed litte or nothing to my software programming knowledge. Whatever I've learnt is purely "on the job". But I must attribute the patience and need for detail which an engineering degree will teach you. | [reply] |
Re: Trained Perl professional or self-taught hack?
by Robertn (Hermit) on Apr 03, 2005 at 06:02 UTC | |
| [reply] |
Re: Trained Perl professional or self-taught hack?
by Juerd (Abbot) on Apr 02, 2005 at 22:19 UTC | |
I'm an autodidact. | [reply] |
Re: Trained Perl professional or self-taught hack?
by samizdat (Vicar) on Apr 04, 2005 at 12:53 UTC | |
That said, I've made a career out of being self-taught. I'm not a pure hacker who codes for the joy of coding, but I aggressively take on learning whatever is the tool that fits the need of a project. I think I have about ten units of any kind of engineering (my BA is Sociology and Psychology), but I've programmed everything from single-chips to CDC6400 assembler to Smalltalk enterprise apps, and I've built things from Intel single-board trainers to chips that combined digital, analog and photonics on one die. Setting aside my personal hubris, (whatta loada cr... :) ), I think that there's something to be said for academic coverage of the spectrum of programming (and engineering) concepts, but I hesitate to cheer for the process applied in getting degrees and I certainly do not support the hoop-jumping that's involved in the PE process. My personal opinion is that very few who spend their formative years in college have the real analytical, referential, and associative skills -- not to mention initiative and motivation -- to be useful without several years of being thrown off the deep end or having quality mentorship. | [reply] |
Re: Trained Perl professional or self-taught hack?
by herveus (Prior) on Apr 04, 2005 at 12:25 UTC | |
I guess I count as a trained "professional" (although I won't add the phrase "stunt programmer" -- "stunt herald", yes, but that's a tangent). I have most of a Computer Science degree that I am working on finishing, and I have 25 years of experience in the field. I do find myself using stuff I learned at university, but life has been a continuing education, including PerlMonks. Most of the languages I can count as "known/used" were self-taught, but the underlying concepts were there to be built on.
yours, Michael | [reply] |
Re: Trained Perl professional or self-taught hack?
by Anonymous Monk on Apr 04, 2005 at 13:36 UTC | |
| [reply] |
Re: Trained Perl professional or self-taught hack?
by fraktalisman (Hermit) on Apr 06, 2005 at 21:51 UTC | |
Another aspect to whether someone is a professional is just how much of their working time do / can they spend programming? In many small (I mean very small) companies and for freelancers, it's often not possible, you have to learn a variety of other things from web design to accounting, fix your customers' PC or explain to them how to attach a file to a mail ... Being self taught, I could be much better in Perl by now, if I had had the time to concentrate more on it. On the other hand, that would have been less interesting in a way. So I have to learn quite slowly, but that's OK.
fraktalisman keeps rolling
| [reply] |
Re: Trained Perl professional or self-taught hack?
by kgraff (Monk) on Apr 09, 2005 at 20:55 UTC | |
My first and last college programming course was Fortran IV in 1969, but I took it while earning a BS degree in chemistry and went on to get an MS in analytical chemistry. I too punched cards! What turned me into a Perl maniac though was when my Oracle mentor gave me a tiny script and then stepped back and watched. Within a year I was running servers with Perl scripts. | [reply] |