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

techwoman

macrumors newbie
Original poster
Nov 22, 2014
29
0
USA
At my present work place I am working on iOS apps using Objective-C and Ruby and am quite fluent in that now. I gave 3 interviews and even though during the initial HR chat they mentioned I can use any object oriented language, but during interview the interviewer asked me to code in Java or C++ and was not much happy when I used Objective-C.

I know I should be knowing and should be flexible with other languages and have plans to revise and improve my Java knowledge to start some Android, but might not do it until next couple of months (until I clear my database and algo basics and some more of iOS for interviews).

Anyone else had similar issue before? Any suggestions?
 
At my present work place I am working on iOS apps using Objective-C and Ruby and am quite fluent in that now. I gave 3 interviews and even though during the initial HR chat they mentioned I can use any object oriented language, but during interview the interviewer asked me to code in Java or C++ and was not much happy when I used Objective-C.

I know I should be knowing and should be flexible with other languages and have plans to revise and improve my Java knowledge to start some Android, but might not do it until next couple of months (until I clear my database and algo basics and some more of iOS for interviews).

Anyone else had similar issue before? Any suggestions?

There's a movement (not sure how big) away from "full stack" developers and it's moving towards specialists. It's hard to know if this will stay or not, but I think it's here to stay.

Back in the old days, programmers did all kinds of work, network cables, security, database, etc...

Years ago, and still today, you see job descriptions that are a list of everything the shop uses.

As software becomes more advanced, this will change like a Dr vs a specialist because some things are just too complex.

Anyone that knows everything, usually knows a little about a lot vs a lot about a little.

The world doesn't need general computer programmers, we need advanced programmers.

Any shop that want's to know your skill at language syntax might not be the place you want to be. Language syntax is like memorizing API parameters... why would you memorize something that comes up in the editor automatically?

The real skill doesn't come from doing something a machine can do better.

Learn to do what machines can't. If a shop doesn't see that, find a better shop.
 
There's a movement (not sure how big) away from "full stack" developers and it's moving towards specialists. It's hard to know if this will stay or not, but I think it's here to stay.

Back in the old days, programmers did all kinds of work, network cables, security, database, etc...

Years ago, and still today, you see job descriptions that are a list of everything the shop uses.

As software becomes more advanced, this will change like a Dr vs a specialist because some things are just too complex.

Anyone that knows everything, usually knows a little about a lot vs a lot about a little.

The world doesn't need general computer programmers, we need advanced programmers.

Any shop that want's to know your skill at language syntax might not be the place you want to be. Language syntax is like memorizing API parameters... why would you memorize something that comes up in the editor automatically?

The real skill doesn't come from doing something a machine can do better.

Learn to do what machines can't. If a shop doesn't see that, find a better shop.

Thanks KarlJay!

I am new to US tech industry cultures and the company am working for is my first one in here. Presently I am the one highlighted in your reply above. I always wanted to be an expert in mobile app dev and was hired for the same, but the biggest mistake I made was on relying the company projects to learn more and not learning much on my own. I was hardly assigned any work related to mobile dev and more of an intern level work (non mobile app related) since there were and are no interns. I learnt 4 diff programming languages at work, but neither of them I could expert on. I had to learn it within very less time like about 2 days and all I could learn was a slice of it to get the job done.

Now am in a confused and difficult position as to where should I start preparing from for the interviews. I have to become an expert in one of the language (preferably objective-c since I still want to go ahead in mobile app dev) and concentrate on my algorithms and data structures knowledge as well.

About being specialist, even I myself have noticed the movement but not everywhere still. Jobs related to Java still ask for lot of things, but jobs related to mobile app either as for iOS and Android knowledge or the position itself is just for iOS or Android.
 
Although Objective-C is an OOP language, it's lacking quite a few OOP mechanisms ( e.g. abstract classes and method, method overloading, etc. ). Because of that, I'd never ask someone to write in Objective-C, except if the position is for an iOS / OSX Developer. Java is a much better language for testing OOP knowledge.
 
Thanks KarlJay!

I am new to US tech industry cultures and the company am working for is my first one in here. Presently I am the one highlighted in your reply above. I always wanted to be an expert in mobile app dev and was hired for the same, but the biggest mistake I made was on relying the company projects to learn more and not learning much on my own. I was hardly assigned any work related to mobile dev and more of an intern level work (non mobile app related) since there were and are no interns. I learnt 4 diff programming languages at work, but neither of them I could expert on. I had to learn it within very less time like about 2 days and all I could learn was a slice of it to get the job done.

