Computer Forums

Member Login

Remember Me? Sign Up! | Forgot Password
 
Slogan
 
Closed Thread
Old 07-12-2005, 07:12 PM   #11 (permalink)
 
Newb Techie

Join Date: Jul 2005

Posts: 12

mikhael

Default

I started to learn programming by myself and started with C. The reason to start with C was that C is a mother of C++ and Java, so if you know C you will pick up any of the above mentioned easy. I bought a book and it is really good, plain language, good explanation, hands on exercises, etc. The name of the book is "C all in one desk reference for dummies" author Dan Gookin. Have a look at this book in your local shop, should be there. I do not know if there are free compilers for Windows, I use Linux and all of the programming stuff is included in the distro.
mikhael is offline  
Old 07-12-2005, 07:23 PM   #12 (permalink)
 
Newb Techie

Join Date: Jul 2005

Posts: 12

mikhael

Default

To Iron_Cross
Thanks for the link, have read it with the great interest
mikhael is offline  
Old 07-14-2005, 08:14 AM   #13 (permalink)
 
Ultra Techie

Join Date: Jul 2005

Posts: 530

TheHeadFL

Send a message via AIM to TheHeadFL
Default

Quote:
Originally posted by mikhael
I started to learn programming by myself and started with C. The reason to start with C was that C is a mother of C++ and Java, so if you know C you will pick up any of the above mentioned easy. I bought a book and it is really good, plain language, good explanation, hands on exercises, etc. The name of the book is "C all in one desk reference for dummies" author Dan Gookin. Have a look at this book in your local shop, should be there. I do not know if there are free compilers for Windows, I use Linux and all of the programming stuff is included in the distro.
This is the right approach. No programmer should start anywhere else but C. Starting off in an OOP-type language will inevitably lead to poor habits, not to mention a lack of fundamental understanding of programming techniques. You have to walk before you can run.

Learn C, then when you know enough to write a doubly linked list or binary tree search program with your eyes closed, move on to C++ and learn classes, templates, and all the OOP principles. Once you do this, consider yourself armed and ready to program in almost any modern (imperative) language. About all you couldn't touch is the weird functional stuff like Lisp or Prolog.
__________________
Desktop machine: 2 x Opteron 246, Asus K8N-DL, 2GB PC3200 ECC Reg., XFX GeForce 6600GT, 74gb WD Raptor, 2 x 19\" LCDs, Windows XP x64
Server machine: Intel P4 3.0GHz 2MB EM64T, ECS i865pe, 1GB PC3200, 36gb WD Raptor, Windows Server 2003
Laptop: Dell Inspiron 9100 (Intel P4 3.2GHz 1MB Prescott, i865pe, 512MB PC3200, Mobility Radeon 9700, DVD+R/DL Burner), Windows XP
Linux: P3 450Mhz, 386MB ram, Slackware 10.1 (Running mySQL/Apache)
TheHeadFL is offline  
Old 07-14-2005, 01:32 PM   #14 (permalink)
 
Ultra Techie

Join Date: Oct 2003

Posts: 544

fitzjj

Default

Quote:
Starting off in an OOP-type language will inevitably lead to poor habits, not to mention a lack of fundamental understanding of programming techniques.
Hmmm.... i'm not sure whether i agree or disagree with this! Having learned in an OO language i was very well taught and code 'properly', although i can see that going from OO to something like C you feel restricted and find you cant code how you want to, and it is tempting to pick up some bad habits - although on the other hand why not just learn an OO language and leave the OO 'till later? you can still pick up all of the programming techniques and more

Quote:
About all you couldn't touch is the weird functional stuff like Lisp or Prolog.
And you wouldn't want to put yourself through that kind of torture anyway!
fitzjj is offline  
Old 07-14-2005, 06:53 PM   #15 (permalink)
 
Ultra Techie

Join Date: Jul 2005

Posts: 530

TheHeadFL

Send a message via AIM to TheHeadFL
Default

The only OO language I believe should be even be considered for a learning language is C++. At least then you can still program procedurally. The problem with learning starting with OO is that it is so far abstracted from how the underlying code is actually executed that it never teaches you to think about optimizations and such. I would venture to say that even C is fairly high level.

When I first started learning programming like 10 years ago, it was in Pascal. Then I started using C. Then I learned about C++. Now I am forced to use Java and some other weird languages at school here. I actually had a class where all the assignments were in Prolog. (ick)

What taught me the most, though, about programming was taking a class on compilers. In that class we had to write a two pass compiler that parsed through code and generated machine code. When you start seeing just how much code it takes to execute a simple C++ (or Java, etc) virtual function then you can see how you only want to use OO when you need it.

OO is great for organization, but I firmly believe it has its place and should never be used unless it is needed. This is one of the reasons why I have such a burning hatred for Java, since everything is forced into classes and such.
__________________
Desktop machine: 2 x Opteron 246, Asus K8N-DL, 2GB PC3200 ECC Reg., XFX GeForce 6600GT, 74gb WD Raptor, 2 x 19\" LCDs, Windows XP x64
Server machine: Intel P4 3.0GHz 2MB EM64T, ECS i865pe, 1GB PC3200, 36gb WD Raptor, Windows Server 2003
Laptop: Dell Inspiron 9100 (Intel P4 3.2GHz 1MB Prescott, i865pe, 512MB PC3200, Mobility Radeon 9700, DVD+R/DL Burner), Windows XP
Linux: P3 450Mhz, 386MB ram, Slackware 10.1 (Running mySQL/Apache)
TheHeadFL is offline  
Old 07-14-2005, 07:37 PM   #16 (permalink)
 
