Programming

Pfheonix

New member
Apr 3, 2010
202
0
0
Okay, so I'm considering programming as a career and what I want to know is should I learn C/C++ and then move into Java, or learn something else then move into C and Java? Because I know that those two languages are the most useful as of right now. And also, about how long, were I to be using Ivor Horton's Beginning C++ from 1998, would it take for me to gain a rudimentary understanding in order to be able to go from 14 year old language to current standards? I will be attempting to work about four hours a day after this semester over the summer, and I plan to take some sort of IT C++ programming course in Fall, but if there are some people here who could give me advice from personal experience, that would be awesome.
 

Sightless Wisdom

Resident Cynic
Jul 24, 2009
2,552
0
0
If you're new to programming languages in general I suggest using Google's online lessons to familiarize yourself with C/C++ syntax and structuring. But either way C++ is a good place to start, and moving to java later would be a good idea because java tends to be quite a bit different instead of being very similar to the syntax and structure of C++.
 

Pfheonix

New member
Apr 3, 2010
202
0
0
I'd heard that the two are different, but that Java is an OOP language just like C++, so the style might be different, but the thought process in programming might be similar.
 

Esotera

New member
May 5, 2011
3,400
0
0
Start off with Python. this online book [http://inventwithpython.com/] is a brilliant introduction, and gets you programming games with far less fuss than any other language. I'll just list off a few of the advantages which make it a great beginner language:

- Simple, easily understandable syntax. Basically it's harder to screw something up than in C++
- Very high level. Performance isn't really as much as an issue as 20 years ago, in most cases you'll be far more interested in rapid development times & portability across platforms
- Loads of cool libraries, and a really good standard library.
- The help() and dir() functions, and the whole philosophy of docstrings. Documentation is an integral part of good python code, so it's a lot quicker to understand what's going on than in other languages.

I started off with C++, and I wish I'd done it the other way round, as I'd have been at my current level of understanding much quicker. It's a very good idea to have more than one language, but you'll probably get fed up with not being able to do anything quickly in C as a starter language. I suppose Java would be a bit faster to learn, but it requires a basic understanding of object-oriented programming before you can even print "hello world" to screen, whereas the program in python is literally what's in bold.

Wow, I'm really a Python fanboy. Also I wouldn't bother using anything older than 5 years old as a reference material for a language, as it really does change very quickly. It's fine for picking up algorithms/a general introduction to something, but it won't stand up if you're using it for serious study.
 

z121231211

New member
Jun 24, 2008
765
0
0
If you're considering doing this as a career, start with x86 or x64 assembly, then move onto C or C++. Understanding low-level programming is beneficial for when you move onto 'easier' programming languages like Java or Python.
 

Pfheonix

New member
Apr 3, 2010
202
0
0
Fawxy said:
You have internet access. There is absolutely no reason to be using material that is 14 years old.

CAPTCHA: glass ceiling

.....

lol
Well, the reason I use this is because a paper book feels better and is more easily read through than a computer screen. I don't have to have computer access to read the material anyway. And it isn't like there had been many updates that drastically changed anything. I read about something a year or so ago that changed it, but that's it.
 

devotedsniper

New member
Dec 28, 2010
752
0
0
Java is generally considered easier than C because it does things such as it's own garbage collection, where with C you have to program it yourself. It depends on the sort of career your looking at, Operating Systems, AI, Windows Gaming, Production Line machinery programming then your probably better off looking at C/C++, where java is used alot more in things like webapps.

On my uni course we started with java and then moved on to things like C, java was only really used to get us into programming (e.g. learning syntax). Personally for me i've always hated Java i find it hard to get to grips with it compared to the C's. At the end of the day all programming languages can be used to make quite complex things (e.g. C and Python are used to make World of Tanks), but you are better going into a more mainstream code as well as gaining experience in others to make yourself more appealing to employers.

Oh one final thing, when it comes to finding a coding program, Netbeans (free) is fairly good for java and you can't really beat visual studio for quite a few others, and the free express versions will do everything you need them to untill you go into it as a career.
 

BreakfastMan

Scandinavian Jawbreaker
Jul 22, 2010
4,367
0
0
Start with JAVA. It is much easier for those just learning the ropes, and stops you from screwing yourself too badly. Use that to learn the basics, then learn C++. C++ gives you a lot of power, but can also screw you over quite badly, so it is best to go into it with some experience before hand.

Also, just learning to do for loops n' crap will not get you very far in the programming world. You need knowledge of some of the more... complex algorithms, data structures, theories, and such. If you don't know those, you can forget about getting a job, or even actually building anything worthwhile. So, read up on search and sorting algorithms, Object-Oriented Programming, design best practices, Trees, Stacks, Queues, Lists, Arrays, and Stacks. I think that covers all the basics you will need...

And get a not-crappy book. Learning how to program from a 14-year old book will do you no favors.
 

Twilight_guy

Sight, Sound, and Mind
Nov 24, 2008
7,131
0
0
Java is easier to learn C++ would be a brick wall but would probably help you learn more in the end. Both are good to start with. Don't worry too much about the age of your resource for c++ there hasn't been many official revisions to the language and you can look up the differences on any c++ reference site, like cppreference.com.

I suggest starting out by deciding on some major project, like say, a side-scroller game, and trying to make that your overall goal and working each day by researching one thing to help you try and eventually achieve that goal. You'd be surprised how much having an over-all goal not only helps give direction to what to do each day but also to motivate you. Good luck!
 

Appleshampoo

New member
Sep 27, 2010
377
0
0
Esotera said:
Start off with Python. this online book [http://inventwithpython.com/] is a brilliant introduction, and gets you programming games with far less fuss than any other language. I'll just list off a few of the advantages which make it a great beginner language:

- Simple, easily understandable syntax. Basically it's harder to screw something up than in C++
- Very high level. Performance isn't really as much as an issue as 20 years ago, in most cases you'll be far more interested in rapid development times & portability across platforms
- Loads of cool libraries, and a really good standard library.
- The help() and dir() functions, and the whole philosophy of docstrings. Documentation is an integral part of good python code, so it's a lot quicker to understand what's going on than in other languages.

I started off with C++, and I wish I'd done it the other way round, as I'd have been at my current level of understanding much quicker. It's a very good idea to have more than one language, but you'll probably get fed up with not being able to do anything quickly in C as a starter language. I suppose Java would be a bit faster to learn, but it requires a basic understanding of object-oriented programming before you can even print "hello world" to screen, whereas the program in python is literally what's in bold.

Wow, I'm really a Python fanboy. Also I wouldn't bother using anything older than 5 years old as a reference material for a language, as it really does change very quickly. It's fine for picking up algorithms/a general introduction to something, but it won't stand up if you're using it for serious study.
That's a great website, I think I'll use that for learning Python after I've finished the one I'm reading now!

OP, if you have NO programming experience check out - http://learnpythonthehardway.org/book/

It's an online course that takes you from the very basics right up to being able to do stuff. It's basically aimed at those who have no experience programming, so it's a great resource!
 

Khada

Night Angel
Jan 8, 2009
331
0
0
I'm a programmer myself, though specifically I am a games programmer. Where you start is going to depend largely on 1; what kind of programming you want to do and 2; where YOU want to start.

Given that we are on the escapist website and that I'm a games programmer, I'll give you advice on getting started in programming for games.

1: Start with Microsoft's XNA game engine (C# library). C# is a much easier language than C++ which makes it useful for learning the basics. Being a game engine, it also means you don't have to learn the really low level complicated stuff to begin with. It's also used frequently in games programming so it's useful to know C# (java is used too but less and is less related to the standard games programming languages - knowing C# will get you 90% of the way to knowing java anyway). There's also a lot of forums support and tutorials for XNA so it's a good way to get started and find out if you enjoy programming or not.

*Note, some people may suggest starting with Unity. Unity is a great engine but will detract too much from the programming side of things. In short; it will actually make getting started in programming harder and more misleading.

2: If you've enjoyed XNA, made a couple small games and know the basics, it's time to do a course in games programming. If you live in Australia or the states, try to get into AIE. They specialise in games programming. Many other normal Tafes/Universities will offer similar courses but are often little more than a computer science course with some gaming theory thrown on top. Make sure the course is seriously tailored to games programming. They should be teaching you C/C++/C# and also at least one major commercial game engine (UDK, Cry, Gamebryo etc). These courses should only last 2-3 years unless you're doing a degree as well.

*Note, you COULD learn it all yourself. This would take much, much longer and I don't recommend it. Do a course if you can, otherwise dedicate serious time to learning and join some mod groups to keep you motivated and learning new things.


Happy to answer any questions you might have and my apologies if you're not interested in games programming.
 

Tallim

New member
Mar 16, 2010
2,054
0
0
Learning completely by yourself is possible, I did it but it will take you MUCH longer than if you get some sort of lessons. An awful lot of online lessons will teach you how to do certain things but they won't teach you exactly "why" which limits your flexibility.

It all depends on how much time and dedication you have. I wish I'd done proper lessons to learn as it would have saved me a lot of headaches.

I went with C#. My only previous coding experience was the C64 alllllll those years ago lol. But once you have one language under your belt it is much easier to pick up another one.