As a tutor I recommend to look at the next chapter and then watch coding with john videos before class and then if they have questions they could ask the teacher and be ahead of the class for the discussions.
I have been working as a java programmer for two years now (honestly) and only recently I found that I should get myself a bit more familiar with some of the language specific concepts and ideas. Coming from C++ I never had a problem understanding or coding in Java even though I never had any formal training (also my C++ skills were mainly self taught). Still I am aware that I would greatly benefit by filling the gaps. You channel is really exactly what I need. Most of your videos focus on a single topic and explain that in depth. This allows me to cut out all the boring basics that I already heave heard so often and that have kept me away from so many other programming language teaching channels. Plus you are a great story teller and it is a pleasure to sit in on your lessons. Thanks for the good work!
I'm trying to come from C++, but it's not going well. It's more than just the language that I don't like and find really annoying. It's all of the other shit, as was mentioned in this video.
LOL! Java makes you learn the real nuts and bolts upfront. And this is probably why it is difficult. Would you trust a programmer, who doesn't understand what public static void means, to build your system. These words are relevant in the software development world even if you don't readily use them in dynamically typed languages. If and when you get a logical error, you'll want to be sure you understand these concepts during your debugging.
Yessss!!! This video pretty much summed up my entire programming class this semester. I'm at the point right now where I just want to pass the class. I'm so glad I found your stash of hidden treasures. I wish I found you sooner, but it is what it is. I might have a shot of passing this course now that I have a (very loose) handle on things.
@@lookupverazhou8599 You're laughing now but when it comes to applying for a job in the field a credible degree is always an advantage. Try to not condescend to peopel in this manner pls
Well done! You are the first to dare to tell the raw truth about Java. You played very well the state of mind of the bewildered beginner in front of the classic Java HelloWorld. You made me laugh because four years ago I was like this too: confused. I accepted the challenge with myself and I won it. The big prize I received is that now I can say I can say that I understand what "Object Oriented Programming" means; and so I quickly understood the metaphor of the peanut butter sandwich. That's right: according to the OOP philosophy, to make a sandwich you must first build an object of the type "Kitchens" and others of the type Knives, bread, peanut butter and methods such as "spreadingButter ()" and make them interact. It's difficult because everyone wants to explain Java without explaining OOP and what an object is.
The proper progression is C -> Java -> Python. Then it makes sense. Personally I find print("Hello world") harder to understand because everything is hidden from you
This video helped so much. Im currently in a Java dev course at a certain point I felt like I was drowning in all the things I had to learn. My cours is project base and for one of the projects there were so many concepts that needed to be learned that I didn't know were to start.
Java is high/abstract enough to be usable and low-level enough to be fast, that is why syntax is so C++, but at the same time you don't have to manage memory pointer and manually destroy objects which is convenient
In college we started with SQL, then went on to Python, then we learned Java. I think it's definitely different in that the script ends up being a lot longer, but I found that I made a lot less errors in Java than I did in Python, even when my programs DID actually run. I thought Python was more difficult because of how error prone it was. My running program still had 14 errors in it. Java on the other hand is very "right" or "wrong". I had a much better experience working with Java. Might also be because I got the hang of basic coding syntax and loops before I ever even looked at Java. I think the length of the script is more intimidating to look at, but that it makes more sense than Python. That's just my opinion.
I started to use R as a statistician. Then use python because data collecting and data cleaning takes 80% of my time. Then I learned Java. As python is better for data analysis, I found that when I want to make something robust, using java is waaay better because the snytax is so precise. I found java answers all of the ambiguity in python that consumes a lot of my time to debug.
@@wafflecoast those three languages, they will only teach them midway and leave you on the road and start another one while you're trying to finish this on your own
@@frederickteye depends on the college. In my college, we started with SQL and Java and ended with Spring. The only other language was JavaScript for frontend and Python for those who chose it (in Europe system is a bit different, so I don't know what it's like in the USA)
One of my best strategies for helping beginners is for them to have a physical notepad or notebook and put things they know and learned, let say why is Public class important just write a few words you dont need a huge essay of it, basically the idea that helps you get things immediately I write stuff I learn in bullet form and a three sentenced form to help me know and remember it helps when you watch videos, alongside that is Put the browser tab on side with your IDE that way you can catch up and write it down again on your notepad, it may take alot of work and that's because there's no shortcuts in life
Much appreciated! I thought this one was a little risky - not strictly a lesson vid, and also don't want to discourage people from learning Java in the first place. So I'm glad you're liking it, and I thought it might help to reach some more people. Thanks for watching!
@Coding with John Coming from a Python background myself, everything in this video rings so true. I'm glad you took the "risk" to publish this -- your honesty makes you more credible as a teacher. Here's hoping your views skyrocket in the coming months!
Man, this hits home. I've been programming in Java for about a year now. I've come across so many things that have given me trouble. For allot of them, I've literally just had to stare at a screen for hours and run circles in my brain until I understand them. But for the most part, I always, eventually, do understand them. It takes ALLOT of patience to properly understand the programming concepts you're learning. This type of learning isn't for everyone and some might think it crazy. But I've come so far and I think what I've done to learn is worth it. I'm nowhere near a master of Java, but I feel like I now have a pretty good grasp of how the language is built.
Java is not hard... python makes some thing way to easy which prevents beginners from learning things they really need to learn to have an understanding of what they are doing.
I have never found Java to be difficult. I learned programming starting with Z80 assembler. Then BASIC, Pascal, 6502 assembler, C and then Java. I took a couple of years before I properly understood Abstract Classes & inheritance. Many of my first programs were monolithic with the minimum number of classes to do what I wanted. You need to learn to think in OOP terms - mentally - before you can really make full use of Java.
John, I'm a Senior CS student at the moment. I feel like I've acquired all of the necessary knowledge in vanilla Java by this time in school (OOP and Data Structures & Algorithms). What should be my next move? Spring boot? And thanks for your tutorials.
That's great! I actually do think that Spring Boot is an excellent thing to start learning if you have all those Java elements already covered. Work on getting a simple web service set up in Spring Boot - after you know what you're doing with it, it only takes a few minutes, but the first time you'll stumble through quite a bit learning how to do what you want. But it's a great way to learn about how web services work, how you call them, and how you can build them on your own. Once you have it working it's really rewarding, and you can probably think of some cool things you can make with them if you want. If your first job out of college is in Java, it's likely it will use Spring Boot if the company uses web service apps with Java. That's what my job is! So potential employers would love a college grad that's familiar with how they work.
@@CodingWithJohn terrible advice. Frameworks will come and go. And learning so u get a job is going to make u narrow minded. I've done java for 15+ yrs and never learned a framework. My advice would b to learn the concepts deeply. Then follow your heart you'll come up with some interesting ideas to work with that are non conventional
@@collinsa8909 You are right, frameworks come and go but it is also good to know about the most used framework for Java, if you want to work with Java. And looking at the developement of the Spring Framework, I believe Spring will be in the Java space for many years to come. All in all, learning something about Spring as a college student will definitely be useful once you graduated.
I like your take: "Java is not hard, programming is" You may think python is easy and blah, But I come from both Python and Java world, let me be very frank writing production level is code is HARD, its independent of programming language that you use. Its a practice and that takes time. So all those who teach programming in a day, week, month, well Good Luck. You may learn the language but the learning how to program takes time and there is no way around it.
Programming is just like any other skill that requires a refining and growth that can only come from time and experience. Anyone can learn to cook, play instrument, program, etc., but to master that skill takes dedication, commitment, time and lots of mistakes.
In case anyone doesn't know what that args array is for. When you go to run a basic bytecode file like HelloWorld.class: java -cp . HelloWorld arg1 arg2 arg3. those three arg values are going to be elements in the args array. This can be checked logically within the main method; this can help with setting certain modes for your program, or execute a totally different version of your program depending on the value of arg1, or arg2 ...
Another great video! Btw, motivation for studying really matters. Studying Java, finally managed to write a text game. Omg, I was so happy that I ran it hundred times. Now, I'm staring at my code and trying to make up a "critical strike" method))))
Having been a programmer professionally, in Java, C#, and now a little C++, I have to say the scenario you painted of a thousand browser tabs open and pulling your hair out for hours is so true. But when you finally figure it out, and you finish a 10 hour day of intense programming and doing this time after time, your brain will never feel more tired, but you’ll also have a feeling of accomplishment that’s really unmatched by most things
the same goes for pulling a half burnt stick out of your ass, but it doesn't mean it's any good the point is, going through all that is unnecessary and the abstraction in Java api doesn't make things easier, it just splatters the state of program into different unnecessary "API"s ,aka interfaces and coupled classes. take file handling for instance, or logging (yes even Log4J), or sending a bloody https request... now the thing is my problem is actually not oop (tho I don't like that either) but Java itself and developers who abstract too deep, and never stop to think if any of it is necessary the only thing handled very good in Java is for some reason the threads. they are as complex as other things, but other than that, the rest of it is a pain in the butt
And once you have done hours of finding issue, you start to develop a "Feeling" of where and what is not working, and you hone in so much quicker. And last but not least ( Happened so many times ): go to bed sometimes, and forget about it, the next morning you will see the issue straight away ! Don't have that much time ? Take a dump and relax, you will find the toilet is a great site for inspiration. Companies should have so many more toilets where employee can find inspiration undisturbed.
I'm just starting to learn some Java again, I tried years ago and found it too confusing but now that I'm quite good at other easier languages (Python and Javascript) I find it a lot easier to understand.
In recent C# versions (C# and Java have always been very look alike, competing languages), they introduced Top Level code, which removes the need to type the initial class en Main function. The compiler can just generate that for you. Maybe some day Java will get the same feature.
@@PeterVerhas Thanks! It is still preview in Java 21 though. But it is not giving the option to leave the main method away, but just the class, which becomes "unnamed". Interesting. Actually a better choice than what has been made for C# currently. Leaving the entire main method away in C# removes some features, like the ability to set main method attributes. If you want those, you must reintroduce the entire boilerplate thing, there is no way in between. And additionally private type declarations at the bottom of the top level Program do not work either, because they are not recognized and understood by the compiler as nested types in the auto generated Program class. However, I am not sure about Java with the non static main method option, because a static method is faster in performance and should remain the default in my opinion. Leaving the static keyword away should still make the method static.
I'm not really a Java coder but most of the things he noted as hangups for people are present in virtually every language I've used, and for the most part they're all things that just sort of occur naturally as a result of the way code is. Python has all that same stuff, too, and unless you're writing only the simplest of scripts you'll have a difficult time avoiding it. Same with JavaScript, C++, C#, PHP, etc.
I get the impression that a lot of this is the result of Java being a language *specifically designed* for a corporate environment where your code will be handled by people who have never touched it before. So much of Java is just built around making sure that it's *safe* for other people to mess with things without it breaking.
This is probably cause I'm autistic but... Java was my first programming language and I didn't found it that hard. I started coding with it by watching other people's code and with no tutorials or courses at all. I just watched small pieces of code doing something and this helped me a lot understand how did that worked.
I've been programming professionally for 30 years. I occasionally have to dip into java, but never full-time. The reason I've found java difficult is nothing to do with language itself. It's eclipse and open source references within it. I set it up with our enterprise application, compile, hit a breakpoint. Fine. Then I don't touch it for a year. Then..... on next use I find that eclipse is broken. All of its internal references to open source components have expired and I basically have to spend another day trying to set it up again. Visual studio, SQL IDEs, etc, they don't expire. I know I'm ranting about an IDE and not the language. Okay one thing I don't like about java is that every sub part of a blah.dot.namespace. component is in the next subfolder. Fine in the IDE. Not fine if you grep navigate text from the terminal.
Using IntelliJ is so much better. Almost all professional modern Java dev is on that. They made it so good, they built another JVM language with all their tooling, called Kotlin! Which is the most popular language to build for Android!
Java has a lot of inconsistencies, blunders in its original concepts and other problems due to the lack of proper research during its creation stage. Only because of Sun Microsystems and the money behind it it has gained an overwhelming support and multiple fixes to work mostly flawlessly.
The problem with learning programming languages in general is because "the ways of teaching and the people who teach are rubbish". Many programmers, instead of helping, mock or insult newbies. I don't know what the hell they have in mind. As if they had been experts from the beginning. The envy of not supporting there are better people irritates them. And books or tutorials are often useless. I have seen tutorials that I do not know how the program works for them and when you try to do it as they tell you, you find countless errors that in the end you look for another way to do it or leave it. The main problem is the way to teach and that annoys over time.
Java is the beginning of the harder programming languages where you need to watch the Crash Course Computer Science series to understand why tf it works the way it does.
@@jake9854 wow ur so cool bro I said it was the beginning. As in, harder than Python. Trying to prove superiority in youtube comments makes you seem insecure.
@@IAmNumber4000 nah I ain't trying to prove no superiority you taking it the wrong way. all I'm saying is Java is easy as f compared to C & C++. Be thankful that you don't have to learn those languages.
I dived head first into a big Java project about a week ago with little experience. I was semi-familiar with C# which I guess helps but still, I should've started with a smaller project lol
I've been learning Java lately and the thing that bothers me the most is THINKING WHAT THE CLASS REPRESENTS as if I have a chess pawn,it's not the same the pawn in itself as it is in the game so there should be two classes that when you are in the game class you combine the two pawn classes to make a full pawn because one represents the pawn (without thinking of it as part of the game) and the other represents the pawn but in the game. Fking hard for me to think of that ngl.
Huh.. I think I got it then. A few days ago, I was so preoccupied with code, that I ended up going to bed at 4 AM, on a weekday. 3 hours of sleep, and then up and back to school, to do more programming lol. I also had the idea yesterday of making a "Boolean-like" variable, from scratch. Which I would call a "Trilean". Spent a bunch of time and ended up with a semi-decent result after some hours, though there are a few bugs in some cases. And then I found out.... It has already been made, and is in Java.. It's called TriState.. But yeah, the more you code, the better you get, no matter if it's something new or old. I can still remember my first "Hello World" program, which I was so proud of back in the beginning lol. And now, when I look at other languages, I really appreciate that I started with Java. It seems to make it so much easier getting into other languages.
Interesting! I hadn't heard of the TriStateBoolean and looked it up. The only one I can find looks like it might have been part an Oracle Fusion product, and not part of standard Java, unless I'm missing it somewhere. Still cool. One way you could implement it yourself is with an enum, perhaps something like this: public enum Trilean{ TRUE, FALSE, TRALSE; } Any Trilean variable could only be one of those 3 values (or null I suppose), which gives the functionality you may be looking for. My most recent video covers using enums if you're interested. ua-cam.com/video/wq9SJb8VeyM/v-deo.html Thanks for watching!
@@CodingWithJohn I found it randomly when trying to use my Trilean, when I wrote "Tri" and then IntelliJ suggested "TriState" so I had to check it out. I went into the class to see what it was, and there I had it.. and yes, whoever made it uses enum too. I used enum as well, with TRUE, FALSE and UNDETERMINED, where they used TRUE, FALSE and UNKNOWN. And then they had a counter to the UNKNOWN, in a method called "isKnown" next to the "isUnknown" method. Pretty interesting stuff in my opinion :) (Btw, there's a small difference between what it says in the TriStateBoolean documentation on Oracle's site, and what is in the TriState class I discovered in Java. It is also a .class file and not a .java file, the one I am talking about).
Anything above two states, a boolean, is effectively a convoluted enumeration and redundant. The switch statement should handle that since it can check enumeration values more concisely than an if statement or its variants.
My first programming language was Java, and in college we were taught the exact same way you went about it in the video, just ignore this and that for now. But I got used to it for a few years then i switched to Python to learn AI and boy oh boy did I find python more beautiful and simpler. But after a while, everything made sense and if i didnt have to learn python at the time, I'd probably still be a happy Java developer with Spring or something similar.
This is why I like C#. At first it was like Java but then the designers thought, "hmm what if we had top level statements" and since then its as easy as python to output Hello World.
The only thing that you have to realize, is to understand what an "object" is. If you understand that, then everything in Java makes sense. Java programming is like living in the real world, that is what I like the most.
Currently in a Java bootcamp myself. I'm at the point of 2d and 3d arrays. It's bashing your head against a wall for hours to solve the problem. But do I get it though? Errr well.. sorta..
Thanks, I needed this! I’m a 35+ year developer and I’ve mastered at least 2 dozen other languages in my career. But, for some reason I have not been able to wrap my head around Java. Still working on it 2 years in.
I hate Java language with passion, If I had to work in enterprise tech with Java i would rather pick C# and .Net over Java any day or quit my job and be broke forever. But your channel is awesome, subscribed.
i think that java is easy to learn, the hard part its th OOP thats heavily attached to java. the multilevels os abstractions are hard to learn, how to use them correctly much harder.
It's typically over engineered. OOP can help with abstracting, but Java devs over do it. It becomes impossible to understand. It's as bad as spaghetti code.
Thank you for your effort! Great video! I wanna leave a comment here and come back in a year and see what I will think about this a year from now :). I tried to learn python …yea seems little to type…. But somehow it didn’t feel fun for me … idk why. But when I started with Java…I couldn’t wait to start a new day to learn more , this language just makes me so excited… I can’t explain it why right now.
Teaching the Hello World for beginners is a perfect moment to introduce the concepts of classes, methods and its modifiers. You don't need to go in depth, but just explaining supperficially what each keyword means can help the person in the future. I hate the "you don't need to know about that now, just ignore it" approach.
I started with SQL C++ C# then Python, now Java. I feel like Python gave me the most trouble in certain aspects. I am finding Java kinda hard now but for whatever reason I am enjoying it
I dont think that Java is hard, its only takes time to learn because has much content but its a good thing if you think you have many resourses able to use, in the other hand, about the logic, it can varies for each person and its not Java's fault and this you have to improve for use of any language.
I felt like Java came crazy easy to me. But I have trouble with “easier”languages like Lua. It really all just comes down to preference and what makes sense to you.
Ive learned a dozen or more languages over the past 40 years but I can't handle Java. Been trying to pick it up for 10 years, and I'm nowhere near. I'll stay with C++. It's my favourite.
Java was the first programming language I ever learnt, it was so weird when I had to use python or javascript for the first time, I was like "that's it?, that's all I need to do?".
I have yet to start learning java but have a pretty keen interest just for the fact that everybody says how hard it is to learn. Most nights during some heavy problem solving I have to force myself to go to bed by telling myself how hard the next day of raising toddlers is going to be if I don't sleep.
I'm not a beginner, though I sometimes still feel I am. I wish I had your videos years ago. Your channel is going to be huge someday!
Won't java b dead then?
@@collinsa8909 and replaced with what?
@@collinsa8909 No.
As a tutor I recommend to look at the next chapter and then watch coding with john videos before class and then if they have questions they could ask the teacher and be ahead of the class for the discussions.
Meanwhile Mosh laughing in a corner
I have been working as a java programmer for two years now (honestly) and only recently I found that I should get myself a bit more familiar with some of the language specific concepts and ideas. Coming from C++ I never had a problem understanding or coding in Java even though I never had any formal training (also my C++ skills were mainly self taught). Still I am aware that I would greatly benefit by filling the gaps.
You channel is really exactly what I need. Most of your videos focus on a single topic and explain that in depth. This allows me to cut out all the boring basics that I already heave heard so often and that have kept me away from so many other programming language teaching channels. Plus you are a great story teller and it is a pleasure to sit in on your lessons. Thanks for the good work!
Meko coding tough jaata hai kaise improve karu?
Interesting fact: that java is also made from c++ , we can see with its class
I'm trying to come from C++, but it's not going well. It's more than just the language that I don't like and find really annoying. It's all of the other shit, as was mentioned in this video.
@@bima0205Made from?
Life is too short to code in Java
😂😂
LOL! Java makes you learn the real nuts and bolts upfront. And this is probably why it is difficult. Would you trust a programmer, who doesn't understand what public static void means, to build your system. These words are relevant in the software development world even if you don't readily use them in dynamically typed languages. If and when you get a logical error, you'll want to be sure you understand these concepts during your debugging.
True
@@code3design this sounds to me more like
Look at me I can code in Java 🤓🤓🤓
😂😂😂
Currently learning Java in coding bootcamp. Your videos have been a godsend. Thank you, sir!
Yessss!!! This video pretty much summed up my entire programming class this semester. I'm at the point right now where I just want to pass the class. I'm so glad I found your stash of hidden treasures. I wish I found you sooner, but it is what it is. I might have a shot of passing this course now that I have a (very loose) handle on things.
I'm learning java and spending exactly $0 on it jajajaja.
@@lookupverazhou8599 You're laughing now but when it comes to applying for a job in the field a credible degree is always an advantage. Try to not condescend to peopel in this manner pls
@@1996adis Nah, I'll keep condescending while you waste your time and money while I build a portfolio for free.
@@lookupverazhou8599 I'm also learning from home however college degrees always give you an advantage
@@mattgalant1624 Except they don't.
Well done! You are the first to dare to tell the raw truth about Java. You played very well the state of mind of the bewildered beginner in front of the classic Java HelloWorld. You made me laugh because four years ago I was like this too: confused. I accepted the challenge with myself and I won it. The big prize I received is that now I can say I can say that I understand what "Object Oriented Programming" means; and so I quickly understood the metaphor of the peanut butter sandwich. That's right: according to the OOP philosophy, to make a sandwich you must first build an object of the type "Kitchens" and others of the type Knives, bread, peanut butter and methods such as "spreadingButter ()" and make them interact. It's difficult because everyone wants to explain Java without explaining OOP and what an object is.
Thank you for your encouragement and positivity!
Love the way you explain things with different personalities. That's interesting. Will surely watch your Java videos
Been with java for 11 years. Think it's the best language I've ever used.
Kotlin has entered the chat
@@FightFantasykotlin 😭😭😭
Java is easy because of how specific it is
I’m taking this college class and you described how I’m feeling right now.
Same here. Right now we’re going over inheritance and polymorphism. Glad I watched this video tho lol it made me feel better
Really well explained! This video motivated me to learn Java 😁
The proper progression is C -> Java -> Python. Then it makes sense. Personally I find print("Hello world") harder to understand because everything is hidden from you
You can go the opposite order that’s good too
This video helped so much. Im currently in a Java dev course at a certain point I felt like I was drowning in all the things I had to learn. My cours is project base and for one of the projects there were so many concepts that needed to be learned that I didn't know were to start.
You got this
@@maxmoir6645 thanks man
Java is high/abstract enough to be usable and low-level enough to be fast, that is why syntax is so C++, but at the same time you don't have to manage memory pointer and manually destroy objects which is convenient
Love it! Going to share it with my students!!!
In college we started with SQL, then went on to Python, then we learned Java. I think it's definitely different in that the script ends up being a lot longer, but I found that I made a lot less errors in Java than I did in Python, even when my programs DID actually run. I thought Python was more difficult because of how error prone it was. My running program still had 14 errors in it.
Java on the other hand is very "right" or "wrong". I had a much better experience working with Java. Might also be because I got the hang of basic coding syntax and loops before I ever even looked at Java. I think the length of the script is more intimidating to look at, but that it makes more sense than Python. That's just my opinion.
I started to use R as a statistician. Then use python because data collecting and data cleaning takes 80% of my time. Then I learned Java. As python is better for data analysis, I found that when I want to make something robust, using java is waaay better because the snytax is so precise. I found java answers all of the ambiguity in python that consumes a lot of my time to debug.
what else did you learn during your time in college? just those 3 languages? please reply
thanks in advance :D
@@wafflecoast those three languages, they will only teach them midway and leave you on the road and start another one while you're trying to finish this on your own
@@frederickteye depends on the college. In my college, we started with SQL and Java and ended with Spring. The only other language was JavaScript for frontend and Python for those who chose it (in Europe system is a bit different, so I don't know what it's like in the USA)
@@banshee-fck O I'm in Africa. Lol... You guys are lucky.
One of my best strategies for helping beginners is for them to have a physical notepad or notebook and put things they know and learned, let say why is Public class important just write a few words you dont need a huge essay of it, basically the idea that helps you get things immediately
I write stuff I learn in bullet form and a three sentenced form to help me know and remember it helps when you watch videos, alongside that is Put the browser tab on side with your IDE that way you can catch up and write it down again on your notepad, it may take alot of work and that's because there's no shortcuts in life
Really high quality vids man, so much Underrated! Keep up the good work.
Much appreciated! I thought this one was a little risky - not strictly a lesson vid, and also don't want to discourage people from learning Java in the first place. So I'm glad you're liking it, and I thought it might help to reach some more people. Thanks for watching!
@Coding with John Coming from a Python background myself, everything in this video rings so true. I'm glad you took the "risk" to publish this -- your honesty makes you more credible as a teacher. Here's hoping your views skyrocket in the coming months!
Man, this hits home. I've been programming in Java for about a year now. I've come across so many things that have given me trouble. For allot of them, I've literally just had to stare at a screen for hours and run circles in my brain until I understand them. But for the most part, I always, eventually, do understand them. It takes ALLOT of patience to properly understand the programming concepts you're learning.
This type of learning isn't for everyone and some might think it crazy. But I've come so far and I think what I've done to learn is worth it. I'm nowhere near a master of Java, but I feel like I now have a pretty good grasp of how the language is built.
Java is not hard... python makes some thing way to easy which prevents beginners from learning things they really need to learn to have an understanding of what they are doing.
I like that you get straight to the point!
thanks John I needed that
That last line about, if I have a thousand tabs open, then I might have what it takes, really gave me the confidence boost that I needed right now
Wait until you have to configure a c compiler and find the right includes…
I have never found Java to be difficult. I learned programming starting with Z80 assembler. Then BASIC, Pascal, 6502 assembler, C and then Java. I took a couple of years before I properly understood Abstract Classes & inheritance. Many of my first programs were monolithic with the minimum number of classes to do what I wanted. You need to learn to think in OOP terms - mentally - before you can really make full use of Java.
The peanut butter and jelly sandwich analogy was perfect
John, I'm a Senior CS student at the moment. I feel like I've acquired all of the necessary knowledge in vanilla Java by this time in school (OOP and Data Structures & Algorithms). What should be my next move? Spring boot? And thanks for your tutorials.
That's great! I actually do think that Spring Boot is an excellent thing to start learning if you have all those Java elements already covered. Work on getting a simple web service set up in Spring Boot - after you know what you're doing with it, it only takes a few minutes, but the first time you'll stumble through quite a bit learning how to do what you want. But it's a great way to learn about how web services work, how you call them, and how you can build them on your own. Once you have it working it's really rewarding, and you can probably think of some cool things you can make with them if you want. If your first job out of college is in Java, it's likely it will use Spring Boot if the company uses web service apps with Java. That's what my job is! So potential employers would love a college grad that's familiar with how they work.
@@CodingWithJohn Thanks for the info!
@@CodingWithJohn terrible advice. Frameworks will come and go. And learning so u get a job is going to make u narrow minded. I've done java for 15+ yrs and never learned a framework. My advice would b to learn the concepts deeply. Then follow your heart you'll come up with some interesting ideas to work with that are non conventional
Spring boot?
@@collinsa8909 You are right, frameworks come and go but it is also good to know about the most used framework for Java, if you want to work with Java. And looking at the developement of the Spring Framework, I believe Spring will be in the Java space for many years to come.
All in all, learning something about Spring as a college student will definitely be useful once you graduated.
Love it! so true, I'm in my first year of Computer Engineering and no prior experience besides AutoCAD hahaha
Lol I feel ur pain and I'm currently in the pain in college this semester of Hell
I like your take: "Java is not hard, programming is"
You may think python is easy and blah, But I come from both Python and Java world, let me be very frank writing production level is code is HARD, its independent of programming language that you use. Its a practice and that takes time.
So all those who teach programming in a day, week, month, well Good Luck. You may learn the language but the learning how to program takes time and there is no way around it.
Programming is just like any other skill that requires a refining and growth that can only come from time and experience. Anyone can learn to cook, play instrument, program, etc., but to master that skill takes dedication, commitment, time and lots of mistakes.
You made me fall in love with java again. I love this channel. My eyes light up as soon as your video comes up.♥️
Great vid!!
There's something about this guy that I love.
In case anyone doesn't know what that args array is for. When you go to run a basic bytecode file like HelloWorld.class: java -cp . HelloWorld arg1 arg2 arg3. those three arg values are going to be elements in the args array. This can be checked logically within the main method; this can help with setting certain modes for your program, or execute a totally different version of your program depending on the value of arg1, or arg2 ...
I've just started a Java course on Moodle. You give some good inspiration here, so I'll be making use of your videos. Many thanks ~~
Another great video!
Btw, motivation for studying really matters. Studying Java, finally managed to write a text game. Omg, I was so happy that I ran it hundred times. Now, I'm staring at my code and trying to make up a "critical strike" method))))
Absolutely! It's really rewarding when you create something yourself, and are able to interact with it. Nice job!
Fantastic.
Thank you John, I really needed this
When you say's that java really really make sense. I feel like the line you have spoken was epic!!
amazing explanation with humor touch kkkkkkkk pretty cool work bro
Your vids are awesome dude, you definitely understand what kind of questions java beginners experience.
Thank you John. I've been watching your channel and I really appreciate that you make these. I've found them super helpful.
Thank you. Subscribed.
thank you, I have lost many off hours sleep on one problem and thought i was just bad at it. I appreciate you saying that.
Much Love John. Thank You For This Video. ❤
You have earned my sub.
Thank you for making this video :)
Having been a programmer professionally, in Java, C#, and now a little C++, I have to say the scenario you painted of a thousand browser tabs open and pulling your hair out for hours is so true.
But when you finally figure it out, and you finish a 10 hour day of intense programming and doing this time after time, your brain will never feel more tired, but you’ll also have a feeling of accomplishment that’s really unmatched by most things
that is what I am doing
the same goes for pulling a half burnt stick out of your ass, but it doesn't mean it's any good
the point is, going through all that is unnecessary and the abstraction in Java api doesn't make things easier, it just splatters the state of program into different unnecessary "API"s ,aka interfaces and coupled classes. take file handling for instance, or logging (yes even Log4J), or sending a bloody https request...
now the thing is my problem is actually not oop (tho I don't like that either) but Java itself and developers who abstract too deep, and never stop to think if any of it is necessary
the only thing handled very good in Java is for some reason the threads. they are as complex as other things, but other than that, the rest of it is a pain in the butt
And once you have done hours of finding issue, you start to develop a "Feeling" of where and what is not working, and you hone in so much quicker. And last but not least ( Happened so many times ): go to bed sometimes, and forget about it, the next morning you will see the issue straight away ! Don't have that much time ? Take a dump and relax, you will find the toilet is a great site for inspiration. Companies should have so many more toilets where employee can find inspiration undisturbed.
I'm just starting to learn some Java again, I tried years ago and found it too confusing but now that I'm quite good at other easier languages (Python and Javascript) I find it a lot easier to understand.
But python to java transition is man...
i'm glad i am starting with java because once i master this , then i hope that every other language is way easier to learn.
In recent C# versions (C# and Java have always been very look alike, competing languages), they introduced Top Level code, which removes the need to type the initial class en Main function. The compiler can just generate that for you.
Maybe some day Java will get the same feature.
Java 21
@@PeterVerhas Thanks! It is still preview in Java 21 though.
But it is not giving the option to leave the main method away, but just the class, which becomes "unnamed". Interesting. Actually a better choice than what has been made for C# currently.
Leaving the entire main method away in C# removes some features, like the ability to set main method attributes. If you want those, you must reintroduce the entire boilerplate thing, there is no way in between.
And additionally private type declarations at the bottom of the top level Program do not work either, because they are not recognized and understood by the compiler as nested types in the auto generated Program class.
However, I am not sure about Java with the non static main method option, because a static method is faster in performance and should remain the default in my opinion. Leaving the static keyword away should still make the method static.
YOU ARE THE G O A T THANKS MAN
The best channel on Java on YT :).
This channel is so great, I am grateful for all the content.
I'm not really a Java coder but most of the things he noted as hangups for people are present in virtually every language I've used, and for the most part they're all things that just sort of occur naturally as a result of the way code is. Python has all that same stuff, too, and unless you're writing only the simplest of scripts you'll have a difficult time avoiding it. Same with JavaScript, C++, C#, PHP, etc.
I get the impression that a lot of this is the result of Java being a language *specifically designed* for a corporate environment where your code will be handled by people who have never touched it before. So much of Java is just built around making sure that it's *safe* for other people to mess with things without it breaking.
That’s what COBOL was for. Java is just a different beast altogether.
When I started into java I thought it was garbage , now I love it
This is probably cause I'm autistic but... Java was my first programming language and I didn't found it that hard. I started coding with it by watching other people's code and with no tutorials or courses at all. I just watched small pieces of code doing something and this helped me a lot understand how did that worked.
The hardest part for me was actually understanding English cause I was 12 and ignorant lol. (I still am)
I still struggled more with Javascript over Java. It's more logical and clean code. But yes, it takes a lot of code.
whether it's difficult or not depends on what the learning effort is like, in my opinion the most difficult programming language is C++
I'm struggling right now in java (10 days in training) and this video just made me LOL. I really hope to overcome this hurdle!!
You can do it! The things I mention in the video just take a little time and patience to overcome. But it's worth it.
@@CodingWithJohn thank you so much! Your videos helped a lot too so thanks again and keep up the great work!
I've been programming professionally for 30 years. I occasionally have to dip into java, but never full-time. The reason I've found java difficult is nothing to do with language itself. It's eclipse and open source references within it. I set it up with our enterprise application, compile, hit a breakpoint. Fine. Then I don't touch it for a year. Then..... on next use I find that eclipse is broken. All of its internal references to open source components have expired and I basically have to spend another day trying to set it up again. Visual studio, SQL IDEs, etc, they don't expire. I know I'm ranting about an IDE and not the language.
Okay one thing I don't like about java is that every sub part of a blah.dot.namespace. component is in the next subfolder. Fine in the IDE. Not fine if you grep navigate text from the terminal.
Using IntelliJ is so much better. Almost all professional modern Java dev is on that. They made it so good, they built another JVM language with all their tooling, called Kotlin! Which is the most popular language to build for Android!
The newer releases remove a lot of the extra jargon with Java, plus Copilot makes java programming super easy.
Java has a lot of inconsistencies, blunders in its original concepts and other problems due to the lack of proper research during its creation stage. Only because of Sun Microsystems and the money behind it it has gained an overwhelming support and multiple fixes to work mostly flawlessly.
i always tell people that programming is easy, but you pretty much sum up my life. i guess it depends on perspective.
The last part was totally relatable and I don't know if I should smile or cry 🙃
The problem with learning programming languages in general is because "the ways of teaching and the people who teach are rubbish". Many programmers, instead of helping, mock or insult newbies. I don't know what the hell they have in mind. As if they had been experts from the beginning. The envy of not supporting there are better people irritates them. And books or tutorials are often useless. I have seen tutorials that I do not know how the program works for them and when you try to do it as they tell you, you find countless errors that in the end you look for another way to do it or leave it. The main problem is the way to teach and that annoys over time.
3:34 That is it ! "Learning to program takes patience" YES !
Hello. Thank you. How can we practice? Is there any exercises to do?
Java is the beginning of the harder programming languages where you need to watch the Crash Course Computer Science series to understand why tf it works the way it does.
nah java is easy as fk. try c & c++, god bless your IQ
@@jake9854 wow ur so cool bro
I said it was the beginning. As in, harder than Python. Trying to prove superiority in youtube comments makes you seem insecure.
@@IAmNumber4000 nah I ain't trying to prove no superiority you taking it the wrong way. all I'm saying is Java is easy as f compared to C & C++. Be thankful that you don't have to learn those languages.
I dived head first into a big Java project about a week ago with little experience. I was semi-familiar with C# which I guess helps but still, I should've started with a smaller project lol
Excellent video
Good point.
You just gave me hope
I've been learning Java lately and the thing that bothers me the most is THINKING WHAT THE CLASS REPRESENTS as if I have a chess pawn,it's not the same the pawn in itself as it is in the game so there should be two classes that when you are in the game class you combine the two pawn classes to make a full pawn because one represents the pawn (without thinking of it as part of the game) and the other represents the pawn but in the game. Fking hard for me to think of that ngl.
Huh.. I think I got it then.
A few days ago, I was so preoccupied with code, that I ended up going to bed at 4 AM, on a weekday. 3 hours of sleep, and then up and back to school, to do more programming lol.
I also had the idea yesterday of making a "Boolean-like" variable, from scratch. Which I would call a "Trilean".
Spent a bunch of time and ended up with a semi-decent result after some hours, though there are a few bugs in some cases.
And then I found out....
It has already been made, and is in Java.. It's called TriState..
But yeah, the more you code, the better you get, no matter if it's something new or old.
I can still remember my first "Hello World" program, which I was so proud of back in the beginning lol.
And now, when I look at other languages, I really appreciate that I started with Java. It seems to make it so much easier getting into other languages.
Interesting! I hadn't heard of the TriStateBoolean and looked it up. The only one I can find looks like it might have been part an Oracle Fusion product, and not part of standard Java, unless I'm missing it somewhere. Still cool.
One way you could implement it yourself is with an enum, perhaps something like this:
public enum Trilean{
TRUE,
FALSE,
TRALSE;
}
Any Trilean variable could only be one of those 3 values (or null I suppose), which gives the functionality you may be looking for. My most recent video covers using enums if you're interested. ua-cam.com/video/wq9SJb8VeyM/v-deo.html
Thanks for watching!
@@CodingWithJohn
I found it randomly when trying to use my Trilean, when I wrote "Tri" and then IntelliJ suggested "TriState" so I had to check it out. I went into the class to see what it was, and there I had it.. and yes, whoever made it uses enum too.
I used enum as well, with TRUE, FALSE and UNDETERMINED, where they used TRUE, FALSE and UNKNOWN. And then they had a counter to the UNKNOWN, in a method called "isKnown" next to the "isUnknown" method. Pretty interesting stuff in my opinion :)
(Btw, there's a small difference between what it says in the TriStateBoolean documentation on Oracle's site, and what is in the TriState class I discovered in Java. It is also a .class file and not a .java file, the one I am talking about).
Anything above two states, a boolean, is effectively a convoluted enumeration and redundant. The switch statement should handle that since it can check enumeration values more concisely than an if statement or its variants.
@@collinsa8909 Fair point, hadn’t thought about that 👍
My first programming language was Java, and in college we were taught the exact same way you went about it in the video, just ignore this and that for now. But I got used to it for a few years then i switched to Python to learn AI and boy oh boy did I find python more beautiful and simpler.
But after a while, everything made sense and if i didnt have to learn python at the time, I'd probably still be a happy Java developer with Spring or something similar.
This is why I like C#. At first it was like Java but then the designers thought, "hmm what if we had top level statements" and since then its as easy as python to output Hello World.
3.4k subs...i thought it was 3.4M subs from the quality
keep it up
Java is one of the easiest languages to learn, that's why it's so popular as a first language to teach in schools.
now im learn database java its so hard tho
Honestly, the first 2 weeks were hard but it's easy once you understand the jist of everything
The only thing that you have to realize, is to understand what an "object" is. If you understand that, then everything in Java makes sense. Java programming is like living in the real world, that is what I like the most.
You forgot to plow the field, grow the wheat and fruit- and peanutbushes, grind them into flour, jelly and peanutbutter and put them into containers.
Currently in a Java bootcamp myself. I'm at the point of 2d and 3d arrays. It's bashing your head against a wall for hours to solve the problem. But do I get it though? Errr well.. sorta..
Thanks, I needed this! I’m a 35+ year developer and I’ve mastered at least 2 dozen other languages in my career. But, for some reason I have not been able to wrap my head around Java. Still working on it 2 years in.
Bs
I hate Java language with passion, If I had to work in enterprise tech with Java i would rather pick C# and .Net over Java any day or quit my job and be broke forever. But your channel is awesome, subscribed.
Makes me feel less regretful for studying engineering instead. The copium I needed today
And where should we use Java? Where it really shines?
Liked your comedy-conversation. 😄😄
i think that java is easy to learn, the hard part its th OOP thats heavily attached to java. the multilevels os abstractions are hard to learn, how to use them correctly much harder.
It's typically over engineered. OOP can help with abstracting, but Java devs over do it. It becomes impossible to understand. It's as bad as spaghetti code.
This is fun and enlightening
What does programming help with on a computer?
Thank you for your effort! Great video!
I wanna leave a comment here and come back in a year and see what I will think about this a year from now :). I tried to learn python …yea seems little to type…. But somehow it didn’t feel fun for me … idk why. But when I started with Java…I couldn’t wait to start a new day to learn more , this language just makes me so excited… I can’t explain it why right now.
Teaching the Hello World for beginners is a perfect moment to introduce the concepts of classes, methods and its modifiers. You don't need to go in depth, but just explaining supperficially what each keyword means can help the person in the future. I hate the "you don't need to know about that now, just ignore it" approach.
I started with SQL C++ C# then Python, now Java. I feel like Python gave me the most trouble in certain aspects. I am finding Java kinda hard now but for whatever reason I am enjoying it
I dont think that Java is hard, its only takes time to learn because has much content but its a good thing if you think you have many resourses able to use, in the other hand, about the logic, it can varies for each person and its not Java's fault and this you have to improve for use of any language.
I felt like Java came crazy easy to me. But I have trouble with “easier”languages like Lua. It really all just comes down to preference and what makes sense to you.
Ive learned a dozen or more languages over the past 40 years but I can't handle Java. Been trying to pick it up for 10 years, and I'm nowhere near. I'll stay with C++. It's my favourite.
2:11 Thanks a bunch!
This helped me ease my mind.
Heey, could you make a video of what a Java Developer should know for being ready for a job?
I think java having a structure to it helps beginners.
Java was the first programming language I ever learnt, it was so weird when I had to use python or javascript for the first time, I was like "that's it?, that's all I need to do?".
I have yet to start learning java but have a pretty keen interest just for the fact that everybody says how hard it is to learn.
Most nights during some heavy problem solving I have to force myself to go to bed by telling myself how hard the next day of raising toddlers is going to be if I don't sleep.
Hey John, what it takes to become lead Java software engineer ?
This video alone just earned you a subscription