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

FuuFuu

macrumors regular
Original poster
Jul 8, 2008
226
0
Roselle
Hello i currently finished freshmen in college. so far i've touched on HTML, javascript, C and C++ and i'm very familiar with JAVA. I just wanted to ask the question for people who have left college and pursuing in any computer languaged related jobs, what language helped you the most? what languages do you recommend i learn? i'm hoping to become a computer analyst, software programming, a field somewhere there.

I really admire Apple and hope to work there ^^.
 

Monkaaay

macrumors 6502
Jun 19, 2006
258
0
Richmond, VA
The platforms that have been in high demand over the last 5 years are Java and .NET. .NET has been growing at a much quicker rate in the job market. Simple Monster.com searches can show you what employers are after. I started with Java about 7 years ago and moved to .NET shortly after. My career has been fueled by .NET and just recently I've been using Java again.
 

wrldwzrd89

macrumors G5
Jun 6, 2003
12,110
77
Solon, OH
C# and .NET in general will be a help, if you're looking for programming employment. There's a fair number of companies using .NET as the basis for their Windows infrastructure.

Also, if web programming interests you at all, learn PHP.
 

liptonlover

macrumors 6502a
Mar 13, 2008
989
0
you said you want to work with apple if possible, so...

learn C... NOT C++ (unless you want to get into gaming and don't mind the extra work) http://www.cprogramming.com/

learn objective C with Cocoa... http://www.cocoalab.com/BecomeAnXcoder.pdf

If you learn C with the above website, and learn basic objective C and Cocoa with the second one, that will give you a good start. Doing those made me feel a lot better about the learning process and what would come next.

I would tell you my bookmarked cocoa websites, but a)you could find them through google if you want, and b)there's like 20 of them so...

After those two links, I bought cocoa programming for mac os x by aaron hillgasse. I can't say it's the BEST book ever, but it's the best in the Cocoa beginners area. It has about 35-40 chapters, and each one is on a different topic so you get a nice spread of knowledge, and here's what I like best. I don't work through the book because I... can't. I can't stand it because it's too boring. So what I do instead, is when I go to the computer to learn some more cocoa I bring up some of my links, or I go through the book, or I look at some application and find an interesting topic to learn about. With the mailing list, this website, my other websites, the apple documentation and the book, I usually do pretty well.

So if you've made it through my long post, good luck!
 

Monkaaay

macrumors 6502
Jun 19, 2006
258
0
Richmond, VA
Don't overlook ASP.NET as a web platform. There's just as much, if not more, development going on in ASP.NET than Windows development these days. That technology is very refined and I've enjoyed developing on it for the last few years.
 

FuuFuu

macrumors regular
Original poster
Jul 8, 2008
226
0
Roselle
C#/.NET if corporate middleware is your dream job.

C/C++ if you actually want to do something cool.

Thanks but if you mean cool as in video gaming, i'm not interested. i don't like the idea of helping out video games for the rest of my career, it just feels unaccomplished. i'm sorry if it offends anyone but i couldn't live with myself.

i'm hoping to use computer language to develop programs or to improve them.
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
At this point you don't need to become an expert in any particular language or paradigm. You should learn about as many different things as you can. It's fine to be a Java programmer or a C# programmer, but you're much more versatile if you're a programmer/engineer that is willing and able to learn whatever tools are necessary for a project.

Learn one of: (Object-Oriented procedural)
C#
Java
Objective-C
C++ (one of the others would be preferred)

Learn one of: (Procedural)
C
Fortran
ASM (This is lower level, perhaps pick a RISC ISA like MIPS)

Learn one of: (high-level scripting)
perl
ruby
python

Learn one of: (Functional)
Lisp
Haskell
Erlang

Learn a few of: (Grab-bag)
SQL
Lexx/Yac
JavaScript
shell (pick one)
Verilog or VHDL
Prolog
There's thousands of others to choose from, as well

If you've at least tasted something from every paradigm and "get it" to some extent, when you need to step in to a new situation and use a new tool you won't be starting from scratch. The syntax of a language is far less important than understanding how things are expressed in different models. Once you understand what a class is and how it behaves, it's pretty easy to find the syntax for declaring one in any OO language and implement it. If you don't know what an Object is or why you might want to use it, you're going to have a much more difficult time.

Individual language syntax is not worth being an expert on. What does come in handy for many newer languages is being very familiar with their libraries/frameworks/etc. I'm thinking specifically of Java and C#, with libraries that can easily overwhelm. It is worth familiarizing yourself with one or both of these, but it's probably even better to learn how to really read documentation.

