Education in theoretical concepts is definitely a problem in general, but I've found it's particularly noticeable in the technology field which has become increasingly commercialized (or commoditized); where once a "sysadmin" was a long-running process, grown from a person with the mindset of "how does this work?" and "let's build cool stuff!", eventually culminating in someone who knew operating systems, networking, and programming inside out (see: "UNIX greybeard" types), nowadays people haul off to a 5 day course in "Advanced System Administration(TM)", write a certificate exam or 15, and call themselves a "sysadmin". There still are people with the "greybeard" mentality -- all of the very best sysadmins I know are of this type, and many know real programming (that is, data structures, algorithms, etc) better than the mass-produced developers our there -- but unfortunately, they're relatively rare, and usually very hard to recruit. You have to have a very interesting project first and foremost -- salary is important, but building new, cool stuff is usually the #1 factor for top-notch generalists. - Pete On 12-02-28 01:51 PM, Owen DeLong wrote:
This problem is not limited to programming.
Education in general has moved from teaching conceptual knowledge re-inforced by practical examples and exercises to teaching methodological and/or procedural knowledge without any effort to convey concepts.
It's much like the difference between teaching a man to buy a fish using cash vs. teaching a man more generalized economic skills and money management.
In the former case, you get a man who can eat fish as long as he still has some cash. In the latter case, you get a man who can keep cash coming in and use it to obtain a varied diet and other things he may want.
Today, the indoctrination mills (hard to call them education centers at this point) churn out people who are good at repeating the same process and solving the same problems over and over.
Unfortunately, when faced with a problem that doesn't look like something from their text book, they either become completely lost or they take the hammer approach (when the only tool you have is a hammer, every problem looks like a nail).
I'm not sure how to solve this. Teaching methodologically is much much faster than teaching conceptually and the endemic lack of patience makes it hard to get people to sit still long enough to learn conceptually.
Owen
On Feb 28, 2012, at 6:03 AM, John Mitchell wrote:
<rant>
I would wholeheartedly agree with this, but I believe its worse than just that. I used to categorize myself as a full developer, now I'm slightly ashamed to be tainted with that brush since there's so many people using the term who don't know the first thing about programming.
It used to be that when you were taught programming, you were taught concepts (when to use a for loop, while loop, Boolean algebra), then you built on the foundations by learning advanced concepts (data structures, how to program concurrently using semaphores etc etc), you would then pick some optional classes to make up for some non programming specific knowledge (networking, linux admin, etc etc).
I now have a lot of friends who work in academia and they are worried by a decline (as am I when trying to hire new talent). Currently the teaching process is one of learning to program like a monkey, monkey see monkey do. People are no longer taught to think for themselves, but instead taught to program in a specific language (PHP, Java, rarely C or C++ any more, C#, or VB) and that is all they know. I don't believe this is a failing with the lecturers but with the fundamental change in attitudes to programming.
One of the tests I give all interviewees is write a very short program in a language they have never ever used before ( personally I recommend http://en.wikipedia.org/wiki/Brainfuck ) since this gives people a chance to show they can program rather than being able to tell me "I know PHP" or "I know C", suprisingly very few newer programmers can make it through, or even try it, because the concept of thinking for themselves is so last year.
</rant>
On 27 February 2012 20:02:13, Brandt, Ralph wrote:
Generalists are hard to come by these days. They are people who learn less and less about more and more till they know nothing about everything. People today are specializing in the left and right halves of the bytes.... They learn more and more about less and less till they know everything about nothing. And BTW, they are worthless unless you have five of them working on a problem because none of them know enough to fix it. Worse, you can replace the word five with fifty and it may be still true.
I know of three of these, all gainfully employed at this time and could each find at least a couple jobs if they wanted. I am one, my son is two and a guy we worked with is the third.
At one time (40 years ago) the mantra in IS was train for expertise, now it is hire for it. Somewhere there has to be a happy medium. I suggest this, find a good coder, not a mediocre who writes shit code but a good one who can think and learn and when you talk about branching out with his skill set he or she lights up. His first thing on site is take the A+ networking course.
No, I do not sell the courses. But I have seen this kind of approach work when nothing else was.
Ralph Brandt Communications Engineer HP Enterprise Services Telephone +1 717.506.0802 FAX +1 717.506.4358 Email Ralph.Brandt@pateam.com 5095 Ritter Rd Mechanicsburg PA 17055
-----Original Message----- From: A. Pishdadi [mailto:apishdadi@gmail.com] Sent: Sunday, February 26, 2012 8:27 PM To: NANOG Subject: Programmers with network engineering skills
Hello All,
i have been looking for quite some time now a descent coder (c,php) who has a descent amount of system admin / netadmin experience. Doesn't necessarily need to be an expert at network engineering but being acclimated in understanding the basic fundamentals of networking. Understanding basic routing concepts, how to diagnose using tcpdump / pcap, understanding subnetting and how bgp works (not necessarily setting up bgp). I've posted job listings on the likes of dice and monster and have not found any good canidates, most of them ASP / Java guys.
If anyone can point me to a site they might recommend for job postings or know of any consulting firms that might provide these services that would be greatly appreciated.