- Joined
- Jan 29, 2005
- Messages
- 790
- Reaction score
- 13
- Points
- 18
- Location
- Legoland
I'd like to have a go at writing a program, I'm not sure what yet, but my question is if any of you have any advice for website information, books, tutorials !!!. :dummy:
I started programming at 12. I stumbled upon this "Welcome to Visual C++" book that really was designed for someone who was already programming in C and was learning C++.
Just with that book I figured out the structure, essentials... it was a major headache and I thought C++ was too hard for me.
I stumbled upon VB [Visual Basic] around your age. Really, at your age, if you have the motivation, you can at least get familiar with any language. The key thing is to decide now what seems like the best solution to what you think you'd like to do a long time, then just stick to it. Have fun. And enjoy the benefits of being young and knowing a programming language (Everyone calls you a genius, hah). If you do it as a hobby and have time, you'll pick it up extremely fast and constantly be learning all the junk you'll need to just get certified in it.. once you can afford it.
This is how I relate a lot of the software languages: Let's say programming is like cars. You're trying to get from point A to point B.
Assembly: You design the car, the wheels, the fuel system, the smallest details and create the perfect machine. Some times WAAY too much work to get anything done, but it's a piece of art whatever is written in it properly.
C++: You create the most efficient machine available. You tweak it to perfectly fit your personal desires, and it runs flawlessly. It takes you a little while to design the car but it's well worth the investment once everything is said and done.
VB (and real basic): You take someone else's chassis and engine and create a simple frame. You customize the apolostry, paint job.. and throw in a couple tweaks here or there. You get it done fast, and it may be a little crude. But it'll get the job done.
Java: You make a economy car. The car is built to where it runs on different fuels, is highly compatible and can get around in various situations. The problem is you tend to not be as efficient as an asm/c++ car, but especially with how java has been improved lately this may (or may not) be a great investment to the future. (I keep hearing lately that benchmark tests on java are competing with C++ written for the OS!!)
In my personal life, I have found VB the great choice. Sure my code isn't as flawless as C++, nor am I as compatible as Java, but when someone wants a program I can whip it up in surprisingly fast timing. Other programmers dislike me usually for writing in VB, plus I can only write Microsoft Windows apps (Which is annoying when you like to run OS X and other OS's), but man it's so freaking easy to learn.
If you want I suggest... I say C++. It's bottom line the biggest of all languages. You can take what you know of C++, go to any operating system, learn the API (darwin in OS X), and adapt to the tweaks of almost any OS.
Also C++ is the basis of all other programming languages usually. So you can take C++, and pick up Java.. PHP, anything really.. and you'll figure it out in no time just with the knowledge you have of C++.
But it's also one of the harder languages to learn. Assembly I don't suggest, it is getting outdated and is very situational when you want to use it.
Java I like and dislike.. mixed feelings really.. in the long run, I DISLIKE IT because of silly things like java beans... JUST THE NAME ALONE ugh. lol.
As far as web programming goes, if you learn software you will think web programming is a joke in difficulty.
Anyways, play around with all and see which language makes the most sense to you.
And when you find it, do this:
1) Go to the library, find a "introduction to X language" type book, or a beginner book. Find an author that makes sense to you. Don't fret if some books don't make sense, some people just can't teach you well. Finding a teacher you can relate to is some times the biggest key to learning what he has to teach.
2) Find a forum. Once you start reading and learning the book, use the forum for those nasty questions that arise. Most programming forums are pretty nice to beginners, as long as you're giving a real effort to learn it.
3) Have fun.
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
Module HelloWorldApp
Sub Main()
System.Console.WriteLine("Hello, world!")
End Sub
End Module
MsgBox "Hello, world!"
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
MODEL SMALL
IDEAL
STACK 100H
DATASEG
MSG DB 'Hello, world!', 13, '$'
CODESEG
Start:
MOV AX, @data
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 09H ; DOS: output ASCII$ string
INT 21H
MOV AX, 4C00H
INT 21H
END Start
; Example of making 32-bit PE program as raw code and data
format PE GUI
entry start
section '.code' code readable executable
start:
push 0
push _caption
push _message
push 0
call [MessageBox]
push 0
call [ExitProcess]
section '.data' data readable writeable
_caption db 'Win32 assembly program',0
_message db 'Hello, world!',0
section '.idata' import data readable writeable
dd 0,0,0,RVA kernel_name,RVA kernel_table
dd 0,0,0,RVA user_name,RVA user_table
dd 0,0,0,0,0
kernel_table:
ExitProcess dd RVA _ExitProcess
dd 0
user_table:
MessageBox dd RVA _MessageBoxA
dd 0
kernel_name db 'KERNEL32.DLL',0
user_name db 'USER32.DLL',0
_ExitProcess dw 0
db 'ExitProcess',0
_MessageBoxA dw 0
db 'MessageBoxA',0
section '.reloc' fixups data readable discardable
trpnmonkey41 said:just plain old command line java is a pretty intuitive language. I have been programming for 3 years now and still don't do anything with a GUI.
O'Reilly books are definitely a must
The order I learned languages in was
HTML, Java, C++, Objective C, MySQL, Smalltalk 80, ML, Scheme, Python, Prolog, ADA