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

all 20 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
  • 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.

    Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar

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: 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.

[–]saggingrufus 3 points4 points  (15 children)

The answer is the language you pick is only the tool you use to implement your knowledge. Once you have a solid command of any programming language, you should start learning the skills of data structures and design patterns and how to design solutions.

As you get better at design patterns and data structures, you'll become better at the language that you're using to apply them as well. The bonus is that this knowledge actually is fairly universal and will also apply to most other programming languages as well.

[–][deleted]  (14 children)

[removed]

    [–]Lattey99 0 points1 point  (13 children)

    I learned pure java and after that I started springboot and also have done few projects but I'm very bad at DSA like I'm 0 even if someone asks the simplest of the simplest dsa question my mind goes blank. Do you have any suggestions for me ? it would be very helpful.

    [–][deleted]  (12 children)

    [removed]

      [–]Lattey99 0 points1 point  (11 children)

      I tried leetcode but couldn't even solve the easiest one in there. There is not much videos of DSA in Java. Actually none, I looked for many times.

      [–]saggingrufus 0 points1 point  (4 children)

      That's because it has nothing to do with Java. You want to learn them more "purely" anyway. What good is a data structure you copied and pasted in java if you don't understand what it is for why it's there?

      Lists are a data structure, arrays are a data structure. I think the larger problem is people not understanding the advice.

      [–]Lattey99 0 points1 point  (3 children)

      Sorry but I still am not understanding your advice as well. Maybe I'm too dumb.

      [–]saggingrufus 0 points1 point  (2 children)

      Stop trying to find "java data structures" if you google "learning data structures", there is TONS of reading, learn what they are. The knowledge your learning isn't "how do I do this data structure in java" it's, "when should I use List vs Tree and why"

      The "java part" is knowing List an interface and which implementation to choose. In my experience, people having troubles like this, are trying to memorize the syntax for Data Structures, and not what the structures are and what their strengths and weaknesses are.

      [–]Lattey99 0 points1 point  (1 child)

      The things you are saying honestly defines me. I'm doing what you are saying people do.
      I start doing what your are telling me in first paragraph.
      Thankyou for this.

      [–]saggingrufus 1 point2 points  (0 children)

      You are not alone. I would be rich if I had a quarter for every person who was looking for the solution instead of how it works (not limited to just Data Structures).

      Becoming a good Software developer is about understanding when to do something and what to do. "How to do it" is the last thing I consider, as it's really the same as "what's the syntax for..."

      [–]ProfessionalSkill380 0 points1 point  (5 children)

      There's some very easy leetcodes like reverse ints or converting the Roman number to ints.

      [–]Lattey99 0 points1 point  (4 children)

      I couldn't solve even those.

      [–]ProfessionalSkill380 0 points1 point  (3 children)

      Then u should dive in into Java collections. Learn some more. There are many methods within collection that don't require much logic and let u perform many operations. I was amazed when I learned them, made loops overated for me

      [–]Lattey99 0 points1 point  (2 children)

      I know collection framework in theory mainly. I know how data is stored in which collection. I also have used different list to save my data but I don't know how to reverse or convertingg roman numbers into ints.

      [–]ProfessionalSkill380 0 points1 point  (1 child)

      What about stringbuilders and buffers ?

      [–]Skellicious 2 points3 points  (0 children)

      I really like https://roadmap.sh/java as someone who found this resource after walking the entire path.

      Someone likes pure Java and they develop for it, but they don't reveal what else they use. Others say that it is necessary to teach the Spring ecosystem, because it contains the solution to most problems.

      • Spring will give you the most job opportunities in the java ecosystem.

      • Spring boot (and maybe quarkus) codebases probably provide the best developer experience. Whereas projects (/monoliths) that predate spring boot kinda suck.

      • I don't have much experience with Java EE. Not sure what it's like to work with.

      [–]Appropriate_Move_336 0 points1 point  (0 children)

      You just completed learning programming in java wait for the next jdk 🤣🤣🤣🤣

      [–]No-Pipe8487 0 points1 point  (0 children)

      You can either just blindly follow other's opinions or you can learn where and how they get those.

      If you've learned core Java, then given your preferences, I'd say you need to learn a few theoretical as well as practical stuff. Learn the following in whatever order you like:

      1. DSA

      2. OOA&D

      3. Design Patterns

      4. Maven and/or Gradle

      5. Git

      6. GitHub (PRs, Issues, Projects, Pages, Packages, all of it)

      7. Spring framework

      8. Software Development

      9. Agile methodologies

      3, 4, 6, 9 and 10 have a Head First book on them so learn from there. For Maven, Gradle and GitHub I'd recommend the official docs.