Thirdly refering to me as mac user. Very disrespectful. Yes i do own a mac but i program on a pc because thats how i was taught.

'
You don't need to prove anyone anything ;) Use the OS you like, I don't think people have a right to judge anyone by the OS you are using! (Of course if you use some hardcore Linux with only command prompt, you are a geek, but person who does it probably like being called that.)

I use BackTrack/Gentoo duel boot, and Win7 in a virtual machine. Both used for dev.

Firstly on DaniWeb you dont just give out answers. You help people to figure it out with you or they will not learn.

I have made around $200 here on Daniweb by offering to do things for people. So spoon feeding/doing it for them can make you some money.

Other than that, yes, give people the path not the answer.

As for arguing about which language is best, they are all good at something, and bad at others. Except for Java, which is all-around shit.

Furthermore, and this is directed at everyone that doesn't know how to use spell-check, or never taken an English class; please work on your grammar. It really shows immaturity and lack of education.

commented: Java sucks ;) +4

First off, I code in C, C++, Java, Perl, Lisp and a number of other languages. I am not biased by any means.

I believe in choosing the right tool for the right job.

For instance, I have a beautiful 50 line Bash script I wrote I wrote in 30 minutes. I would love to see someone 're-write' it in a low level language from scratch. Certainly possible if you enjoy spending many hours writing 5,000 line programs.

The point is-- when you look at a problem you grab the right tool from the tool chest. A programmer with only one or two languages in his tool chest is pretty limited. Even worse if those two languages are both low level.

A 'good' programmer should learn a number of different kinds of languages. For instance, a low level language, a high level language, a scripting language etc. When duty calls you reach in your tool chest and pull out the tool(s) that are best suited for the job at hand.

Anyway-- to get back on topic.

For anyone interested in starting programming and/or starting game development:

* Learn a low level language
* Learn a high level language
* Learn a scripting language
* Learn a multi-media API
* Learn event-driven programming and a GUI API
* Learn networking/socket programming API(s)

These tasks take years to complete. Most people are too in a hurry to wait that long so...

* Learn a language that suites you well

You can do this by trying a couple languages. Try out C, C++, C#, Python, Java, Perl.. try out a hand full of languages and pick one or two languages you really enjoy and feel you understand.

Learn the language you choose very well.. buy a good book. Read a lot. Read other peoples' code and try to learn from it.

* Practice programming a lot

You can build a bunch of small programs-- utilities and small simple console games. This is very important. Show other programmers your code and try to get useful criticism. Learn from your mistakes.

* Branch out into other languages and/or utilities listed above.

edit:

Don't worry about jumping right into hardcore game development. It just isn't going to happen. You want to do a 3d game-- do you even consider the math this takes? Let's just say the math alone is beyond your years. While you are learning programming you can also pick up some math textbooks.

Focus on learning how to program-- learn the logic involved. Build up to making a game. It's going to take a while but you can do it.

commented: Wisdom. +7

First off, I code in C, C++, Java, Perl, Lisp and a number of other languages. I am not biased by any means.

I believe in choosing the right tool for the right job.

For instance, I have a beautiful 50 line Bash script I wrote I wrote in 30 minutes. I would love to see someone 're-write' it in a low level language from scratch. Certainly possible if you enjoy spending many hours writing 5,000 line programs.

The point is-- when you look at a problem you grab the right tool from the tool chest. A programmer with only one or two languages in his tool chest is pretty limited. Even worse if those two languages are both low level.

A 'good' programmer should learn a number of different kinds of languages. For instance, a low level language, a high level language, a scripting language etc. When duty calls you reach in your tool chest and pull out the tool(s) that are best suited for the job at hand.

Anyway-- to get back on topic.

For anyone interested in starting programming and/or starting game development:

* Learn a low level language
* Learn a high level language
* Learn a scripting language
* Learn a multi-media API
* Learn event-driven programming and a GUI API
* Learn networking/socket programming API(s)

These tasks take years to complete. Most people are too in a hurry to wait that long so...

* Learn a language that suites you well

You can do this by trying a couple languages. Try out C, C++, C#, Python, Java, Perl.. try out a hand full of languages and pick one or two languages you really enjoy and feel you understand.

Learn the language you choose very well.. buy a good book. Read a lot. Read other peoples' code and try to learn from it.

