1

My background is in electrical and electronic engineering and over the last 1,5 years, I have been playing with Android development. Last June, I completed the Android Developer Nanodegree course by Google and Udacity. It wasn't an easy course, as I had to solve many challenges. However, it turned out that many job agents never heard about this course(which I repeat helped me a lot), and never hear from them. I really doubt if someone has cloned my capstone project in his machine and check the code. What's the point of having a github account then?

Of course I know that I am not experienced, and need to improve skills(CI testing, TDD, BDD, Kotlin which I haven't tried yet etc), but shouldn't I work in a real team environment to improve them? What exactly are the expectations from a junior android developer?

8
  • 2
    @Theo speaking as an engineer here in the UK in charge of hiring (amongst other things), the UK is in a weird state with Brexit and many companies aren't looking to risk hiring a non-UK developer before a final document is released detailing how foreign workers are handled. I wouldn't take a lack of reception (or responses) from UK companies negatively, you may just be timing things badly. Commented Jan 16, 2019 at 10:45
  • 3
    Getting a first job sucks for a lot of industries. I struggled to get my first programmer job, getting a second was easy. But is software development so special?
    – Nathan
    Commented Jan 16, 2019 at 11:34
  • 6
    Those online courses are absolute crap - they work against you, if anything.
    – Fattie
    Commented Jan 16, 2019 at 12:55
  • 3
    Github is nothing - don't waste a second on it.
    – Fattie
    Commented Jan 16, 2019 at 12:57
  • 2
    Don't give up, build a portfolio and most importantly keep studying. Those courses are just the tip of the iceberg of what you need to know to get started in development. Maybe find a first line support job to get you started in the sector.
    – Odyssee
    Commented Jan 16, 2019 at 14:39

4 Answers 4

7

If you're struggling to find junior dev positions, you may wish to look for an internship, rather than a junior developer role.

At present, you're probably up against graduates with computer science degrees from established universities. They're likely to win every time in competition for these roles - I've never heard of that "nanodegree" course either, and if I were to make a passing judgement, it sounds like it could even be one of these "pay to pass" courses. The fact it's not is besides the point - an interviewer isn't going to do the research on it if they already have a whole bunch of candidates they know are suitable.

I think you also overestimate the importance of a Github account, especially these days. Again, no-one is going to take the time to clone your project and go through your code. An active Github account certainly used to be a stand out feature on a CV. These days it's such common "knowledge" that having an active Github account helps, every man and his dog creates one, uploads something or other, and it's one of these "bolt on" features to a CV that, most of the time, means very little.

If you can land yourself a good internship however, you get to use and show off your knowledge to do a great job there over the course of a year or so, get a great reference & great contacts, as well as real world experience you can talk about in future interviews. That will help you land a job much more than an online course and a Github account ever will.

13
  • I have never heard for an Android Developer internship position really. I forgot to say that I am from Greece, a country that is literally destroyed(Syria had less drop in GDP than Greece!!!)
    – Theo
    Commented Jan 16, 2019 at 9:41
  • 2
    I would add to this (good) answer that writing some real-world apps would be enormously helpful too. Completing a course means nothing on its own, and neither does having some code in Github. If an applicant has written a dozen useful, well-made apps that real people are using... maybe it's worth looking closer. Commented Jan 16, 2019 at 10:44
  • 1
    @BittermanAndy Real life apps require backend services with rest apis utilising a specific framework, ssh keys, nicely edited photos or videos, custom effects and basically money. Also for each backend service you would need to perfom various tests such as unit and integrations test. And once you complete all the above, then you can move in front end part(Android in my case) and spend lots of time there too. It's not that easy as it seems.
    – Theo
    Commented Jan 16, 2019 at 12:06
  • @BittermanAndy Sadly most of tutorials in the backend part out there only cover basic stuff. Many of them are having lots of mistakes or are being deprecated.
    – Theo
    Commented Jan 16, 2019 at 12:08
  • 1
    @Theo Not sure I agree about apps needing backend services, it is perfectly possible to write an entirely standalone application on Android, you have cameras, microphones, speakers, a handful of other sensors, gobs of storage, connectivity, and a fairly decent CPU, that makes for a wonderful playground!
    – Dan Mills
    Commented Jan 19, 2019 at 19:57
2

Why is it so hard to find a junior developer role?

Professional software development requires a lot of knowledge and a mix of hard and soft skills. Understanding how to make a computer work is something that many people find difficult, which is fundamentally different in nature to most subjects taught in schools, and which takes a long term to learn. While courses and books often promise to teach software development quickly ("in 24 hours" according to one popular book series), this is usually not much more than the absolute basics; to actually be able to turn software development into a career takes time, effort, knowledge, skill, and experience.

In addition, competition is fierce, as it is a well-paid, exciting career (and likely to be resistant to automation for at least the next decade or two). Other people going for the same junior roles may be graduates with full degrees, or have years of real programming experience since they were children, or both. A would-be junior developer doesn't just need to be good, they need to be able to demonstrate that they are better than the other people applying for the same role.

What's the point of having a github account then?

Github (or any other version control system) helps you keep track of your code and how it changes over time; it's even more useful when working as part of a team, not as an individual. It is not a box you can tick to guarantee someone will offer you a job.

I know that I am not experienced, and need to improve skills [...] but shouldn't I work in a real team environment to improve them?

This is a common problem when starting out in any career. It can often seem unfair - "all jobs want to hire someone with experience, but how do I get experience without a job?". Nevertheless, the only way to overcome it is to find ways to gain that experience anyway - in the case of a software developer, to write code.

Consider two candidates, both similarly qualified, who want a junior developer role. One has written his own versions of Tetris and Space Invaders for his mobile phone, and a command-line app to organize his music collection on his PC, and an interactive website that hosts his CV. The other hasn't written any programs of his own, but says that he expects to do all that after someone has given him a job. Who do you think will have learned more about coding? Who would you employ, honestly?

What exactly are the expectations from a junior android developer?

This varies from company to company, and will depend on salary and many other factors. Broadly speaking the following list would usually stand a candidate in good stead:

  • Demonstrate a basic understanding of at least one programming language - to be able to write simple but complete programs of their own, not just follow tutorials.
  • Demonstrate a basic understanding of the software industry, and what is involved in development as a career.
  • Demonstrate good general problem-solving and mathematical skills.
  • Demonstrate good teamwork and interpersonal skills.
  • Demonstrate a drive to learn in their own time and for its own sake.

It might also be helpful to open the search a little. A junior developer position is a starting point for a career whether it's working on Android, iPhone, web, Windows, the cloud, or basically anything else. And if you are looking to move country anyway, perhaps look outside the UK.

5
  • So you need 5 years of experience with a certification that only came out last year? This whole thing is ridiculous because there are billboards every about teaching people how to code. I'm very bitter about similar phenomenons, but this is salt on the wound. Commented Jan 16, 2019 at 13:33
  • "So you need 5 years of experience with a certification that only came out last year?" - I'm sorry, what? I don't say that anywhere. Commented Jan 16, 2019 at 13:36
  • While I was taking an InfoSec class, the professor told the class a story about trying to hire someone. The CISSP certification had come out, and HR botched the job posting such that it required 5 years of experience with a certification that came out a year prior. While I don't expect anyone to know my personal anecdotes, this is a common phenomenon when trying to find a techy job and navigate the HR Firewall. Admittedly, I didn't read too far into your answer before writing my comment, but you do explain the kafkaesque catch-22 that people who want techy jobs have to put up with. Commented Jan 16, 2019 at 13:40
  • Indeed, and it can seem like a catch-22 (I've been there!), though if you read a bit further you will note I also suggest a way to resolve the problem. At the end of the day, you need to be able to develop software to get a job as a software developer. You can either be bitter about it, or learn to develop software. Commented Jan 16, 2019 at 13:46
  • 1
    My favourite interviewing question for engineers "Tell me about something you have you built?" Particularly for the newly minted it very quickly tells me who I am interested in keeping talking to. I actually don't much care what the answer is, as long as you can point to something and can talk about the design, the trade offs and the mistakes you made. In my experience good builders of complex things have usually been doing it since way before they went to university and will generally have something to talk about.
    – Dan Mills
    Commented Jan 19, 2019 at 19:51
1

Another piece of advice I would offer is to expand your search beyond only android development. For an entry level developer position, I would argue that the language/technology used in your first job is almost irrelevant. You simple need to break into the software workforce and build some solid work experience at this point.

As an example, the first job I took out of college was a programming position that used an obscure language that I had never even heard of before the interview. I learned on the job, and after 2 years I left the company to go work with more modern/mainstream tech. While I had to learn new languages again, all of the valuable soft skills I learned (i.e. communication, gathering requirements, giving demos, ect.) put me in a very good position.

There is much more to working in software than the code itself.

-5

Some people suggest to look for an intern position. I would not recommend that. Just apply to senior positions. Maybe the UK is a bit in a turmoil right now, but Engineers are need all over Europe. So don't apply to any internship with your degrees. Maybe HR doesn't want to hear it, but that doesn't matter.

Maybe you are interested in development for embedded systems, since there are a lot of synergies to electrical engineering?

4
  • I know what you mean. Something like assembly or embedded C etc. I have more experience in high level programming than the low level stuff. Plus I don't remember much about subroutines etc.
    – Theo
    Commented Jan 16, 2019 at 11:54
  • Actually I found this MASM32 SDK. Looks really interesting.
    – Theo
    Commented Jan 16, 2019 at 11:58
  • I like developing for embedded systems since the results are often more "tactile" than comparable software projects. ASM is useful, but C is far more common for modern systems (ASM is more platform dependant than any other language!). For learning, I would recommend looking into arduino projects. Good way to find an entry. Maybe you also like circuit board design, where a background in electrical engineering helps a lot. Still, if you are interested in Android development, I wouldn't drop that.
    – Anonymous
    Commented Jan 16, 2019 at 12:30
  • 6
    You want somebody with less than two years experience in a somewhat related field without a degree to apply to senior positions?
    – bxk21
    Commented Jan 16, 2019 at 17:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .