Re: programming job market in bay area in US
- From: rem642b@xxxxxxxxx (Robert Maas, see http://tinyurl.com/uh3t)
- Date: Fri, 29 Jul 2005 06:02:49 -0700
> From: CTips <c...@xxxxxxxxxxx>
> if I told someone, write a translator from Swahili to
> Esparanto, he'd go off and *try and do it*.
If I were hiring somebody, I'd rather the person decline tasks for
which the person is grossly unqualified. For example, I have no
knowledge of Esperanto (except I spell it correctly) hardly at all,
certainly not enough to be able to debug my translator by knowing what
is correct and what is not correct Esperanto output. But if you want
Esperanto translated to English, I'd be glad to give that a try. I can
use BabelFish to give a crude translation, so I at least have some idea
what the Esperanto is trying to say, and I check that against the
context of the conversation just to make sure I got the meaning right,
then I make my program produce nice clean English with the same
meaning.
> We tend to hand people large assignments for which they may have very
> little of the background, and expect them to get things done with
> little oversight, ...
I really really really hope you're not so foolish as to assign
somebody, who has no prior knowledge whatsoever of a particular foreign
language, to somehow write a program that correctly translatest *to*
that lanaguge, and expect to get any decent result from that mistake.
> 2 specialized knowledge related to the field the company is in. In our
> case, this involves systems programming
There was a thread about that term a few months ago. That term can mean
any of a wide range of different things, from simply writing utility
tools such as grep, to writing operating systems, to writing device
drivers, etc. I have experience fixing bugs in a COBOL compiler that
was written in assembly language. I have experience writing interrupt
handlers for a standalone micro-processor computer that didn't have any
operating except the interrupt handlers that I wrote myself. Once I
configured a new device handler for some big operating system, by
copying a general template for device drivers on that kind of system (I
think it was RSX-11M) and then reading the technical documentation for
the particular device to see where the status and control bytes were in
memory-mapped I/O space and what each bit or group of bits meant and
what the state changes were for that device, and then I hand-coded
assembly language to fill in the code for INIT and start-read and
start-write and handle-read-interrupt and handle-write-interrupt etc.,
something like that anyway, it was a long time ago and I don't remember
which device it was much less the details of the routines I had to
hand-code in the template. I've written a large number of low-level
utilties to aid programming etc., such as a program to study the parse
tree of a large program and compile a table of which functions call
which other functions and reference which global variables, and detect
any mis-matched stuff such as wrong number of arguments or undefined
variables etc. I've also written some really essential utilties,
although nobody thought they were essential until they tried them and
got spoiled. For example I wrote a nice text formatter a few years
before Knuth came out with TeX, and in some ways it is better than TeX
because you express your math as nested expressions instead of as
explicit superscript/subscript motions, and my program figures out all
the relative placement automatically. Some people used my program to
produce much nicer formatted mathematics and C.S. documents than
anything anyone was doing at the time. I also wrote packet
communication protocol for three micro-processors (6502, 8080, 68000)
and two classes of mainframes (PDP-10 (Lisp and Algol) and Unix (C)).
Would any of that qualify as "systems programming"?
> extensive knowledge in one area other than systems programming
I have extensive knowledge/experience in lots of different areas, too
many to list here. Try a game of reading some context about some of my
various accomplishments and guessing the missing word:
http://shell.rawbw.com/~rem/cgi-bin/topscript.cgi
Select the radio button for "Random words from file"
then click "Start the demo ..."
Press back button on browser each time you get one example correct and
want to try another.
> - prior projects completed, with weight given to projects done solo or
> as part of a very small team
Most of my projects have been solo by myself or solo under a supervisor
who brainstormed with me, but one project had a total of appx. ten
employees: myself and two other programmers, one programmer/supervisor,
one academic advisor, two or three curriculum authors, one chairman of
the whole department who checked in once in a while but didn't get
involved in anything except hosting group meetings about once a month
and asking us how the project is going about once a week when he'd see
us in the halls, and occasionally one or two other people working on
short-term tasks. I had another similar-sized open-source project
consisting of about five programmers each implementing the packet
protocol on a different kind of machizne, plus one non-programmer (Dave
Caulkins) who hosted our protocol-design meetings and three experts in
the field (Peter Deutsch, Mike Wilber, and Doug Bourne) who helped us
design the protocol then disappeared. The experts wrote the first
drafts of the documentation, then I wrote all the rest of the
documentation including tutorials and test data and ideas for usage
etc., and in the course of my development and documentation and testing
I discovered what I called the "Last ACK dilemma" which I see is now an
officially recognized problem but I thought of it first and documented
it first about 25 years ago and came up with the only two decent
solutions.
> - we want to test algorithmic knowledge, so we'll give some problems
> and expect O(N), O(NlogN) and O(N^2) solutions to the problem.
Not to mention solutions whose average behaviour with random data is
n*log(n) but whose worst case is n^2, like that sucker sorting
algorithm in the C library, that one where you pick some element
and partition all the other elements as to less than or greater than
the one you picked, then recurse on the two partitions, where I can
trivially create worst-case starting data regardless of whether you use
a fixed element or medium of three elements or any other fixed
algorithm you want for picking the pivot element. Then 90% of the
hash-resolution methods listed in the textbook are crap, like the one
where you follow this complicated path instead of just stepping
linearily, but every resolution path through any given bucket then
follows exactly the same sequence afterward, so the collision pileups
(as in fog-highway auto crashes) are just as bad as with linear
chaining except it's impossible to diagnose it by looking at the
printout of busy vs. empty buckets because the traffic pileups aren't
in consecutive locations so it looks like there's nothing wrong.
> A recent one was (for someone who had done a
> project on TCP/IP) how would you identify the bottleneck in the path
> between two machines?
Do you mean predict ahead of time based on a priori data about the
different machines and the path and the expected data rate, or do you
mean recognize from realtime data when it's actually happening by
noticing that a certain class of buffers is getting horrendously full,
or do you mean anticipate the buffer-full condition so you can write a
supervisor program which will automatically detect the bad condition
and automatically alert somebody to come notice it and perform some
administrative task to relieve the situation such as purchasing extra
bandwidth on the spot market (or even better, have the daemon
automatically contact eBay to purchase the extra bandwidth when needed,
providing the spot price isn't too high), or do you mean given that
everyone knows there's a bottleneck between 2PM and 5PM every TuWTh,
diagnose exactly what detail is causing it and how best to devise a
strategy for reconfiguring resources so next week it won't happen? (I'm
your middlemanager, who inquires what you really want solved, so I can
then pass the word to the actual netwhiz so he works on the problem you
want solved instead of some other problem he finds more interesting so
he's quite willing to mis-interpret your original posting to be that
instead of what you really want.)
.
- Prev by Date: Re: C++ different learning styles
- Next by Date: Re: programming job market in bay area in US
- Previous by thread: Re: programming job market in bay area in US
- Next by thread: Re: programming job market in bay area in US
- Index(es):