zosoeffex70 said:
If I start with Python will C/C++/Java be harder to learn? One author stated that C is a good place to start as it builds a solid foundation to learn other 'C similar' languages. Have you found/seen/heard that employment opportunities for Python programmers are abundant/in demand? I guess I have a dual goal of learning a language that will also facilitate employment.
Harder to learn than if you try to learn programming with no previous experience? I don't think so.
But learning a low level language will help you more in learning higher level languages than learning a higher level language will help you learn the lower level ones.
The thing with the lower level languages (C/C++, I would probably address Java as slightly higher level) is that there is much more to write to get simple tasks working. What the lower level languages do offer though, is a good insight into how a machine actually works. It is far from necessary to know this to deliver functional, working programmes. The learning process will be much slower, especially if this is self directed learning, and rewards much more spread out.
A week into learning any programming from scratch, it is probably a good level of achievement to have a console app (i.e. run through Terminal) that reads input and offers some sort of response (whooop-di-do!). A month in to a higher level language and you will probably, depending on direction, be able to offer useful web scripting functionality or be touching on aspects of GUI design and graphics. With a lower level language, you will probably still be wrestling with concepts like memory management and pointers.
That is not to say that these languages do not have their place - some of the stuff I am working on at the moment involves billions of calculations and the performance overhead of Python just does not make this a feasible option for running on a regular basis (I still used Python to prototype my algorithm, though). By comparison, I attached some back-end functionality to a website through CGI using Python; I could have used C++, the functionality is still there, but the same task, mostly text / xml processing, would have taken at least twice the time.
Having come from C / C++ to higher level languages, the word I use is describe it is 'rewarding'. There are some surveys on google (er, somewhere) asking programmers what they think about their languages. Ruby and Python were reliably the ones that people actually enjoyed using. Go figure.
As for job opportunities? Much harder to say for a specific language (flick through some recruitment websites) but again you will get to a commercial level of quality (god, I hate that phrase, there is some horrendous stuff written to get something through the door and actually doesn't mean very much at all) in a high level language faster than in a language like C. You won't find that many openings if you have less than 2 years experience in C++, again that's "commercial" experience. I have seen people employed with basic / rudimentary PHP skills employed in entry level positions and who have moved up very quickly to interesting and rewarding projects as they have learned skills on the job.
So, hopefully my previous comment is a little more in context. There is much to be learned from low level languages. Yes, they offer a good foundation to build upon. But, that comes at a price. they can be frustrating with few rewards. Development can be slow and tedious. But if (er, when, naturally) I have that "one great idea" for the archetypal killer app, it is very unlikely that C or C++ is going to be my first port of call. I might come back to it later, but for getting my ideas fleshed out, I need to have skills in a language that allows me express what ever insane, whacked out thought has crossed my mind, not one that requires levels of concentration that would make Uri Geller quake in his boots.
As for automation bit: well, if you are just doing repetitive tasks, moving files, you could do worse that spend an afternoon playing with Terminal.app and picking up bash scripting. Along with a handful of common command line UNIX programmes, it is an extremely powerful tool. Flick through Part 1 of
http://www.tldp.org/LDP/abs/html/ to get a picture. For more Mac-centric stuff, have a look at Apple script.