views:

725

answers:

16

I would like to know if this is really helpful to have experience with Macs on the job market for developers with B.Sc.. I have been using Windows and Linux since the start of undergrads and I'm pretty good with those in coding/using/configurating. So, I feel like it may be helpful to buy a Mac and get some little Iphone/Mac dev experience.

I would be very grateful if you could tell me from your experience and perspective of the near tech future if this is a turning point for you.

I know this ain't that clear but it's express most of my thoughts and I would like to know more experienced people.

+14  A: 

It couldn't hurt, but it's by no means essential.

Peter
+2  A: 

It is important if you are looking to land a Mac development job. Other than that, it is always good to learn new things because you never know when you might need them and what doors they will open.

Another skill in the resume can't do you any harm either.

code_burgar
+16  A: 

Anything that you can do to expand your knowledge base, your experience or your skill set is a Good Thing. Employers love to discover the person they have hired can do more for them that what they were hired for originally.

Also, that mentality of "I'd like to go and do X" (e.g. Mac/iPhone development) and doing it will yield big dividends for you.

fbrereto
thanks, this is what I was looking for... thanks to everyone too..
Phil R
It's worth noting though that with a Mac, unless you already own one, there is a certain, not-quite-small initial investment (as you have to buy at least a Mini). So the question really is whether it's worth the money or not.
Pavel Minaev
+1  A: 

While it is not bad to know how to use a mac or to learn anything. Unless you are trying to specifically get a job dealing with macs it is not necessary. The market for macs is still incredibly small especially on the business side of things. It would be useful to know how macs behave on the web as more and more development jobs deal with the internet.

RHicke
+3  A: 

Mac commercials and the media would have you believe that Macs are taking over. Its simply not true. Digging around trying to find actual stats to back this up.

