We recently wrote a post that discussed what employers are looking for a in Jnr Ruby Dev. It was very popular so we thought we would tackle a different discipline this time – Android development.
It is a wonderful time to be an Android developer. The technology is exciting and evolving, new devices are popping up all over the place, and there is a very high demand for developers. With hundreds of millions of users around the world, the possibilities for gainful employment seem endless.
Working as an Android developer can be extremely rewarding. It can also be extremely challenging, especially when you are just getting started. We often hear about indie developers who have spun their code into gold, but the reality is that such stories are the exceptions, not the rules. It is hard to be successful (financially or otherwise) when you are are still learning so much. Heck, it is hard to be successful when you already know or do a lot!
Our mission at Treehouse is to help students gain the skills they need for the careers they want, and to help them get started and then progress in those careers. Getting started in a junior developer role for Android is similar to many other entry-level programming jobs, but let’s talk about exactly what employers are looking for and how you might start down this career path.
This takes “Junior Android Developer” too literally.
“Required” is a bad word to use here. Below is a list of generalized requirements based on my experience being a developer and hiring Android developers, as well as researching junior-level positions. You will undoubtedly run into different requirements than these, but this list should be a good starting point!
This may seem like a lot, but you can build up these skills faster than you might think. If you are already a student at Treehouse taking the Android courses, then you know how quickly you can learn the basics below. After that it’s just practice to understand it all more fully. If you are not a student, check out our Android track as it is structured to teach you everything you need to know to become a junior-level Android developer. We are continually adding to and updating our library to provide more of these skills and others to further your education throughout your career.
You should of course be comfortable with the Java programming language. While you can develop Android apps using a number of different technologies, most positions are for native development using Java and Android Studio or Eclipse as your IDE.
What exactly does it mean to be comfortable with Java? You don’t need to know all the latest details of the latest version, but you should have a well-rounded knowledge of the basic syntax and programming structures. You should know things like variables, lists, loops, control structures and object-oriented concepts like class vs. static methods and inheritance. You should also be comfortable using documentation to learn how to use new parts of the Java SDK. A very big part of any position as a developer is continuous learning. Check out our brand new Java Basics course.
Again, this goes without saying. But what areas of the SDK should you specifically know? The following list includes many basic Android concepts that you should be familiar with:
As you will be undoubtedly be expected try new things, you should also be comfortable using the Android documentation and resources like Treehouse to get started with a new part of the SDK. And this probably goes without saying, but you should be competent with using the debugger in your IDE to help troubleshoot bugs in your code.
As mentioned above, getting data from the web is a pretty basic skill for app development since so many apps have a network-based component. This may not be required for all jobs, but many postings I’ve seen expect the developer to be able to work with their own API or some other 3rd party API. These will usually be JSON/REST APIs, though XML/SOAP does still pop up! I would recommend focusing on JSON/REST and only learning XML/SOAP if you need to. The basic concepts are still relatively similar; it’s just a different way of requesting and then parsing the data. A few of our courses in the Android track can help you master using APIs.
This particular skill may not be required, but whether you are working alone or with a team you will generally want to use some sort of version control system. You don’t have to be an expert at managing a bunch of merge conflicts, but you should understand the basics of creating and using a repository and committing and pushing changes. We have a great Git Basics course at Treehouse that I highly recommend.
Sometimes job posts will ask that the Android developers also contribute on the back-end of their system. I’ve had this experience myself. This may be harder to add to your skill set when you are just starting out as the back-end technologies vary so much (Rails, .NET, Django, NodeJS, etc.), but I wanted to list it as it comes up often enough to warrant discussion.
Don’t let this discourage you from Android development, though. You can either ignore these posts or use it as motivation to learn or brush up on your back-end skills. And remember, the basic concepts of programming translate well, so sometimes it’s just a matter of getting familiar with the architecture of a system and the syntax of the language. You don’t need to necessarily dive deep into these back-end technologies. Sometimes you just need to be comfortable modifying existing back-end APIs to work with changes to the app you are working on.
It is easy to focus on the technical skills of a technical position, but do not forget about the important non-technical skills! I have seen and heard of many candidates who knew enough about Android programming but did not know enough about communicating and collaborating with a team.
The list below is again culled from a sample of real job postings for junior-level Android developers.
Argh…I dread seeing this word in job postings, but it appears pretty often. Employers are often looking for “passionate, motivated” employees, but what does this mean? More importantly, how should you convey this in an interview?
Passion is such a loaded word. Don’t worry if you don’t know what your “passion” is…most people I know don’t have a great answer for this. Passions change from moment to moment, and we can be slow and steady about our passion just the same as energized and chaotic.
The important feeling you want to convey is that you believe in what the employer is doing and you believe in yourself that you will excel at the position. In your interview, show the employer that you are interested in the work by researching the company and asking questions. And sell your own abilities to learn and improve. It’s okay to admit you don’t know things as long as you follow it up by explaining how that has never stopped you and that you are willing and dedicated to learn new things.
Collaboration with a team is vitally important in most developer positions. Even if you are the only developer working on a product, you will need to collaborate with other people in the organization. Sometimes designers, sometimes management, sometimes end users, but always sharing your work with others and inviting feedback and discussion.
Communication is key!
Collaboration and communication are closely related, so by necessity you will need strong communication skills to collaborate successfully. Make sure you can explain what you are working on to both technical and non-technical people and keep practicing written and verbal communication.
This goes hand in hand with communication, but it appears on its own often enough in job postings that we should discuss it as a standalone skill. Writing is becoming more and more important in an economy that spans the globe, so make sure you are comfortable communicating via written text. As a developer you may be expected to write things like technical documentation, summaries of your work for non-technical coworkers, user-facing text within the app, and regular communication via chat, email, etc.
While we don’t currently offer any courses at Treehouse that can help you become a better writer, there really are two key things you can do on your own. Read and write. That’s it! Read more and write more and you will exercise those parts of your brain that deal with written text.
There are a few other general requirements that appear in many job postings.
The quickest way to show an employer that you can do something is to have a real app on Google Play with your name on it. Employers know this and often expect to see apps you have already worked on. It doesn’t have to be anything fancy or wildly successful, but even a simple app published on Google Play demonstrates a baseline of knowledge about the entire app development lifecycle. If you need a simple app to publish, try customizing the Treehouse Fun Facts appand then publish it using our Publish an Android App course.
Many job postings still require a degree, but this is something you can challenge! The tech industry is a leader in hiring people based on what they can do, so if you apply for a job that requires a degree and you don’t have one, show how you have the real experience that is more important than a piece of paper.
This is a hard question to answer. As one might expect, this varies widely from job to job, city to city, country to country. Very generally, a full-time junior-level Android developer can expect to make somewhere around $60,000 to $80,000 per year in the U.S.
Might want to check that exchange rate!
There are quite a few sites to look for Android jobs, but the following list is a great place to start:
If you are having trouble landing a full-time position, or just want to to gain experience while working elsewhere or while being a student, definitely check out contract work on sites like Elance and oDesk. You can bid for small projects and gain valuable experience while building up your portfolio of work.
Posted by Ben Jakuben on Medium