|
I second you !
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
Indeed Leppie. Couldn't agree more.
|
|
|
|
|
I agree with you completely Leppie. Everyone should have a mentor. I myself never had one, and had to learn from my mistakes the hard way... Lots of buggy code
But, I have found that going back over the years, and studying ones own code a year or two after you initially wrote it, one can learn a lot from the mistakes you made back then. How does the saying go...
"Hindsight is always 20/20"
Never more true than in software development
|
|
|
|
|
leppie wrote: You can only learn from mistakes
... but it is much less painful to learn from mistakes of others
|
|
|
|
|
I 've been taken a formal training for a project, but most part of time that 's not good enoght. I realiced that is necesary a strong hability to investigate.
I am agree 100% sometimes is better self taught than take a formal training but all depends the project's size and the complex.
|
|
|
|
|
...in my opinion, would be ideal. I think, in general, it is always good to have the formal background, which should give you at the very least, an additional viewpoint on how things are done. On the other hand, those that are self-taught tend to have the motivation to keep acquiring more and more knowledge / experience to topics of their interest (which they may eventually work with in formal employment). That's not to say that you can't do well with just one, or just the other, but I think it would be in one's interest to at least have some of both.
|
|
|
|
|
The trainer can only introduce the subject matter by explaining it to the trainee. It is upto the trainee to listen, learn-n-digest besides explorating the topic in depth.
There is a vernacular saying here in India which goes like "One can only help deskinning a banana and best feed one. The actual responsibility of chewing, swallowing it or spitting it lies with the person who is consuming the same. "
Vasudevan Deepak Kumar
Personal Homepage Tech Gossips
A pessimist sees only the dark side of the clouds, and mopes; a philosopher sees both sides, and shrugs; an optimist doesn't see the clouds at all - he's walking on them. --Leonard Louis Levinson
|
|
|
|
|
There's a similar, shorter saying here in the west: "You can lead a horse to water but you can't make it drink".
"The pursuit of excellence is less profitable than the pursuit of bigness, but it can be more satisfying."
- David Ogilvy
|
|
|
|
|
if you have to teach yourself how to program, you will come across and solve most of the problems yourself and in future it will be a piece of cake to code
if you have to rely on someone else to teach you then you miss the whole point. no one can teach you how to think like a programmer or how to make good code
|
|
|
|
|
I thought that was "You can lead your boss to data, but you can't make him think."
Bob Emmett
|
|
|
|
|
Bob Emmett wrote: you can't make him think
That is a salient feature of any boss right?
Vasudevan Deepak Kumar
Personal Homepage Tech Gossips
A pessimist sees only the dark side of the clouds, and mopes; a philosopher sees both sides, and shrugs; an optimist doesn't see the clouds at all - he's walking on them. --Leonard Louis Levinson
|
|
|
|
|
Bob Emmett wrote: "You can lead your boss to data, but you can't make him think."
Developer Fantasies
|
|
|
|
|
Right. That makes sense. I'm not sure whether or not you're agreeing or disagreeing with my post, though (I would guess that you're agreeing with the formal education part, since you say that it's up to the trainee to listen -- i.e. listen to professors while in the process of being formally educated).
|
|
|
|
|
I tend to agree. Self taught programmers tend to have a interest in the topic, instead of just an interest in earning a salary, and thus much more likely to explore different technologies, etc. If you add some formal training on top of that interest, you gain some insight into how things can be done quickly, efficiently and correctly.( sometimes )
These programmers tend to be on top of the game, although not the best for routine maintaining of software and boring grunt work. In my experience, they require a challenge most of the time. Simple or straightforward projects are boring.
So, my 0.02c is that self-taught are the best programmers yes, but your formally taught programmer may be the best worker, depending on the project.
|
|
|
|
|
I feel the same way you do.
|
|
|
|
|
I disagree vehemently. Unless you plan on teaching some day I think formal training is a huge waste of time and money, it stalls your potential career and can leave you with a crushing debt and worst of all you're training is largely obsolete before you ever get a foot in the door.
The best programmers are those that have a keen personal interest in it, learn a lot on their own, get a variety of jobs and some real world experience and work their way up, all the while working on their own personal side projects and learning all the latest technology. You not only learn all the practical skills you will rely on 50% of the time that are completely unrelated to programming but you get paid to learn them and if you are attentive and careful and motivated you are making more money, working on more exciting stuff in less time than you could hope for just graduating from some so called institute of higher learning. You simply can't beat that.
Nothing ever teaches quite as well as reality and none learn so well as those that are highly interested to begin with.
So far the poll is bearing my opinion on this surprisingly well.
"The pursuit of excellence is less profitable than the pursuit of bigness, but it can be more satisfying."
- David Ogilvy
|
|
|
|
|
Well, lets just say that not everyone knows exactly where to look and how to approach the field, and has infinite motivation. Formal training is a way to help you get one or more of these two things, so you can look at it further. If what you said was more or less truth, then why would computer science programs exist? Why does university exist? For that, there are a lot of reasons, even more than what I listed.
And for the record, let me reiterate again that I have not said anything against those that are self-taught, just that the best way to become the best, is to have both. You mention that there's the issue of time. Why would that be an issue? It is up to you to do your research and to look for a good school with a good program, so that you don't learn junk, and actually learn something useful. I'll admit that my studies have been rather useful, and have oftentimes brought about new ways of thinking and things that I never would've thought of learning before. If you choose to go somewhere where you don't learn, then you've made a big mistake. In such a case, I would agree that yes, you are just wasting time and money.
|
|
|
|
|
If a person needs formal training to get motivation or learn where to look then they shouldn't be in the field in the first place and should choose something else that interests them enough to learn all about it on their own.
Cyrilix wrote: Why would that be an issue?
Time *and* money. Going the university route you spend years and a lot of money to get to the point where you're barely employable in the real world and have outdated skills and opinions molded into you by professors that generally are riding some hobby horse and don't really give a crap about real world employment and conditions.
Self learning and apprenticing actually pays you, you're ideally suited for a well paying job a few years into it and you're not left with a crushing debt and skills and knowledge that are years out of date.
This is an argument that will rage on forever with no one on either side giving in so it's a bit pointless to debate it but I think it's important for potential university students to have a big think about it. Ideally *not* go directly to university or college from high school but rather take a couple of years to get seasoned in the real world before they make that decision. If they don't they end up being in their 20's or even 30's but really being children still in all the most important areas of life.
"The pursuit of excellence is less profitable than the pursuit of bigness, but it can be more satisfying."
- David Ogilvy
|
|
|
|
|
I find this thread and question very interesting, since I'm a person who has had a little formal training, and then a lot of self-teaching. I also have degrees in other subjects entirely and have actually taught college in the past so I certainly value formal education...
Anyway, the situation I find myself in is this: I know some of the more difficult areas of programming quite well (like multi-threading and real-time systems), but there are other areas where I have huge gaps in my knowledge (DBMSs and html for example). I also lack some very very basic pieces of knowledge like 'how to get VS to do x?' and it's not always possible to find current, up-to-date, answers to my questions. So the end result is that I plan to go back and finish up the CS degree that I started many years ago in order to help fill in the gaps.
Btw, self-taught != cowboy...which some people might tend to think.
BW
|
|
|
|
|
It is neither formal training, nor self teaching that is the real issue with a 'good' programmer. It is conformity to the body of experience that has already been acquired by the community.
Formally trained people tend to conform to what has been learned by the 'thought collective'. Those self-taught, which can be taken to mean randomly taught as someone learning on their own from a standard course can be deemed formally trained, tend not to conform.
This underlies the previous comments about the differences in approach to problem solving.
So I agree with you; as someone with both types of training is more likely to be free-er to think separately from the corpus of prior knowledge and methods, whilst also understanding the relevance and application of the existing methods.
|
|
|
|
|
Correct! I use a number of sub contractors. But in general I use two.
The first is formally trained with a Degree in Computer Science and some further quals (Masters/PHD .. can't remember which) where his central area of study was compiler design. He's a great resource for elegant algorithm design for tricky problems.
The second is completely self taught and I often end up cleaning up after him, BUT, he has a really unique way of looking at things and often comes up with really great alternatives to a solution that I would never have thought of.
I suppose it comes down to that programming is half science, half and art form. Neither is dominant over the other.
The only thing unpredictable about me is just how predictable I'm going to be.
|
|
|
|