(HOBBY) I own a Macbook Pro and iPod Touch so developing iPhone/iPod/iPad apps seems like a logical thing to do in order to get some experience in the programming field. Besides I want to write a new application similar to the Capsuleer (Character skills monitor app for EVE Online MMO) but with more features. It's something I'd love to have on my own iPod Touch and I am sure other people will welcome a new EVE Online app for their iPhone or iPod Touch.
(CAREER) I want to learn ASP.NET (and possibly Silverlight later on) for my potential future job. I plan to work in the .NET field, so it's a good idea for me to start learning C# and ASP.NET ASAP.
Is it a good idea to learn completely unrelated technologies at the same time? Or would it be better to learn one thing at a time? Objective-C first, and ASP.NET second. Or vice versa.
Thanks, Sahat
UPDATE 1: I am reading both ASP.NET 4.0 and Objective-C 2.0 books right now and let me tell it's going great so far! Diversity is probably what makes it so fun and less dry. While I am on the bus to Manhattan in the morning I learn about ASP.NET and Visual Web Developer 2010. While I am in school I am programming a robot in C++ for the Summer Robotics Workshop. And when I am heading back home I am learning Objective-C! I was really scared at first to learn 2 completely unrelated programming languages, but as it turns out it's not too bad!开发者_运维问答
It depends on your comfort level with languages in general. If you have decent experience, then moving from one language to another should eventually get to be very fluid. As an example, I'm a .NET developer during the day, but usually mess around with Objective-C and Ruby at night. I think the only downside is being frustrated with each language (for example, "why can't c# do this thing that ruby can do?") But in general, it is pretty easy to isolate the two, especially if you're good at compartmentalizing things in general.
Personally, I'd say go for it. Immersion in a single language can get you far, but I think seeing multiple languages and platforms regularly makes you a better programmer in general. It will show you different approaches to the same problem, and will teach you how to decide what tools to use for a particular problem. Plus, it beefs up the resume. Don't discount the power of Objective-C being on that piece of paper, because there are good careers to be had there. And as the Mac platform becomes more and more popular, many companies will begin to port .NET desktop apps to OSX, and knowing both could be an invaluable asset.
Since you are keen on developing for iphone. Focus on objective C. Think of it as C with a decent Object Oriented extension. You will learn C and object oriented. And it is apple friendly. Career wise it will be pretty timely resume stuffer to have an Iphone app in your portfolio.
On the other hand I recommend you learn how to design programs first.
The time you spend will be repayed in your first project.
You will be leveraging it from then on. It is really the best route.
To learn that.. go here: http://www.htdp.org They have a great free downloadable dev environment and tons of material online. They are the best thing since sliced bread. You can work through their stuff really fast and dont waste time caught up in syntax irrelevance.
That's pretty much my coding life in a nutshell, so it's quite possible and practical. I learned .NET on the job and taught myself Objective-C.
You didn't mention if you have any prior programming experience, and that changes the advice drastically. If you have no understanding of object-oriented development or programming in general, I would recommend staying the hell away from O-C for awhile. I wasted many high school hours trying to learn Cocoa working off of one semester of C++ programming. When I got into college and objects were the norm, Cocoa made much more sense.
Once you have a little understanding of object-oriented programming, you could even teach yourself the basics of Cocoa...without writing in Cocoa. Cocoa apps are written in a structure called Model-View-Controller (MVC), and Visual Studio has a very popular and well-supported MVC template for writing C# applications.
Good luck!
Objective-C on iPhone and C# on ASP.NET are very different, but there are lots of similarities too:
- Both options have comprehensive Integrated Development Environments with debugger and other tools.
- Both support modern program design paradigms like Model-View-Controller.
- Both have online documentation and lots of sample code.
- Both systems have large numbers of proponents, especially on StackOverflow :-)
- Both languages have C-like syntax - curly braces, etc.
The biggest difference, in my opinion, is the output. iPhone OS will give you a binary which requires proper packaging to be able to be used by another person. Outside of ad-hoc deployment, actually getting your app to other people has some hoops to jump through and some $$$ to pay.
ASP.NET can be used by anyone you give access to - hosted on your server, etc.
To be able to compare and contrast, its often possible to write the same program in two different systems to be able to see how they differ. Due to the form factor and aforementioned iPhone deployment, this is harder.
As a learning exercise, I would go ahead and do both in parallel, sure, but understand if you want to go all the way to publishing your code, each option is very different.
精彩评论