Edit: Although this report seems biased and even appears to under represent linux/windows based sales (such as custom built machines which aren't really possible with osx), its the first I found and don't feel like digging. Heres the article. Basically, Macs hold 8-9% of the marketshare.

Chance
It depends on what you mean by "taking over". They are doing quite well and are much more successful than a lot of people assume if they haven't looked at the numbers since like 2004. They're not the dominant platform, but they're growing faster than any other and they've got almost half the new laptop market IIRC.
Chuck
Your comment seems to imply the only value of learning to use the Mac is one wants to develop Mac apps. Simply using it to learn another way of doing things is also a valid reason.
Bryan Oakley
+3  A: 

OS X is Unix-based, so if you do have a decent amount of Linux experience as you say, you should be able to reuse many of your Linux skills on OS X Macs.

But if you were more interested in doing Mac-specific development (Cocoa, AppleScript, etc.), then it would probably be worth your time and money to get more comfortable developing on a Mac.

Mark Rushakoff
+2  A: 

Depends on what you want do. Desktop Mac is a very small market in the software industrie. Under the skin it's a terrible mix of Mach and FreeBSD. Read the large "MacOSX Inside" Book to get the hacking shock - it's definitely not what the Mac evangelists would tell you - the system is really a confusing mix of technologies gathered for 20 years. But reading this book will give you an important inside.

And check out the "Cocoa Programming" Book, still the only serious MacOSX programming book. Learn it and have a look at Objective-C.

But if you want make money just must dive deep into the topic. I would not recommend this in general (market size to small) unless you have a few own good ideas. I mean where else can you become a multi-millionare with a pretty simple text editor "TextMate" so fast.

Shareware for MacOSX is a great way to make money.

Lothar
Why is this being down-voted?
MusiGenesis
Almost every major OS has lots of hacks under the hood.
Mauricio Scheffer
Well even at stackoverflow you have the apple fanboys.
Lothar
"it's a terrible mix of Mach and FreeBSD" is biased, and not technically true, in any case. I'm not going to down-vote this answer, because it actually does have some useful information, but it sure doesn't start out well.
Mark Bessey
No if you have a total inconsistent API with different concepts and wrappers to hold them together and exceptions when the wrappers work and why you can't do this and that - then it's not biased. Read the book and you will be enlighted what a terrible mix is.
Lothar
+1  A: 

It depends on what you want to do.

For example, wrt to writing javascript applications that are cross-platform, it would be helpful to know how to write javascript that will run on Safari, on a Mac, as there seems to be some slight differences between the Safari on a Mac and PC.

One advantage to a Mac is that you can then run the other OSs virtually within it, so that you can have one desktop to do your programming across different platforms.

So, as others mentioned, it won't hurt, and depending on the market may be helpful.

James Black
+5  A: 

It depends what you mean by experience. If you're talking about experience developing for it, then at a graduate / inexperienced level I'd say only if you want to be a Mac developer.

Other than that chances are you could use the time you'd spend doing that more effectively - most jobs are corporate (PCs, LINUX / UNIX servers), Web (primarily server side, likely to be Windows or LINUX / UNIX servers). Maybe as you pick up experience it would be something you'd look at to build broad experience, however at a graduate / recent graduate level unless you have very specialist aims in order I'd focus on:

Windows, Linux/Unix ... (big gap) ... Max OS X.

All that said what would potentially be useful is playing around with a Mac from a user perspective. Love them or hate them there are things which they do better than Windows or Linux so understanding those things and being able to bring that to the apps you design and code will be useful.

Jon Hopkins
I can vouch that in office @ my company we have 2 mac only developers, and they love their macs, and working on eclipse they are just gravy.
Jakub
I can't agree with the "only if you want to be a mac developer" position. The Mac has a unique user experience that will help broaden your horizons. It isn't necessarily the "best", just "sufficiently different". Whether you learn how to write Mac apps or how to write non-Mac apps that have to compete against Mac apps, you still come out ahead.
Bryan Oakley
@Bryan Oakley - to a degree this is fair and I'll amend. What I'd agree is useful is having some knowledge of the Mac from an end user perspective and the user experience. Learning to code Objective C and Cocoa though I'd still suggest are no more useful than any additional different language for most developers and at the graduate level of experience it's probably more critical to focus on builing a level of depth on common platforms than gaining broad experience.
Jon Hopkins
+2  A: 

While having Mac development won't directly matter unless you are going to be getting paid to do it, the Objective-C language and Cocoa frameworks are sufficiently different from what's taught in school these days that you should learn the basics of how they work for the sake of broadening your horizons. If the only object-oriented languages you've used are C++ and Java, then the idea of a message-passing metaphor may not even seem to be OO to you. Similarly, the Cocoa framework uses a lot of patterns that an experienced developer ought to be able to understand and use when appropriate. (Things like explicit reference counting, which has confused countless Windows programmers trying to get rich quick through the iPhone App store.)

The Cocoa design is quite different from what you see in other platforms. The focus on delegation and composition over subclassing, is a very different way to develop software. Well worth learning for that reason alone.
Mark Bessey
+2  A: 

When you are a student the import thing is to extend your concept knowledge. MAC doesn't adopt different basic concept then Linux or Windows...

I suggest to concentrate on basic concept!

It's "Mac" not "MAC". Mac is not an acronym or initialism.
Bryan Oakley
Very ignorant comment. The Mac Cocoa GUI and main Objective-C programming language have significant differences from other frameworks.
Andy Dent
A: 

It might help, it might not. What you should do is figure out what kind of job you want to have, and see what you can learn that will make you better at it. If you want to do cross-platform GUI development, then learning about Macs sounds great. If you just want to write web server code it's probably not that helpful, but perhaps you should bone up on the latest-and-greatest web technologies. If you're interested in robotics, see what's out there that controls robots and learn about that. Find the job or company that you're interested in, and from there figure out what skills you need to improve.

froody
+1  A: 

Even though many people seem to own Macs at home, I hardly ever see Macs in a corporate environment. The only times I see them during working hours is with graphical designers.

However, people around me seem to get iPhones via their work nowadays. Now that they can work with exchange, they are starting to become usable for businesses.

Anyway, to secure my future, I wouldn't lay all of my eggs in Apple's nest.

Wouter van Nifterick
+1  A: 

It's not necessary, but it would set you up well in terms of options.

For one thing, learning a different programming language is always healthy and broadens the set of solutions you apply even in other languages.

For another thing, knowing iPhone development gives you an option to do mobile development as a career path - I personally would say that area is going to explode over the next decade, with the iPhone probably being the most successful but then right behind would be Android and then Palm with WebOS. You can develop for any of those platforms using a Mac. Even in enterprise development, mobile development is on the increase so it would give you a leg up in getting future jobs with a company.

Kendall Helmstetter Gelner
+1  A: 

I would advise that you get experience developing for the iPhone, which has as a consequence gaining experience with using the Mac. This is useful in and of itself, as well as being a good selling point with future employers; you show initiative, a willingness to learn new things, and get an entrée to developing for the large and growing mobile app space.

Go for it.

EddieN120
+1  A: 

I would recommend getting a feel of Cocoa development in particular, for one purpose alone: the XCode and Interface Builder way of building your application, with the IBOutlet and IBAction hooking the NSView objects to a data model value in a NSController code is probably the most clear and correct Model-View-Controller development process available today. Many a blogs praise the MVC paradigm but few of the developer tools have this paradigm properly ingrained in the whole development process. Getting what MVC actually is is a though process with the full legion of the Visual Studio development trying to lure you into hooking events to actions on your forms...

The only similar approach in development tools I am aware of is ObjectWorks, but learning SmallTalk now will arguably reward fewer benefits than learning Cocoa/Objective-C.

BTW, I'm only marginally familiar with the Java/NetBeans/Eclipse stack, I'm courious if anyone can tell if they offer something in the UI development paradigm that matches the XCode/Interface Builder in the way they guide you naturarly down the right path.

Remus Rusanu