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!
WHAT ARE THE ORIGINS OF 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++.
STATICALLY-TYPED VS DYNAMICALLY-TYPED
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.
WHICH LANGUAGES HAS JAVA GIVEN RISE TO?
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.
WHICH FRAMEWORKS SHOULD I USE WITH JAVA?
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:
WHY DOES TECH ELEVATOR TEACH JAVA?
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.
David leads a Java class at the Tech Elevator Cleveland campus.
IS JAVA TOO HARD TO LEARN AT A CODING BOOTCAMP?
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:
HOW DO REAL DEVELOPERS USE JAVA IN THEIR JOBS?
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:
CAN A JAVA DEVELOPER ALSO BE AN ANDROID DEVELOPER?
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.
WHAT KINDS OF JOBS CAN I GET IF I KNOW JAVA?
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.
WHICH COMPANIES ARE HIRING JAVA DEVELOPERS IN OHIO?
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.
IS JAVA CLOSED SOURCE OR ARE THERE OPEN SOURCE IMPLEMENTATIONS OF JAVA?
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.
WHAT ARE THE ALTERNATIVES TO JAVA?
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.
Learn to code this summer (updated for 2019)!
Is learning to code on your New Year’s Resolutions List? Find coding bootcamp course dates for 2019!