Learning Java can be complex yet simple at the same time. There are a lot of programmers who want to learn Java but don't know how to start. Java is an awesome programming language that could easily add some spice to your coding skills.
It can be really difficult at first, I know. There are a lot of resources and it is hard to tell what is the best way to start learning a new programming language. As I've talked before, learning your first programming language can be difficult. You need to practice a lot and learning a programming language might take some time. You need to invest some time if you're learning Java for the first time. However, after the first programming language learned, you can follow the next steps easily.
So, where do you start if you want to learn Java? Which strategy should you follow if you want to learn this programming language? Watch this video and find out!
John Sonmez: Hey, what’s up, John Sonmez from simpleprogrammer.com. I’ve gotten this question a lot and I’m finally going to give an answer here which is: How do I learn Java? What is the best way to learn Java? How can I learn Java? Please, sir and variations of that, basically how do you learn Java, how can I learn Java?
I think that this is an interesting question because it’s—specifically some of you are asking how to learn Java and I’ll give you some specific Java resources, but learning a programming language in general is really what you’re trying to do. That’s the skill set. The resource I’m going to give you for learning programming is I’ve got a couple of blog posts and I actually wrote book called The Complete Software Developer’s Career Guide and I have some resources there where you can learn how to learn a programming language. Go ahead and check that out. You can sign up to get free chapters of the book. It’s totally free if you sign up via email and then you could buy the hard copy if you want once it’s complete.
I will talk specifically about Java, about learning and I’ll give you a few resources here. Java is probably a good programming language to learn. There’s a lot of resources out there. It’s a very popular programming language. It’s an object-oriented language. It’s fairly simple. It’s a lot less complicated than C++. I did a video on how to learn C++ and I kind of discourage you from learning C++ in that video because I think that that’s really hard for a beginner. I think C++ is a valuable language but it’s much more difficult. With Java you don’t have to deal with a lot of that kind of problems. Java is still a fairly complex language. It’s not a simple language so you’ve got to have a good strategy for learning Java.
My primary strategy, I’ve actually taught courses on Java and I’ll link you to those in a little bit here, but first I want to talk about the strategy and what I thought was most effective for teaching people Java which is not to try and learn it in a vacuum. What I mean by that is—and this probably applies to most programming languages is that it’s a good idea to learn a programming language with a technology, with some kind of application that you’re going to use it with.
If you just try to learn Java in a vacuum that means that you’re trying to learn syntax of Java and maybe you’re trying to write Command Line Programs to use the Java and it’s going to be hard because we don’t learn that way. The reason—the whole purpose of learning in general is to solve problems. We have something that we want to do—and anytime you’re trying to learn something you should always ask, “What do I want to do?” “I want to learn this so that I can do X.” For Java it probably should be, “So I can build an app” maybe it’s, “So I can build an Android app.” Now that’s a pretty good reason. Maybe it’s a web app if you’re going to—but that’s going to—not only is this going to give you a goal, not only is it going to help you to stick with what you’re learning, to get that into your mind and to understand it better, but it’s going to give you specifics of what you want to learn in Java, because Java is a programming language. It’s a toolbox.
If you said, “I want to learn how to use tools” that’s kind of silly, but if you said, “I want to learn how to build cabinets and these are the tools I want to use to build the cabinets” now you’re getting somewhere and that is the key. That’s how we’re going to learn Java.
In the past what I have taught people to do is to combine Android and Java at the same time. It seems like this is 2 things to learn, and it is, but it will give you some kind of application. It doesn’t have to be Android, but if you pick something, maybe you want to build a Java web app, good, great, a Java Android app. Good. A Java desktop app or whatever it is, pick something that you’re going to build and that’s going to be the driver. From there you’re going to work backwards and say, “Well, what do I need to know in order to be able to build that thing?” That’s how you’re going to judge your competency level.
You’re not going—again, you’re going to learn the things, 80% that’s critical in order for you—or the 20% that’s critical in order for you to do 80% of what you need to do. You’re not going to try to learn the whole Java at one time. There’s a lot of stuff and you can be overwhelmed.
Here’s where I’m going to give you some links for some resources based on this. I did a few PluralSight courses on this on learning Java. I did a 4-part course. We’ll try to get links here for all 4 of these courses because they—unfortunately on PluralSight’s navigation it doesn’t really show them in order, but basically the first course is on an introduction to Android. It just talks about Android itself so you have the basics of Android. The next one talks about—is using the app inventor, this is kind of a drag and drop kind of programming interface like _____[inaudible 00:04:50] which you’ve seen. That course showed you how to build basic Android applications but you’re using some logic, right?
Then the third one, and you could start at the third one if you want, it’s called Just Enough Java. You can get that here. What it does is it basically teaches you Java as you’re learning to build an Android application. I say, “Okay, whoa, we need to build this screen. Now let’s get introduced to this Java functionality that will allow us to do this particular thing. Oh we need to execute something here so now let’s talk about what a function is.” You see what I’m saying? Or, “We need to encapsulate some of this logic so I guess we’re going to probably have to use a class here.” What you’re doing is you’re learning from practical application. It’s going to stick a lot better. A lot of people that have gone through that class have found that, “oh, I’m learning Java much easier than before” because they’re learning it that way and it sticks. You learn just enough Java to be able to get an Android application built to get that application built.
The fourth one is actually the most fun. I’ve got how to build a game, your first PC game using Java. I go through—that’s a fun course. I give all kinds of voices and animations and all kinds of cool stuff. I actually show you how to take what you learn now and we’re going to expand a little bit more and learn more concepts in Java as we build out an actual game. We’re using even a different platform at that point.
You’re learning Java by learning how to actually utilize it which is really important. I also have 2 other PluralSight courses on learning Java that is more of the traditional approach. If you rather just—and you can use resources and—but it’s still built, it still builds on building an application. This is the key thing. It’s a little bit different this application I believe in one of these courses is a printer, kind of a virtual printer that we’re creating. You can check that out. I believe it’s called Introduction to Java 1 and then the second module in that course or the second course in that is I believe Introduction to Java 2. You can check both of those out on PluralSight. I’ve got a bunch of courses. I’ve done 55 courses on there.
Anyway, I take that approach. The approach that I just told you about how to learn Java that’s what I’m doing in those courses and I’m showing you how to actually apply what you’re learning so you can actually do something. That’s the key. Again, if you want to learn any kind of programming language or really anything you want to always ask yourself this question of I want to learn X so I can do Y. that is going to inform you about what to learn and it’s going to make it so that it sticks in your head. You understand the concept because you’re actually using it.
I could tell you about all the tools that a woodworker uses, right? I could explain to you how a lathe works and how a drill works and all of these things. You may be able to absorb some of that. But if I go in and I say, “Look, you want to learn how a lathe works?” I don’t even know what a lathe is. Or a planer, I know what a planer is. We need to smooth down this surface, so here use the planer and plane it. You see how this works? This is why we’re doing it. We need to put a hole here. Here’s how this press drill works. Or whatever it is. I’m showing you how to do it. You’re actually using it to actually build something, build a cabinet or whatever it is and now you understand it, now it sticks. Now it makes sense because it’s not just learning about some keyword in backing. Do you understand what I’m saying?
So many people try to learn Java or learn any kind of programming language the wrong way and that’s why they can’t learn things. It’s a frustrating experience. I couldn’t learn like that. You’ve got to be applying it.
I’ll give you one other resource I think that is a good one for a book. This is not my book but it’s called Head First Java, actually I’ll give you 2. You can check that out here. This is kind of a good one. It’s a different out of the box way of thinking about how to learn a programming language. I like that a lot. Actually, I’ll give you a few of them now that I’m coming up with many ideas. Another one is a book by Bruce Eckel that was one of the first Java books I ever read called Thinking in Java. I think that’s a good one. It’s a little bit dated but I think it’s still got good information there. Then I’ll give you another one, a really large book if you large the thoroughness, it’s a beautiful book. The Deitel books I just love them because they’re—they meet my OCD requirements for packaging and how a book should look. It’s called Java How to Program. It’s by Paul and Harvey Deitel. It’s a real good one. You can check those out.
There are some more advanced books I could recommend if you’re going from beginner to intermediate and that’s a whole different step. If you’re interested, let me know. I can do another video on that topic. Key thing, again, you can check out my PluralSight courses but however you learn Java, however you learn any programming language the key, key thing here is that you remember you’ve got to apply this. You’ve got to do it again. Think about what I said about a woodworker and a lathe or a planer because I don’t know what lathe is. I think it’s like a hook—I don’t know.
Anyway, I hope that helps you. If you’ve got a question about programming languages or career or life, whatever, whatever I can help you with email me at john@simpleprogrammer.com. I would love to help you. I’ve got one big favor to ask you, if you like this video, if you’d like to get more videos, if you haven’t subscribed already just click that subscribe button and I’ll be in your inbox. I’ll be on your YouTube channel and I can give you more videos like this one. If you’re already subscribed then hit the like button. Let me know that you’re out there. Take care and I’ll talk to you next time.