• 12
• 12
• 9
• 10
• 13

# Education and programmers

This topic is 3727 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I have two questions: Can a person make an efficient programmer..... If that person only took up to pre-algebra at school? Secondly, I'd like to know what's the best language to learn if you're not an educated individual?

##### Share on other sites
Quote:
 Original post by CgrCan a person make an efficient programmer.....If that person only took up to pre-algebra at school?

Yes most defiantly. Most programming does not require much in the way of math knowledge.
The kind of thinking needed for math and programming is rather similar, so someone who has done a lot of math can have an advantage starting out but it's possible for someone who hasn't to catch up as he grows more accustomed to the way of thinking.

Quote:
 Original post by CgrSecondly, I'd like to know what's the best language to learn if you're not an educated individual?

Any of the standard languages should be just fine, c, c++, c# or java (or others that I probably forgot to add). It depends on what you want to do, if games is your priority then you'll probably find more materials if you choose c/c++ since they seem to still be most popular but there are resources for the other languages too.

##### Share on other sites
what math you need depends on what you want to make. for graphics you would need a lot more, but there are a few good books about it. for general programming i think you dont need much from high school math but it would be good to know about it.

and personally i prefer c#. someone else might say c++ though, but there are good reasons to go for c#

##### Share on other sites
Thanks for the replies. I'm glad to find out my education won't prevent me from my dream career. I have already started learning C# years back, my progress is slow and uneventful, mostly because-- I don't have any projects to work on.

##### Share on other sites
i was in this situation a few years ago too ;) well go and learn directX and XNA. i dont know what skills do you have but if you just know how to use c# then im afraid you can only work on small projects you make up yourself. im sure you can find some threads on gamedev what do you need for DX. download DX SDK from microsoft sites and learn from it.

##### Share on other sites
You can become an efficient and skilled programmer, but it's going to take a lot of work to get there. As MassacrerAL mentioned, it really depends on what you want to do. Rendering and animaion/gameplay is going to require heavy knowledge of linear algebra and some calculus. But other areas such as front ends, and interface work will require less math. Spearhawk makes a good point though, computers are basically number crunching machines, so having a good understand of math is going to important no matter what.

If you're serious about getting into game development I'd suggest C/C++. It's not the easiest language to learn, but most pc and console games are built using it and it will help you understand what the machine is actually doing, more so than with a higher level language like java or C#. If you want to do more casual or web games, then there are other options like Flash/Actionscript.

##### Share on other sites
Quote:
 Original post by CgrI don't have any projects to work on.

msg me on msn, I've got some projects you can work on for the game I'm developing :) my msn is siliconmunky@hotmail.com

##### Share on other sites
Quote:
 Original post by Silicon MunkyIf you're serious about getting into game development I'd suggest C/C++. It's not the easiest language to learn, but most pc and console games are built using it and it will help you understand what the machine is actually doing, more so than with a higher level language like java or C#.

(emphasis mine)

This isn't true. C++ models a particular abstract machine. The very fact that it's abstract means that it's not too hard (for some definition of not too hard) to write an implementation for different platforms, but also means that you don't actually have a clue what's going on. In fact, you're going to be hard pushed to know what the machine is actually doing unless you're working on the bare metal (i.e. without an existing operating system running) in assembly language (without an optimizing assembler).

There was relevant discussion recently, spawned from a claim that pointers were how the computer works, starting with this post.

##### Share on other sites
It's always good to have a solid understanding of math. I don't particularly like math, but I am good at it. The abstract reasoning that allows me to pick up on math is what allows me to solve programming problems.

Regardless, even if can get by on algebra (I rarely use much more for web development) the kind of reasoning involved in discrete math is needed in all programming. If you can understand sets and trees, and the math and algorithms that can be applied to them, then you can do a lot.

Interestingly enough, just programming will teach much of the math that you need.

Of course, you'll only know the benefits of learning more math if you go out and learn it. Learning higher levels of math only makes the lower level stuff easier and you will even learn shortcuts to otherwise hard problems.

Also, calculus is a must for anything involving physics.

##### Share on other sites
For programming, computer languages and computers altogether are completely redundant.

Good programming is about finding optimal solutions to given problems, then expressing them in the syntax your computer understands, usually through use of computer languages. If anything, many people fall into the language/API tar pit and forget about the big picture.

Understanding of hardware architecture is quite important in some areas, and especially in system programming, but those areas require different skills than what programmers usually have to offer.

Education is also not determining factor, it's your approach and methodology. But while trying to improve your skills, you won't be able to avoid math-related topics, or you'll hit an invisible ceiling.

A good beginner's language is something you have access to, allows you to do the things you want easily, and is easy to get support for. Which that is for you however is not something I can advise. There's a big difference between what one finds good, and what one is told to use, and learns it due to lack of choice.