T.R | Title | User | Personal Name | Date | Lines |
---|
306.1 | | TLE::BRETT | | Wed Apr 03 1991 12:41 | 5 |
| Tell him to go to night school.
Did you ever hear of a self-taught lawyer? doctor? CAR MECHANIC?
/Bevin
|
306.2 | home for skill, school for credit | ULTRA::PROBINSON | Just causing trouble... | Wed Apr 03 1991 14:26 | 34 |
| > Did you ever hear of a self-taught lawyer? doctor? CAR MECHANIC?
In high school, I knew more than one car freak who could (and did)
take on anything from a simple lube job to a full engine rebuild.
None of them were professional mechanics or had been to "mechanic
school." I find it hard to believe you would claim none of these
people could ever get a job in a garage. It wasn't so many years ago
that the self-taught programmer was the rule, not the exception.
The point is not to become a principal-engineer level code jock
overnight, the point is to acquire a "marketable skill." How much
skill do you expect out of an entry-level programmer? That much
can certainly be acquired at home.
Marketing that skill presents its own problems, however. The
_credibility_ that comes with a course in school is higher than home
study, for sure. (That says nothing about the _actual_ skill
acquired, however!) And in today's Boston-area market, at least, you
are competing with a LOT of laid-off programmer types.
My brother did more or less what .0 proposes, also because of his
personal situation. I donated my Robin to him, to provide him with a
computing platform. He avoided taking courses because, being a
free-lance carpenter, the cost of a course was a major hit to his
income. What he did do was try to get course credit by just passing
the final, which BU MET college is willing to do (at least for the
low-level stuff). This let him put BU course credits on his resume,
for maybe a fifth the cost of taking courses (and without the time
commitment either). After a few of those, he got himself hired by a
contract temp agency, and within a year he had a regular fulltime
programming job.
So it can, and has, been done. The Programming Police will not keep
you out of a job for lack of schooling, despite what .1 says.
|
306.3 | | BLOCKP::neth | Craig Neth | Wed Apr 03 1991 17:00 | 18 |
|
Actually, the CAR MECHANIC analogy is pretty close to accurate.
I think you will find that to work on today's cars, some sort of
formal training is a requirement. There aren't as many mechanic
jobs anymore either. When I was a kid, every corner had 3 gas stations
and they all had mechanics. Most of those people probably learned all
they knew about cars in their back yards. Now, there are a lot less gas
stations, and the ones that are still around sell milk and eggs in the bays
where the mechanics used to work. Most mechanic jobs are with car
dealers or in chain 'garages' that have training requirements. I think
programming is going the same direction.
I think .2 is right, you can probably obtain a marketable skill at
home playing with a PC. It'll be tough to get a job around here,
because the competition is fierce, but you probably could (lots
of companies need a few PC hackers around to keep things running).
But the chances would be much greater to get an initial job, and
to keep it, if some formal training could be acquired at some point.
|
306.4 | | ULTRA::PROBINSON | Just causing trouble... | Wed Apr 03 1991 19:04 | 57 |
| re .3, two things:
While car dealers may require their mechanics to go through the
manufacturer's particular training courses, this is not necessarily
the case with independents (and there are still plenty of
independents, fortunately). There, the "requirement" is more from the
market than from any sort of license-granting entity. (There may be
specific exceptions, but I think this is true in general.) People
tend to feel better if their mechanic's wall is covered with diplomas
and certificates, particularly from well-known institutions or from
professional associations whose reputations can be verified.
Also, the "requirement" is for _certification_ not _training_. I
don't think anyone should care how you learned what you know, so long
as you can demonstrate that you do know it.
Again, this is what my brother did. He trained himself, obtained
certification from a well-known local institution (BU, in this case)
and got work in the field based on that certification. BU vouches for
his knowledge, not how he gained it. For someone who is sufficiently
motivated, and for whatever reason doesn't want to commit to the
expense or time structure of a course, this is a perfectly valid way
to get into programming.
re .0, in an attempt to answer more of your question:
I see two broad areas where programmers are typically in demand:
- COBOL and RPG, for business applications programming;
- C/Unix and C/MSDOS, for pretty much everything else.
Most people I know have an almost instinctive "No, you don't want to
do that" reaction to the first area. Nevertheless, there is a LOT of
COBOL and RPG out there, and not that much formal training going on.
The downside is that it's not so easy to latch onto a PC COBOL
compiler, although they do exist, and the debugging environment may
not be as sophisticated as that for C. Also tutorials and books are
harder to find. Forget getting "certification" from a university for
this one, too (although it's possible that one of the technical
schools, e.g. Sylvania or ITT, would go for it). These last are all,
in a way, _good_ reasons to go this route; the competition is less.
(But you'll probably have to wear a tie to work.)
C, either on Unix or MSDOS, is "where it's at" for someone more
inclined toward the technical/engineering end of things. (For someone
interested in systems programming, "Unix internals" are magic words
whose power is awesome to behold; you're not likely to pick that up at
home on your PC, however.)
Yes, OOP is a "hot topic" these days, and some significant fraction of
the help-wanted ads say C++ rather than C these days. Since 80% of
programming is maintaining old code, and 80% of old code is not in
C++, I find it hard to recommend to someone starting out, however.
Hope this helps. Others are likely to disagree with me; that's fine
too!
|
306.5 | | BLOCKP::neth | Craig Neth | Thu Apr 04 1991 10:33 | 11 |
|
One other idea: Electronic Data Systems (EDS) *prefers* to hire
non-CS graduates for their entry-level programming jobs. They have
extensive training programs, and they would rather teach you all
the concepts their way rather than have you 'un-learn' habits
you picked up in school. Don't know if they have much presence here
on the East coast - they are *very* big in the Midwest and Southwest.
What I don't know is if they have a general College Degree requirement.
|
306.6 | engineering = responsibility, not formality | LENO::GRIER | mjg's holistic computing agency | Thu Apr 04 1991 15:24 | 41 |
|
I don't necessarily see value in formal training - I've met a lot of
people with MSes in C.S. and it didn't mean squat towards being a good
engineer.
For doing research, formal training is advisable and/or necessary.
For engineering (which combines both the science of computing and
the art of good design, as all engineering disciplines do,) it can be
useful but does not in and of itself make for a good engineer.
Understanding the current technology and ideas and being able to
skillfully apply them in responsible ways makes for an engineer.
Consider a civil engineer building a bridge. They're personally
responsible for their work and if people are harmed due to bad design
on their part. While its doubtful that it'll become commonplace for
engineers to be brought to legal trial for misdesigns (but I believe it
has happened,) to be an engineer means assuming some personal direct
responsibility for the work you do.
This is true of the car mechanic also. If they don't reconnect some
vital hose and your car blows up maiming you, they're liable for their
actions. This is why it's becoming more important for mechanics to be
properly trained and licensed, not because of some artificial needs,
but because of the liability and responsibility upon them.
I learned to program long before I had any formal training.
However, the formal training I've had has helped fill out my technical
knowledge of the science, and force me into some areas where the
breadth was valuable and I probably wouldn't have ventured without the
needs.
I guess I don't have a "yes, teach yourself programming!" or "no,
you have to learn it formally" answer, but rather just some advice to
realize the responsibility you take on yourself by writing programs
which people depend upon for their livelihood. Some of those
self-taught backyard mechanics probably were the best damned mechanics
we'll ever see, far better than someone who goes through the rote and
gets a piece of paper saying their qualified. BUT they had the ability
and took on the responsibility themselves.
-mjg
|
306.7 | my two cents | SMAUG::ABBASI | | Sun Apr 07 1991 05:19 | 36 |
| ref .0
the equation is really simple:
you can learn coding at home, no doubt about it, but one still need
a nice looking peice of paper to say that they 'Really' can programm.
I knew a brilliant software engineer, Who can design/develop software
better than 10 Phd in computer science with compiler thesis , and
he only has a high school.
application Software is not a 'Hard' science, in the sense of
Math, Physics, EE, ME , Med, etc (Ok, now someone will screem at me), what I
mean is this, if you have a talent for application programming,
you can become a good programmer without much formal training.
but in say MATH, or Physics, or 'Hard' Engineering degrees,you really need
formall training, since the concepts are harder to aquire and theories
are more advanced, and you'll learn faster if it were explained to you,
plus you need access to equipemnts etc. in programming , the only LAB
one needs to learn it, is a terminal, printer, and a manual (and a good
debugger!)
even with more advanced programming concepts such as Objects, Threads,
inheretance, exceptions , strong-typing, etc.. I really believe one could
learn all that by oneself without too much difficulty. in programming
practice is best teacher.
offcourse a programming language is just a tool, one still needs to
learn the algorithms itself, and that where the 'real' science comes
into the field computer science.
in the end , you still need some kind of certificate, so that to
convince employer that you know the stuff, but by all means go and
learn programming at home.
/naser
|
306.8 | | TLE::BRETT | | Sun Apr 07 1991 13:41 | 15 |
| Its these brilliant home-taught types who right superbly tuned
bubble-sorts, rather than just finding a quicksort somewhere
and calling it.
The computer programming of the 90's is going to be based on "reliable
and swiftly implemented (which implies use of lots of prewritten stuff)
-or- your company dies" and companies are going to be looking for
people with understanding and experience in s/w engineering, not
writing bubble sorts.
The former is going to require either an unusual knack for
finding the right books, or lots of luck - the later is the
much more likely consequence of a home-grown education.
/Bevin
|
306.9 | | PASTIS::MONAHAN | humanity is a trojan horse | Mon Apr 08 1991 10:29 | 19 |
| Software engineering has gone the same way as most engineering
disciplines (and the word "discipline" should give you a clue).
There were the days when you could take a car engine, string and
sheets of plywood, and make a plane. Now, for most plane designers,
there are detailed regulations in 30 countries with which they must
comply. There are the few exceptions who get told things like
"We need something to do 'x' in such-and-such a military
situation, and we don't care if you call it an aircraft", and even
fewer who invent something like the hovercraft and make it a commercial
success. Is he a hovercraft inventor, smart bomb designer, or does he
want to organise seating placement in a 747 (bearing in mind the
smoking regulations)?
I don't want to sound pessimistic, but to be a success he either
has to absorb a *lot* of standard knowlege - most of which is knowing
where to get information when you need it, or he needs an original
idea. A company employing him will expect some evidence of one or the
other.
|
306.10 | | ULTRA::PROBINSON | Just causing trouble... | Mon Apr 08 1991 12:40 | 44 |
| I wasn't going to say anything more, but after reading .8, ...
> Its these brilliant home-taught types who right superbly tuned
> bubble-sorts, rather than just finding a quicksort somewhere
> and calling it.
I don't know where you got your low opinion of "brilliant home-taught
types" but anyone with half a brain and a decent data structures text
will pick an appropriate sort algorithm from the half-dozen or so in
the book and implement it. "Finding a quicksort somewhere" may work
for you, on your large system surrounded by huge software libraries,
but you should realize that you live a privileged life. Huge
libraries are rare in the PC world, where most programming happens.
There, people who quickly write superbly tuned code are valued, not
denigrated.
> companies are going to be looking for
> people with understanding and experience in s/w engineering, not
> writing bubble sorts.
>
> The former is going to require either an unusual knack for
> finding the right books, or lots of luck - the later is the
> much more likely consequence of a home-grown education.
No "unusual knack" is required. Try cruising a university bookstore
at the beginning of a semester; you will find a set of texts to choose
from, pre-selected by the professors who supposedly know what they're
teaching (automata/compilers, discrete math, architecture, whatever).
It is a rare undergraduate program indeed which even *claims* to teach
"software engineering"; if companies look only for graduates with
"understanding and experience" then they will be sorely disappointed.
Let me try to return to the *point* here. The question is, how to
acquire sufficient training to get a programming job? An
*entry-level* job, I should add, although that ought to be blatantly
obvious. The question is *not* how to acquire vast expertise in
software engineering without formal education or work experience.
If you expect an entry-level programmer to have that kind of
background, you will never be able to hire one; anyone meeting your
expectations will be over-qualified for the actual job.
--paulr
|
306.11 | Go For It! | WHOS01::BOWERS | Dave Bowers @WHO | Fri Apr 26 1991 15:41 | 10 |
| Software engineering may be turning into a serious formal discipline,
but... There's this guy I know... High school education; self-taught
DOS hacker. He re-sells Epson clones along with a small business
package written in Clipper that he customizes for each customer. Also
sells Novell LAN stuff. Works out of his garage. Drives a new
Mercedes. Takes 3-week vacations in Europe, the Orient, etc...
Nuff said?
-dave
|
306.12 | If money's the point, there's bigger fish than software | LENO::GRIER | mjg's holistic computing agency | Fri May 03 1991 14:21 | 8 |
| Re: .11:
You can sell drugs on the street corner with a similar amount of
education. Does that make it any more professional? And you make even
more money and can take better vacations.
-mjg
|
306.13 | Well, excuuuuuse me! | WHOS01::BOWERS | Dave Bowers @WHO | Mon May 06 1991 10:54 | 2 |
| I thought the reason the guy wanted to get into programming was to earn
a living.
|
306.14 | Sorry! No offense intended! | LENO::GRIER | mjg's holistic computing agency | Wed May 08 1991 21:17 | 16 |
| Re: .13:
Sorry, I was feeling a bit short-winded when I wrote that, but my
point still stands. If you're just interested in hacking about, that's
great! If you're just interested in making money, there's probably many
better ways to earn your living which reap better benefits.
If you're interested in being a good programmer and/or engineer,
there's a lot to learn. While it's still in its adolescence, the
science is mature enough to deserve some more serious study than
reading through the Turbo Pascal or Turbo C++ books and hacking away.
Want to go visit a self-taught doctor? I thought not...
-mjg
|
306.15 | | ULTRA::PROBINSON | Just causing trouble... | Thu May 09 1991 12:27 | 51 |
| re .14,
> If you're just interested in making money, there's probably many
> better ways to earn your living which reap better benefits.
Few people are "just" interested in making money. Most people would
prefer to make money doing something that interests them. Furthermore,
I think programming would be appealing as a career because you can (if
you need to/want to) get into it with comparatively little training;
with experience (and maybe more training) it is not hard to turn that
into a decent middle-class income. After a mere ten years in the
business, I make 90% of what my father (a chemical engineer) did
before he retired a few years ago.
> While it's still in its adolescence, the
> science is mature enough to deserve some more serious study than
> reading through the Turbo Pascal or Turbo C++ books and hacking away.
Surely I agree with you, and surely I suggested "more serious study"
than that in earlier replies to this note. Please be more careful how
you characterize what other people have said.
> Want to go visit a self-taught doctor? I thought not...
Does every engineer in your group have a Ph.D.? I thought not...
While correctly predicting my gut reaction to a self-taught doctor, I
fail to see the connection with programming. No program I am likely
to work on will kill someone, or even make them seriously ill. It is
far easier to patch a program (which patch can be tested before it is
put into use) than to patch up a human who has been in an accident
(for which the doctor gets approximately one chance, with no testing).
Any "bug" in the doctor's work is generally considered actionable,
anywhere from a malpractice suit to de-licensing to criminal
proceedings. Programmers are _never_ held to that high a standard.*
It takes a time investment roughly equivalent to a math or CS Ph.D. to
become a doctor in private practice (says the husband of a medical
student). I dare say there are very few engineers with that amount of
formal training. Programming (or even engineering) and doctoring are
just not comparable in this way.
* Granted there are programs which *must* be bug-free, because errors
in them could kill people. In Richard Feynman's autobiography, he
describes his part in the Challenger investigation, including a
description of what changes to the software in the Space Shuttle go
through before they're ever used. Not very many software projects
will invest that degree of time and energy to insure the correctness
of a modification, and it is unlikely that any individual programmer
would be sued or convicted if a bug made it through and killed someone.
|
306.16 | | TLE::BRETT | | Thu May 09 1991 14:26 | 33 |
| > No program I am likely
> to work on will kill someone, or even make them seriously ill.
Okay, so you don't work on
operating systems
security systems
compilers
linkers
spread sheets
runtime libraries
editors [ accidently delete a line of code ]
I fully expect major law suits some time in the next decade or so,
based around
"your operating system corrupted a data base/
security system let terrorists modify my data base/
compiler generated incorrect code/
linker did a bad fixup/
spread sheet incorrectly added up my numbers/
runtime library SIN routine got the wrong answer/
editor incorrectly deleted a line of code...
so my BOEING 747 crashed into downtown New York City,
killing 2,000 people".
And I, for one, don't fancy being asked "and did you use the best known
s/w engineering technology" by a prosecution lawyer.
/Bevin
|
306.17 | | TOKLAS::feldman | Larix decidua, var. decify | Thu May 09 1991 19:33 | 7 |
| re: .15
I suggest reading the Risks column in Software Engineering Notes. You'd be
surprised how the code you write every day could have serious, far reaching
effects.
Gary
|
306.18 | | ULTRA::PROBINSON | Just causing trouble... | Fri May 10 1991 11:53 | 33 |
| re .16,.17:
Note that I did not say that software I wrote COULD NOT kill anyone; I
said it was NOT LIKELY to. I have indeed worked on compilers,
editors, operating systems, and security systems; nobody I know of has
died yet. I don't expect anyone ever will; but I may be surprised one
day. (And while I don't follow Risks assiduously, I do look it over
every now and then. I view the political and civil rights problems as
more important than the odd damage-causing bug, but that's not to the
point here.)
There's a legal distinction between "forseeable consequential damage"
and "unforseeable consequential damage." While I don't doubt that
someone will TRY to pin liability for some accident on the producer of
a general-purpose compiler, linker, or operating system, I doubt they
will be able to succeed; technically, sure, legally, no. (Again,
pursuing my reasons for doubting that is a rathole which strays a bit
too far from the topic at hand.)
Now, then: is what I am saying about the prerequisites for an
ENTRY-LEVEL PROGRAMMER so hard to understand, or so at variance with
reality? I believe that it is perfectly reasonable for someone to
teach themselves a set of skills more or less equivalent to those
which could be obtained from many college (or other formal) programs.
I don't expect (and nobody should expect) such a person to be capable
of running a safety-critical project as their first job. Such a
person should be expected to take a designated, specific coding task,
and execute it well with some (hopefully but not necessarily small)
degree of supervision. Check out the official job descriptions for
SE-I and SE-II sometime; it doesn't take much. (If you disagree with
the descriptions, that's one thing; we can debate that elsewhere, and
I will be far less obstinate. The point here, however, is what does
it take to fill the job description _as it stands_.)
|
306.19 | what..an educated idiot... | TRLIAN::GORDON | | Fri Jun 07 1991 15:19 | 10 |
| for some it's hard to understand but...
competence is not granted with the formal education process that
one takes to obtain a degree......
and incompetence is not granted to only those who do not follow
a formal education process........
|