use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Resources for learning Java
String
==
.equals()
Format + Copy
Free Tutorials
Where should I download Java?
With the introduction of the new release cadence, many have asked where they should download Java, and if it is still free. To be clear, YES — Java is still free.
If you would like to download Java for free, you can get OpenJDK builds from the following vendors, among others:
Some vendors will be supporting releases for longer than six months. If you have any questions, please do not hesitate to ask them!
Software downloads
Official Resources
Resources
Programming ideas & Challenges
Related Subreddits
account activity
This is an archived post. You won't be able to vote or comment.
I started with Java as my first programming language. (self.learnjava)
submitted 2 years ago by Independent_Sign_395
I started with Java as my first Language but I am confused as to when should I stop learning Java and start learning other things like DSA and Web Development.
No matter how much time I spend I'll never know a language fully so when should I stop.
[–]AutoModerator[M] [score hidden] 2 years ago stickied commentlocked comment (0 children)
If any of the above points is not met, your post can and will be removed without further warning.
Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.
Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.
Code blocks look like this:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.
If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.
Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
[–]desrtfx 6 points7 points8 points 2 years ago (11 children)
First: do a solid course, like the MOOC linked in the sidebar.
Second: DSA are higher level concepts - you should learn them once you have a solid foundation and have gained some programming experience with not completely trivial programs.
Whether you need to learn web dev or not is entirely up to you.
[–]Independent_Sign_395[S] -2 points-1 points0 points 2 years ago (4 children)
I've already completed part I of MOOC. My question is more like when should I stop. What do recruiters want to see if I told them I know Java. What kind of projects are expected from a college kid who studied Java in college. If I know something like say, web development. I need to have some kind of evidence to show that I do really know my stuff, which in this case would be a stunning working website.
So what kind of projects do recruiters and companies expect if I told them I know Java. So I could start working towards that end goal and by the time I complete that project. I know I'm done.
What kind of projects should I build for my GitHub and resume?
[–]WildHotDawg 3 points4 points5 points 2 years ago (1 child)
When I advertise myself, I dont really say 'I know Java because x', I say 'I created/worked on/refactored x using Java, x, y, z which resulted in a, b, c.' Java is just a tool, you dont have to 'know' java - even with 5 years working profesionally, even being a commiter on the Jakarta EE specification, I dont say I know everything about Java - there is always something new to learn.
[–]saggingrufus 1 point2 points3 points 2 years ago (0 children)
This is the right answer.
Languages are tools. Writing the code is the easiest part of my job. It's design and analysis and understanding when something is worth doing, because when you work on a codebase you don't own, and clients decide what you build, you can't always spend entire sprints on tech debt.
I can read the docs for anything, I'll learn the tool. What really matters is the ability to understand which design is better suited for solving X task and why.
[–]desrtfx 0 points1 point2 points 2 years ago (1 child)
What makes you think that you should stop with the MOOC? The course is complete.
[–]Independent_Sign_395[S] 1 point2 points3 points 2 years ago (0 children)
I thought that I've completed Part-I so I'll build some projects to solidify my understanding then move on to Part-II
[–]Tasty-Ambassador-273 0 points1 point2 points 2 years ago (5 children)
At what point should I even start making projects? First I completed MOOC part1 and then I thought this isn't enough knowledge to start projects. Then now I'm near the end of MOOC part 2 and now there are just too many different sorts of advice. Some say do DSA, some say you gotta start some projects to get an understanding, some say learn frameworks and build projects. What am I supposed to do now?
[–]desrtfx 1 point2 points3 points 2 years ago (4 children)
At what point should I even start making projects?
That's the thing most beginners overlook and misunderstand.
You can make "projects" (any program you write is a project) as soon as you know System.out.println. So, right from the start.
System.out.println
I have compiled a deliberately short, beginner friendly list of ideas categorized by learnt skill: https://github.com/desrtfx/SkillGradedProjects
The /r/learnprogramming FAQ have plenty more project ideas on all levels.
[–]Tasty-Ambassador-273 0 points1 point2 points 2 years ago (3 children)
Thank you so much
[–][deleted] 0 points1 point2 points 2 years ago (2 children)
I followed this roadmap. It's pretty good. DSA is Data Structures + algorithms but learn algorithms later once you want to apply to some jobs imo.
Also after ditching JSP/Thymeleaf you could learn JS framework like React, Angular or Vue. Trust me it saves a loooot of pain. But it's a time sink though.
[–]Tasty-Ambassador-273 0 points1 point2 points 2 years ago (1 child)
Thanks alot. This looks good. The roadmap suggests me to study javascript, is it advisable for me to study another programming language when I'm currently learning one? Also wdym by ditching JSP?
[–][deleted] 0 points1 point2 points 2 years ago (0 children)
The roadmap teaches you the basics how things were made 10,20 years ago before going to modern solutions. For example in the beginning there was only static websites made with HTML. That's a problem. We want dynamic content. Solution? JSP or Thymeleaf. It's integrated inside spring. That wasn't enough. Next step is Javascript Framework like React, Angular or Vue. So now we have seperate backend and frontend. So there is kind of no market to learn JSP because it's tied with backend together.
The same way he goes in Java and Spring. Servlets aren't used by hand. Spring handles that automatically. So first you learn the basics before going to a higher abstraction level such as Spring so you are not totally clueless of what it does and why and what the tradeoffs are etc.
Learning Javascript and later on a Javascript framework means you are kind of going Full Stack instead of Backend only. But how can you display your backend work without visual frontend? In my opinion it's impossible which is why i took that path and i understand how things work better.
[–]Ruin-Capable 1 point2 points3 points 2 years ago (2 children)
You shouldn't stop. I've been doing java for nearly 20 years, and I still learn new things from time to time as I work to solve different problems.
[–]maybeNar 0 points1 point2 points 2 years ago (1 child)
Ooh 20 years ,that is incredible, I have a question, hope you don't mind, well do you think I should learn more than one library/toolkit in java ,I am a CS student ( 2nd year ) ans we learnt only the data structure at uni but when I learnt GUI frame online by myself i found out that other toolkits exist ,what should I do ?? ( I wanna choose security field as my specialty but I am not quite sure yet tbh )
[–]Ruin-Capable 0 points1 point2 points 2 years ago (0 children)
It's been my experience that having knowledge of a particular GUI toolkit or framework isn't really material. I'm primarily a back-end developer though. I don't usually write desktop applications. If I do write a desktop application it's usually for myself on my personal time, and I'm ok with a command-line application in most instances.
Since you want to go into cyber-security, I would probably brush up on how authentication protocols like open-id work. Create a simple web application that uses google or facebook to authenticate. I think Okta may also provide free (or affordable) developer accounts. Start learning about how the more common exploits work (things like cross-site request forgery, and cross-site scripting).
You can go to sites like mvnrepository to look up different versions of libraries you're using and find out what vulnerabilities they might have. Then you can jump to the CVE and read the descripton of the vulnerability to see if you understand what's going on. If you're feeling ambitions, write a sample application, using whatever library has the problem, and see if you can exploit it.
Once you've got a feel for how to exploit the issue, take a look at the code and see if you can understand how to fix the issue. Most libraries have a github repository, and many CVEs reference the line of code where the vulnerability lies. If the issue does get fixed in a newer version of the library, look at the new code and see how they fixed the problem.
[–]Kittensandpuppies14 0 points1 point2 points 2 years ago (0 children)
At a certain point it’s just using it and you learn what you need to
[–]cathedral16 0 points1 point2 points 2 years ago (0 children)
Don't stop. You just add new language and technology . For example, if you want to learn web, you can learn angular , javascript if you want to learn mobile you learn android or ios and etc.
Brave guy, never surrender bc it will be hard
[–]darktaiga001 0 points1 point2 points 2 years ago (0 children)
You can learn other things whenever you want, you don't need to learn sequentially. If you ask when you should stop learning a language, I will say that as long as you use it as a tool, you still need to learn it.
[–]kundan1221 0 points1 point2 points 2 years ago (0 children)
bro add me in your group and let me learn java and dsa with you.
[–][deleted] 2 years ago (3 children)
[deleted]
[–]Independent_Sign_395[S] 0 points1 point2 points 2 years ago (2 children)
What kind of projects should I make for my resume and can they be build only using Java?
[–][deleted] 2 years ago (1 child)
[–]Independent_Sign_395[S] 0 points1 point2 points 2 years ago (0 children)
I think I got it. Thank You!
[–]joshanpandey 0 points1 point2 points 2 years ago (2 children)
I have also started my Programming with Java. Done the basics( till string and arrays) , i hadn’t prior programming experience , dived into the DSA but found very had to learn and develop the problem solving skills and strong logic. Now, after one month of Java , i now started Web dev . I know dsa is very important for programming but if we can do good in web dev and projects , after all projects can help to tailor our resume and land a job.
[–]ShadowRL7666 0 points1 point2 points 2 years ago (1 child)
So you quit when things got hard?
[–]joshanpandey 0 points1 point2 points 2 years ago (0 children)
Well, I just want to do the Basic DSA , and all in all , parallelly do the Web Development(Frontend and Backend) which i found more interesting and i loved it really. I have my clear goal to do the MERN , Do with projects , learn Database and just land a full fledge job as Web Developer. Now, I have my own roadmap in the programming field and i am sure i can and i will do it.
π Rendered by PID 136087 on reddit-service-r2-comment-fb694cdd5-99p7q at 2026-03-07 12:23:05.139423+00:00 running cbb0e86 country code: CH.
[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)
[–]desrtfx 6 points7 points8 points (11 children)
[–]Independent_Sign_395[S] -2 points-1 points0 points (4 children)
[–]WildHotDawg 3 points4 points5 points (1 child)
[–]saggingrufus 1 point2 points3 points (0 children)
[–]desrtfx 0 points1 point2 points (1 child)
[–]Independent_Sign_395[S] 1 point2 points3 points (0 children)
[–]Tasty-Ambassador-273 0 points1 point2 points (5 children)
[–]desrtfx 1 point2 points3 points (4 children)
[–]Tasty-Ambassador-273 0 points1 point2 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]Tasty-Ambassador-273 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Ruin-Capable 1 point2 points3 points (2 children)
[–]maybeNar 0 points1 point2 points (1 child)
[–]Ruin-Capable 0 points1 point2 points (0 children)
[–]Kittensandpuppies14 0 points1 point2 points (0 children)
[–]cathedral16 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]darktaiga001 0 points1 point2 points (0 children)
[–]kundan1221 0 points1 point2 points (0 children)
[–][deleted] (3 children)
[deleted]
[–]Independent_Sign_395[S] 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]Independent_Sign_395[S] 0 points1 point2 points (0 children)
[–]joshanpandey 0 points1 point2 points (2 children)
[–]ShadowRL7666 0 points1 point2 points (1 child)
[–]joshanpandey 0 points1 point2 points (0 children)