It's high-pay, high-demmand and low supply.
There are a lot of people who want to work in the field, and not a lot who are particularly good at it. If your problems are trivial and your budget is large, you can find plenty of warm bodies to sling Java for you and they'll probably manage something close enough to what you need eventually. If you're doing something hard or can't afford the cost of making your developers work in a straightjacket, it's much harder to find someone who can do the job. Programming is a great career if you want to eat, breath and dream code, because if you're good competition is slim. It is a bad career if you just want to trade a third of your day 5 days a week for decent money. People who talk about programming on the Internet make it sound like it's great for everyone, because people who want to spend their time talking about programming on the Internet are usually the former.
This is so very true. If you try it and find you have the knack, it can give you a good life (it has for me). If you try it and find you don't have the knack, please abandon it and find something else. if you're good competition is slim
I've always been a C guy, but I did dabble with Turbo Pascal. Back in the days before gcc, C compilers were only available on Unix machines (well, there was a MS C compiler for the PC, but it was shit back then), so Turbo Pascal was a freakin' godsend for low-budget PC developers. That initial compiler was amazballs - a full-featured (mostly) Pascal compiler, linker, and editor - and they didn't even fill up one 360K floppy for all that magic. All that changed pretty fast, but Borland deserved 100% of their early success.
What, like TPascal wasn't a problem? Granted - the BASIC was contemporary. Prolly '81, '82. TPascal was in Windows 95 if I'm not mistaken. Any school that actually wanted you to learn programming had long since switched to Cplusplus... much like my program did, right after I transferred out of it. ...into another program that required us to run composite matrix transforms on the DEC Alpha in the basement, which involved compiling mutherfucking fortran in 1998. That peaced me out of programming pretty effectively.
By the time Windows came around, Turbo Pascal was already well ruined by bloat, unfortunately.
I was using it back when DOS 3.1 was king. Yeah I'm old as dirt.
Donald Knuth, from the April 1996 Dr. Dobbs (Dr. Dobbs used to be worth reading)DDJ: Is the profile of a programmer (which we were discussing earlier) one of an individual who needs this sort of control?
DK: That's an interesting concept, the need for power! I've always thought of it more in other terms, that the psychological profiling is mostly the ability to shift levels of abstraction, from low level to high level. To see something in the small and to see something in the large.
I'd say it's a good indicator if you enjoy it enough that you work on projects because you want to, not because you have to. If you like programming that much, you will get good at it eventually. The process will be arduous, but your motivation will carry you onward.
I'm not really sure - for some people programming just seems to come easy, and I'm one of those people. When I was entering University (1982), I had no idea what I wanted to do, and had never programmed anything. Enrolled as a general "Engineering" student, thinking 'maybe aerospace engr?'. We had to learn C as an introductory ENGR class, and it just clicked with me. I could see that most of the other students were really struggling but it all made sense to me; I helped a lot of other students through that class, because it just seemed easy to me. Switched majors that semester and never looked back.
That sounds like a love story. I had done a free C cource at UCC a couple years ago, similar story. I was helping anyone that I wasn't too shy to approach. It was a fairly short, pretty basic course but it was the first step to hopefully a long future of programming.
For a long time I had this printed out and hanging in my cubicle (it's from "The Mythical Man-Month", which every programmer must read) :