-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
M Harris wrote:
> On Tuesday 14 November 2006 11:37, Randall R Schulz wrote:
>> I cannot reconcile what you wrote here with what your wrote in the
>> previous post: That programs are text and that by writing a program
>> you've created patentable mechanisms.
>
> Good point... I need to clarify just a bit... the world view has
> changed
> since you and I were in school (some of the other posts were trying to get at
> this) and consequently the {MATH - PROGRAMMER} connection is not as distinct
> today (if at all) like it was 15 or 20 years ago.
>
> Today there are quite literally thousands of "programmers" that do not
> understand mathematics concepts 101 and yet they write profound software text
> files. These folks are *not* being educated in mathematics as a theoretical
> science; rather, they are being trained with the skills necessary to move
> data fields from one business app to the other. Yes, some degree of logic and
> at least an ability to count are requirements... but many "programmers" today
> are being taught differently than you and I were taught; in my opinion they
> are being *trained* instead of being *educated* (and there is a profound
> difference).
Well thankfully for most software projects we've moved way beyond the
point where mathematics are related.
While being able to think in logical terms, which is highly related to
mathematics indeed, today's issues are much more about
- - software architecture and design
- using patterns instead of NiH
- MDA is an illusion
- knowing UML is best at a drawing board and not for generating code
- learning approaches like Domain Driven Design or agile methods and
keep what you think is appropriate and matches your organization/
project/coworkers (and not apply it as-is)
- - mastering relational databases
- and that includes ORMs and their illusion of taking all
complexity away from you (which they don't)
- efficient ways of working with transactions, indexes and statements
- - clustering
- distributed caching and synchronization
- - remoting
- optimistic locking on database content
- handling the lack of distributed object identity
- - knowing and using appropriate technologies and standards
- - at least a basic understanding of the underlying concepts
- operating systems
- TCP/IP networking
- multithreading/process communication and locking, etc...
Usually most developers already fail at understanding the very basics.
Frankly, most don't even *really* understand what OO is all about and
how to apply it properly wrt the possibilities of the various languages
(e.g. for Java: use interfaces a lot; composition over inheritance; high
cohesion, low coupling; ...)
(note that I'm saying that in the context of e.g. Java, C# or C++
projects - if you just use C or Perl, understanding OO doesn't really
matter that much)
> In my last couple of years at IBM I was beginning to notice this effect;
> 2002 timeframe. I was frankly appalled at the lack of math and language
> skills of new-hires coming into the department. Oh they could copy and tweak
> a java script with the best of them, and manipulate a "Lotus Notes Database".
> However, they had trouble communicating clearly in writing, and were
> seriously deficient in mathematics skills (and I don't mean arithmetic). And
Communication, in a technical sense, is totally understated in IT.
Knowing software patterns, being able to structure your thoughts,
drawings (UML or whatever), documents, etc...
That's just extremely important as soon as you work in a team (which is
almost always the case), but almost all developers fail or lack wrt that.
Planning is similarly important and not understood enough.
But I guess it just has to take you a few years to be able to
realistically evaluate and plan task efforts. It's most probably a
matter of experience and cannot be taught much.
> forget completely about trying to code a dual circular linked list of
> pointers to template class objects and have very many of them be able to
> support it... they just didn't get it. I remember one time trying to get a
I don't know what kind of software you are working on, but... thankfully
for most projects you really don't need to think about stuff like that.
If you use Java, just use what's in the JDK.
If you use C++, just use what's in the STL or Boost.
While I agree that being able to write such stuff properly is important
because if you don't get _that_ right, well... ;)
But I would dump any developer off of my project if he writes something
basic like that that already exists in a library (especially the C++ STL
or the Java JDK).
The NiH antipattern (not invented here) is a terrible thing.
> particular department to use my server concept (Linux RH at the time) for
> support and mission critical deployment.... and I was told they just couldn't
> because they did not posses the required Unix skills! (and we all know what
> they meant by that-- they only had M$ windoze development environment skills
> or less) Oh don't get me wrong... we had top notch comp sci grads that DID
Sure looks like there is still a lot to gain on the IT job market when
you have high Linux and/or Un*x skills.
> have the knowledge... but many did not. The point being that in my view ALL
> programmers should have the background---period--- however, that has nothing
> to do with whether software text symbols (as text, ascii ebcidic-whatever)
> should be considered part of the logic mechanism (patentable), or should be
> considered (as my viewpoint holds) only a copyright text source. Most
> programmers today are software text authors (or redactors) and not only do
> not have the sufficient background (my opinion) but could also care less...
> as long as they can pound out the text and their boss is happy with the
> delivery dates.
While I somewhat disagree on the mathematics background, I totally agree
with the conclusion.
Guess we have to live with the fact that 50% of all software developers
just plain suck, 40% are OK, 9% are good and 1% are highly skilled
experts. But that's just drawn from my personal experience (and maybe
somewhat exaggerated).
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\ <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
_\_v The more things change, the more they stay insane.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFFWk6Rr3NMWliFcXcRAll+AKCKeK0rC71lLbceD03k/ZvVp9wdlACgnh1P
pTXlUnThk+H/3F0+pRLDE5Y=
=GxXS
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]