* Practice programming a lot

You can build a bunch of small programs-- utilities and small simple console games. This is very important. Show other programmers your code and try to get useful criticism. Learn from your mistakes.

* Branch out into other languages and/or utilities listed above.

edit:

Don't worry about jumping right into hardcore game development. It just isn't going to happen. You want to do a 3d game-- do you even consider the math this takes? Let's just say the math alone is beyond your years. While you are learning programming you can also pick up some math textbooks.

Focus on learning how to program-- learn the logic involved. Build up to making a game. It's going to take a while but you can do it.

I agree for the most part with your post. Clinging to one language will not get you very far in software development.

But at the same time you must realize, at the end of the day you are just filling out a script to be converted into machine code. Doesn't matter what language you use it will always end up as op codes followed by addresses; using a language that you like is probably better than using one that others say is better. If you spend all of your time learning different languages and perfecting none there will be little time left for learning the more complex algorithms that are common to all languages. In my opinion the logic/ideas implemented in a program outweigh the language itself in terms of importance.

Out of curiosity, what did that 50 line bash script do that would require 5,000 lines of code to duplicate?

I don't wish to go off topic so I will try to wrap this back in to the topic at hand (languages).

Of course, I was exaggerating when I said 5000-- for sure it could be done with less but still a heck of a lot more than a scripting language! If you thought I literally meant 5000 lines then sorry. I was trying to express the difference from using a language built for a type of task when compared to a low level language and programmer that does things from scratch (not pulling in outside APIs etc). That is why I specifically stated from scratch.

The script itself basically did the following:

* Take a snapshot of your desktop OR capture a local file (image or other file)
* Upload image to ompldr.org
* Remove unneeded screenshot IF you didn't upload a local file
* Return the upload link AND automatically copy the link to your local control+v clipboard

The purpose was real simple. I binded the script to a local key combination, win_key + alt + s and the result was it automatically took a screen shot and copied the resulting link to my clipboard for pasting. That sure as heck beats creating a snapshot, opening a browser and going to the site to upload the image-- finish uploading and copy the link and delete the screenshot you no longer need.

A large portion of the script was error checking because let's face it, when dealing with files and what-not there are a lot of possible errors. The juice of the code was done in about 6 lines-- all the rest was careful error checking etc.

Now on the flip side-- imagine doing that in ANSI C without outside libraries like Curl or a regex matcher. The network code would consume quite a few lines as well. Not to mention the operating system specific stuff like capturing an image or uploading a local file and copying the resulting link to your operating system clipboard, checking file permissions and what-not. At the very least you are looking at a thousand lines of code.

The point is-- choosing the right tool for the right job. Of course, if I coded it in C the program would be faster, but the time I would need to put in would be ridiculous compared to the 30 minutes it took in Bash. Imagine it in something like assembly!

To further wrap up the point, the higher level you go the more the language does for you. When it comes time to tackle a problem you need to choose the level and language that best suits the problem. Not only your most preferred language. Although your preferred language is certainly a factor. If you need to learn a whole new language because it is better suited then it's probably not a good choice. You should be choosing among languages you are fairly comfortable with.

I love ANSI C, it's my favorite language and I use it when I can. However, I certainly didn't pick it for that problem.

Of course, I was exaggerating when I said 5000-- for sure it could be done with less but still a heck of a lot more than a scripting language! If you thought I literally meant 5000 lines then sorry. I was trying to express the difference from using a language built for a type of task when compared to a low level language and programmer that does things from scratch (not pulling in outside APIs etc). That is why I specifically stated from scratch.


Well, a scripting language isn't really from scratch haha. But I see your point.

love my slow internet, have to retype this whole post haha
Basically, I have some experience with C++ and what should I be looking to accomplish with C++ before moving onto opengl and directX? I know the the math needed, physics is just formulas. Understanding this stuff is no problem, just need a push in the right direction.

Try the unity game engine. It is fast and works on all platforms(ps3, wii, pc, iphone etc). Look on the unity forums for good online tutorial series. I would recomend walker boys tutorials to start off and then wath the 3dbuzz tutorials to improve on certain areas of the engine.

Use javascript not c# with it.
Also download the resources of unity website and the terrain editor.

For 3d modelling use blender. It is better than maya and 3dsmax

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.