Johnny

A senior Java developer and Java tutor at Learning Tree International programming courses.

What Should Your Next Programming Job Be? [Freelancing vs In-House Development]

Java is a skill that is in high demand and that’s why I and so many others have jumped on board the bandwagon and became a java developer. This field has so much to offer a young coder. Things like a high salary and job advancement are nice to have in a world where it seems like nothing is certain.
Plus, you can work solo or, if you feel like being social, jump in on a collaboration. Not to mention you are free to do this job in a multitude of different fashions. Most common is either being an in-house or freelance programmer.
Which one is the right choice for you? Well in this article I am going to break down each option and give you a few tips and resources I have gathered together over my career in the hopes that I can help you figure things out earlier than I did. So, let's start with looking at the options and what each brings to the table.

In-House Vs. Freelance Programming

Java is one of the most used languages when it comes to application and program development and that is why it is in such high demand. This career path will have many opportunities that end up laid out before you. The two main options that face you are working is an office as an in-house developer or freelance from whatever location you want.
This, in essence, is what I had to figure out and what you will eventually have to work out for yourself as well. Each option has its advantages and disadvantages. 

In-House 

An in-house Java programmer is an individual that is hired to create software on a permanent basis for a given company. An in-house position comes with a steady job and benefits, but there is less freedom and sometimes less money to be made.
Here are the pros/cons of an in-house Java programming job:
Pros
  • Projects are long term — you don’t need to seek out new opportunities all the time
  • You will have one-on-one in-person communication with everyone on the team, allowing you to get to know them and aid collaboration on a project
  • You will be working in a group where you can socialize with like-minded individuals to advance your personal and professional skills
  • You will have access to more experienced programmers when you need assistance — an opportunity to improve your improve your knowledge and skills
Cons
  • 8-hour workday — you have to stick to office hours most of the time
  • Less salary (one primary source of payment with less opportunity to work on side projects)
  • Lack of freedom — your pool of projects is limited to what the company decides to work with

Freelance

With a freelance position, you can work as contractors for several companies at a time, choosing specific projects and time frames. This can be a great way to build experience. And just like with an in-house position comes with its own advantages and disadvantages.
Here is a list of the pros/cons:
Pros
  • You get a better variety of projects to work on
  • You can work from anywhere in the world
  • Freelancing allows more time for personal projects
  • You can work on an hourly basis instead of salary, meaning that your earnings are in your own hands
Cons
  • No benefits, like partial health insurance coverage
  • You have to self-market constantly — if you do not, your work levels will reduce
  • The starting scale is low — to build a portfolio, you need to charge less to get clients
  • You need to self-manage all your work between different projects — you do not have a boss; you are your own boss

What Companies Look For

When a company is deciding on whether to go with an in-house programmer or a freelancer, there are some things that they will consider during this decision-making process, such as:
  • Your technical background and experience
  • How much they can afford to spend and your payment request
  • Their time frame for completion and your availability
  • How fast you can learn new things
  • Your communication and self-management skills
By analyzing these features, a company decides if they want to hire you. And all these things matter irregardless of it being an in-house or freelance position.

Useful Tips for Beginners

As a programmer, I have been asked by so many young developers what skills they need to be a successful programmer and the truth is that it really depends on the projects and what you plan to do with your Java skills. 
But there are a few things that I think are critical to any successful career. Here is what I and a lot of my programmer buddies think is crucial to have in your tool kit:
  • You need a good grasp on how to balance theory and practice. 
  • You will want to keep learning, so always having a schedule to keep your knowledge fresh and up to date is a great tool to have in your arsenal.
  • Look for courses and tutorials that use gamification. This will make learning fun and allow for better retention of skills and knowledge.
  • You will want to always have access through forums and groups to experienced programmers as well as your own peers.
  • You will need a well thought out and easy to navigate portfolio.
  • You will want to link to your or fellow students
These tips and suggestions will help you find the programming gig of your dreams and keep you in the know about where the industry is. There are a lot of great resources out there to help you learn and keep your skills fresh and up to date. These are some of the ones that I suggest you look at:

Resources to Learn Java

There are many resources that you can take advantage of. There are online courses and applications that use fun games to help impart experienced programmers’ knowledge as well as some amazing books that you can read to help you along the way as well. 
Here are some of my favorites from both categories:

Online

CodeGym
  • CodeGym is an online Java course that uses hours of practice to build up your skills. There are a lot of reasons to choose it as your go-to educational platform. This is a totally online program that utilizes gamification and a virtual mentor to help you improve. There is a great community of fellow students and programmers to help you with your process. This system is a good one as it was built by programmers for programmers and gets you armed and ready to conquer the work world once you have completed the courses.
Codecademy
  • This programming course is an online course that helps build and maintain your skills in programming. There is not only coursework and quizzes that you can do both online and through an app but also industry articles to help keep you in the know. You will learn by doing and get instant feedback as you do it.
CodinGame
  • This online site uses gamification to help increase and improve your skills. You will be able to have access to professionals through their hand-built courses. Through using this system, you will be able to become an expert in your programming field. Plus, there is consistent access to amazing tutors that will help you as you learn pure code and develop skills that will help you build a life as you want.
Books
  • Java Programming Dummies by Wayne Holder
  • Introduction to Programming in Java by Robert Sedgewick & Kevin Wayne
With these resources and the vast selection, you have available at your fingertips it will be easy for you to learn and envelope your skills. Then once you have built your skills and your portfolio it will be time to head out in the world and decide whether you want to be an in-house or freelance Java programmer.

Final Thoughts

Deciding to venture into online education to build your Java programming skills is really a great idea. I took the plunge and have built an amazing life around a career that will keep expanding and developing.
This keeps me engaged and employed (which is a great thing). I have been both an in-house programmer and a freelance programmer and both have had their good points and bad ones. 
But before you even decide on which avenue you plan on going into you have to learn or improve your skills and that takes a little time and patience. Hopefully, with all this information and the resources I have laid out for you; you feel better equipped to start your journey.

Tags

More by Johnny

Topics of interest