Yes, but that's not the only reason. One guy in my .NET/COM/Java interop article couldn't figure out signing his assembly but never bothered to read the docs and kept asking the most basic questions. At work, however, the industrial engineers (except one or two) never read the docs (although they are starting to because of my pushing) and always bug be about things that would be answered plainly in the first line of the first index result.
The whole thing about "teach a man to fish" is very true. If you can't figure something out for yourself (for the most part - knowing when to ask is just as important), you have no business doing whatever you're doing. Programming has become too easy these days and every Tom, Dick, and Sally thinks they can do it based on bad research (if any) of classes / functions / libraries available and IntelliSense.
For that major reason, this is a really big pet peeve of mine. Take DMACC for example: they teach a trade, be it IT, coding, or whatever else they do down there. Most people (not all) are only there because "a career in computers can earn them more money". When finished, they don't understand a single thing. Even at ISU those students who don't take time to learn outside of class won't amount to anything because universities teach you how to learn not how to "do". I saw many examples of this while I was going through.
If you tie this all together, the tech-college graduates tend to get hired because they're cheaper while those that actually understand the underlying technology and more get shafted. Fortunately, IT managers started realising that during the .COM crash.
So, I want to make sure that people that ask me things truly understand instead of spoon-feeding the answers to them and further condemning true knowledge in this field. I may come off as a total a**hole sometimes, but I really don't care - I stand firm in my believe.
For those that don't agree with my opinion, let me ask you a couple things and see what you think:
How many people do you know or have heard that "know" C# or VB.NET but don't understand that the .NET Framework is "universal" for those languages that target the CLR?
How many people do you know or have seen that say they "know" a language on a resume when all they probably did was read a book or article and write some variant of a "hello, world!" application?
Reminiscent of my younger years...
10 LOAD "SCISSORS"
Heath Stewart wrote: The whole thing about "teach a man to fish" is very true. If you can't figure something out for yourself (for the most part - knowing when to ask is just as important), you have no business doing whatever you're doing. Programming has become too easy these days and every Tom, Dick, and Sally thinks they can do it based on bad research (if any) of classes / functions / libraries available and IntelliSense.
Yep, yep, yep.
Heath Stewart wrote: because universities teach you how to learn not how to "do".
I find the same thing wrong with the majority of the (wannabe) developers they really don’t know how to search up for example code, method details and so on.
I guess this is also the number one cause of developer’s finally loosing interest in programming with passion and start copy-pasting and turning to help from external sources, sort of making it a drag.
I believe it’s not entirely the developers fault, may be they have never be told or taught to do so. I am in the process of writing up an article on the lines of ‘how to find what you want using the web and MSDN’.
I my self discovered the value of books and articles online accidentally and have never looked back since then. Just using free sources I was able to learn ColdFusion and introduced it in Pakistan along with a few other developers back in 2000 and now I am concentrating on .NET based software development and software architecture.
The architecture center at MSDN is great initiative by Microsoft.
Visit it online at: http:// msdn.microsoft.com/architecture
However, being of a conservative mind, I put blame where blame is due. If code monkeys don't know as much as they should, there's no one to blame but themselves. I started coding when I was 8 on a C64. Samples helped, but I always made sure I looked-up information about what I was doing instead of just typing the same commands, functions, etc. Gopher was a pain in the butt to find information online from our public schools and library, but the advent of the Web made it easier after geeks jumped on board (and harder when companies started commercializing it). I knew much more than the university taught me and I learned a lot while I was there (not part of class, just during that time on my own). That was all self-taught, which isn't hard and it's free! (sans material expenses)
Today, the Internet (not just the Web) is a vast collection of knowledge and even off-line systems are much easier to use. HTML Help is an excellent medium, and Help2 is even better (I'd still like to know why MS is giving up on it).
Looking at sample code and asking questions of the community is a good thing. I wish I had some of these forums when I was younger. But there is a time to do it. Asking a question like "what does method XZY() do?" is a dumb question - read the docs. Or copying and pasting code, as you said, and trying to figure out why it doesn't work is also dumb. You should understand at least a little bit about the code before using it.
In these cases, it is obvious there is no one else to blame. The resources are there and - in most cases - free.
About education: if people pick these two-year colleges that teach a trade and don't educate themselves to a greater extent, that is their fault. They paid for what they got. In the case of 4+ colleges and universities, such places teach you to think and do research - not how to do. If you don't understand that and think that books and no-experience professors (usually) are going to teach you anything real - that is their fault. They also paid for what they got.
Basically, wannabes have no one to blame but themselves. Do they expect that someone will hold them at gun point and force to learn? They must take what they can and educate themselves more. Even just using IntelliSense without hitting F1 to know what the method / property really does is lazy and unintelligent. No one will do it for them - they must do it themselves.
So, the buck stops with them. Give credit where credit is due, and lay blame on whom is at fault.
I respect your thoughts and your frustration against the wannabes. I think its not wrong putting blame where it is deserved yet I strongly believe that a little effort can change at least a minority if not all the genuine code monkeys (a really amusing term you have coined, hehe).
And you are right on point when you say that requiring external help is OK but only in conditions that the developer him self has toiled to tackle the problem. I guess developers are becoming more and more like this and that’s a sure sign of progression.
Another point as you raised was education. I find lots of people getting education and even fastidious GPA's but with negligible or no practical experience what so ever (which as you mentioned if they could have had with the right attitude). These people only believe in the power of the book and ignore all else and the result is that they might score well on paper but are worthless developers in my eyes.
I guess development is an art as well as science and requires tons of practice, being a computer science student problem solving is my first priority but to implement solutions to those problems is important too.
I just wanted to add a tip that I have been giving to my fellow developers and students for years.
Get your hands dirty with code, practice, develop something,apply the concepts...
Well docs are good to get the concepts but I guess the 'compiler is the biggest teacher' and I strongly believe that this is the reason that I am confident of my skills and tend not to forget what I have learnt with time. The analogy I present here is quite true ‘If docs are a life saver then practical work (planning, coding) is life’.
I guess a balanced approach towards learning through the docs and the compiler is the best solution forward.
I would like to read what you have to say on this. As I understand you are a experienced software architect and for an aspiring developer like me; a precious source of advice.
Having recently asked to help a student debug and analyze a final project for college, I can really see your point. The thing is, most people don't really take the time to look up for answers before asking for help and that really exasperates me. I think one of the main reason for this is that in college, they are not really taught how to look for answers.
In the same example above, I reached a particular error in the app, highlighted the error, and pressed F1, and hey, presto, the documentation of the problem, along with the solution came up. The students answer? I didn't know you could do that ?!?! How did she frikkin' survive to her final year ??!!
I'm sorry if this sounds so much like a rant, , but people who don't look for answers themselves before asking for help really pisses me off.
We've had two graphic designers work with the company despite my prior work I've showed them, mostly because they want me working on architecting the app and its features, and actually writing them. Both graphic designers returned such crap that I ended up doing it anyway. The problem? They didn't know Photoshop very well. One guy did a horrible job removing a background because he didn't know about the extractor. One guy didn't even know how to do a drop shadow (either the hard way or the easy way)!
I whole-heartily agree with schools not teaching students to research, and I also see another problem: lack of exploration! I may not be a graphic designer, but I know Photoshop well because I explored its features. I learned practically every application that way (sans MS Money: since that manages my $$$, I wanted to be sure! ). I may not know for what a pivot table is useful, but I sure know how to make them!
People around the office are the same way. It took me over a year to get them to check the docs first, mostly by coming off as a bit of an a$$. I spend a great deal of time writing good comments for our code and generating help and no one reads it and always asks questions instead.