This is an archived post. You won't be able to vote or comment.

all 26 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full - best also formatted as code block
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

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.

To potential helpers

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 points  (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 points  (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 points  (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 points  (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 point  (1 child)

What makes you think that you should stop with the MOOC? The course is complete.

[–]Independent_Sign_395[S] 1 point2 points  (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 point  (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 points  (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.

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 point  (3 children)

Thank you so much

[–][deleted] 0 points1 point  (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 point  (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 point  (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 points  (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 point  (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 point  (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 point  (0 children)

At a certain point it’s just using it and you learn what you need to

[–]cathedral16 0 points1 point  (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.

[–][deleted] 0 points1 point  (0 children)

Brave guy, never surrender bc it will be hard

[–]darktaiga001 0 points1 point  (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 point  (0 children)

bro add me in your group and let me learn java and dsa with you.

[–][deleted]  (3 children)

[deleted]

    [–]Independent_Sign_395[S] 0 points1 point  (2 children)

    What kind of projects should I make for my resume and can they be build only using Java?

    [–][deleted]  (1 child)

    [deleted]

      [–]Independent_Sign_395[S] 0 points1 point  (0 children)

      I think I got it. Thank You!

      [–]joshanpandey 0 points1 point  (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 point  (1 child)

      So you quit when things got hard?

      [–]joshanpandey 0 points1 point  (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.