This month, we take look at a job that is currently in high demand among employers in Quebec: Java programmer or developer.
Yannick Gendron, senior Java programmer for LesPAC.com, took the time to speak with us about his profession in detail.
Jobboom: What do Java programmers do?
Yannick Gendron: Like any other programmer, the main role of a Java programmer is to create applications or develop functionalities for websites or software. We programmers translate the desires of the product team into a language that computers understand.
Java programmers must also maintain an organization’s code base to ensure that all changes and evolutions of the code are accounted for, and must also test the code for stability before it is tested again by the Quality Assurance team.
As part of their jobs, programmers may also undertake functional or technical analyses of websites or applications in order to suggest and prioritize future improvements.
JB: What’s the difference between a Java programmer and other kinds of programmers?
YG: Java is just one programming language among many others and in general, organizational roles for “jack-of-all-trades” programmers don’t really exist. There are essentially two types of programmers: generalist developers who know several languages, and specialized developers who focus on a specific area of development. In terms of programming languages that are in the most widespread use, .NET and Java are at the top of the list. But there are many other languages, and in cases where an app or a website uses one particular language for development, even a generalist programmer will develop a sort of specialization.
JB: What are the fundamental competencies required to be a Java programmer?
YG: The profession requires a rigorous approach to the work, an analytical mind, and also a strong ability to observe. These skills help limit the number of errors and bugs that make their way into code, and also help ensure the optimal functioning of an application. A good programmer also needs to be autonomous and be able to take initiative in order to successfully manage their time and handle urgent issues.
Knowing how to find information quickly and efficiently is another fundamental skill in programming. This skill is essential to many jobs that are in high demand today. But in the field of programming, all of the documentation related to programming languages is online; it’s a massive repository. A good programmer needs to know both what they’re looking for and where to find it.
JB: What personality traits are useful for a Java programmer to have?
YG: Curiosity, passion and a taste for experimentation are important. These traits allow a developer to learn a lot on their own by exploring what’s available on the internet, or simply by trying new things just for the fun of it.
Knowing how to explain technical problems is also very useful, and helps to save time during meetings and when resolving problems. A last note on this point: it may seem silly to say, but many developers are quite “geeky”. A candidate for a programming job who has a strong knowledge of pop culture might be considered a great fit for the team!
JB: Is programming a profession that demands passion?
YG: Not necessarily. I’ve met excellent developers who see their job as a 9-to-5. But being passionate about technology is, without a doubt, a big advantage in this field, and something that many recruiters are looking for.
That being said, having a passion for programming isn’t a prerequisite in this industry. Less-passionate developers can often be more focused, which is a very valuable quality.
JB: What are the main challenges that Java programmers have to overcome?
YG: The biggest challenge is figuring out how to translate a client’s requests into functional code, because clients often lack the technical knowledge to explain what they want clearly and efficiently. It’s often said that nothing is impossible in IT, but some techniques or requests can be very complex, and therefore, more expensive to complete. As a result, it’s important for programmers to be able to propose compromises to the client while still ensuring that the proposed solution will meet the client’s needs.
Also, once a new application or website is up and running, users may discover bugs related to different system configurations and devices. This presents a challenge because developers must then manage these urgent issues and prioritize which fixes to do first.
JB: What’s a typical day like for a Java programmer?
YG: It depends on the developers. A programmer working remotely has a lot of autonomy. Generally, these workers will start their day with a few videoconference meetings, and then will organize their schedule to ensure they can deliver their code in the required timeframe.
In the office, there’s a similar rhythm, and most developers start their day with a few cups of coffee! After that they get to work on the tasks they have been assigned, but in a flexible way. By that I mean that because developers work by task, they don’t necessarily need to subscribe to a 9-to-5 schedule. At the end of the day, each programmer must decide for themselves if it makes more sense to work a little bit longer that day to finish a task, or to head home and return in the morning refreshed and ready to work. It’s also possible for developers to combine office and remote work using models that are becoming more popular, such as “using your own device” for all work.
JB: What kind of projects does a Java developer work on?
YG: Because Java works on all platforms, a Java programmer can work on any kind of project. They can build websites, apps or software – the possibilities are enormous. Java can be used for everything from changing a single word on a webpage, to designing complex server architecture for experienced programmers.
JB: Are there possibilities for advancement as a Java programmer?
YG: Java developers start out at a junior level. Once they’ve gained some seniority, they will get into software design and modeling; afterwards they can progress to software architecture, where they will dedicate their time to design, or become a team leader, where they take on a management role.
JB: Which industries are Java programmers typically found in?
YG: It can be any industry, really. Any project that requires development can be completed in Java, whether it’s a website, application or software, especially if the final product must be multiplatform. Java’s major strength is its compatibility across platforms.
JB: What kinds of career paths can a Java programmer transfer to?
YG: A lot of developers go on to become business analysts and to dedicate themselves to finding technical solutions to problems. Others choose to focus on in-depth testing of code and become Quality Assurance specialists. But programmers can also transfer to disciplines such as web integration or server configuration with relative ease. Programming is a great entry point for someone to discover the many possibilities of a career in information technology.
JB: Can a person learn to program on their own?
YG: Yes, there are many resources available online. Real-world experience and a portfolio of code are worth a lot more to recruiters in this industry than a diploma.
JB: Which courses can one take to become a Java programmer?
YG: Despite my last comment, it can still be a good idea to go to school to learn about programming. There are two main paths through which people can acquire the knowledge they will need to work in the field:
- A technical CEGEP diploma
- A bachelor’s degree in university, as a step towards earning a Master’s
These are the two diplomas that we see on the majority of candidate CVs. Generally, though, a person’s level of education doesn’t have a lot of impact on the decision to hire – more than anything, a new developer needs to prove what they can do and demonstrate what they are capable of achieving.
Outside of CEGEP or bachelor’s programs, there are also certificates and professional training programs recognized by the industry to help students to develop a strong base of coding education.
JB: Do you have any other advice for people who want to become a Java programmer?
YG: Don’t wait – look up some resources online and start coding! Choose a programming language and take a half-day or longer to create your first “Hello World!” program (the first program you create while training in any language will output the words “Hello World”). After doing this, you will already have a good idea whether or not a career in coding is for you!
Once you’ve completed this initial step, you can study the concepts and procedures that apply to all programming languages. At this point, it’s more important to learn these high-level concepts than it is to learn the details of specific languages themselves, as it will give you a strong foundation to build upon.
JB: Can you tell us an interesting work-related story?
YG: My first few project deliveries created some great memories. Back then, roll-outs of new code typically happened on Friday nights around midnight and continued on until noon the next day. I thought that was very cool! I felt privileged to participate in the unique experience of pulling an all-nighter, or close to it, to deliver the results of several months’ work.
At every step of a project roll-out there is the worry that something won’t work as it’s supposed to; but getting through these situations brings a team closer together. Today, we’ve made many improvements to the delivery process. It’s now a bit more complex, but we are able to deliver code in the morning in the middle of the week. The extra complexity in the process has made the job more convenient, but part of me will always be nostalgic for the all-nighters!
From a recruiter’s point of view:
Interview with Jean-Philippe d’Amours, HR Councellor at Mediagrif.
JB: What competencies are you looking for when reviewing a Java programmer’s CV?
JPDA: The standard advice for CVs applies: it must be clear, easy to read, and present the candidate’s experience and tasks that they’ve realized. For programmers, they also need to detail which languages they are comfortable working with. Of course, the CV needs to be formatted in a way that is coherent and standardized.
Technical competencies should be presented first, along with tools or methodologies (for example, Agile or Waterfall) that the candidate has mastered. It’s a big plus for the candidate if the organization they’re applying to is already using the same tools.
As well, if there are any holes in a candidate’s CV, they should be able to explain them during the job interview.
JB: How much importance do you place on a portfolio?
JPDA: It’s not a requirement, but having a strong portfolio of work can definitely improve a candidate’s chances of getting an interview. A body of work confirms the individual’s competencies and allows development managers to get a better idea of how they work.
But regardless of whether a candidate has a portfolio or not, recruiters will ask questions about past projects they’ve completed during the interview.
JB: Do you have any interview tips for candidates?
First of all, if you’re a shy or timid person, don’t worry: it’s cliché at this point, but it’s true that many programmers aren’t especially adept at social interaction. Being shy is no big deal as long as you dress decently and your CV is well put together. For interview preparation, try to imagine the kinds of questions an interviewer will ask by researching and analyzing the company you’re interviewing with. You may want to consider sending the company an email in the days before the interview to find out more information about the technical aspects of the position.
Other than questions related to your CV, which you obviously should be able to answer, you should also expect technical questions or quick tests of knowledge. Recruiters will likely ask what your preferences are in terms of programming and may ask about a previous project that you’re proud of, as well as one that you’re not proud of, and to explain why.