Now am in a confused and difficult position as to where should I start preparing from for the interviews. I have to become an expert in one of the language (preferably objective-c since I still want to go ahead in mobile app dev) and concentrate on my algorithms and data structures knowledge as well.

About being specialist, even I myself have noticed the movement but not everywhere still. Jobs related to Java still ask for lot of things, but jobs related to mobile app either as for iOS and Android knowledge or the position itself is just for iOS or Android.

Objective C is not the easiest language to learn, I find it a bit odd compared to some others, but that's not too big of a deal. Mobile dev is much more than just the language. Learning all the tools (Xcode, IB, and everything else) is time consuming.

This supports the point of focusing on one area like mobile development on iOS and not spreading yourself too thin.

I'd grab the Big Nerd Ranch iOS and ObjC books and go thru the whole thing several times and then start making apps.

Even within the world of iOS development, you have games, business, social, utility, ...
 
I always use Python style pseudo-code in interviews. If you don't know Python, you should learn it (only takes 2-3 days.) Once you learn Python, every other language becomes irritating for all their stupid quirks, crummy libraries, and lack of functionality.
 
Objective C is not the easiest language to learn, I find it a bit odd compared to some others, but that's not too big of a deal. Mobile dev is much more than just the language. Learning all the tools (Xcode, IB, and everything else) is time consuming.

This supports the point of focusing on one area like mobile development on iOS and not spreading yourself too thin.

I'd grab the Big Nerd Ranch iOS and ObjC books and go thru the whole thing several times and then start making apps.

Even within the world of iOS development, you have games, business, social, utility, ...

Even I found Objective C hard initially when I came from other languages to it. Now I like it as since I enjoy more working on mobile apps, than writing a server code. :)

I got the Big Nerd Ranch iOS book already, need a book for Objective C. Mostly will go for Big Nerd Ranch or may be Programming in Objective C by Stephen Kochan. For now, I have decided to stick with Objective C and learn it in depth. Have started noting down ideas for some small apps to start off with.

But before everything I need to refresh and clear my basics on data structures and algo. Most of the companies I interviewed asked to code problems on data structures. So looks like along with iOS and objective C, I would need a good handle on DS and algo for my job switch.

----------

Although Objective-C is an OOP language, it's lacking quite a few OOP mechanisms ( e.g. abstract classes and method, method overloading, etc. ). Because of that, I'd never ask someone to write in Objective-C, except if the position is for an iOS / OSX Developer. Java is a much better language for testing OOP knowledge.

Yeah Objective C lacks some of the OOPs mechanisms. I want to continue as a iOS/OSX developer. But since I was not doing enjoying my work here, my friends suggested me to switch to any IT position I get and then switch back to iOS dev. So I went for other positions interviews. However between C++ and Java, I would personally go for Java even I have more experience in C++ than Java.

----------

I always use Python style pseudo-code in interviews. If you don't know Python, you should learn it (only takes 2-3 days.) Once you learn Python, every other language becomes irritating for all their stupid quirks, crummy libraries, and lack of functionality.

I feel Python is more like Ruby. I am doing some of Ruby coding right now.
 
I got the Big Nerd Ranch iOS book already, need a book for Objective C. Mostly will go for Big Nerd Ranch or may be Programming in Objective C by Stephen Kochan. For now, I have decided to stick with Objective C and learn it in depth. Have started noting down ideas for some small apps to start off with.
I never bought the BNR books. The Kochan oeuvre is good though. You might also consider the online course of bitfountain. I have done a lot of teaching in the past and can only recommend their iOS course. If you are lucky you can grab a stack social deal on them.
 
I never bought the BNR books. The Kochan oeuvre is good though. You might also consider the online course of bitfountain. I have done a lot of teaching in the past and can only recommend their iOS course. If you are lucky you can grab a stack social deal on them.

I got Kochan's ebook today from a friend so will start with it. I did take a course while in school and had made some school projects in iOS, but was about 3 years back + did few months iOS coding at work too. I will surely take a look at the bitfountain courses. Thanks for sharing!
 
