Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Thanks for the detailed answer!

I recently asked a principal of a web design firm that does pretty good work how to learn HTML/jQuery/etc. And he actually recommended Code Academy. As somewhere to get started - to bootstrap your learning enough so you can do self-directed projects. Really, I think I am going to have to buy 5 or more of the top-recommended jQuery/CSS books just to get started (even if I don't read them).

For iOS to Android ports, I recommend usually just using the iOS app (if it exists) as a black-box reference model /specification for functionality. The Charles proxy server [1] usually figures out any gray areas in the server-side interaction. Having access to the iOS source code/understanding it isn't always necessary unless there is some kind of shared library being used (shrouded C/JNI). A lot of the more complicated iOS apps have lots of CoreData/KVO-type/massive 3rd party library dependency like RestKit infrastructure that isn't directly translatable.

The best thing about iOS v. Android is that usually iOS developers aren't Android developers (as you pointed out). And it still flabbergasts me that Android has won (75% and increasing market share worldwide).

However, personally I'm thinking of getting back into iOS - (Storyboards, GCD) by doing small, small projects. iOS is still a very marketable skill.

When it comes to being 'Really Good at Android', I think you will get there. Have you presented/taught Android yet? It does take someone who reallyreallyreally likes Android to make the app look good (xml layouts, arcane knowledge) and functional and smooth (no ANR). Do check out all of the Google I/O talks if you have not already. The hardest part about Android v. iOS is that the knowledge sharing isn't as open as it is in the iOS world.

Hope you can find someone to partner with. Usually our developers find other developers that they like to work with semi-organically - by just working on a number of other, larger projects and every once in a while, they gell with someone and either start apprenticing the developer (assuming they are still junior) or work with them as a peer.

Either way, it sounds like you are diversifying your skill set appropriately.

Finally, in case you get bored/need anything else to work on for 2013 - try to teach some aspects of coding to non-coders (especially those who might have the potential but not the understanding).

Don't forget to double your rates this year :)

[1] http://www.charlesproxy.com



Really, I think I am going to have to buy 5 or more of the top-recommended jQuery/CSS books just to get started (even if I don't read them).

Consider taking a look at http://safaribooksonline.com/. They don't have everything, but they usually have enough good stuff to cover picking up a new skill. I think my IQ would drop by about 30 points if I discontinued my subscription...

For iOS to Android ports, I recommend usually just using the iOS app (if it exists) as a black-box reference model

I generally do, and I couldn't live without a proxy (I use Fiddler 2). But for some things, you really need the source. Error dialogs, for example; it's hard to be sure, from testing, that you've found them all. Math formulas, input restrictions. And you'd be amazed how easy it is to miss whole screens in black box testing just because you never saw a particular button / made a particular gesture!

It's more than that, though. It's good to be aware of whether they're using a default UI control, or a library is doing something a particular way, but it's the only library they have, vs. if they've carefully hand-coded a custom component. It's easier to make the case for doing things an "Android Way" in the first scenario.

iOS is still a very marketable skill.

Very much so! A year and a half ago, I think nine out of ten projects I could bid on were iOS projects. Nowadays, most of them want an app built for both systems. I think that'll be true for the foreseeable future.

I do think Android is starting to go beyond mere mobile, though, and that's exciting. For example, on the front page right now is this: http://www.hardkernel.com/renewal_2011/products/prdt_info.ph... -- and it runs Android!

What'll they build with that? I haven't got a clue, but they're going to need Android programmers to do it. People are starting to use Android touch screens in non-mobile ways, too, and I've seen a contract or two for Android OS mods.

I expect there to be some technically-interesting, Android-only projects in a year or two, and I plan to be ready. :)

Have you presented/taught Android yet?

No, though perhaps I should. I keep meaning to make time to blog about my experiences as a developer, and somehow there's just always too much else to do. I need to be more involved with the community.

The hardest part about Android v. iOS is that the knowledge sharing isn't as open as it is in the iOS world.

The docs aren't as good, either. The javadocs are good at telling you what properties exist. The problem is that they'll list "android:alignBaseline" as an option, and when you click for documentation, it says, "Aligns the component's baseline." Sometimes I wish they had a big "Did Not Answer My Question" button that caused someone at google to be hit with a foam mallet. ;)

StackOverflow is a good source of information, but you want to already have some expertise to filter things. The solutions (being crowdsourced) sometimes are false, or sometimes they technically work but are bad advice.

More than once, I've had to go source-diving to figure out how a standard component or option worked. I'm thinking probably the next thing I need to do to "level up" in expertise is get good at reading the Android source. Maybe make some time to contribute to some of the auxiliary open source projects I use a lot, like Robotium or Jackson. Maybe start my own; I have a couple ideas for things that would make my workflow a lot easier.

Hope you can find someone to partner with.

Yeah, I think I have. We're looking to do a few joint projects together in 2013. We'll see how it goes. :)

Finally, in case you get bored/need anything else to work on for 2013 - try to teach some aspects of coding to non-coders

Yeah, I've been meaning to do something like that. When I have time to do side projects, I like to do educational apps for kids. I usually focus on math, but I've thought about doing some sort of programming app targeting young elementary school kids. I grew up on LOGO in elementary school and loved it.

Don't forget to double your rates this year

Man, I've doubled them twice in the last six months. Theoretically, I should be making more money. Practically, it's just been the opposite; I've been sick too much to do good work. Funny thing about freelancing . . . you don't get paid sick days. :(




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: