Happy birthday to Java programming language!
Celebrations are in order, this year the world is celebrating 20 years of Java language programming. You could have even won a dinner with the father of it all, James Gosling, in San Francisco this year in October during the JavaOne conference. All the Java developers and the Java User Groups (JUGs) are just fidgeting in their seats at a boarding gate somewhere in the world, eager to attend “THE” event!
To understand a bit better about Java development and why there is such a fuss about it lets quote Rupert Goodwins who is a technology writer/journalist who was speaking on the 9th April last for a programme on BBC Radio 4 called “Codes that changed the world”
“If Java was a person it would be Richard Branson. It started off life doing one thing, then did another, and finally ended up doing a third thing…keeps shifting its shape through time uh but it keeps getting more and more important as it does it”
So what is Java programming language, and who is the modern Java developer, what does it take to become a Java developer and how bright is the future for a Java programmer?
Back to the future …
In the early nineties, James Gosling working then for Sun Microsystems (since bought by Oracle™) came up with a new concept “Write once, run anywhere”, which mainly meant a simplified programming language, strong and secure, containing a built-in support for networks and that could run on multiple platforms: the Java Virtual Machine (JVM) was invented to compile the same Java program to run on Windows® [Microsoft™], Linux® and Mac OS®.
So Java 1.0 was born in 1995 and today Java Standard Edition (JSE) 8 is the latest stable release.
In 2006-2007 Sun Microsystems released Java as open source and platform independent software.
Nowadays Java covers 3 realities altogether: a programming language, a virtual compiler and a set of programs for developers.
Few Key points of Java language:
- Class based & Object-Orientated Programming (OOP) language
- Java technology is everywhere from your telephone exchange to your missile launcher via your internet banking and web browsing, the list for application development using Java is endless
- Java thrives in an Integrated Development Environment for instance Android Studio™
Building Java applications, how does it work?
Let’s take an example: let’s imagine that you are already familiar with Java language and Java programming environment; you just wake up one morning with the most brilliant idea for a Java game development called “Andy Crashed!” For argument sake it is a game based on driving awareness where you have to follow the correct Highway Code otherwise you crash, entertaining and educating at the same time as it is supposed to improve your driving skills, you can picture it, you will mint it and you will be going to parties with celebs!
However your vision needs a bit of implementation before your bank manager welcomes you in his/her office on a red carpet, so here it goes.
Your prototype Java program is a hit with friends and family, but not enough, so you do some market research and the results are positive, you work 24/7 at your Java software development, the cat was so hungry he decided to use the can opener by himself, your loving partner, well, has found a new one, coffee cups are piling high, your parents have disinherited you and you still go ahead with your project out of sheer determination. Well done!
Now rolling the movie back, and dissecting the process what can we observe?
– You choose a Java development platform (Android Studio)
– You use your Java Runtime Environment (JRE) to its max (set of software tools such as libraries, core classes etc.)
– You write your Java application (Andy Crashed)
– You run your program to try it out on an emulator or device: what happens is that your source code goes through a compiler that transforms it into byte code which is in turn reinterpreted through the JVM to be operable within devices such as computers, mobile phones, tablets etc.
– It works hooray! You invite people to do a beta testing, Java developers are in motion all over the world to come to your rescue, there is a thrill in the air: the feedback is mainly positive but some devices are playing “hard to get” so you contact the unfortunate users, you ask for the specs of their device, you modify the code.
-You do some more tweaking and retest it
– Now you are ready and store your game app on Google Play™, you price it: free for the basic version with a minimum of features and the “ultimate gamer” version is launched at US $ 3.50, of course it will be such a success that you will need to employ someone solely dedicated to customer support.
– You consulted with your mentor, your new life coach, you adopted the behaviour of an athlete before the final race, and you are focused: you talk, post, comment on to all existing social media that you can imagine (meanwhile the cat has exhausted his food supply and in despair has raided your own fridge, ate some of your leftover sandwich and horror it is not gluten free! So the cat has packed his litter tray, favourite blanket, fluffy toy and moved next door).
– Your marketing campaign done you monitor the ratings closely and…
…the ending to the story will be up to you, you see its up to you to take action, learn programming, and answer this for yourself!
What stands between you and your dream of becoming the ultimate Java programmer or the best Java development manager?
Not many things, considering that when there is a will there is a way!
Of course it would help to be able to have proficiency skills in writing Java programs, so let’s start with the beginning
According to the Java official website there are 9 million Java developers worldwide and Java language is ranked #1.
That ranking is confirmed by the latest results on TIOBE as displayed on this infographic, curtesy of TIOBE
Learning Java programming makes sense, what is the best way to learn Java language?
- Like any investment of your time and money you have to decide if it is really for you, so you can always get the Java basics through some demos online, the internet is full of them: free Java courses, or Java tutorials for beginners with a free trial period, or some samples to try out.
- Check out the Java trainer/teacher/tutor: I am not talking about ratings only but a solid reputation for instance try to find out how well that person is communicating via emails, personal messages; ask other students for a feedback; verify that the tutor follows the trends and knows about the latest Java development matters in terms of programming but also in terms of new functions and applications etc.
- Be realistic about your personal involvement, how many hours can you dedicate to the learning process, to the practice process, to consult forums, do some extra reading on the subject etc.
- Would you feel more comfortable to learn Java from home (learn Java online) or in a classroom? There is no right or wrong way to do it, it is up to you and what suits you best they both have their advantage and disadvantage in terms of self-discipline, commitment, support, feedback etc.
- Take time to plan on how are you going to use your Java training, is it purely for the pleasure of coding as a hobby or as getting a job?
- Also think about the fact that you may also need to add some extra curriculum as in learning other skills on top of your Java development tutorials; for instance if you were going to use Java for web applications it would be useful to also get complementary skills such as getting some basics in web design. If your goal is to write games you would choose to enrol some Java game development course and maybe also how to re-skin games.
How long will it take for me to be a proficient Java programmer?
- How long have you got? Half joking just because once you get involved with Java development it will be an on-going process and even the most senior Java programmers are learning everyday as you keep pushing the boundaries. New features are added on each major release such as Lambda in version 8
- Are you a studious and thorough learner? Do you supplement your modules with extra exercises? All these parameters could alter the answer, therefore how fast you can learn will be up to the individuals: how many hours a day/week can they dedicate to learning Java?
- With no knowledge of programming basics it will probably take you up to 350hrs to reach a good intermediate level and a further 250hrs to reach an advanced level. Between your readings, forums, online tutorials and the full range of help available you will mostly need to practice, hitting those keyboard keys again and again until you run your program successfully.
Don’t forget it is your time and your money and in my mind it is important to follow one direction to start with otherwise there is the risk that you became a Jack of all trades and a master of none! So one step at the time and to start with I would say get a Java development course or Java programming language course associated with an Android development course, that should give you the Java basics you need and help you finding out if you need to go further into those skills or branch out onto something else.
And if at the end of the day you decide that Java is not for you at all, well it is not the end of the world because there will have acquired some “hidden” skills such as: how to structure a project, how to succeed through trials and errors and be perseverant, how to ask for some support because Java coding is not about being a lonesome genius in waiting, it is about the Java community so everyone can benefit from it and learn through helping each other.
Where can I get help and support if I decide to learn Java online?
If you learn Java programming/development online you will have access to a huge array of helping tools.
To start with your Java tutor or Java teacher will be there for you. Within the course you should get some extra material such as handouts and some homework along with some personal help via a forum online or messaging.
Then some other people might get involved and add to your query, it doesn’t mean that your teacher is wrong it just means that there is often more than one way to sort out a specific issue, check them all out and see what works best for you.
You can also join a Java User Group (JUG), subscribe to a Java magazine, read the forums, practice online, do some quizzes, create your own group, you will soon find out that there is no embarrassment within the Java developers’ community as everyone had to start somewhere and the people you will get in touch with might be proficient at different levels.
How far should I take learning the Java programming language?
When to know how to stop? You might think this is an odd question as theorically you never stop learning but there is a good reason for that and the reason is mainly about getting a job.
It all depends on where you live and what job market you wish to enter for what type of employment: for instance some companies will only take into consideration a Java developer C.V if they can see that the person is a Java certified developer with such and such certification; on the other hand you might be the sort of person who is not officially certified but with a huge number of years of experience in Java programming and an excellent track record on your C.V through projects you led successfully for some small or medium companies, or, you could be both. Phone interviews and code tests are the norm these days prior to formal interviews.
It also depends on how you are training as a Java programmer: if you attend a classic course through in a classroom, there will certainly be some exams at the end of the course, it will be up to you to check that the exam, certificate, and diploma is a “recognised one” throughout the Java development industry or at least throughout your country on the job market.
If you became proficient in Java programming throughout an online course it is a bit trickier as for instance some e-learning companies will just deliver you an “attendance” certificate which means basically that you will have gone through all the modules of the course and that is fine if you know it in advance and enjoyed the course; however it doesn’t check the state of your current knowledge nor does it constitute a proper certification and therefore is mostly of no value to future employers looking for certifications.
In doubt check out with the relevant bodies/authorities that your online course “certification delivery promise” is genuine and will contribute positively to your C.V.
So getting a proper Java certification is relevant indeed but not always essential; it is up to you to plan your Java developer career path. If you look at some job descriptions and the skills and education requirements attached to them you will notice that a Bachelors/Masters’ degree level is on occasion necessary with the programming language being considered as “an added” skill.
What is the reality of the job market for junior Java programmers?
The reality is actually that the prospects are currently very good. The market is buoyant and there are a lot of positions to grab out there.
What are the differences between Entry level or Junior, Regular or Intermediate, and a Senior Java developer?
Mainly the salary and mainly based on your professional experience because unfortunately if you carefully study the job descriptions of different countries it will cover different realities, for instance what is considered as a junior Java developer in one country could mean the Intermediate Java programmer in a different one. Overall the more you can work independently, without the need of supervision or help & with an overseeing of the full project right down to the end user & with higher management responsibilities, the more you are on your way to senior level.
What is the average Java developer salary? What sort of money to expect at junior entry level?
Check out PayScale, if you do a comparison between a few countries for an average yearly salary for a Java developer in US $ for ease of comprehension: in France it is around 43,000, in the U.S it is around 62,000 and in the U.K 54,000, in Australia 35,000 etc. You can check it for your own country and convert it in US$ for comparison…so at a junior/entry level depending where you live in the world it could be in US $ anything between 15,000 and 25,000
What qualifications are required?
It is always a good idea to have a look at some of the positions currently on demand as a Java developer to have a better idea of which industry needs your skills and what they are looking for exactly as often people tend to forget that “human” skills are equally as important in order to join a company so if you are not a team player you either become one or you rethink your career path.
What sort of stuff should I incorporate in my C.V/resume?
If you do not have a lot of job experience, apart from your academic degrees/level you should concentrate on the positive aspects you have: personal achievements, successful other junior positions, responsibilities you gained, be careful not to mention things that you cannot prove or make yourself more talented than you really are because a good interviewer will see through you within seconds. Be honest, be yourself and at the same time do not undermine your skills. Demonstrate that you are eager, confident and that you can add value to the team you wish to join when you read for the first time that Java developer job description.
How to prepare for an interview when you are mainly studying or working from home?
Well you can test your skills for Java development, or interview skills, attend a preparation course, and ask friends and family for a mock interview and the feedback of someone in Human Resources whenever possible.
Revise your subject, not only what you can do, but what you can offer to the company, understand their ethos, suss out what they are looking for in a new colleague and how you can contribute to the company.
Have some examples ready in your mind about problems solving and customer services skills. Customer Services skills does not only apply people buying a product but also applies in the servicing industries to the relationship you have with colleagues from different departments because they are considered as your “clients”.
Get ready for anything, depending on the position you are applying for you might be judged the moment you enter the reception of the building.
And last don’t over or under dress for the interview, unless specified in the invitation for the interview a Java developer is expected to wear casual smart clothing.
What things will people ask me during an interview for a Java developer position?
Java development companies will want to test your Java skills before an interview, so be prepared for the practical side of things: it is often some multiple choice questions combined with some coding exercise. Sometimes the exercise is not designed so much for you to be able to do it but to observe your behaviour during the test, your stress level, the ability to prioritise tasks, your Java good practice skills etc.
The Java developer interview questions will be around you as a person, clarity of oral expression is also important, be clear, articulate and concise in your answers, if the future employer needs to know some more he/she will ask you to develop what you are saying.
You will be invited to ask questions in return if not take it on you to do so, prepare 2 or 3 in your mind that would be relevant, however avoid the “Will I get a pay rise after my trial period?”
You could also ask to visit the premises to have a “feeling” for what awaits you, it could be a decisive move, I know some people who just couldn’t cope after looking at ranks of cubicles and their cold projection or the noisy atmosphere of an open plan office with interruptions every 5 minutes by someone who thinks that because you are the new Java development manager you are also the IT guy who can resolve all the problems with your PC, the hardware etc.
What if I don’t get the job?
Well going to an interview doesn’t always translate as getting a job and please it doesn’t mean you are useless it just means that you are not suitable for the position, which is a different thing altogether: it could translate by actually you are too good for the position and therefore won’t be staying long enough before being poached, or that your C.V/resume expectations do not match the job description or whatever, that you are a heavy smoker and that you will be spending more time outside than inside, or that…well anything really, sometimes companies invite people to attend interviews just for the sake of it because it is a legal requirement when they know fore well they will promote someone internally.
So please do not get distressed, there is no reason for it, a call for action is needed though!
– Ask via email/telephone/letter why you were not successful on that occasion, it could prove to be very useful information because if the potential employer thought you lacked confidence for instance you will need to work on that particular skill in order to be prepared for the next interview… all experience is constructive in life the good ones and the bad ones a bit like, well in fact a bit like Java programming!
– Call your mates and let your hair down!
Can I offer my services as a Java programmer?
Yes you can, there are a number of people hiring Java developers for a specific project or contract, you enter something called Offshore Java development or Java outsourcing development: a company or an individual has the responsibility to implement a project which would take too long to do on his/her own so help is needed hence the need to temporarily recruit some Java developers and assign them to a specific task according to the Java development management plan.
Last but not least…the future is back!
The future is bright for Java programmers and especially for Android developers.
Are you interesting in learning Java from scratch or updating your existing skills?
Check out the Complete Java Masterclass which has 75 hours of video training and is the most comprehensive java training on the internet. While you are there read up on some of the 50,000 reviews left by students!
Take a look at these three truly inspiring videos for Java developers across the world. During a conference in Brazil they were asked 3 questions:
What is your favourite moment as a Java developer?
What is your favourite thing about Java?
What do you think the future of Java is?
I invite you to watch these videos and embrace the Java community.
The world may well be your oyster and Java development certainly can be as well.
If you like that post do not hesitate to share it around!
Linux®registered trademark of Linus Torvalds in the U.S. and other countries