PDA

View Full Version : I want to become a software developer, need advice pls




ilogic
Nov 20, 2007, 01:43 PM
Hi Everyone,

I've been researching about becoming a software developer and everyone says different things. I would like some advice on my goals/scenario but also tell you what I want to do.

- I want to make software for mac users
- I want to make software that will help people become better, this is my passion and why i want to learn programming
- I'm not doing this for the money
- I don't want to make software for business, scientific needs etc. (not that they aren't important)
- I want to make software that will help people get in touch with their creativity, my other passion for learning
- and to create software for early child learning

With all of that said, I think I need to learn C, Objective-C, and then learn Ruby, I've been told this route would be fitting for me. Does this sound like a good path?

What are the best tools I can use with my mac to accomplish this, by best I mean, intuitive, simple and easy to use, but not scrawny in functionality.

When or how does a beginner learn about principles, structure, on developing software? Is this a very important aspect to making software or do you just get it with experience?

Also do you recommend I go to school for programming? If so does anyone have experience with school in NY/NJ Metro area? What about online degrees? Should I pay for a Linda.com type of training courses? If so which ones?

Are there any questions I should be asking myself that I'm not? What should I consider?

Thanks in advanced for all your help and advice, happy thanksgiving! :apple:



Alloye
Nov 20, 2007, 05:25 PM
If the Mac is your only target, then using Xcode Tools to create Cocoa applications with Objective-C is your best option. The only downside to this method is a somewhat steep learning curve, although I don't personally believe Cocoa is any more difficult to learn than other APIs. It's just different.

Alternatives include using Python or Ruby in place of Objective-C. You'd still use Xcode Tools but in conjunction with either the PyObjC (http://pyobjc.sourceforge.net/) or RubyCocoa (http://rubycocoa.sourceforge.net/HomePage) frameworks. These frameworks are included with Leopard and may be packaged with your app for deployment on Tiger. The downsides here include substantially lower performance relative to Objective-C as well as a certain degree of impedance mismatch between the languages and the Cocoa API. This mismatch may increase the overall difficulty level even further for someone just starting out.

Another option out there is REALbasic (http://www.realbasic.com/). I not a huge fan of it myself, but some people find it useful. It's also easier to get up to speed with than Xcode.

pilotError
Nov 20, 2007, 06:01 PM
You could probably do a C course at NYU continuing ed at night. They have a decent program. Not sure where you live though.

Once you learn C or C++, take a week and head down to the Big Nerd Ranch for Objective-C training.

http://www.bignerdranch.com

Unless your on a mission for the really fast track, then plow through some books. K&R is a good reference for C as well as the Stevens books. You can do a search on here for the recommended Objective-C books.

If you have a project in mind and your working toward a goal, that's a good thing. It will motivate you to concentrate on the parts of your project instead of wandering aimlessly.

I don't know of anyone personally that does Objective-C training in the NY/NJ area, it may exist, I just might not know about it.

ilogic
Nov 20, 2007, 06:29 PM
Thanks much for the advice, I want to stick with the Objective-C and I plan to take some classes on C at a local training school in the city...:)

Catfish_Man
Nov 21, 2007, 01:42 AM
Wow. A new programmer who's polite, coherent, and asks good questions. What a pleasant surprise :)

C/ObjC/Ruby is a great combination. They all play well together, and fill different needs. The key is getting past the initial process of learning how things work, which can take quite a while. Once you have a reasonably solid grasp of the concepts it becomes relatively simple to expand in areas that you need for the project(s) you're working on.

Taking classes is certainly a very valid way of approaching programming, but I have found that the quality and style varies immensely. At one you might find them turning out cookie-cutter java programmers, while another focuses heavily on the mathematics underlying programming, and a third emphasizes engineering practices and design. In the NY area I'm not entirely sure what's available; a friend of mine is in a software engineering major at RIT and is finding it very useful, but that's somewhat out of your way.

The path I chose is somewhat different. I took some classes, but primarily taught myself (with the periodic help of a mentor) through high school. During my first year of college I became involved in open source through the Adium project. Based on my experiences with it, I would highly recommend open source projects both as a way to expand your skills and your network of knowledgeable friends. School projects generally don't prepare you for the somewhat overwhelming reality of quarter-million line and half-million user programs.

FearedBliss
Nov 25, 2007, 04:09 PM
Me and the thread starter are sort of a like, but I am not new at programming since I been messing around with a lot of programming languages on the Windows platform for years. I recently bought a Intel Mac and I am researching on programming Objective-C with the Cocoa framework.