Subj : Re: Software Job Market Myths To : comp.programming,comp.software-eng From : rem642b Date : Thu Aug 11 2005 09:04 am > From: Jussi Jumppanen > Unemployed engineers are usually out of work because the buyer > can get (thinks they can get) the same skill at the lower price. > Why would I employ someone for 40,000 -> 60,000 dollars when I > believe I can get the same thing done by a graduate or a code > in India for half the price. Where'd you ever get the silly idea that somebody here in the USA who is good at developing software would demand $40-60k and refuse to work for less even during a recession such as we've had for the past 4.5 years? > But the reality is most managers really have very little in > the way of an idea when it comes to software development, but > they do have a miss-conception that writing software is easy. Actually writing software *is* easy if approached the right way. The problem is that most managers haven't the foggiest idea of how to write software the easy way, so indeed it would be difficult for them if they ever tried it themselves. I can teach just about anyone how to write software the easy way, if they have a few hours to spend with me and will pay attention and actually type stuff at the keyboard during that time. Note that I don't claim a beginner who has spent a few hours with me can design really large complicated software without help from somebody more expert. But with my start at programming, somebody can learn as they go along, starting at a junior-programming level where I or some other supervisor specify exactly what simple function to write and they do it and turn in fully tested&working code. > it is one of the few industries you can actually get away with > selling a defective product. It's unlikely we'll ever teach ordinary professional managers how to program, because they'd rather have somebody else get involved with that. But it's really important that we enlighten managers about how to make sure software is unit-tested at all levels so it can be clearly demonstrated as non-defective before the manager passes it from the programming department to the sales department. > What ever the language, whatever the framework, whatever the > operating system it still comes down to a CPU architecture > that dates back sixties and you still code with 'if', 'while' > and 'for' constructs. I hope you don't mind if I re-phrase that to make a bit less C-centric: We code with sequences of code units, decisions which of alternative code units to do, and loops whereby the same code unit is repeated many times for a varying parameter. We build those three types of code-unit combinations into larger code units, either lexically or procedurally. (I.e. nesting a low-level block of code directly inside a high-level block of code, or encapsulating a low-level block of code inside a procedure and then calling the low-level procedure from a high-level block of code.) > Why would you pay for something that you can get for free? That rhetorical question is a half-truth. If you want some generic software that *you* figure out *yourself* how to customize for your partiular application, you can get it for free. But if you need somebody else to spend his/her time performing that customization, either by simply training you how to use the free software for your particular appliation, or by writing some simple scripts and/or macros that you couldn't figure out for yourself from your reading of the f---ing 'man' pages that came with your free Linux, or by writing a custom application on top of an API that does all the major ports automatically but which requires that additional code to put the pieces together for your particular application, it's going to be somewhat difficult to obtain those custom services for free. In come cases it might be a matter of information retrieval, i.e. hiring somebody to *find* a suitable program that does almost exactly what you want. For example, if you want to sort a list of records per various criterion, then either a RDBMS or Lisp could do the job best depending on what kinds of sort-keys and comparator-functions you need, but the average manager might not be aware of both choices and when to use each. .