Flutterby™! : MV iOS

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics


2015-09-21 13:25:29.702003+00 by Dan Lyke 6 comments

Minimum Viable iOS Engineer. Some thoughts on the proliferation of APIs, especially in the age of programming as tying obscure blocks of third party functionality together.

[ related topics: Software Engineering ]

comments in descending chronological order (reverse):

#Comment Re: MV iOS made: 2015-09-22 18:43:34.86148+00 by: meuon [edit history]

"any recruiter or HR minion with enough knowledge to accurately assess the abilities of a programmer would make more money being a programmer themselves."

True enough, although a good established recruiter makes a lot of money. Those are rare. Geek/IT recruiters that seem to contacts me are usually attractive females that are barely buzzword compliant.

Todays email: "Do you SQL? I have 2 DBA job's I'd like to talk to you about".

#Comment Re: MV iOS made: 2015-09-21 19:56:01.939593+00 by: Jack William Bell [edit history]

Sorry, wasn't accusing you of wanting to specialize. More of a general statement aimed at those who think it is a good idea. (A camp I do not and did not think you fall into.)

There is the ongoing issue of keyword matching in resumes compared to what really matters in a candidate. I think the problem there is simple: any recruiter or HR minion with enough knowledge to accurately assess the abilities of a programmer would make more money being a programmer themselves.

#Comment Re: MV iOS made: 2015-09-21 18:40:36.202662+00 by: Dan Lyke

Oh, I don't want to specialize. I want to be building knowledge, not tying myself into things I'm going to have to unlearn in a year or two.

Which is why I think it's time to be thinking more about broader subject matter than caring too much about what the next technology to implement that is. Even though I love those technology minutiae.

#Comment Re: MV iOS made: 2015-09-21 16:44:07.045352+00 by: Jack William Bell

Yeah, but the other side of that coin is looking for a job with a specialist resume where the arcane API in question is no longer a marketable skill. Sure, there are still jobs out there for RPG II developers and PIKE gurus. But how many?

If you really do want to specialize, go for something valuable to banks and big corps with long lead times on technology change; like COBOL or SAP. (Or even Java and Oracle.) But specializing in some specific area of a volatile technology like mobile is pretty damn stupid IMHO.

#Comment Re: MV iOS made: 2015-09-21 16:00:08.257323+00 by: Dan Lyke

Yeah, I think the challenge is: How does one demonstrate generalist ability? In looking around for new opportunities, I'm finding a lot of people who want knowledge of a particular arcane API, and getting past the recruiter without having them do keyword matching is a PITA.

For the most part I probably don't want to work for those employers, but...

#Comment Re: MV iOS made: 2015-09-21 14:25:00.745199+00 by: Jack William Bell [edit history]

I agree with the problem. I also believe it is a general problem across the entire scope of the industry, no matter what platform you are developing for.

I disagree with his conclusion: there is no need to specialize. To my mind the answer is to remain a generalist and rely on 'just in time learning'.

Years ago I counted them up and realized I had been paid at one time or another to write code in 26 different programming languages. (This is languages, the number of platforms was somewhat larger.) Since then I've added many more, including ObjectiveC. I could do this because I have a deep understanding of generalized concepts like 'Object Orientation', 'Software Patterns', 'Basic Data Structures', and so on.

The best programming book I've ever read was 'Algorithms + Data Structures = Programs' by Niklaus Wirth. The second best was the classic 'Gang of Four' Patterns book. This is the kind of basic conceptual framework I'm talking about; completely unrelated to the underlying language, framework and platform.

Everything else I learn as I go. New programming language? Generally it is two weeks to productivity. New platform? Well, I'll recapitulate a lot of basic errors for a while after, but two weeks again. New APIs? Whoever wrote them probably had the nous to base their framework on the accepted general concepts laid out in those books I mention above, so I look for how they implemented those concepts.

My best skill is my ability to properly formulate a search engine query to find example code and explanations for whatever I'm trying to do at the moment.

Do I retain all this afterwards? Hell no! Put me in front of a Windows 32 machine and tell me to write something in Visual Basic and I'm nearly back to square one. For two weeks.

Thing is, I do not believe my experience is unique or special. I think most programmers are capable of it and many others have made the transition from 'trying to know everything' to 'learning as they go' without falling into the specialization trap.

To quote Heinlein (as one does), "Specialization is for insects."