Learn Programming?

jer446

macrumors 6502a
Original poster
Dec 28, 2004
826
0
I call myself a power user, i am able to pick up things pretty quickly, and am good at learning things. I really would love to learn how to program, just so i have another skill under my belt, and maybe could get a job one summer. I am in highschool, is it to late to learn? What is the most beneficial language? I am in electronics, and next year will be coding in basicx. Where can i learn to program? Is there any certifications i can get once i learn to prove i know my stuff, just another thing for college. I am willing to pay for lessons if i have to.
 

jer446

macrumors 6502a
Original poster
Dec 28, 2004
826
0
i would also like to start with a language that isnt to hard to pick up, that way i wont be discouraged to learn new languages. ALso if it is posssible to have a language tha works on mac and windows, that way if im ever looking for a job, im not limited to mac or pc.
 

jeremy.king

macrumors 603
Jul 23, 2002
5,478
1
Fuquay Varina, NC
If you are looking for something career related (eventually) and cross-platform. Look no further than Java. Although I wouldn't bother if you are looking to develop desktop applications, they still haven't seemed to get it right yet...

For someone who is quick to learn, I am surprised you don't know where to go to learn how to code. Anywho, heres a few options for you to consider.

Local college/university
Technical school (IIT, Devry, etc.)
Online course
A book!

It really all depends on your learning style and commitment - not to mention available funds.
 

rinseout

macrumors regular
Jan 20, 2004
160
0
The only way to learn how to program is to write programs. There are plenty of free books (see here for books on C++, Java, and Python) that come complete with exercises to try. Your mac comes with pretty much everything you need; just install the Developer's tools and you're good to go.
 

macbaseball

macrumors 6502a
Feb 27, 2005
988
0
Northern California
rinseout said:
The only way to learn how to program is to write programs. There are plenty of free books (see here for books on C++, Java, and Python) that come complete with exercises to try. Your mac comes with pretty much everything you need; just install the Developer's tools and you're good to go.
Thanks for that link. I'm going to try to learn also this summer...
 

jer446

macrumors 6502a
Original poster
Dec 28, 2004
826
0
ok i will look into it. So your saying java is the best to learn, as it is the most beneficial? What type of programs do you make with it? I dont think i want to be a software programmer, but programming is beneficial in many different careers, as i might want to be an engineer.
 

rinseout

macrumors regular
Jan 20, 2004
160
0
jer446 said:
ok i will look into it. So your saying java is the best to learn, as it is the most beneficial? What type of programs do you make with it? I dont think i want to be a software programmer, but programming is beneficial in many different careers, as i might want to be an engineer.
all programs count as software, even if all your program does is think for a long time and then spits some numbers into a file (my speciality).
 

Mitthrawnuruodo

Moderator emeritus
Mar 10, 2004
13,591
141
Bergen, Norway
Java is the best language to start with if you want to learn proper OO programming. That was the first programming language I learned when in College, and it has a very nice learning curve. Later we "advanced" into C++, and the transition was very easy with basic (no pun intended) Java skills...

I also have heard good things about Python, and if and when I find time to learn another programming language, Python is at the top of my list.
 

cube

macrumors P6
May 10, 2004
16,436
4,447
Concentrate on the concepts first. Get this book The programming environment they use has teaching modes (the development used to be at Rice University, but now it is distributed among several other schools).

This book is available for free online here. If you look there, you'll see that there are even free workshops for your teachers!

The software is available for Windows, OSX, Darwin, Linux, FreeBSD and Solaris. Probably it still works with other Unixen if you compile it yourself (but I'm not sure, as the compiler now also includes native code generation, not just bytecodes. Although it could be that other platforms still work, but just do not support this feature). I used to run it on IRIX.
 

jer446

macrumors 6502a
Original poster
Dec 28, 2004
826
0
is there any way i can take like an online course, so i get certified? That way i can move at my own pace whenever i have time, and at the end i will have something to show for it.
 

jobutex

macrumors member
Mar 19, 2004
41
0
Arlington, TX
kingjr3 said:
http://java.sun.com/learning/index.html

Then go after your Sun certified programmer when you are ready. Difficult test, but helps the resume.

Edit: whoopsy...same link as above but leaving it to hammer it home ;)
Be sure and brush up on your Hindi, too, because programming jobs are becoming really, really scarce outside of India, China, *slavia, Ireland, etc. I would recommend going into network, system administration, or storage for a job in I/T. Scripting languages like Perl, Python, and Ruby are much more of an asset in these situations.

IMHO, if you really want to learn how to program, skip Java. You have to deal with too much of the interface programming, unless you're doing strictly command line stuff, and Java isn't well suited for that. Learn Perl, Python, or get the books "A Book on C" or "C by Dissection" by Kelly and Pohl. Excellent books on C programming for the beginner.

If you just want to learn to program the Mac for fun, get "Programming in Objective-C" and "Cocoa Pogramming for Mac OS X." That will introduce you to object oriented programming and programming specifically for the Mac.

