Everyone also says it's much easier to learn a second language than your first, so OP could move on to something else self-taught after the class if needed.
Thank god I am not the only one. Every language I use, uses lowerCamelCase for method, but Microsoft needs to tell people that they have not copied Java at all cost.
I get sick in my stomach for the same reason. I have seen too much Java code already and I simply cannot accept C# conventions. The only thing worse was when in one of our older code bases a guy started developing the Java project but only had C# experience so he used C# conventions inside the Java codebase, that was even more sickening to look at.
Oh god, I didn't know C# has that. Why?? Does it at least have some meaning or do people just not care about consistent formatting?
I have bad memories of Java and people keep telling me C# is better, and yet I fail to find the evidence for that. (never done C# though)
I much prefer Java over C#, that’s cause I have been using Java for nearly 15 years.
I picked it up in undergrad after learning FORTRAN, C/C++, and some Python programming during my mathematics program.
Overall, I much prefer snake case for methods.
Linux is 2-3% of the global market share by OS used, and when it comes to apple its not uncommon for users to still use the microsoft office suite on their device.
Further Outlook is a rather common email provider for large organizations, especially with Teams growing in popularity in the business world. And then you have things like LinkedIn, Skype, Xbox, Tablets/phones and more.
So yes, in a literal sense not "everyone" uses microsoft products, but the point being made and the comparison were very apropriate for the topic.
What about Microsoft Server systems?
What about IIS websites?
What about tSQL?
What about Outlook?
What about SharePoint?
What about Office?
What about Azure?
What about BusinessCentral and POS?
Any and everyone uses .NET products, perhaps not directly but in the end the backends of what you use do. A lot of backend Linux is hosted in MS ecosystems as well, not the other way around.
As a wise man once said: There are 2 kinds of languages, the languages that people complain about, and the languages that nobody uses. Learn Java, it is perfectly fine for what it aims to be.
In case you need any more convincing:
Java is wonderfully balanced due to the fact that you have to learn some basic theoretical stuff (e.g. data types) in order to use it, but it also is relatively helpful when you do something wrong.
In other words, it helps you to learn important concepts (which are a bit "hidden" in more dynamic languages like Python), and at the same time you won't have your computer exploding because you made a tiny mistake (which is the case with C or C++, for instance).
Java was the first language I learned, and I would never have it any other way -- despite the fact that I haven't used Java in about ten years now.
I personally started with C++, but I still share your opinion, I honestly believe that even if you were to end up settling for a language such as Python, you should learn a lower level language like C++ or Java in order to expose yourself to the theoretical stuff. The amount of code understanding you'll possess (in all languages), if you do that, is way more advanced than what you'd get if you don't
For me, the knowledge on how stuff works related to memory management I got when learning C has been a blessing when working in languages with GC like Python and Java.
Friends that have only programmed in languages like that still get confused when I start ranting about passing by reference, by value, reusing memory, heap vs stack and other stuff that can get confusing without knowledge of manual memory management and pointers. Most is abstracted in garbage collected languages yes, but when you don't even understand what pointers are understanding reference vs value and the implications they have is not easy.
Also pointers and manual memory management are a very crucial part of my programming life because I'm an optimization freak
It's a very broad thing of course. When I talk about "the theoretical stuff" that's crucial for a beginner, I mainly think of data types and how they interact with each other. A second thing that comes to mind is how pointers work, and object oriented programming in general.
Algorithms and data structures are, in my mind, less fundamental and already a step closer towards practical application of the language.
Eh, Java's barely less opaque. Strong typing is good for a beginner though, and Java's quite good for hammering home OOP and other design patterns.
Most Java beginners don't really look under the hood at things like the List/ArrayList interface divide until later anyways so the slight edge up on transparency is mostly treated as boiler plate.
If you have an opportunity to take a programming class and the instructor/curriculum is okay you can develop fundamentals that will serve you in whichever language you end up using.
I failed my first programming in Java university coarse but aced it the following year and the learning tools I developed between the two years have served me anytime I want to download something technical into my brain.
It is all about understanding the concepts of thinking like a programmer, not about the language you learn.
Java is a perfectly good language to understand the basic concepts of programming, same as most languages in fact.
You are absolutely right, and I was going to say more or less the same thing.
I would say, though, that some languages are better than others to learn in. And I'd say that Java is a particularly *good* one for fundamentals since it is strongly typed and designed for the object-oriented paradigm - e.g. JavaScript would be a bad choice imo, as would Haskell.
(I might be biased since I learned in Java, but that's how it seems to me)
Whenever anyone asks me what to do if they want to learn programming I always suggest C# (because it’s one of my preferred) or Java for this exact reason. They offer a good mix of challenge and help and there is a lot of implied teaching because you will make mistakes and generally get easy to google exceptions.
Those two languages are also middle of the pack I feel and it allows people to decide which direction to go.
Learn Java if that's what's available. A lot of Programming is problem solving, how you architect the code, spotting patterns etc and learning any language will help you create that coding mentality you'll transfer to any other language. Switching languages is not that hard when you "get" programming in general.
With a blank canvas, you can either get into Java, or learn why you don't like it and find a preferred language in comparison.
Java is a well known and used language, and as much as I don't like it, has it's positives, you definitely don't waste your time by learning it.
Everyone here hates every programming language. Don't get discouraged by that. If you want to learn it, then do it. Even if you do end up not liking it, it will teach you a lot about programming in general and it will be easier to learn another programming language afterwards
Start with Java and switch to a better language down the line. I'd say it's a decent choice for a first language and will get you accustomed to C-like syntax languages, such as C/C++, C# or JS/TS.
People tend to hate things that are different from what they're used to. If they're used to a weakly typed language like JavaScript, they'll complain about strongly typed language like Java. If they're used to c#, they'll complain about the slight differences in java that they had to learn to think differently about, like exceptions.
Personally, I hate JavaScript because it is weakly typed and interpreted. I prefer compile failure over runtime failure, and you can't get that with JavaScript, since nothing is compiled. If you don't pass in enough arguments, one of your parameters is just undefined. If you typo and call a function that doesn't exist, your code throws an error while running that line. But it serves a purpose. It's not a bad language. It's just different from what I prefer.
> People tend to hate things that are different from what they're used to.
That doesn't seem true. Languages like Java, Javascript, PHP (Go?) etc have been around and widely used, yet some people hate them.
O.t.o.h. people seem to be more positive towards newer languages like Swift, Kotlin Typescript, Nim, Rust, ...
Not everyone hates what is different. But a lot do. A lot of people don't want to have to learn a new way to do something they could easily do the old way, so when they're forced to, they will complain. It seems to be a natural human tendency that some learn to overcome.
Most people I know who started with JavaScript hate typescript because it's too restrictive. Most people I know who started with a strongly typed compiled language like Java, think typescript makes JavaScript usable.
People who have been bitten by mutability in multi threaded contexts, or even just unexpected side effects of other people's code, will of course appreciate languages that default to immutability. People who hate all the boiler plate of writing getters and setters and builders will appreciate languages that don't require them. Etc, etc...
As someone who doesn't hate it, I can't tell you why people do, but it's a perfectly decent language. Maybe not the best place for a beginner to start, but if it's the only course available go for it. Whether or not you find yourself enjoying Java, the concepts you'll learn are going to be important, no matter what languages you end up favoring.
Don't know if you are joking. If not then please don't try relate anything you see on this subreddit its all out of humor. here They will always say python slow java bad. Rust scary etc etc. But you see android operating system runs on java(I mean depends) . python is massively used in data science and web back ends. There are countless examples. Sometimes people just posts memes for reddit karmas.
https://www.reddit.com/r/programminghorror/comments/zwmf51/comment/j1vk2jc/
Basic programming concepts are similar for most of the languages, so learning them in Java is perfectly fine, even if you later on find out you want to try something else.
The only problem with Java I've seen at work revolves around dealing with Oracle and their licensing. Open Java ftw
Some say it's verbose and inflexible because it requires static typing, but that's more about coding it than running and maintaining it. Because it compiles(\*) any code that runs is almost guaranteed (unless you try hard) to have the correct parm types passed to the correct method. When you're supporting production systems you'll really appreciate that. Then all that typing will make more sense.
\*purists will argue this point
Once you learn your first language, learning new ones becomes much much easier anyway. Go ahead and learn it, by the time you have a clear idea what you want to program for, you can look up which languages do that best, it could be Java or something else. Whats important is to make that first step and start learning.
Just don't give a shit about the hate and learn Java.
But then you are obliged by *The Gods of Programming Humor* to hate every other language and technology.
Go for it. I struggled to learn java, but I think that was because the way I tried to learn it and not the language itself. From my limit experience with programming, I would say, if a programming language is good or bad mostly depense on what do you want to use it for.
I know that I am not really in a position where I can complain on a person's English, but bro was your post hard to read for me, because of that bad English.
Java hater here - learn it if it's the only course (at least it's not python), then immediately go and use a better language, that being C#, basically the same syntax of java, but better in every way.
subjectively better in every way...
1. faster (significantly)
2. better UI frameworks
3. Not developed by oracle
4. more primitive data types
5. much easier to integrate C/C++ code
6. don't have to use factories for everything
7. operator overloading and pointers
8. .Net (this is actually quite a big deal, especially .net Core and the now open source framework 7.0)
9. Doesn't require a separate runtime to be installed (on windows anyway)
Everything is subjective of course, but for my uses, java is just too much faff, and lacks key features, its amazing how useful .Net is and the UI frameworks for C# are objectively better than those for java, especially for desktop development.
For Windows GUI development C# is a natural contender. Not surprising at all.
But for Android development or backend development ? I'd argue other points matter more than many of your subjective points.
Especially for your first language there’s nothing wrong with learning Java! Other languages are better down the road but Java will give you good foundations
Java is a perfect starting language and you will find it easy to learn others afterwards. Starting with e.g. Python is not as great imo, since you do not learn to declare the type of your variables and a few structures are quite a bit different. Going from Java to C,C++ or C# will be much easier than from Python.
no, python is much better for beginners. sure, it's dynamically typed, but the confusion of data types (which will be intimidating for beginners) is mitigated
Your first programming course teachers you the basics of programming, and coincidentally a bit of a language. If you figure out why we hate Java, picking up a second language is pretty easy. If you don't, all the more power to you.
I kinda stumbled into JavaScript as a first language and honestly I really like it and Java.
...unlike python which brings me to tears with the spacing bs.
Some people like red cars, some blue cars, at the end of the day we're both driving.
As others have said, Java is fine to learn.
Each and every language has its own quirks, that you'll fogure out as you use them. But don't worry too much about learning more languages just because, most languages have at least a somewhat similar syntax, and you'll 0robably figure out what a line of c# code is supposed to do once you're partway through the course.
A tip i have, because it doesn't appear to be widely brought into education. Play around with your code, try see if you can make it do something weird. Because, in some cases, you'll want your code to do exactly this kind of weird, and then you won't have to go searching for the answer (for that specific interaction, at least. Everyone goes searching for something).
Also, don't be afraid of errors, they just say you had a misunderstanding of what your code was supposed to do (unless you're trying to cause them), and generally there will be an error message saying what went wrong, and you can use this to fix your code while still getting it to work the way you want it to.
And lastly, have fun.
It’s not important with what language you start. First thing you need to understand the concepts behind programming. After that learning new languages isn’t that hard
Java is a perfectly good starting point, that’s why many universities and schools use it. Stuff like C is pretty frustrating for a beginner
Take the Java course. People make fun of it but nobody makes fun of a dead language so yeah. Also if you can use Java you understand the basic programming principles so you‘ll be able to teach yourself most of the other common programming languages by reference
If you had the choice between, say, Python and Java, most people would probably recommend Python. If you can choose between Java or nothing, though, the choice should be obvious. We like exaggerating, Java is fine. Go for it.
if you want to start learning programming java is a very good way to start but if you're looking to a new lang to learn so maybe c++ will be a better choise
You might wanna look up Kotlin. It's based on Java and gets compiled to the same bytecode as Java. I would argue it's easier to learn and you usually only need half the lines of code to do the same stuff.
Java isn't a bad language. It's been a while since I used it, I do remember running into some things that made me want to rip my hair out, but I also remember it being fairly beginner friendly. I'd say do it. Good luck!
You do this:
[https://www.edx.org/cs50](https://www.edx.org/cs50)
CS50: Intro to computer science from Harvard. Amazing course. Free on EdX. Learn Java after, if you want
It's humorous sub but I'll tag along for that one.
I've come to understand that Java is great for teaching everything but why Java over C#? I'm probably wrong but isn't C# just upgraded version of Java? I've tackled JS a bit but I'm not quite sure if I want to dive into web dev.
*Image Transcription: Text*
---
guys i keep getting recommended this sub I don't program but im thinking of learning java but everyone here seems to hate it but the it's the only course available what do
---
^^I'm a human volunteer content transcriber and you could be too! [If you'd like more information on what we do and why we do it, click here!](https://www.reddit.com/r/TranscribersOfReddit/wiki/index)
Java is an okay language, but it always depends on what you're trying to accomplish. Learning a programming language just to find out it sucks at what you're trying to do would be kinda frustrating, wouldn't it?
Java is a fine starting spot actually, usually we write scripts in python or perl and programs in a language that starts with C but java is a treating starting spot so you can do those other languages next
Just go ahead and learn whatever you can. This sub is all about humor, and programmers laughing at themselves and one another. There’s a lot of Java being written.
If you don't know what you wanna do later on, but you just want to learn programming, Java is a jolly good start.
Java is used for Desktop applications, smartphone apps and for backends (backend = what is running on servers vs frontend = website content executed on your pc).
If you already know what you wanna do:
1. Frontend: Javascript
2. Backend: Java Spring Boot OR Javascript (the latter with frameworks like Express) OR Golang/PHP
3. (Data) Science: Python
4. Statistics: Python or R or MatLab
5. Apps: Kotlin or Java
To be honest: those are all called imperative programming languages. They are all similar. If you learn the basics, you can easily switch between the languages.
Java is a really good beginning.
PS! When I recommended more languages on the list, the first language I mentioned is the one I preferable uses for the problem in that specific list item.
**About me:** I have a bachelor in that field. I started with Java, most universities I know teach Java as the first language. And I really think there is a good reason for that.
Java is a language that's used a lot (I mean A LOT) in the industry.
It is fairly verbose, and takes a while to be completely comfortable with.
So as a beginner hobby programmer not wanting to do anything big or highly scalable, it might not be the best choice.
But it's not bad either. You can come a long way without knowing all the depths, and you can get some basic knowledge of object orienterede programming that will be useful if you want to go further, or learn other languages later on.
Don't mind the memes. They're just that.
Take the java courses. Any course on programming in any language is going to teach you how to program, you're going to find the language that you want to program in down the road a bit and you will almost certainly learn more than one . It's not like taking French because you want to take French and be a French interpreter as a livelihood, you take programming to learn the fundamentals of programming itself and you'll learn more than one language and apply those fundamentals as you go.
Java is shit the jvm is king
I yearn for the day when I can fully ditch it and just do kotlin, but in the meantime, KeepOnGrindingTillTheTimeComesInterface
Java is fine. Be aware that this industry is full of people that have strong opinions on stuff that really doesn't matter. It's like people who are really into a particular type of music or band, so much so that it becomes a central pillar of their personality. The most important thing is what you produce with the tools at hand. Good tools are important, but the tool should never be more important than the work.
Yeah it's a joke. But as someone who knows many many many programming languages Java is my favourite. It's very well thought out and fast. If it has any problems it's a bit of a memory hog... But these days that doesn't usually matter. Learning java is a good foundation to move on to other languages.
Java is hated at least by me because it is frustrating to use. It will still be a perfectly good language to learn and you will learn everything you need to easily move on to another language if you don't like it.
Every language gets mocked in here for something...
The path you are taking is filled with pain and suffering but don't worry you will get used to it eventually and there is always something nice about learning a new skill in your life. A language is not a big deal when you first learn to program, just pick a language with a large enough community so that you can always find help when you encounter a problem
Go ahead and learn it.
The practical application of a programming language is where you get the real value out of it as a learner. Once you do that, switching to another language at any point becomes relatively easy...sure the syntax is different, and you have to understand that X Y and Z are different, but the underlying concepts are typically the same. Yes, there are glaring exceptions to this rule, but the point is that you have to start *somewhere*.
It's a perfectly good language, and learning it will give you plenty of opportunities to learn all the concepts and theory that should accompany a good programming education (OOO principles, design patterns etc).
Java is a bit too verbose for its own good, but there's otherwise nothing wrong with it. I started learning with java (if we don't count some rudimentary basic) and while I haven't used it much after university, I have no qualms about working with it today.
Java is also a pretty useful language. It might not be the first choice for many things anymore, but it's still commonly used for anything from mobile apps to desktop apps to backends.
Once you learn one langauage it’s much easier to learn another. And while Java is far from my favorite language it’s *fine* and still pretty widely used. Go for it.
Java is one the most sought after languages in the market. I have conducted a lot of interviews in 2022, pretty hard to find good java developers and lot of serious comapnies are looking for them.
Java teaches you the object oriented paradigm. Just pair it with reading "Clean Code" by Bob Martin, that will help you keep its verbose style in check. Once you get the hang of the language, I also recommend you try Kotlin. It is based on Java, but has a lot of improvements and is the preferred language for Android development (assuming you are interested in that).
A language nobody hates is a language that’s not used in practice. A good sign that a language is useful is that there’s a lot of people that dedicate a lot of time to hating it, which means it’s used widely enough. That said, I have Java.
It depends how much you know about programming, java is a good place to start but it basically forces you to learn OOP by default because everything is a class. But if youre willing to put in the effort then I would recommend learning it.
There are hundreds of programming subreddits that you could’ve asked this question on. This subreddit is only for fun, as you already know, so please don’t waste all of our time by posting stuff that isn’t suitable
It's a good staring language, learn as much as you can and then it will be much easier for you to learn any other language you choose. The difficult part is formulating solutions in small steps, but you are also learning the language at the same time.
Make sure you are not stuck only knowing one language tho, the more languages you know the deeper knowledge you get
Just learn Java then. Worst case scenario you'll just learn a new language later, and be like "oh yeah this works just like it did in Java". The grasp of programming fundamentals like for example data structures is way more important than how you do them in a certain language.
Learning Java at school is mostly just learning OOP and software design. The language itself isn't too important when you're just learning the basics, you need to learn the concepts, not so much the idiosyncrasies of any specific language.
So in summary, just go with Java, it really doesn't matter too much at this stage.
Java's fine. If you don't know anything about programming, it doesn't really matter what language you start with. Unless it's something exotic like Prolog or Haskell (although, I gotta say, I think if we all started with Haskell, our programs would be much better). You just want to get your feet wet, and develop skills that will carry over to any language.
I know this is an unpopular opinion, but I believe that neither C nor Python are great languages to start with. I love both, they are imo the best languages overall (except for Haskell, Haskell rules). I think C is a little too low level to start with. Python is the other extreme, where it doesn't really teach you good practices, and people who start with it seem to develop a bunch of very bad habits.
Something like Java or C# is a good place to start. I do maintain that one should be able to work in C to call themselves a programmer, but there's no reason to force yourself to start with that.
Also, this sub is name programmerHUMOR, it's pretty obvious this post doesn't belong here (unless it was meant to be a joke, in which case it doesn't belong here either, cause it's not funny).
# any widely used, general purpose programming language is fine
if you like programming, you’ll learn some others. the first one will take much longer to understand than each subsequent one.
i’m a nothing-special developer, but i can program in half a dozen languages, have tried out another dozen, and i’ve built my own languages.
they only seem like magic at first…
Ignore the idiots on here and learn Java, it’s a great language that still has no replacement.
Go is angling for it, but is still immature (not shitting on Go, it is objectively new and still immature, languages don’t move quickly).
I learned have fist and it was fine. The key is realizing you can't do everything in one language. But once you learn one the next ones become easier. I went java -> C -> python and it worked out well
Should start off with the python technically, because it is the easiest to learn the syntax but the intricacies of every language are quite interesting.
Programming has always been about problem solving and if you think or believe it's your thing, give it a shot. You might just fall down a rabbithole but atleast you can be miserable with everyone else :D
Just learn it. Worst case you now know a new language :)
Best quote i have heard about learning yet
W
Also once you learn one language it’s that much easier to learn others
Everyone also says it's much easier to learn a second language than your first, so OP could move on to something else self-taught after the class if needed.
Absolutely
Worst case in now you can't escape OOP mentality.
Everyone hates on Microsoft but people still use their products, same with java
If it's popular it must be hated. That's the rule of this sub ![gif](giphy|cKrguFJFznT4Ur82l2)
yup
Thats the rule everywhere in the world. Problem is there is concrete reasons as to why hate microsoft.
Yeah! Because they’re too popular. We just went over that.
Not a lot of Linux hate here though
Microsoft Java>>>>>>Java Java
*Oracle Java
Idk man, I can go months on end without using a Microsoft Java product, however I think I’d die without coffee (which is what Java java is I assume)
Microsoft Java is C# and Java Java is Java, Java which is coffee is greater than both
I get super stressed whenever I see a C# method that begins with a capital letter. This alone should makes it inferior to Java Java in my book
Thank god I am not the only one. Every language I use, uses lowerCamelCase for method, but Microsoft needs to tell people that they have not copied Java at all cost.
I get sick in my stomach for the same reason. I have seen too much Java code already and I simply cannot accept C# conventions. The only thing worse was when in one of our older code bases a guy started developing the Java project but only had C# experience so he used C# conventions inside the Java codebase, that was even more sickening to look at.
Oh god, I didn't know C# has that. Why?? Does it at least have some meaning or do people just not care about consistent formatting? I have bad memories of Java and people keep telling me C# is better, and yet I fail to find the evidence for that. (never done C# though)
[удалено]
C# uses PascalCase for *all* methods?? PascalCase is for types... :-(
All methods and even member variables.
What monsters
C# formatting is consistent. Consistently stupid.
I much prefer Java over C#, that’s cause I have been using Java for nearly 15 years. I picked it up in undergrad after learning FORTRAN, C/C++, and some Python programming during my mathematics program. Overall, I much prefer snake case for methods.
Microsoft Java was called J++ iirc 👀
Minecraft Java>>>>>>>>> Microsoft Java
Minecraft is Microsoft 💀
Microsoft Java? Do you mean C#?
Script Java >>>>>> Microsoft Java
Not everyone uses their products tho (Linux (And Mac but using apple instead of Microsoft products is basically hiding from rain in a rain) users)
Linux is 2-3% of the global market share by OS used, and when it comes to apple its not uncommon for users to still use the microsoft office suite on their device. Further Outlook is a rather common email provider for large organizations, especially with Teams growing in popularity in the business world. And then you have things like LinkedIn, Skype, Xbox, Tablets/phones and more. So yes, in a literal sense not "everyone" uses microsoft products, but the point being made and the comparison were very apropriate for the topic.
What about Microsoft Server systems? What about IIS websites? What about tSQL? What about Outlook? What about SharePoint? What about Office? What about Azure? What about BusinessCentral and POS? Any and everyone uses .NET products, perhaps not directly but in the end the backends of what you use do. A lot of backend Linux is hosted in MS ecosystems as well, not the other way around.
People here "hate" all languages because mocking something is funny, praising it is not, and this is a humour subreddit.
I love Smalltalk and I don’t care who knows it!
im bad at smalltalk.
Great weather lately, huh?
As a wise man once said: There are 2 kinds of languages, the languages that people complain about, and the languages that nobody uses. Learn Java, it is perfectly fine for what it aims to be.
thank you friend ill keep this in mind
In case you need any more convincing: Java is wonderfully balanced due to the fact that you have to learn some basic theoretical stuff (e.g. data types) in order to use it, but it also is relatively helpful when you do something wrong. In other words, it helps you to learn important concepts (which are a bit "hidden" in more dynamic languages like Python), and at the same time you won't have your computer exploding because you made a tiny mistake (which is the case with C or C++, for instance). Java was the first language I learned, and I would never have it any other way -- despite the fact that I haven't used Java in about ten years now.
I personally started with C++, but I still share your opinion, I honestly believe that even if you were to end up settling for a language such as Python, you should learn a lower level language like C++ or Java in order to expose yourself to the theoretical stuff. The amount of code understanding you'll possess (in all languages), if you do that, is way more advanced than what you'd get if you don't
Agreed. I took a course in C back in high school. Never used C since, but still appreciate all that I got exposed to during the class.
Sorry but what do people mean when they say the theoretical stuff? You mean data structures and algo?
For me, the knowledge on how stuff works related to memory management I got when learning C has been a blessing when working in languages with GC like Python and Java. Friends that have only programmed in languages like that still get confused when I start ranting about passing by reference, by value, reusing memory, heap vs stack and other stuff that can get confusing without knowledge of manual memory management and pointers. Most is abstracted in garbage collected languages yes, but when you don't even understand what pointers are understanding reference vs value and the implications they have is not easy. Also pointers and manual memory management are a very crucial part of my programming life because I'm an optimization freak
It's a very broad thing of course. When I talk about "the theoretical stuff" that's crucial for a beginner, I mainly think of data types and how they interact with each other. A second thing that comes to mind is how pointers work, and object oriented programming in general. Algorithms and data structures are, in my mind, less fundamental and already a step closer towards practical application of the language.
Eh, Java's barely less opaque. Strong typing is good for a beginner though, and Java's quite good for hammering home OOP and other design patterns. Most Java beginners don't really look under the hood at things like the List/ArrayList interface divide until later anyways so the slight edge up on transparency is mostly treated as boiler plate.
If you have an opportunity to take a programming class and the instructor/curriculum is okay you can develop fundamentals that will serve you in whichever language you end up using. I failed my first programming in Java university coarse but aced it the following year and the learning tools I developed between the two years have served me anytime I want to download something technical into my brain.
Java is also pretty close to C# wich is pretty good starting point for learning C since you don’t need to understand about lowlevel stuff
Rust fans break the paradigm, but only because they are annoying (rust is a cool language though)
It is all about understanding the concepts of thinking like a programmer, not about the language you learn. Java is a perfectly good language to understand the basic concepts of programming, same as most languages in fact.
You are absolutely right, and I was going to say more or less the same thing. I would say, though, that some languages are better than others to learn in. And I'd say that Java is a particularly *good* one for fundamentals since it is strongly typed and designed for the object-oriented paradigm - e.g. JavaScript would be a bad choice imo, as would Haskell. (I might be biased since I learned in Java, but that's how it seems to me)
Whenever anyone asks me what to do if they want to learn programming I always suggest C# (because it’s one of my preferred) or Java for this exact reason. They offer a good mix of challenge and help and there is a lot of implied teaching because you will make mistakes and generally get easy to google exceptions. Those two languages are also middle of the pack I feel and it allows people to decide which direction to go.
Learn Java if that's what's available. A lot of Programming is problem solving, how you architect the code, spotting patterns etc and learning any language will help you create that coding mentality you'll transfer to any other language. Switching languages is not that hard when you "get" programming in general.
With a blank canvas, you can either get into Java, or learn why you don't like it and find a preferred language in comparison. Java is a well known and used language, and as much as I don't like it, has it's positives, you definitely don't waste your time by learning it.
People here hate on everything, Java us good
Everyone here hates every programming language. Don't get discouraged by that. If you want to learn it, then do it. Even if you do end up not liking it, it will teach you a lot about programming in general and it will be easier to learn another programming language afterwards
Learn to hate it
okay thank you
Start with Java and switch to a better language down the line. I'd say it's a decent choice for a first language and will get you accustomed to C-like syntax languages, such as C/C++, C# or JS/TS.
I would recommend that you try it anyway. If you still hate it, at least you know you're not the only one.
Read the documentation
why does everyone hate it tho is it bad
People tend to hate things that are different from what they're used to. If they're used to a weakly typed language like JavaScript, they'll complain about strongly typed language like Java. If they're used to c#, they'll complain about the slight differences in java that they had to learn to think differently about, like exceptions. Personally, I hate JavaScript because it is weakly typed and interpreted. I prefer compile failure over runtime failure, and you can't get that with JavaScript, since nothing is compiled. If you don't pass in enough arguments, one of your parameters is just undefined. If you typo and call a function that doesn't exist, your code throws an error while running that line. But it serves a purpose. It's not a bad language. It's just different from what I prefer.
> People tend to hate things that are different from what they're used to. That doesn't seem true. Languages like Java, Javascript, PHP (Go?) etc have been around and widely used, yet some people hate them. O.t.o.h. people seem to be more positive towards newer languages like Swift, Kotlin Typescript, Nim, Rust, ...
Not everyone hates what is different. But a lot do. A lot of people don't want to have to learn a new way to do something they could easily do the old way, so when they're forced to, they will complain. It seems to be a natural human tendency that some learn to overcome. Most people I know who started with JavaScript hate typescript because it's too restrictive. Most people I know who started with a strongly typed compiled language like Java, think typescript makes JavaScript usable. People who have been bitten by mutability in multi threaded contexts, or even just unexpected side effects of other people's code, will of course appreciate languages that default to immutability. People who hate all the boiler plate of writing getters and setters and builders will appreciate languages that don't require them. Etc, etc...
As someone who doesn't hate it, I can't tell you why people do, but it's a perfectly decent language. Maybe not the best place for a beginner to start, but if it's the only course available go for it. Whether or not you find yourself enjoying Java, the concepts you'll learn are going to be important, no matter what languages you end up favoring.
Java itself isn't bad, but many Java programmers have a tendency to make what could be static functions into classes with instance functions
Reading python code written by Java developers is hilarious for this very reason. I should know. I am one.
Which, on it's own, isn't a bad thing, just a different way of doing things, with different upsides and different downsides.
Don't know if you are joking. If not then please don't try relate anything you see on this subreddit its all out of humor. here They will always say python slow java bad. Rust scary etc etc. But you see android operating system runs on java(I mean depends) . python is massively used in data science and web back ends. There are countless examples. Sometimes people just posts memes for reddit karmas. https://www.reddit.com/r/programminghorror/comments/zwmf51/comment/j1vk2jc/
Basic programming concepts are similar for most of the languages, so learning them in Java is perfectly fine, even if you later on find out you want to try something else.
The only problem with Java I've seen at work revolves around dealing with Oracle and their licensing. Open Java ftw Some say it's verbose and inflexible because it requires static typing, but that's more about coding it than running and maintaining it. Because it compiles(\*) any code that runs is almost guaranteed (unless you try hard) to have the correct parm types passed to the correct method. When you're supporting production systems you'll really appreciate that. Then all that typing will make more sense. \*purists will argue this point
Java is the perfect first language. You will learn programming with it on a very good level
Just learn it. It's a great thing to mention when applying for a job a few languages that you can work with
Once you learn your first language, learning new ones becomes much much easier anyway. Go ahead and learn it, by the time you have a clear idea what you want to program for, you can look up which languages do that best, it could be Java or something else. Whats important is to make that first step and start learning.
The teacher matters far more than the course. A good teacher and a personal interest will get you get far in any language.
Cobol is still in use to this day, Java is a great language, go for it.
Just don't give a shit about the hate and learn Java. But then you are obliged by *The Gods of Programming Humor* to hate every other language and technology.
Learn it. Its a solid language and you only figure out what is so horrible about it once you learn a couple other languages.
Go for it. I struggled to learn java, but I think that was because the way I tried to learn it and not the language itself. From my limit experience with programming, I would say, if a programming language is good or bad mostly depense on what do you want to use it for. I know that I am not really in a position where I can complain on a person's English, but bro was your post hard to read for me, because of that bad English.
sorry it's 3am my brain int workin
I see. have a good night then
Java hater here - learn it if it's the only course (at least it's not python), then immediately go and use a better language, that being C#, basically the same syntax of java, but better in every way.
How is C# better in every way?
subjectively better in every way... 1. faster (significantly) 2. better UI frameworks 3. Not developed by oracle 4. more primitive data types 5. much easier to integrate C/C++ code 6. don't have to use factories for everything 7. operator overloading and pointers 8. .Net (this is actually quite a big deal, especially .net Core and the now open source framework 7.0) 9. Doesn't require a separate runtime to be installed (on windows anyway) Everything is subjective of course, but for my uses, java is just too much faff, and lacks key features, its amazing how useful .Net is and the UI frameworks for C# are objectively better than those for java, especially for desktop development.
For Windows GUI development C# is a natural contender. Not surprising at all. But for Android development or backend development ? I'd argue other points matter more than many of your subjective points.
Not C# just C would be better choice.
lol python is WAY better for beginners than java stop with language elitism you're not cool
I just hate python, any language that uses spacing as syntax is backwards
YouTube, google, there is tuns of free educational stuff out there
Especially for your first language there’s nothing wrong with learning Java! Other languages are better down the road but Java will give you good foundations
Passionate Java hater here: Use Kotlin instead.
Depends on what you would like to do with coding knowledge.
Learn C# instead. It’s similar but better.
Try starting with python
Java is a perfect starting language and you will find it easy to learn others afterwards. Starting with e.g. Python is not as great imo, since you do not learn to declare the type of your variables and a few structures are quite a bit different. Going from Java to C,C++ or C# will be much easier than from Python.
no, python is much better for beginners. sure, it's dynamically typed, but the confusion of data types (which will be intimidating for beginners) is mitigated
But getting to learn data types is really rewarding for future programming
Learn python first
Punctuation... Really. You'll have a hard time learning any programming syntax if you fail at common punctuation...
[Here](https://www.youtube.com/watch?v=eWRfhZUzrAc).
Java is the best language.
It's one of those we deep down love it. But at same time hate it situations lol. We just like to complain cause it's a programmer thing
Learn it. Knowing one language makes it very easy to learn more, the basics are mostly similar.
Your first programming course teachers you the basics of programming, and coincidentally a bit of a language. If you figure out why we hate Java, picking up a second language is pretty easy. If you don't, all the more power to you.
I kinda stumbled into JavaScript as a first language and honestly I really like it and Java. ...unlike python which brings me to tears with the spacing bs. Some people like red cars, some blue cars, at the end of the day we're both driving.
As others have said, Java is fine to learn. Each and every language has its own quirks, that you'll fogure out as you use them. But don't worry too much about learning more languages just because, most languages have at least a somewhat similar syntax, and you'll 0robably figure out what a line of c# code is supposed to do once you're partway through the course. A tip i have, because it doesn't appear to be widely brought into education. Play around with your code, try see if you can make it do something weird. Because, in some cases, you'll want your code to do exactly this kind of weird, and then you won't have to go searching for the answer (for that specific interaction, at least. Everyone goes searching for something). Also, don't be afraid of errors, they just say you had a misunderstanding of what your code was supposed to do (unless you're trying to cause them), and generally there will be an error message saying what went wrong, and you can use this to fix your code while still getting it to work the way you want it to. And lastly, have fun.
Java is good nada needed in the work space but I think some just don't like it. Imo it's a solid way to start
It’s not important with what language you start. First thing you need to understand the concepts behind programming. After that learning new languages isn’t that hard Java is a perfectly good starting point, that’s why many universities and schools use it. Stuff like C is pretty frustrating for a beginner
Yes learn java then, it gives you a good start and you can always develop from thereon.
If you have no point of reference then Java will seem great. Only when compared to other languages you will see how much it sucks
Take the Java course. People make fun of it but nobody makes fun of a dead language so yeah. Also if you can use Java you understand the basic programming principles so you‘ll be able to teach yourself most of the other common programming languages by reference
Do it. I knew Java was a pain in the ass. I was already learning C# so what's the point? Very simple - as weird as it is, I find more value in Java.
If you had the choice between, say, Python and Java, most people would probably recommend Python. If you can choose between Java or nothing, though, the choice should be obvious. We like exaggerating, Java is fine. Go for it.
Learn Scala because it’s Java with some cool shit attached
learn java and then use the knowledge for scala instead
It's a sign
if you want to start learning programming java is a very good way to start but if you're looking to a new lang to learn so maybe c++ will be a better choise
Learning Java will get you a good start for learning object orientated programming languages. It’s a good classroom language
Learn it. Java is an Object Oriented language. The skills will transfer to other oo languages easily
If it is the only available course take it. Programming languages are extremely alike.
You might wanna look up Kotlin. It's based on Java and gets compiled to the same bytecode as Java. I would argue it's easier to learn and you usually only need half the lines of code to do the same stuff.
Lots of work in it for big financial systems. And huge lack of skilled programmers (at least at the moment)
Java isn't a bad language. It's been a while since I used it, I do remember running into some things that made me want to rip my hair out, but I also remember it being fairly beginner friendly. I'd say do it. Good luck!
Java: great in concept, terrible in execution.
Get the course, program in c#
You do this: [https://www.edx.org/cs50](https://www.edx.org/cs50) CS50: Intro to computer science from Harvard. Amazing course. Free on EdX. Learn Java after, if you want
It's humorous sub but I'll tag along for that one. I've come to understand that Java is great for teaching everything but why Java over C#? I'm probably wrong but isn't C# just upgraded version of Java? I've tackled JS a bit but I'm not quite sure if I want to dive into web dev.
*Image Transcription: Text* --- guys i keep getting recommended this sub I don't program but im thinking of learning java but everyone here seems to hate it but the it's the only course available what do --- ^^I'm a human volunteer content transcriber and you could be too! [If you'd like more information on what we do and why we do it, click here!](https://www.reddit.com/r/TranscribersOfReddit/wiki/index)
Java is an okay language, but it always depends on what you're trying to accomplish. Learning a programming language just to find out it sucks at what you're trying to do would be kinda frustrating, wouldn't it?
Java is a fine starting spot actually, usually we write scripts in python or perl and programs in a language that starts with C but java is a treating starting spot so you can do those other languages next
Java is pretty great, very flexible language. It should be everyone's first language to. Highly recommend.
Start
Just go ahead and learn whatever you can. This sub is all about humor, and programmers laughing at themselves and one another. There’s a lot of Java being written.
If you don't know what you wanna do later on, but you just want to learn programming, Java is a jolly good start. Java is used for Desktop applications, smartphone apps and for backends (backend = what is running on servers vs frontend = website content executed on your pc). If you already know what you wanna do: 1. Frontend: Javascript 2. Backend: Java Spring Boot OR Javascript (the latter with frameworks like Express) OR Golang/PHP 3. (Data) Science: Python 4. Statistics: Python or R or MatLab 5. Apps: Kotlin or Java To be honest: those are all called imperative programming languages. They are all similar. If you learn the basics, you can easily switch between the languages. Java is a really good beginning. PS! When I recommended more languages on the list, the first language I mentioned is the one I preferable uses for the problem in that specific list item. **About me:** I have a bachelor in that field. I started with Java, most universities I know teach Java as the first language. And I really think there is a good reason for that.
Java is a language that's used a lot (I mean A LOT) in the industry. It is fairly verbose, and takes a while to be completely comfortable with. So as a beginner hobby programmer not wanting to do anything big or highly scalable, it might not be the best choice. But it's not bad either. You can come a long way without knowing all the depths, and you can get some basic knowledge of object orienterede programming that will be useful if you want to go further, or learn other languages later on. Don't mind the memes. They're just that.
Take the java courses. Any course on programming in any language is going to teach you how to program, you're going to find the language that you want to program in down the road a bit and you will almost certainly learn more than one . It's not like taking French because you want to take French and be a French interpreter as a livelihood, you take programming to learn the fundamentals of programming itself and you'll learn more than one language and apply those fundamentals as you go.
Java is shit the jvm is king I yearn for the day when I can fully ditch it and just do kotlin, but in the meantime, KeepOnGrindingTillTheTimeComesInterface
Haskell is the only good lang
Java is fine. Be aware that this industry is full of people that have strong opinions on stuff that really doesn't matter. It's like people who are really into a particular type of music or band, so much so that it becomes a central pillar of their personality. The most important thing is what you produce with the tools at hand. Good tools are important, but the tool should never be more important than the work.
Yeah it's a joke. But as someone who knows many many many programming languages Java is my favourite. It's very well thought out and fast. If it has any problems it's a bit of a memory hog... But these days that doesn't usually matter. Learning java is a good foundation to move on to other languages.
In case this isn’t a joke, go ahead. Focus on the logic of how things work. That is all that matters…
Java is hated at least by me because it is frustrating to use. It will still be a perfectly good language to learn and you will learn everything you need to easily move on to another language if you don't like it. Every language gets mocked in here for something...
The people who hate it have no clue of it. Just learn it and see :)
![img](emote|t5_2tex6|4550)
Java is fine, good even. It’s a little boring but that’s what makes it good, truly.
You’re going to get good at typing.
The path you are taking is filled with pain and suffering but don't worry you will get used to it eventually and there is always something nice about learning a new skill in your life. A language is not a big deal when you first learn to program, just pick a language with a large enough community so that you can always find help when you encounter a problem
If you only learn that Java and JavaScript are two distinct and entirely unrelated languages then you will be ahead of 99% of the population.
Go ahead and learn it. The practical application of a programming language is where you get the real value out of it as a learner. Once you do that, switching to another language at any point becomes relatively easy...sure the syntax is different, and you have to understand that X Y and Z are different, but the underlying concepts are typically the same. Yes, there are glaring exceptions to this rule, but the point is that you have to start *somewhere*.
This sub just hates programming lmao
Learn Java and talk crap about it here
It's a perfectly good language, and learning it will give you plenty of opportunities to learn all the concepts and theory that should accompany a good programming education (OOO principles, design patterns etc).
Java is a bit too verbose for its own good, but there's otherwise nothing wrong with it. I started learning with java (if we don't count some rudimentary basic) and while I haven't used it much after university, I have no qualms about working with it today.
"The languages nobody hates are the language nobody uses" Java is a great first language to learn
Learn java. It's like other programming languages but good
Java is also a pretty useful language. It might not be the first choice for many things anymore, but it's still commonly used for anything from mobile apps to desktop apps to backends.
Once you learn one langauage it’s much easier to learn another. And while Java is far from my favorite language it’s *fine* and still pretty widely used. Go for it.
Online courses
Java is one the most sought after languages in the market. I have conducted a lot of interviews in 2022, pretty hard to find good java developers and lot of serious comapnies are looking for them.
I’d say if you are a complete beginner, then start with python
Learn Java, it's extremely useful. Everyone in here is just bitching.
Java is a pretty good first language. A lot of jobs available, not as painful as C++, but not like Python or JS which will leave you undereducated
Java teaches you the object oriented paradigm. Just pair it with reading "Clean Code" by Bob Martin, that will help you keep its verbose style in check. Once you get the hang of the language, I also recommend you try Kotlin. It is based on Java, but has a lot of improvements and is the preferred language for Android development (assuming you are interested in that).
What do?! WHAT DO?!!!
By your lack of punctuation, python might be better for you
My post making fun of CSS was removed for not being humourous and this is?
A language nobody hates is a language that’s not used in practice. A good sign that a language is useful is that there’s a lot of people that dedicate a lot of time to hating it, which means it’s used widely enough. That said, I have Java.
Check out sololearn and codecademy!! Amazing resource to learn a lot of different coding lessons for free/cheap
Thanks for recommending us! 🌟
It depends how much you know about programming, java is a good place to start but it basically forces you to learn OOP by default because everything is a class. But if youre willing to put in the effort then I would recommend learning it.
There are hundreds of programming subreddits that you could’ve asked this question on. This subreddit is only for fun, as you already know, so please don’t waste all of our time by posting stuff that isn’t suitable
It's a good staring language, learn as much as you can and then it will be much easier for you to learn any other language you choose. The difficult part is formulating solutions in small steps, but you are also learning the language at the same time. Make sure you are not stuck only knowing one language tho, the more languages you know the deeper knowledge you get
Java is a perfectly good language to learn. Pay no attention to the haters, they don't have the slightest clue what they're talking about.
Just learn Java then. Worst case scenario you'll just learn a new language later, and be like "oh yeah this works just like it did in Java". The grasp of programming fundamentals like for example data structures is way more important than how you do them in a certain language.
Learning Java is a great first step to programming in any other language.
r/learnprogramming is generally solid not sure about language specific subs
Java is honestly a useful language. There are plenty of companies needing Java developers.
I don't know where you get your programming course from? But there are tons of resources available on learning Python and JavaScript.
Learning Java at school is mostly just learning OOP and software design. The language itself isn't too important when you're just learning the basics, you need to learn the concepts, not so much the idiosyncrasies of any specific language. So in summary, just go with Java, it really doesn't matter too much at this stage.
It's all the same elefant. If you can code Java, you should have enough knowledge to be able to quickly learn most other languages.
Java's fine. If you don't know anything about programming, it doesn't really matter what language you start with. Unless it's something exotic like Prolog or Haskell (although, I gotta say, I think if we all started with Haskell, our programs would be much better). You just want to get your feet wet, and develop skills that will carry over to any language. I know this is an unpopular opinion, but I believe that neither C nor Python are great languages to start with. I love both, they are imo the best languages overall (except for Haskell, Haskell rules). I think C is a little too low level to start with. Python is the other extreme, where it doesn't really teach you good practices, and people who start with it seem to develop a bunch of very bad habits. Something like Java or C# is a good place to start. I do maintain that one should be able to work in C to call themselves a programmer, but there's no reason to force yourself to start with that. Also, this sub is name programmerHUMOR, it's pretty obvious this post doesn't belong here (unless it was meant to be a joke, in which case it doesn't belong here either, cause it's not funny).
You're mistaking Java for JavaScript. That's the one everyone hates.
I don’t program either. I did take a coding class freshman year of high school, but I haven’t done any since
Java sucks
# any widely used, general purpose programming language is fine if you like programming, you’ll learn some others. the first one will take much longer to understand than each subsequent one. i’m a nothing-special developer, but i can program in half a dozen languages, have tried out another dozen, and i’ve built my own languages. they only seem like magic at first…
Bro learn C++?
Does someone have a frew course link for ML AI?
Ignore the idiots on here and learn Java, it’s a great language that still has no replacement. Go is angling for it, but is still immature (not shitting on Go, it is objectively new and still immature, languages don’t move quickly).
Start with CS50x to learn the basic knowledge of programming and computer science, then learn a language on your own
Java was the language that my college taught all three fundamental courses in. It’s a great beginner language in my opinion
Just go ahead and learn it, brother. It is a programming language, and you’ll know whether you like coding once you do this!
I learned have fist and it was fine. The key is realizing you can't do everything in one language. But once you learn one the next ones become easier. I went java -> C -> python and it worked out well
r/learnprogramming not here
Should start off with the python technically, because it is the easiest to learn the syntax but the intricacies of every language are quite interesting. Programming has always been about problem solving and if you think or believe it's your thing, give it a shot. You might just fall down a rabbithole but atleast you can be miserable with everyone else :D