I have rather recently decided that I want to take up computer programming as a hobby in my spare time.
However, I am hopelessly lost when it comes to deciding what to do next.
My basic plan is that I think I should start learning some languages. But there’s just so many (or so it seems to me - a complete newbie) that in the end of the day I don’t know where to begin.
Realistically, all of this would have to be self-taught. I’ve heard (and read) that some of the best programmers are actually self-taught, but in any case that’s the only realistic option available to me at the moment.
Okay, so I have a slew of questions for the programming Dopers here.
- When beggining my programming “career”, what language is it advisable (given the nature of being “self-taught”) to start-off with?
I know that some languages are more difficult than others, and I have been advised to never start off with C or it’s variants. So what would be an ideal starter?
- How many languages is it realistically possible to learn?
A few people I have known seemed to know at least 6 different ones. Is there an “invisible” cap on the total number of languages that you can digest?
- Is it worth knowing a large number of diverse languages?
Obviously I know that this will depend on what you use them for. However is it correct to assume that for the vast majority of tasks I wish to accomplish, a certain spread of languages (e.g. Java, Perl, HTML, C, Linux) will be sufficient?
- How much does my hardware know-how figure into this equation?
This splits into two parts:
a) Do I need a particularly powerful computer to run any language(s)?
Reading around, it seems to indicate that I need nothing more powerful than an ancient 486 Pentium to use any and all of these languages, however I’m no techie so I turn to you
b) When programming, can the software overcome any of the weaknesses of the hardware?
This question may seem strange, but here’s kinda what it means. See I always reckoned that languages are standard, regardless of how powerful the machine you program 'em into. So my worry is that I won’t be able to do many of the things that someone with a more souped up computer will be able to (programming-wise). Are my fears unfounded?
*How do I learn?
Meaning should I just get out some books from the library, and learn how to program from them? How did you learn? Are there any good web-tutorials?
I’m preferably looking for FREE information here, but I’d like any recommendations for learning materials you could give me. So this can include paid for stuff too.
- How long did it take YOU to become proficient in a certain language?
- Is it more a case of knowledge or practice?
I’ve always said that if you want to learn a new (geographic) language, you got to practice speaking it. In the same way, is learning programming more about the practice of writing good code than it is about simply reading texts?
- Anything else I should know before I begin?