Why do I not like Java? It's closed source, meaning its future direction is dictated by Sun, who doesn't have a really good track record at a lot of other projects.
 

mwpeters8182

macrumors 6502
Apr 16, 2003
411
0
Boston, MA
Depending on what you want to do, there's a variety of languages to learn. I'm partial to perl, but that's because I see it a lot in scientific stuff. It's pretty easy to pick up, and it's got some nice features.

I would recommend testing out a bunch of languages, compilers are free for most, good luck.

MP
 

BlackDan

macrumors 6502
Aug 20, 2004
253
1
Belgium
Don't do Java. PLEASE.

Learn C/C++. No matter what everyone is saying there's still a performance issue with Java AND ANSI C/C++ is the most commonly used language IMO. Also I think C++ is easier to learn. The idea of Java is great, being platform-independent and all, but I don't think it's the best place to start.







or you could immediately start with X86 assembler :D Just kidding
 

mrzeve

macrumors 6502a
Jan 25, 2005
614
1
Im in the same situation as the guy who started this thread.

I know how to program in Visual Basic (yeah-program =\) but I want to learn how to make cross platform applications. I dont mean I want to learn 2 different lanaguages, one for windows and one for Mac. I want 1 app, when after being recomplied, will run on the other OS. I'd like to program them all on my Mac though. Ive installed the dev tools.

I dont know which language to use, and where to learn it. The reason for this is because I really NEED a language that lets you code will putting together the interface, like Visual Basic does. Ive tried QT for Mac but its a trial and I cant afford something like that.

Any recommendations?
 

mwpeters8182

macrumors 6502
Apr 16, 2003
411
0
Boston, MA
What kind of interface do you need to use? Basic menus and stuff, or something more advanced? Perl/Tk is an option, as well as Java. If you're doing stuff on windows you could use xwin32 to do X11 stuff (though i don't think that's free).

MP
 

mrzeve

macrumors 6502a
Jan 25, 2005
614
1
What I mean by interface is basically just the eye candy of the program. Like the interface of iTunes. I dont want a program that runs by command line or something like that.

Would a picture of a program that I made in windows help you in understanding what I want?



Not the same thing obviously - but I think you can get what I mean now.

BTW, Im pretty fluent in PHP and MySql if that would help in anything.
 

macbaseball

macrumors 6502a
Feb 27, 2005
988
0
Northern California
I'm a bit confused: Should I learn Java or Cocoa. They both seem to be useful, as I could make either widgets or applications.

Also, depending on the one i pick, what would be the best book to buy. I looked at tht earlier post, and I went to the site yesterday. I was about to print it out when I noticed it was 1,127 pages. :eek:

I decided I need to buy a book...
 

plinden

macrumors 68040
Apr 8, 2004
3,969
3
BlackDan said:
Don't do Java. PLEASE.

Learn C/C++. No matter what everyone is saying there's still a performance issue with Java AND ANSI C/C++ is the most commonly used language IMO. Also I think C++ is easier to learn. The idea of Java is great, being platform-independent and all, but I don't think it's the best place to start.
There shouldn't be any issue with performance with a properly written Java program - yes, even the most efficient Java program is slightly slower than the most efficient one written in C/C++, but it shouldn't be any more than 5-10% difference in runtime, if you don't take into account the time to load the virtual machine, which only takes a couple of seconds anyway, which isn't an issue with long running applications.

Unfortunately lots of people come into Java and use things like List.indexOf or String.charAt without knowing what they're doing, or forget to initialize their Arrays or Maps to the correct size, and find that their program runs like a dog with three legs. On the other hand, lots of people come into C/C++ without knowing enough about handling memory allocation.

For instance, a colleague of mine wrote a program to parse a really large XML file (several 100 MBytes and tens of thousands of entries) that took about 2 minutes just to start. I rewrote it to take less than 5 seconds to start, because unlike him I knew how to initialize the data structures, and also realized that you didn't actually need access to all the data and only parsed (and cached) the individual XML entries when they were requested by something the user did.

Another for instance - a customer of ours wrote a C++ extension to some of our server software and started screaming blue murder when our servers started core dumping regurlarly, and refused to accept that the problem was in their code. Eventually they let us see the code and within minutes our C++ guys were able to point out three major memory leaks in a 100 line program.

Anyway, what language to learn depends on what you want to do. For webapps, Java/JSP or .NET/.ASP are the two defacto standards - except that Java/JSP is cross-platform (our webmail software runs on Windows, Linux, Solaris, AIX and HPUX without our having to modify anything), but if you're thinking of doing engineering, C/C++ probably is the best.
 

Nuc

macrumors 6502a
Jan 20, 2003
798
6
TN
Question???

Ok I've programmed in Fortran (not very efficiently). However, if I were to code in obj-c how does these to compare... I've always understood that fortran is more for engineers (which I am) however what kind of comparison is this to obj-c? I'm looking to possibly write programs (more or less modeling e.g. atmospheric transport) which requires numerical integration and such.

What do you guys suggest...

Nuc