Something that surprises me on this board is how often things are spelled out in documentation (perhaps not clearly) that people don't get. You need to learn to think like a programmer (and perhaps a bit like a technical writer) and become adept at seeking out, reading, and absorbing API documentation, language syntax documentation, code samples, etc. If you have these skills, even if you are tossed into a situation that requires a lot of interaction with an API you are unfamiliar with, you'll be able to spend some time reading and at least be able to get started.

Since you have access to (hopefully) some very smart people in your professors, you might ask them what their pet/favorite language or paradigm for programming is. If you start learning about that, then you have someone to talk to about it, and you might have a chance to establish a relationship with them which can come in handy for all sorts of things (references, getting you in to a closed section of one of their courses, someone smart to bounce ideas off of, etc.).

Good luck!

-Lee
 

FuuFuu

macrumors regular
Original poster
Jul 8, 2008
226
0
Roselle
At this point you don't need to become an expert in any particular language or paradigm. You should learn about as many different things as you can. It's fine to be a Java programmer or a C# programmer, but you're much more versatile if you're a programmer/engineer that is willing and able to learn whatever tools are necessary for a project.

Learn one of: (Object-Oriented procedural)
C#
Java
Objective-C
C++ (one of the others would be preferred)

Learn one of: (Procedural)
C
Fortran
ASM (This is lower level, perhaps pick a RISC ISA like MIPS)

Learn one of: (high-level scripting)
perl
ruby
python

Learn one of: (Functional)
Lisp
Haskell
Erlang

Learn a few of: (Grab-bag)
SQL
Lexx/Yac
JavaScript
shell (pick one)
Verilog or VHDL
Prolog
There's thousands of others to choose from, as well

If you've at least tasted something from every paradigm and "get it" to some extent, when you need to step in to a new situation and use a new tool you won't be starting from scratch. The syntax of a language is far less important than understanding how things are expressed in different models. Once you understand what a class is and how it behaves, it's pretty easy to find the syntax for declaring one in any OO language and implement it. If you don't know what an Object is or why you might want to use it, you're going to have a much more difficult time.

Individual language syntax is not worth being an expert on. What does come in handy for many newer languages is being very familiar with their libraries/frameworks/etc. I'm thinking specifically of Java and C#, with libraries that can easily overwhelm. It is worth familiarizing yourself with one or both of these, but it's probably even better to learn how to really read documentation.

Something that surprises me on this board is how often things are spelled out in documentation (perhaps not clearly) that people don't get. You need to learn to think like a programmer (and perhaps a bit like a technical writer) and become adept at seeking out, reading, and absorbing API documentation, language syntax documentation, code samples, etc. If you have these skills, even if you are tossed into a situation that requires a lot of interaction with an API you are unfamiliar with, you'll be able to spend some time reading and at least be able to get started.

Since you have access to (hopefully) some very smart people in your professors, you might ask them what their pet/favorite language or paradigm for programming is. If you start learning about that, then you have someone to talk to about it, and you might have a chance to establish a relationship with them which can come in handy for all sorts of things (references, getting you in to a closed section of one of their courses, someone smart to bounce ideas off of, etc.).

Good luck!

-Lee

Thank you very much, your post helped me a lot
 

jimothyGator

macrumors 6502
Jun 12, 2008
411
1,355
Atlanta, GA
It depends

As you can tell by the replies, it depends so much on what you want to do. I've made a living as a Java developer for the past decade plus, and the market for Java developers is still very healthy. Will that market contract eventually? Certainly, but it's not yet apparent what will replace it. While C#/.Net could be viewed as a "competitor" to Java, I don't think you'll see companies moving from Java to .Net, because that would also require a migration to Microsoft, from the commonly deployed Unix or Linux servers. In other words, Microsoft shops will continue to use .Net, and Linux/Unix shops will continue to use Java, for the foreseeable future. Either or both will eventually be superseded, but one won't replace the other en masse.

The Mac makes a great development environment for server side Java applications; the so called "enterprise" development. Perhaps less so in the desktop arena, but frankly I'm unimpressed with Java on the desktop, as is the industry at large. Obviously, if you're looking to go the .Net route, you're going to need to run Windows.

So, enterprise development pays well, and offers a lot of employment opportunities, and it's how I've made a good living for the past decade. But I'll let you in on a little secret: It's not always the most satisfying work. So, I'm teaching myself Cocoa and Objective-C programming, as well as Python and Ruby. The former pair is, of course, to open the door to Mac and iPhone development, while the latter is if I want to do other web development, for which Java is overkill. And, both Ruby and Python can be used for Cocoa development, though Python appears to be more popular than Ruby in this area.

But mainly, it's fun and useful to learn new languages and frameworks. Learning Cocoa can make me a better Java developer at my day job. Likewise, I use Python to write one-off scripts for work. The only problem is, the day job consumes so much of my time, that time for tinkering with other languages is limited, so it'll be some time before I'm half as proficient in these other languages as I am in Java.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.