I learned by writing a program to re-assign scan codes for a keyboard. I had a keyboard with the removable caps over the actual keys; I pulled them off and re-arranged them, then wrote a TSR/ISR to change the order. Yes, that was my first goal. I first started small but learning towards that goal.
I think I may learn C++ first now because I can't find a C Guide. I hear about Debuggers are there any free ones? What do they exactly do? Also I don't want to deal with MS-DOS, do you have to use DOS to program with C++? Also do I need a compiler and what does it do and whats a good free one? How much harder will it be to teach myself C++ then it was HTML? How much knowledge of computers does it take to program? What are the chances of locking up my computer or messing it up? All I know is when a program locks up I just hit Ctrl+Alt+Delete. Also I hear about 3-5 friends teaming up to make a program, but where I live there is no one who knows much about computers so I will work on the stuff alone so how hard will it be to make programs?
You said a mouthful The term debugging came from when a bug flew into a Naval computer and screwed it up. Errr... Thats the jist anyway. Debugging is just getting the bugs out of your program and making it work properly. You don't need a debuggy right now. You will have to deal with DOS to view the output for most of your first programs (nothing graphical until later). You don't have to type code into DOS though. You might find it easy to use an IDE for writing code. All you really need is a compiler and notepad though. Type the code into notepad, and have the compiler compile it. Compilers are very essential. When you write code in something like C++ you are writing in a high level language. This just means its closer to English. You can also program in assembly which is a low level language. A compiler just takes your code and makes it into 1's and 0's so the computer can understand them. As for a free one I use to use Dev-C++. Heres a list of other free compilers (and compilers for other languages). C++ is very different from HTML. It will be a lot more challenging. You don't need a huge amount of knowledge to program although it really helps to understand whats going on. You can't mess up your computer by programming. Well, thats not true. You can mess up a computer with a program, but trust me when I say you won't do anything wrong. As far as locking up, it is possible. More than likely you won't though. You might create a few infinite loops when you start on those though =). You can make programs by yourself. I find it easier actually. Of course if you are going to take a massive undertaking like a complex 3D game it would be extremely difficult to say the least =). Hope that helps.
Im completely new to programming, so Ive started with Visual Basic 6. I got the book Learn to Program with Visual Basic 6, and am really enjoying learning it. What I like about Visual Basic as well is that you see the results of your efforts straight away, and that you design the program interface in a visual way. I think its a good place to start, and I highly recommend that book as well (you get a limited copy of Visual Basic 6 with it as well )
Dex, is it by chance IJVM? I just finished a project using that tonight. It really makes you appreciate higher level languages, where you have things like for() loops and comparison statements. A simple 5-minute program in C (sorting 5 numbers smallest to largest) turned into a 10-hour nightmare with the mic-1 architecture.
I don't know what IJVM is. Our imaginary system was invented by our lecturer. He gave us example programs with most of the instructions we were allowed to use. He set rules such as you can't copy a value from one variable to another (you have to first copy it to a register, and then back to a variable). He gave really simple commands for retrieving input from the user (no need to convert from ASCII to a normal number or anything) and the same for outputting to the screen. I'm teaching my self masm32 back at home and did actually translate the program we made to proper assembly. It's a bit more complicated and I haven't figured out how to get user input yet but everything else works .
In my 1st year we learnt how to program a PIC16F84A in assembler language. Total nightmare. This year we still program the PICs, but in C. Better. Just a little though When I was a kid (~8years old believe it or not) i started programming in BASIC on my ZX Spectrum. I think it's unfair for you guys to assume that someone can't learn at that age. I had a couple of books (even the spectrum manual was 3/4 programming stuff) and went from there. True, i didn't learn the theory or any architecture stuff, but i could grasp loops, gotos, arrays etc I've done a few little bits in Java over the last couple of years, and tbh its not a bad language. There's a lot of stuff out there on the intarweb that'll help, i started off on a zero budget with java. Get Bruce Eckel's Thinking in Java from his site, download the JDK from the sun website, visit a few sites that offer free tutorials (seem to remember something along the lines of java 101 which had a good series), edit one path in your environment variables in windows and your away. Cost = nadda, nothin, zip I've not tried learning c++ myself, but might venture that way if i ever have time. It seems to be the best language to program windows apps, but i have no need (or time) to look into it further atm. Java is perfect for cross compatibility accross systems though. I'm interested in developing some J2ME stuff to play about with on my phone if i find some free time