Written By David Wintrich
Edited By Liz Eggleston
Course Report strives to create the most trust-worthy content about coding bootcamps. Read more about Course Report’s Editorial Policy and How We Make Money.
Course Report strives to create the most trust-worthy content about coding bootcamps. Read more about Course Report’s Editorial Policy and How We Make Money.
What are the benefits of learning Java as your first programming language? Is Java just too hard to learn in 14 weeks? When starting out in tech and choosing a coding bootcamp, it’s difficult to know which language to focus on. Tech Elevator co-founder David Wintrich teaches Java at their Ohio coding bootcamp, and believes it is a great first language for beginners to learn. David explains the origins of Java, the advantages (and disadvantages!) of Java, which companies build software using Java, and the demand for Java developers. Plus get tips on how to get started learning Java!
Java was created by a team at Sun Microsystems, was released in 1995 and was subsequently acquired by Oracle.
A primary goal of the Java creators was to develop a language that could run on consumer appliances – so the designers were already contemplating a world in which there was code running on your refrigerator or toaster – what we now call the internet of things. We’ve only recently started creating devices which benefit from such a language, so in the mid-1990s, they were way ahead of their time. But that goal drove a lot of the architecture of Java. One of its major selling points was “write once, run anywhere,” so in other words you could write one piece of code, then it could be compiled to run on any device.
Ironically, Java did not gain popularity for that reason; instead its creators were able to take advantage of something else that came out in the mid-1990s: the world wide web. Java had a feature where you could write things called applets, small programs which could run inside of a web browser, and as the web was gaining popularity, Java rode that wave and became extremely successful and popular. So a lot of web applications were written in Java, even though that wasn’t what the creators had in mind when they first conceived the language.
The creators of Java were strongly influenced by existing programming languages like C and C++, with which Java shares a lot of syntactic similarities. They used these languages as an example of how not to do things, so there were certain features that the creators of Java explicitly decided not to include, because they had been troublesome for programmers using C and C++.
Java is a statically typed language, whereas Ruby, Python, and JavaScript are dynamically typed languages. People tend to get pretty passionate about the difference between statically typed and dynamically typed languages.
Dynamically Typed: If you’ve had any exposure to programming, you’ll be familiar with the idea of a variable. In a dynamically typed language like Ruby or JavaScript, you can declare a variable without having to say what type of data you want to put into that variable. The variable is dynamic; it can be anything – a number or a sentence etc.
Statically Typed: When dealing with data in a statically typed languages like Java, we have to declare what each variable will hold. For example, this variable will hold numbers; that other variable will hold text, and another variable will hold dates, and so on. This means that a statically typed language has a bit more structure to it. There are certain mistakes a programmer can make, which can be caught by the development tools we use with Java before you even run the program. Whereas if you’re working with a dynamically typed language like Ruby or JavaScript, you don’t know you have a problem until you run the code and it fails in some way.
I tend to prefer statically typed languages. I think it’s good for somebody to learn a statically typed language first, because there is an extra layer of code that you need to think about, and it makes variables more explicit. In my experience, it’s easier for people who have learned a statically-typed language first to then learn a dynamically-typed language, than it is the other way around.
On the one hand, some of the languages built for JVM, such as Scala and Groovy, are languages created to run within the Java environment. One might argue that Java had a great deal of influence on the development of C#. Microsoft’s C# language was developed after Java, and certainly took a lot of inspiration from Java. C# also also helped make improvements on Java, so those two languages have gone back and forth influencing each other.
There is no technical relationship between Java and JavaScript at all. JavaScript was developed by Netscape in the mid-90s, originally called LiveScript. Nobody was using it, so Netscape saw Java getting all this publicity and hype, and they basically rebranded Livescript as JavaScript to siphon off some of that excitement. And it worked – JavaScript became popular. But from a technical perspective there is no relationship between the two, they just bear similar names. The only technical similarity is that they both derive their syntax from the C programming language. For that reason, if you are familiar with Java, then it’s pretty easy to pick up JavaScript and vice versa.
The nice thing about Java is that it’s meant to be a very general purpose language, so it’s used in lots of different environments. It’s explicitly intended to run on lots of different platforms, so you can run it on your Linux machine, Unix box, Mac, Windows, or your cell phone. So I would say that it’s can be used with just about anything.
There are a lot of reasons that Java is a good first programming language:
From the moment we founded Tech Elevator, we recognized that our prospective students were coming to us not to acquire new hobby or because of academic curiosity, but because they were interested in a new job and a new career. We know we can teach people how to code using any programming language, and once they learn their first programming language, learning a second or third one is much easier. So in some sense it doesn’t matter what your first language is. But our perspective was that if we’re going to teach you how to code, we might as well teach you a language which will help you get a job. We saw that Java was the number one in-demand language in the country. Right now Java and C# are the two most in-demand languages, so those are the languages that we teach at Tech Elevator. If Ruby became the most in-demand language tomorrow, then we would look into teaching Ruby.
At this point we’ve had over 100 graduates from our Java coding bootcamps get jobs, so that is good evidence that it’s not too hard. However, if you’re trying to self-teach, Java is a really daunting language and platform to try to jump into.
At Tech Elevator, we use specific techniques to make sure our students are successful:
Most often Java is used to build large enterprise class applications. Java works great within corporate environments, or if you’re building a very large scale system. Although it can be used for small tasks, it’s less suited for that. In Dev Ops, where you need to create quick scripts, Java might be a little too heavyweight.
Java is pretty ubiquitous at this point – you name it and Java is being used for it somewhere:
Yes, our Java students at Tech Elevator do get Android development jobs. The main difference is that on the Android phone, Java is not really using the JVM; instead it’s compiling the source code specifically for the Android runtime, which is transparent to the programmer. From a programmer’s perspective you’re still writing Java, but when that code ultimately runs on the phone it looks very different from the code I might write for a web app. But in terms of source code, the code you’re writing is the same.
I tell students that my intent isn’t to create a Java programmer; we’re teaching you to be and think like a programmer. We happen to be teaching Java as a vehicle for getting there, but everything you learn about Java can be transferred into other languages, so we try to give our students a really strong foundation to learn on their own. Part of being a programmer is always being able to learn.
Because we give students that strong foundation, we have had plenty of students graduate from our Java program and get jobs doing C# development. We’ve had students go through our C# program and get jobs doing Ruby development. And we’ve had students from both programs get jobs doing JavaScript and Python development. Our philosophy is that learning the first programming language is the hardest, but if you learn it the right way, and focus on the fundamentals and foundational knowledge, then you’re well positioned to go out and get a job developing in another language.
Some of our biggest hiring partners are banks like JP Morgan Chase and KeyBank, which are both big Java shops. A number of Java grads have been hired by Progressive Insurance, even though that’s primarily a C#/.NET shop. We’ve also had graduates get jobs at startups building small web applications. It’s all rooted in the fact that Java is so widely used, so our students have found a wide variety of roles.
If there is any disadvantage, it can be a fairly steep learning curve for a beginner. Java has been around for a long time, so the good part about it is that, you name it, there will be some library or framework for your task, and there is a very helpful open source community around Java. So that all sounds good, but it can be bad at the beginning because you just don’t know where to start. It’s this enormously broad ecosystem, and if you’re trying to learn on your own, it can be a bit of a daunting environment to enter, compared to some other languages. That’s one of the value propositions of a coding bootcamp like Tech Elevator – we can help focus you on the things you really need to know.
From a technical perspective, a disadvantage could be if you’re doing a very lightweight, quick task, writing a quick script or something like that, then Java is not your go to tool. It’s better suited for larger and more complex applications.
Yes, the Java language itself is open source. None of the tools we use are proprietary, so all the frameworks and libraries we make use of in our classes are open source. Java is totally free to develop with. Some people have a perception that Java is not open source because of the affiliation with Oracle, and in fact, the Oracle implementation of the Java Development Kit (JDK), is not provided under an open source license. However, OpenJDK is a completely open source implementation of the JDK and the two implementations are practically identical.
The language that is the most analogous and used for similar purposes is the C#/.NET stack from Microsoft.
If I were giving advice to someone contemplating getting into programming, I wouldn’t get too hung up on the language if you’re just dabbling. Just choose a language and go with it. Once you become more serious about programming, the language will become more important.
Find out more and read Tech Elevator reviews on Course Report. Check out the Tech Elevator website.
David is the Co-Founder and Chief Academic Officer at Tech Elevator coding bootcamp in Ohio. David has more than 12 years of experience developing software systems at Fortune 500 companies, and for the US Government.
Find out what you'll learn in the AI Boot Camp at edX...
Find out how a coding short course at General Assembly can level up your career
Advanced AI courses aimed at tech professionals looking to upskill
How Lighthouse Labs' Cybersecurity Bootcamp prepares career changers for today's cyber roles!
Learn how Flatiron School + Bletchley Institute are building a global tech community!
How to land your first tech role with App Academy and HTD Talent!
Find out about the new Part-Time Software Engineering Bootcamp at General Assembly!
Mohammad Azam shares what students can expect from the bootcamp!
Find out about career support at 4Geeks Academy!
Take a virtual tour of BrainStation's campus in The Well...
Sign up for our newsletter and receive our free guide to paying for a bootcamp.
Just tell us who you are and what you’re searching for, we’ll handle the rest.
Match Me