I’ve recently started to consider a career change from teaching to something in the Computer field. I have a friend who is a programmer who really loves his job, and makes great money. My question is this: Being able to navigate around the computer using the various windows, what do I need to do to prepare to take technology classes. I’m a novice, so where should I even start? Are there any “Programming for Dummies” books out there that could give me a head start before deciding if programming is for me? Finally, what programming language should I opt for? The computer specialist at my school said that learning to write in “C” would be my best bet, but I’m not sure how much he actually knows about programming. Any ideas?
As a matter of fact, there are!
“C++ for Dummies”
http://www.amazon.com/exec/obidos/ASIN/0764503898/o/qid=951829812/sr=8-1/104-1564051-1190800
However, lacking a compiler can make it difficult to actually learn to program. I suggest honing your logic problem solving skills and learn about developing algorithms. There are plenty of good books on this, but most are quite expensive. I suggest getting a good logic puzzle book and solve the puzzles BUT ALSO write down the methodology you used to solve it (that is your algorithm).
Best of luck!
Hey there,
If you are a complete novice at programming I suggest you start with a language such as Pascal which will introduce you to the concepts involved without overloading you with the intricacies and complexities of an “industry standard” language such as C++. I don’t know about the US but over here in Britain there are literally thousands of jobs for VB (Visual Basic) developers that pay big bucks. If you discover that none of this is your bag then maybe you’d prefer Web application development. Either way, good luck.
I am a non-programmer, but a network consultant and web designer (part-time both jobs)
Anyhow, one of the guys at my client’s/brother’s company has a civil engineering degree, was a construction project manager for the company and fell into programming as a career through the company.
He has plenty of Dummy’s books that helped him grasp the basics. His main creation was programming a stand alone application using MS Access. This has led him to program small web applications that has spurred him to go somewhat solo and his going rate is arouns $85.00 an hour.
C ++ and Visual Basic are the main tools he uses to program for MS Applications. He also does a lot of internet research…
Wiggum,
Probably. Anything you learn is a good thing, of course, and such a book can give you an idea of whether this is something you will enjoy.
To make a career of it, however, it really helps to have a formal education in computer science or engineering (which involves more hardware). The “programming for dummies” type books can give you a certain level of knowledge, and there are several zillion people around who can program to that extent. But there is a tremendous amount of theory not coverered by such books, which you would get with a degree in the field, and you’d be much more “marketable”, so to speak. “Programming for dummies” sort of gives you a closeup view of the trunk rather than a view of the whole elephant.
As for your question about languages, C is a fine one to start with, or Pascal would be fine also. C, and its derivative languages such as C++ are widely used in the industry. However, in the broader scope, I don’t feel it’s too important which computer languages you know (or for that matter, which APIs, OSs, or whatever). As part of my job for several years, I interviewed new hire candidates for a large computer company - we wanted tech-heads, basically. I frankly didn’t care much if a candidate knew 2 languages, or 20. Spouting a list of languages didn’t impress me too much, but OTOH, demonstrating a solid grasp of language theory would. (Things like being able to explain to me the difference between LALR and LR grammars, for example, will impress me more than telling me you memorized the entire spec for ADA). I wanted to know that people understood the why’s, and the how’s, instead of just regurgitating memorized things. “Gears” are better than specific, memorized knowledge, I think. If you have the gears, you can get whatever specific knowledge you need for a particular task with little effort.
I’ve been a programmer (my 2nd career) since the 70s, and got an MS in it in the 80s. I’d be happy to answer any questions you might have, if I can. It is a good field you’re considering. Although there are vast quantities of ad-hoc type programmers around, people with really solid software design skills are actually in short supply. You’d have no trouble getting a job with such skills, and the pay is very good. I’d encourage you to pursue it if you discover you like it after looking into it on your own.
Hope this helps.
–
peas on earth
Another thing to remember is that there really isn’t “a” job called programmer. There are several different types of programming careers that call for rather different skill sets and a number of computer careers that are not called programming, although they require a basic understanding of how to make a program work.
We discussed this a bit a few months ago, here:
http://boards.straightdope.com/ubb/Forum4/HTML/002668.html
Tom~
Stick with C if you are just beginning. It’s true that you can learn algorithms in any language, but if you learn in C then you have the added advantage of being familiar with the language that the vast majority of people use. I don’t think there is any advantage in learning another language like Pascal. There is no major difference in difficulty between languages – in fact C has a certain elegance that appeals to me and to me seems like the “most straighforward” language, it all boils down to personal preference, but the vast majority of people in the industry like C and C++.
C++ is basically just an extension of C, but that extension is a pretty big one. C++ is an “object oriented” language, the advantages of which will likely not be visible to a beginner. My personal suggestion is to start with just C, and wait to move on to C++ if you think programming is something that you really enjoy and are good at. Everything you learn in C is applicable in C++, C++ just lets you do some things “better” than you can do in plain C.
Erratum, it’s probably just the way I learned at University but I really think there is value in learning Pascal. Sure, once you’ve learned it you’ll never use the actual language again, but, to a beginner, it is, syntactically at least, easier than C…to a novice this is important. To say “learn C because then you can learn C++” is a little bit misleading. I would say, start with any language, once you’ve learned it you will be able to learn any other. This is possibly the only useful thing I learned whilst studying for my Computing Science degree, not how to program in Pascal or C or Java or C++, but how to learn any or all of them.
MadHun, I have no idea why you think C is “syntactically harder” than Pascal. With the few brief brushes I’ve had with Pascal, it was unpleasant. C is very elegant, in my opinion. It was the first language I learned, and it has served me very well.
“To say “learn C because then you can learn C++” is a little bit misleading. I would say, start with any language, once you’ve learned it you will be able to learn any other.”
C and C++ are not different languages, C++ is an extension of C. Much of the syntax and style of C is applicable to C++. To equate the C to C++ transaction to the Pascal to C++ transition is not correct, in my opinion.
“This is possibly the only useful thing I learned whilst studying for my Computing Science degree, not how to program in Pascal or C or Java or C++, but how to learn any or all of them.”
Well, I would have preferred it you had acquired some algorithmic techniques… Seriously, though, the OP presented a very specific question, which was “what language should I learn, to begin preparing myself for a career in the computer software industry, and to give myself a good feel for what it is like”, not “please present a sound basis for a University’s Computer Science program”. For a CompSci program, algorithms are everything. For a beginner, the language and syntax are everything. I don’t think a beginner is helped by learning a dead-end language like Pascal, and then having to learn a new one. It is, in my view, throw-away work, and a de-motivator for beginners. If a beginner, on the other hand, is learning something that will be applicable forever, it is much better. And the arguments for Pascal’s simplicity are completely lost on me, since I don’t find C’s syntax at all confusing (unless you start doing obscure things, like pointers to pointers).
Thanks for all of the info. It gives me a lot to look into and think about. I knew you guys wouldn’t let me down.
Hey WIGGUM,
Get “The Waite Group’s C++ Primer Plus” http://www.amazon.com/exec/obidos/ASIN/1571691626/o/qid=951856684/sr=2-/002-7763913-4907420
Then learn Java.
I’ll get you a great job.
There are far too many Baldwins. The only Baldwin I care for is a piano …
Can anybody direct me to any free on-line courses at all that loosely revolve around computer literacy, programming and most of all computer operations? I seem to recall an on-line VAX operations course that I took for 1/2 credit in junior college back in the mid to late 80’s. It was part of the machine. Maybe now they might be on-line and cost next to nothing. Anyway I plan to enter/re-enter the field ASAP
“What’s right is only half of what’s wrong
and I want a short-haired girl
Who sometimes wears it twice as long”
George Harrison - Old Brown Shoe
Don’t ruin yourself by learning Visual Basic as your first language. That being said, one language is probably just as good as another.
The important thing, really, is to get a good grasp of language concepts, and to devolop a solid coding style.
After that, it’s mostly just syntax and format.
If I had to choose one language, though, it would be C, for the simple reason that it’s the most common (and it IS very elegant…)
Best of luck!
David
Soulfrost - Actually, COBOL is still by far the most commonly-used language. I wouldn’t recommend learning it, though, as most of the fun stuff is written using other languages these days.
I have to take exception with your comment about “ruining yourself” by learning Visual Basic. VB is a fine language, you can learn it quickly and get an incredible amount of useful work done with it equally quickly, and there are lots of places looking for VB programmers. I program in both VB and C, and generally prefer VB. So do my employers, because they get more production out of people like me when we program in VB.
In those places where execution speed is important - and in a few rare cases where the device drivers we need only work with a C interface - we switch to C. However, as PCs get faster and cheaper (and programmers get slower and more expensive) by far your biggest cost is the development time of your project/programmers. The silly computers are almost free by comparison.
If you want to get into actual programming (aka software engineering), You almost have to start with a four-year degree.
That being said, the hot field now is web programming. Learn Java, HTML, Perl, and SQL (the database query language). It helps if you have some degree of artistic/graphic design talent. You can get in with much less education, because demand is so great.
However, as I have recommended before, if you’re considering entering the computer field, read Dilbert first!
http://www.dilbert.com
This is documentary, not satire!
He’s the sort to stand on a hilltop in a thunderstorm wearing wet copper armor, shouting ‘All Gods are Bastards!’
I hope this isn’t too far away from the OP’s intent, but is there such a field as “information management”, and does it conventionally require the four year degree?
DHR
-
-
- COBOL is relatively boring, it’s true. However it is easy to learn and there are lots (most, me thinks; IIRC ~85%) of business systems still using it; scan the CIS employment section of any newspaper, and count how many jobs are listed that require COBOL, and then compare that to how many require Java. (Unless you’re in silicon valley, COBOL is asked for far more often) Assembler is similar; it’s only for boring database stuff, but it is easy to learn and it is still needed. - Of course, this all would depend on if you’re trying to actually get a new career, or if you’re just looking for something to do in your retirement years. If you ask a youngish hacker-type, they’ll swear that Java is just the greatest but it really isn’t used for much outside of games, and the percentage of the total programmers who are employed by the game industry is quite tiny.
-
- Others have also pointed out that there are also entirely-web-oriented positions that are available. Not having to do “real” programming doen’t mean it’s any easier though; just somewhat different.
- The college I am at required qbasic before any other languages. If you have MS Windows of any year, some version should already be on your machine. Find yourself a book that tells how to program in qbasic, and if most of the ideas seem pretty easy, then consider moving on. Qbasic is easy to grasp and it can draw pictures and make noise - neither real impressive, but that’s why it’s easy to understand. Also do note that you don’t need to remember everything about qbasic; few programmers are familiar with every_single_command of any language. - MC
WillGolfForFood…awww, don’t take exception–I agree with you. VB is very easy, has become a much more powerful language recently, and is good for people who just want to learn how to program something.
But for someone who wants to become an actual programmer, VB doesn’t really teach good coding style or language concepts. For instance, if you learn how and why a text-box is created in C++, you’ll be able to make one work in Pascal by just changing the syntax of the functions.
You’ll grasp the concept, and that will carry over into any other language that you want to learn.
Yeah, y’all are right–I totally forgot about COBOL. Even though I’m playing with an OOCOBOL in my spare time…
And yer right again–it’s boring!
-David
Object-oriented COBOL?? Let me guess, it’s called “ADD ONE TO COBOL.” (rim-shot)
Ha, Arnold!
Seriously, though, if anyone’s interested in it, this is a good place for information.
-David