What is the best computer language for a hobbyist to learn?
If a person will never get paid to program in his life, but loves computers, what programming language would be good for this person to learn? The logical question in response is: "What do you want to do?" I guess my response would be "cool stuff." The only application I thought of was something that would let me back up my free word press or go out and get data on the internet based on a search term and automatically download it. What language is best for the hobbyist?
Comments
The answer is learn programming concepts and then apply them to whatever language suits your needs for that project the best.
However, don't learn programming for doing cool stuff. That's reason I learned linux. Linux is neat, but when my linux hd died and I went back to windows I realized I wasn't using any of linux's abilities other than the spinny desktop cube, basically wasting my time.
Python is another good choice, as it is fairly clean and easy-to-read, and can be used for all the same tasks as shell scripting.
Looking around the Open Source community right now Python seems to be a good place to start. I don't think TCL/TK would be more difficult to learn, I just think there are more Python resources out there right now. I started with a book on design, now I'm working through a book on Object Oriented concepts, when I'm done with that I'm going to pick a simple project and write it in Python.
I don't know that scripting counts as programming. I've been working with HTML, CSS, Javascript, and ColdFusion for the last couple years and I wouldn't call that "programming". VBScript, JavaScript, Bash scripts are useful tools, but not applications.
Finally if you need an editor beyond what gedit, or notepad, Eclipse is a free, Open Source, Cross Platform IDE that will work with almost any language out there. My co-worker keeps pushing me to use Emacs, unfortunately its learning curve makes Dwarf Fortress look like Bejeweled.
(totally out of topic) is it spelled programing, or programming? Spell check accepts both, WTF?
Also:
Here is where to get started.