Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Android dev trying to upskill

  • 27-08-2018 12:06pm
    #1
    Registered Users, Registered Users 2 Posts: 7,893 ✭✭✭


    Hi,

    I've 6 years experience (2 backend Java, 4 Android) but I'm finding myself very under-skilled.
    As a graduate, I did some backend java for 2 years, but didn't really get a lot of experience. I then moved into Android as soon as I could.
    So in 4 years since then, I've basically just done Android java, with a tiny bit of iPhone dev in Swift. I've used the standard supporting tools like git/svn, jira, jenkins etc.

    Now I'm currently seeking work and trying to figure out what route to take.

    Do I spend my time off:
    1. Learning Kotlin
    2. Improving on my iOS knowledge
    3. Learning cross platform, eg Xamarin
    4. Learning Spring/Hibernate and going back into backend Java.
    5. Learning design patterns (I lost out on a job after a tech test as I didn't use any design patterns for the little sample app)

    The answer is obviously "Just pick one and do it. Only you can decide which one...". I'd just like to know all the facts before choosing.

    Here's how I see it:

    1. A must have going forward. Apparently handy enough to pick up on the job, and I believe recruiters are willing to hire android java devs and train them up on the job.

    2. I have limited experience with iOS. Mainly maintenance of existing apps. Never adding major features or starting a green-field project. This would open me to jobs looking for android AND iOS devs, and if I want to stay in mobile, I'll need to improve my knowledge here.

    3. I see a good few jobs going for Xamarin. This would mean learning C# (and ruby?), but long term I don't want to do C# so learning it is inefficient if its just for Xamarin. I'd rather end up back doing backend Java.

    4. Go back into backend java. Maybe take the pay cut, and spend my time now learning Spring and Hibernate and go for a mid-level role instead of senior android. Maybe learn some Angular when I get the time.

    5. Yes I learnt about them in college years ago, but never really used them, except maybe Singleton patterns but tbh, my android dev experience has been either a team or 2, or me on my own with no code reviews so I've never bothered. I always saw them as the domain of "mainstream" devs doing backend java or whatever, and as Android is watered down Java, it doesn't really need them as much. I should really get comfortable with them but then I'm just going from "android java dev" to "android java dev...with a bit better knowledge of design patterns". It's not something I could stick on my CV, but I suppose it'll probably help me pass a tech test.

    So there's the choices I've worked out in my head. Any I missed?
    Any of those seem like a waste of time? Any stand out as the most obvious choices?

    Thanks.


Comments

  • Registered Users, Registered Users 2 Posts: 4,100 ✭✭✭muckwarrior


    If you actually want to continue working in Android development then 5 is the obvious answer. Not having used design patterns is forgivable, but seemingly not even being aware that patterns such as MVP and MVVM are heavily employed in modern Android development, is not. And why wouldn't you put it on your CV? It's one of the things I look for.


  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    Definitely learn the design patterns - understanding them will make your job easier.

    Android has a few patterns baked into it so you have been using some patterns without possibly realising it.
    e.g.
    app.AlertDialog.Builder uses the Builder pattern.
    widget.Adapter is appropriately named after the Adapter pattern.
    content.BroadcastReceiver uses the Observer pattern.

    The Head First Design Patterns book is probably more accessible as a learning resource than the original Gang of Four book.


  • Registered Users, Registered Users 2 Posts: 2,032 ✭✭✭colm_c


    Forget learning iOS unless you want to go back to graduate level, rare that a company would want a developer to have both.

    Forget Xamarin or any other cross platform tools. They are very niche, and mostly used by startups and agencies looking to get stuff done cheaper. Any tech company doing mobile dev, have both Android and iOS devs.

    Design patterns, algorithms, data structures etc. are all part of tech interviews now, so you need to prep for these types of questions along with whatever the Android implications would be e.g. multithreading, memory, devices etc.


  • Registered Users, Registered Users 2 Posts: 11,264 ✭✭✭✭jester77


    With 4 years experience the following technologies, patterns and frameworks should sound familiar to you, and they are something that are more or less required for some android dev jobs, especially in larger companies.
    • Kotlin is the main language going forward in most tech companies, of course you will still require java for maintenance and older projects.
    • MVP, MVVM or maybe even MVI should be how you write.
    • Clean architecture is a must for any larger project (Uncle Bob for example), if, for example, I talk about something like the repository pattern then you should know what I am talking about.
    • RxJava and Dagger are standard now and you should know them really well. Coroutines could be a native replacement for RxJava going forward, so good to be getting familiar with it.
    • Unit tests and espresso tests are a must
    • GraphQL is becoming more popular and replacing REST api's, some familiarity with it would be beneficial and would give you a big advantage in interviews where companies are starting to use it.


  • Registered Users, Registered Users 2 Posts: 7,893 ✭✭✭The_B_Man


    Thanks lads.
    That cleared up a lot for me. I know what I have to do now. Appreciate the help. Thanks.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 53 ✭✭dubliner999


    On another note, if you're still looking for a job I know a place that needs an Android dev ASAP.


Advertisement