I never bought the BNR books. The Kochan oeuvre is good though. You might also consider the online course of bitfountain. I have done a lot of teaching in the past and can only recommend their iOS course. If you are lucky you can grab a stack social deal on them.
I second your recommendation of the bitfountain course on iOS development (purchase on stacksocial) as well as Kochan's book. The bitfountain course is what got me in to programming.
 
I second your recommendation of the bitfountain course on iOS development (purchase on stacksocial) as well as Kochan's book. The bitfountain course is what got me in to programming.

will you buy their android course, I am a bit in doubt
 
will you buy their android course, I am a bit in doubt
I will say that I was very tempted, but I have decided to focus on database stuff right now. I learned how to implement Parse for things like databases, push notifications, etc. and I would like how to become completely capable of doing this stuff all by myself. I think trying to take on Android at the same time would just be putting too much on my plate right now. I might buy it in the future though, I would love to learn Java eventually.
 
I will say that I was very tempted, but I have decided to focus on database stuff right now. I learned how to implement Parse for things like databases, push notifications, etc. and I would like how to become completely capable of doing this stuff all by myself. I think trying to take on Android at the same time would just be putting too much on my plate right now. I might buy it in the future though, I would love to learn Java eventually.

I am having the same thoughts. I would like to learn it but one can not keep on learning. I did invest in the design course though.
 
At my present work place I am working on iOS apps using Objective-C and Ruby and am quite fluent in that now. I gave 3 interviews and even though during the initial HR chat they mentioned I can use any object oriented language, but during interview the interviewer asked me to code in Java or C++ and was not much happy when I used Objective-C.

I know I should be knowing and should be flexible with other languages and have plans to revise and improve my Java knowledge to start some Android, but might not do it until next couple of months (until I clear my database and algo basics and some more of iOS for interviews).

Anyone else had similar issue before? Any suggestions?

First, the HR person was probably clueless about languages.

Didn't the job posting specify what languages the job was looking for? It sounds odd if it didn't. I wouldn't apply to a job not knowing what languages they used. That's a BIG thing. I'm a very experienced Java and Objective-C developer, but if the job would be developing in, for example, PhP, I would not take the job. I'm a senior Java developer, not a senior PhP developer right out the gate. If this was entry level, that's different.
 
There's a movement (not sure how big) away from "full stack" developers and it's moving towards specialists. It's hard to know if this will stay or not, but I think it's here to stay.

I wish more people would move away from full stack. It's just too much to know. You never get a chance to get really good at something because you always have to hop to something else.
 
Didn't the job posting specify what languages the job was looking for? It sounds odd if it didn't. I wouldn't apply to a job not knowing what languages they used. That's a BIG thing. I'm a very experienced Java and Objective-C developer, but if the job would be developing in, for example, PhP, I would not take the job. I'm a senior Java developer, not a senior PhP developer right out the gate. If this was entry level, that's different.

That’s what confuse[s|d] me. I’ve never seen a position offered where the specifics/expectations weren’t clearly indicated in the description.

If they’re not looking for iOS developers, then they probably don’t care about your proficiency with Obj-C (unless it’s some of kind OTJ training type option where they’re interested in any fundamentals you might have).

For hoots, I just hit up the careers sections on SO, and _every_ developer position has clear requirements as the languages, frameworks, platforms.


I wish more people would move away from full stack. It's just too much to know. You never get a chance to get really good at something because you always have to hop to something else.

Yeah, plus you get severe efficiency dilution from constantly changing gears (especially int he DevOps type roles). In my [current] case, not only am I doing “full stack”, but I’m also switching _stacks_ all the time. Makes you _crazy_ :eek:
 
Objective C was a very hard language to learn. Coming from a beginner that had no experience. But the plus side of it was that learn other language was very easy

I started learning C Sharp and it was so easy to learn only took me a week.
 
Objective C was a very hard language to learn.

Not really. It's about average difficulty. Basic, Logo and Squeak might be easier. And assembly language, including hand-coding VLIW/DSP ops, might be considered a lot harder than anything in the procedural C-like-syntax family by many (it's said to be one of the 2nd year weed-them-out courses even at places with competitive admissions such as Stanford U.)

Normally, the first programming language that one learns is the hardest. And it's easier to learn a higher level language after learning a lower level one.

Obj C is one of the lower level high-level languages (given that one can get at raw unmanaged or mismanaged memory and data types). So C# should seem easier as a subsequent language.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.