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 is Java?
- The language itself is specifically an object oriented programming language, so bears similarities to C++, C#.
- Java is also a platform, which means that Java code can run on any machine that has a Java Virtual Machine (JVM) on it. Originally those two things were interchangeable, and the only thing that ran on the JVM was Java. But since that time, a number of languages have been written which can run on the Java platform, languages like Scala, Groovy, an implementation of Ruby called jRuby, and an implementation of Python called Jython.
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.
Is Java a Good First Coding Language for Beginners?
There are a lot of reasons that Java is a good first programming language:
- Java has been around for such a long time, so it’s really well established. There are a lot of great books, online resources.
- There are probably more Java programmers than any other type of programmer in the world, so a lot of people already know Java and it’s easy to find people who can help you out and mentor you.
- It’s an object-oriented language, so a lot of the foundational concepts you learn inside of Java are transferable to other languages.
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:
- We employ really experienced programmers as our instructors; people with an average of 20 years experience, who have been in the field for some time. They already know the lay of the land, and can act as very good trail guides for our students.
- We have a fairly rigorous admissions standards for our bootcamp, so not everybody will get in. We look for people whom we think are up to the task of learning the material.
- We refine and improve our class every single time we graduate a cohort. That can mean using better examples, better exercises, or better projects – we’re constantly trying to step our game up to make this material accessible.
- We take a bit of extra time to teach Java. Part of the reason that Tech Elevator has been a 14-week coding bootcamp from the beginning is because we are teaching Java.
Working as a Java Developer
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:
- Companies like Google and Amazon use Java quite a bit
- Building really huge online systems.
- Writing programs for your Android phone specifically.
- Writing code for small embedded devices.
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.
Disadvantages/Alternatives to Java
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.
How Can I Get Started Learning Java?
- Read books and use online resources. If you want to try out Java, there are plenty of free and online resources. One free book we use in our classes is Intro to Programming Using Java, written by Dr. David Eck, a CS professor at Hobart and William Smith Colleges. The first edition was in 1996, and it’s up to version 7.0 now. It’s a really great resource and I definitely recommend it.
- Go to a Java Meetup. Java has been around so long, and there are probably Java user groups in just about every city. In Cleveland, Tech Elevator hosts and organizes meetups through the Java User Group, which is always a great resource to meet people.
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 in 2019
Is learning to code on your New Year’s Resolutions List? Find coding bootcamp course dates for 2019!
Your Holiday Coding Bootcamp Checklist
5 questions to ask yourself over the holidays (if you want to attend coding bootcamp in 2019)
5 Reasons to Learn Python
Should beginners learn Python as their first coding language? A General Assembly instructor explains