Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

kashmoney2006

macrumors regular
Original poster
Dec 12, 2007
232
0
Currently all I know is the basics of java. i understand variables, parameters, recursion, etc. I wanted to expand my programming knowledge but was not sure where to go??? So far it seems like learning Unix and/or C is a good start. Is that the consensus??
 

HiRez

macrumors 603
Jan 6, 2004
6,265
2,630
Western US
It sounds like you need some goals. What kinds of things do you want to do most? Desktop applications, web applications, scripting and automation, database design, widgets, games? Each has different languages and frameworks that work better for that focus. But in general it's hard to go wrong with learning C to start because so many other languages are derived from it and it will teach you good programming fundamentals applicable to a wide variety of endeavors. Personally I've soured on Java over the years, though it's still not a bad learning language.
 

Ti_Poussin

macrumors regular
May 6, 2005
210
0
I would suggest C as well, you'll learn the pointer, the alloc of memory... All you learn in C is never a wast of time, it still follow you in other language and you will understand other language quickly after that.

If you want a cool scripting language to do some application quickly, I would suggest Python.

I suggest you look at some design pattern to program in a good manner.
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
 

kashmoney2006

macrumors regular
Original poster
Dec 12, 2007
232
0
It sounds like you need some goals. What kinds of things do you want to do most?

What would you say if i said i was interested in games? gaming is one of the concentrations offered as part of my computer science major.
 

SC68Cal

macrumors 68000
Feb 23, 2006
1,642
0
Practice practice practice. Keep coding. Learn UNIX. Learn about data structures and file processing.
 

Aranince

macrumors 65816
Apr 18, 2007
1,104
0
California
What would you say if i said i was interested in games? gaming is one of the concentrations offered as part of my computer science major.

C/C++ would be your goal then. If C/C++ seems like too much of a problem you can try something simpler like Python. Although, since you have some experience in Java, C/C++ shouldn't be a problem.
 

kashmoney2006

macrumors regular
Original poster
Dec 12, 2007
232
0
Practice practice practice. Keep coding. Learn UNIX. Learn about data structures and file processing.

is there any specific book on Unix that you would suggest? I was advised to get this one as I was told it would integrate well with my Mac OS X knowledge:
http://www.amazon.com/Learning-Unix...bs_sr_1?ie=UTF8&s=books&qid=1197834029&sr=8-1



C/C++ would be your goal then. If C/C++ seems like too much of a problem you can try something simpler like Python. Although, since you have some experience in Java, C/C++ shouldn't be a problem.

And what about a book on C/C++?? any suggestions??
 

SC68Cal

macrumors 68000
Feb 23, 2006
1,642
0
That OR book is pretty good. Get it used, it barely breaks the surface of UNIX. I used it, then got the Mac OS X for Unix Geeks one to go a little further. After that, do yourself a favor and get CLIX from Rixstep. After that, get your spelunking gear and start exploring.
 

HiRez

macrumors 603
Jan 6, 2004
6,265
2,630
Western US
You can program games in any language, but for serious games Aranince is right, you almost certainly want to know C++. Since I'm not a C++ guru I don't have book recommendations but a quick search of user reviews on Amazon.com will probably turn up a lot of options. Then, learning the OpenGL, DirectX, or SDL APIs wouldn't hurt either, but learn C/C++ first since most other things you'll use assume a knowledge of those. It's a long path though, be prepared to be patient and put in some work.
 

ChrisA

macrumors G5
Jan 5, 2006
12,913
2,160
Redondo Beach, California
That OR book is pretty good. Get it used, it barely breaks the surface of UNIX. I used it, then got the Mac OS X for Unix Geeks one to go a little further.

Books are OK as an introduction but if you want to learn look at the man pages. for example "man signal" Will tell you all about the "signal" system call and how to set up a signal handler. It is only a cople pages long. After you have looed up and read a few hundred of these you will know what's going on. Programming is not so much about learning the language like C/C++ that is pretty straight forward the bigger thing that takes more time is lernning the "platform" -- All those thousands of library calls and APIs and there is more than one of them, so many that programmers have to specialize but languages are easy enough that most people know a half dozen well and have used maybe twice that many.

With C/C++ you can start with the UNIX (POSIX) system calls and sthe standard C library then look at the C++ "STL" (standard Template Library) This is the "base" after that you have to decide what platform you are writing for and what you are going to write. and you will need to learn the graphics system for that platform. But the basics of data structures, threads and system calls has to be lerned first.

Whouldn't it be nice if you could read just one book and then know everything you need. I just moved my office and had to downsized from two bookcases to one and I have books stacked on the floor now. Just about everyone here is like this, buy a few technical books a year and after 25 years you have a few
 

SC68Cal

macrumors 68000
Feb 23, 2006
1,642
0
Books are OK as an introduction

Indeed. I think the OP needs to get the introduction before he can start using the manpages.

Programming is not so much about learning the language like C/C++ that is pretty straight forward the bigger thing that takes more time is lernning the "platform"

I think learning the semantic knowledge of programming is important first (loops, logic operation, etc...), then you pick up a language, then you start exploring the platform.

-- All those thousands of library calls and APIs and there is more than one of them, so many that programmers have to specialize but languages are easy enough that most people know a half dozen well and have used maybe twice that many.

Agreed.

I imagine most people get familiar with a set of APIs and libraries based on need, rather than choice. I only started using the J2EE platform because that was what had the JDBC driver so I could communicate with my databases.
With C/C++ you can start with the UNIX (POSIX) system calls and sthe standard C library then look at the C++ "STL" (standard Template Library) This is the "base" after that you have to decide what platform you are writing for and what you are going to write. and you will need to learn the graphics system for that platform. But the basics of data structures, threads and system calls has to be lerned first.

Whouldn't it be nice if you could read just one book and then know
everything you need.

Head would probably explode first.

I just moved my office and had to downsized from two bookcases to one and I have books stacked on the floor now. Just about everyone here is like this, buy a few technical books a year and after 25 years you have a few

Do you have IBM error code manuals? :D

Bookshelves are one of the greatest inventions ever made.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.