Newb Techie

Join Date: Jul 2005

Posts: 4

rjk813

Default

i personally suggest c# because of OOP and windows applications. I also suggest if you buy a book to check out half.com. I've been buying some books for next to nothing off there.
rjk813 is offline  
Old 07-15-2005, 02:11 PM   #17 (permalink)
 
Ultra Techie

Join Date: Oct 2003

Posts: 544

fitzjj

Default

Quote:
Originally posted by TheHeadFL
I have such a burning hatred for Java, since everything is forced into classes and such.
lol, quite the opposite here then. i love my java, and think classes make sense. you can do all you procedural stuff in java if you like - at the end of the day if you have a well written compiler it will optimize your code but yeah it is always good to write efficiently.

rjk813 just brough C# into the equation, i have just started programming in C# at work and have to say it is a very nice language. It is very similar to java (probably why i like it) but has some similarity to C. If you want to spend all day coding your interface then Java, if you want a very nice interface and dont want to spend most of your time coding it use C#

-- i know i have a couple of different opinions to TheHeadFL but do agree that C++ is definately worth learning, it will teach you most of C and then Java is a nice easy step up.

I too learnt a **** of a lot through my compilers course and if i were ever to employ a programmer i feel this is something that they should have done too, it gives you so much understanding of what is going on and is one of my reasons for not liking .NET too much - it hides all of the real stuff from you.

GRRRR prolog.... dont ever consider learning that!!!... nasty!!
fitzjj is offline  
Old 07-15-2005, 03:04 PM   #18 (permalink)
 
Ultra Techie

Join Date: Jul 2005

Posts: 530

TheHeadFL

Send a message via AIM to TheHeadFL
Default

Why would you dislike .NET any more than Java? If anything I like .NET more because it is JIT compiled whereas Java is pure interpreted.
__________________
Desktop machine: 2 x Opteron 246, Asus K8N-DL, 2GB PC3200 ECC Reg., XFX GeForce 6600GT, 74gb WD Raptor, 2 x 19\" LCDs, Windows XP x64
Server machine: Intel P4 3.0GHz 2MB EM64T, ECS i865pe, 1GB PC3200, 36gb WD Raptor, Windows Server 2003
Laptop: Dell Inspiron 9100 (Intel P4 3.2GHz 1MB Prescott, i865pe, 512MB PC3200, Mobility Radeon 9700, DVD+R/DL Burner), Windows XP
Linux: P3 450Mhz, 386MB ram, Slackware 10.1 (Running mySQL/Apache)
TheHeadFL is offline  
Old 07-16-2005, 05:08 AM   #19 (permalink)
 
Ultra Techie

Join Date: Oct 2003

Posts: 544

fitzjj

Default

Quote:
Originally posted by TheHeadFL
Why would you dislike .NET any more than Java?
I actually meant to say visual studio .NET there - I guess it is kind of a case of not being completely in control with VS.NET in that it will do a lot of the work for you and i havent used it enough to trust that it is doing what i want it to do. clearly if you are developing for windows it is the only IDE to use and probably the most advanced around.

In terms of Java and .NET i love coding in java but clearly if i am writing a purely windows application then .NET is the way to go. however if i want something compatible across platforms then Java wins hands down.

Java is not pure interpreted though. it works in a very similar way to .NET. The java code is compiled to java byte code, which is then interpreted by the virtual machine. Where as .NET i believe is compiled to an intermediate language that is then JIT compiled. - Java just skips this JIT comiling, which used to make it a little slower on execution, but as computers have got more advanced and the byte code has got more efficient its speed is still comparable to that of most languages
fitzjj is offline  
Old 07-16-2005, 07:13 AM   #20 (permalink)
 
Ultra Techie

Join Date: Jul 2005

Posts: 530

TheHeadFL

Send a message via AIM to TheHeadFL
Default

Apparently they will have cross-platform support for .NET eventually. I like their ideas on how sometimes when installing an app, it will JIT compile it, and then save the native machine language to the machine itself.

Java is fast nowadays though, you are correct.
__________________
Desktop machine: 2 x Opteron 246, Asus K8N-DL, 2GB PC3200 ECC Reg., XFX GeForce 6600GT, 74gb WD Raptor, 2 x 19\" LCDs, Windows XP x64
Server machine: Intel P4 3.0GHz 2MB EM64T, ECS i865pe, 1GB PC3200, 36gb WD Raptor, Windows Server 2003
Laptop: Dell Inspiron 9100 (Intel P4 3.2GHz 1MB Prescott, i865pe, 512MB PC3200, Mobility Radeon 9700, DVD+R/DL Burner), Windows XP
Linux: P3 450Mhz, 386MB ram, Slackware 10.1 (Running mySQL/Apache)
TheHeadFL is offline  
 
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On