Live data from Hacker News

Programmer's Dilemma

medium.com

111–113 of 113 posts

Re: Programmer's Dilemma

#111

Earlier quoted context omitted.

>Many professions enjoy employer paid continuing education. Lawyers who work for a firm? Maybe. If they work for themselves, they're stuck paying the bills; continuing education is required in many fields, and yet it's not always reimbursed. >Staying up every night committing to Github in hopes of landing a job is a terrible terrible thing. That's never the "right" thing to do. The right thing to do is to commit to G…

> Or Android app programming, even; most Java developers would still take months to get up to speed on Android, if they ever managed adapt to the Android way of thinking at all. So you doubt they would be able to adapt to an environment that uses the exact same language they've been using for 10 years, simply because they don't know the API? Do you think that someone who is smart enough to do Java development for 10…

>So you doubt they would be able to adapt to an environment that uses the exact same language they've been using for 10 years, simply because they don't know the API?

Not exactly. Probably 95% of "Java Developers" have never touched a GUI, or an event based OS, or graphics code, or an end-user app, for that matter. They'd have plenty of ways to fail besides not knowing how to read a manual.

>Do you think that someone who is smart enough to do Java development for 10 years isn't smart enough to pick up a new Java-based environment in days/weeks?

Weeks, maybe. Days: It depends on what you mean. Start tweaking Java code in an existing app? Sure, why not. Architect a non-trivial app from scratch? Extremely unlikely. Again, talking statistically.

95% of Java developers are NOT as sophisticated as probably half of C++ developers. There's a higher minimum threshold of skill to work on the problems that C++ developers work on than the ones that MOST Java developers work on.

You can be a 100% competent Java developer, and yet not have the right skills to do most of what I do on a regular basis.

And this isn't about YOU; I'm only talking statistically. Most Java developers work on server code, enterprise code, private company apps, and other things in very different domains that thinks that I work on. These things are important, skilled work; and they're VERY DIFFERENT than Android development. Or game development. Or low-level C development.

>Your attitude reeks or arrogance, elitism and lack of empathy. I'd never want to work with people like you in any capacity.

I do believe I'm a better developer than most. I feel like that's based on objective facts, but it certainly can come across as arrogance or elitism. Truth is I'm happy to work with developers of any skill level, as long as they have the skills to do the tasks they're assigned to do. I spent years working as developer tech support for a popular API, and I helped hundreds of developers to use it correctly, and to find the bugs in their apps -- by the end I had a nontrivial fan club, and a lot of people contacted me later to see if they could work with me. But have it your way.

I don't know how you glean lack of empathy from my post. I empathize with people just fine; if I'm hiring someone, though, I have to make a business decision that makes sense, and I'd have to be stupid to hire someone who can't get the job done, as much as I'd love to give everyone work. Too often I've not been ruthless enough; someone with years of experience in Android AND Java and tons of great references must be good enough to get my project done, right? Wrong. See: Mythical Man Month, some programmers are 10-20x better than others.

If you tell me who you are, though, I'll be sure that we don't accidentally work with each other in any capacity. Though since your comment sparked this thread with hatred at people who hire based on (among other things) GitHub commits, I suspect that isn't a danger to begin with.

Re: Programmer's Dilemma

#112

Earlier quoted context omitted.

>Many professions enjoy employer paid continuing education. Lawyers who work for a firm? Maybe. If they work for themselves, they're stuck paying the bills; continuing education is required in many fields, and yet it's not always reimbursed. >Staying up every night committing to Github in hopes of landing a job is a terrible terrible thing. That's never the "right" thing to do. The right thing to do is to commit to G…

Err, what? Months? It's just an API. I was once given two weeks to write a prototype of a small Android app, w/ no prior Android experience (years of Java, though) - granted, just being a prototype, it didn't need to be production-quality code (and I'm sure it wasn't), but I got the job done. I would feel perfectly comfortable putting an experienced Java dev w/ no Android experience in an Android role, provided they…

A demo is very different that production code, especially on Android.

Android is NOT just an API. You need to really grok the Activity Lifecycle [1], or your app won't behave correctly. I don't mean just skim it; I mean really get that you need to save state at the right places, or you'll break the behaviors.

You need to understand how to support multiple devices correctly [2], including how to best design the app to scale to multiple screen sizes. Ideally you'll support both phone-sized and tablet-sized devices, and so you'll probably need to understand how the Fragments API works [3]

You need to understand Intents and how they function. [4] You need to know whether you'll need a Service [5].

This is just the stuff off the top of my head that you need a clear understanding of before you write the first line of code. Most of these things are not easy to just "use when you need them;" you need to know how they all interact before you start, or you'll be throwing out a lot of your code.

Android is a really alien API, even to people who've done GUI work before: I think it's very poorly designed from a "Principle of Least Astonishment" point of view. They created a lot of new concepts, and I don't really think all of them are superior to the standard way of doing things in a GUI. But they are what they are.

I've TRIED to work with an experienced Android developer who didn't know all of these in advance, and he tried to charge me for 30+ hours of work for something that should have taken 2-3 hours -- just because he'd lied about KNOWING how to use Fragments. I can't imagine a Java developer with no experience diving in and getting all this right the first time.

[1] http://developer.android.com/training/basics/activity-lifecy...

[2] http://developer.android.com/training/basics/supporting-devi...

[3] http://developer.android.com/training/basics/fragments/index...

[4] http://developer.android.com/training/basics/intents/index.h...

[5] http://developer.android.com/reference/android/app/Service.h...

Re: Programmer's Dilemma

#113

Earlier quoted context omitted.

>Many professions enjoy employer paid continuing education. Lawyers who work for a firm? Maybe. If they work for themselves, they're stuck paying the bills; continuing education is required in many fields, and yet it's not always reimbursed. >Staying up every night committing to Github in hopes of landing a job is a terrible terrible thing. That's never the "right" thing to do. The right thing to do is to commit to G…

>That's never the "right" thing to do. The right thing to do is to commit to Github because you want to. The article presents doing your own projects as a thing you should do. >Or Android app programming, even; most Java developers would still take months to get up to speed on Android, if they ever managed adapt to the Android way of thinking at all. Are you suggesting that it would take an experienced Java programme…

>The article presents doing your own projects as a thing you should do.

Well, if you don't want to, and you don't have real experience elsewhere in a domain close enough to what I need, then you won't likely be a developer that I work with, no.

>Are you suggesting that it would take an experienced Java programmer several hundred working hours to get up to speed on Android? And that you expect new hires to have worked several hundred hours on Android in their free time instead?

Most Android developers work solo, at least the ones I know. If you can find a team to work on somewhere -- some big company that has 4+ people working on an Android project, then maybe they can hire a Java developer and train them on Android. I have no desire to pay a developer for more than 20 hours to learn to do something that shouldn't take more than 4 if he already knew how Android worked (this happened to me, when someone lied and told me they DID know how the Fragments API worked, for instance -- after 20 hours he had a mess of garbage that I threw out).

But a solo Android developer probably needs at least two to three months of Android coding experience to really "get" the relatively more obscure parts of Android, yes. Can a Java dev write code on day one? Sure. Can a Java dev start writing production code from day one? Day 14? Not anything I'd want to use.

Major exception: Java is Java, and so having someone contribute to an existing, already working app, but staying in the "data mangling" domain, could be done from day one. I'm really talking about knowing how an app should be designed, not whether someone can write code to talk to a database on Android after 10 years of experience writing Java that talked with databases on servers.

Post reply on HN