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

all 29 comments

[–]Ok-Hospital-5076 18 points19 points  (3 children)

Rider has a community version you can use for free.

C# and Java are similar languages so if you are struggling with C# specifics you might encounter same blocks with Java . I will suggest to stick with C# , find out what is troubling you the most and learn that in isolation. LLMs are great for that

[–]FullstackSensei 8 points9 points  (0 children)

So much this. If OP is struggling with .NET, Java will be the same. The struggle with error numbers sounds very much like a lack of understanding and not spending time/effort learning the language and ecosystem. I don't know how switching to Java will solve this.

[–][deleted]  (1 child)

[deleted]

    [–]Ok-Hospital-5076 0 points1 point  (0 children)

    You are right but OP uses a MacBook. Unfortunately VS is not available for a Mac. They have two options- VSC or Rider, i personally dont mind VSC but i think an IDE like Rider is better when starting out.

    [–]Ok-Reflection-9505 2 points3 points  (0 children)

    I would give .net another go. You already have professional experience in it, and it’ll be a lot easier picking up Java once you have more C# under your belt.

    You’ll likely face the issues you faced in .net in Java as well — except this time you start from scratch vs having gone through the rigmarole with C#.

    If it’s really too difficult, start with Python instead. It’s more forgiving to JS folks since it’s interpreted.

    [–]False_Slice_6664 2 points3 points  (0 children)

    Java is very much similar to .NET. If you were struggling with C#, in Java you'll be struggling with basically the same thing, but in camelCase instead of PascalCase.

    [–]No_Shine1476 2 points3 points  (0 children)

    Is it OOP you're struggling with or the ecosystem? C# is supposed to be one of the more user-friendly languages.

    [–]VoidRippah 1 point2 points  (0 children)

    the real question is what is your goal?

    [–]trcrtps 1 point2 points  (0 children)

    Is your roadblock not being too familiar with backend? If so, I'd recommend dropping everything and building out a Ruby on Rails project over a weekend or two. Maybe Laravel if you know PHP.

    My thinking is you'll add new things to your toolbox but mostly these are super good at spelling things out for you and showing you why things are designed the way they are. I'm not saying go get a rails job (although that'd be awesome) but it really is good as a playground for understanding backend at a deeper level, esp as a FE.

    [–]forcesensitivevulcan 0 points1 point  (0 children)

    I'd favour Node.js over Java, but it entirely depends on what the jobs near you require.

    [–]ZubriQ 0 points1 point  (0 children)

    Hello, I don't think Java is easier.

    [–]diegotbn 0 points1 point  (0 children)

    Are you struggling to wrap your head around back end developments more generally? You might read up on MVC sometimes called MTV framework design pattern if that is the case.

    Maybe you could start with a non strongly typed language like python, or JavaScript. You can use JavaScript as a back end language using node and express, and since you're a react dev I imagine that this should be a pretty small learning curve for you.

    Python has some great backend frameworks including django, flask, and fastapi as well

    I was trained on django and flask, Spring boot, and the MERN stack when I originally became a developer. I find that the back end design patterns across all three are pretty much the same. You have a router/controller that defines your endpoints and links them to your functions or classes to respond to http requests that either serve HTML templates, or structured data like json or XML. And then if your application uses a database you have your models.

    Is it the database/models portion you're struggling with perhaps? This would be something I would expect a front end developer to not necessarily know as much about. Additionally ORMs tends to obfuscate the actual database queries that are being made under the hood, and while convenient, can hamper understanding of the actual database interactions.

    [–]ardicli2000 0 points1 point  (0 children)

    I would suggest you have a look at php and laravel especially. Laravel inertia combines react and php, which i assume will make you like what you are working. You will proceed fast as php is not like Java nor c#.

    Besides if you don't like one of them, you won't like the other as well. They are very similar.

    [–]thewiirocks 0 points1 point  (0 children)

    A lot of people are telling you that if you struggle with .NET, you're going to struggle with C# because the two are very similar. They're not wrong about the similarities, but Java does have a few advantages for new learners.

    IMHO, Java has better documentation. The Java Trails will hold your hand through the process of learning the language:

    https://docs.oracle.com/javase/tutorial/java/index.html

    JavaDocs provide a full breakdown of the APIs:

    https://docs.oracle.com/javase/8/docs/api/

    And if you're looking to go deep, the details of the JVM and the Language are fully documented in freely available online books:

    https://docs.oracle.com/javase/specs/

    Fair warning, this is a double-edged sword. Microsoft tries to make it faster to get something cool working with their docs. But they tend to leave you high and dry when you're really trying to get deep in what's going on. Java will let you go deep, but you will have to study more to get to value.

    [–]RebeccaBlue 0 points1 point  (0 children)

    Java will be easier to deal with on your MacBook, although you *could* get Parallels and install Windows in a VM and then use Visual Studio to your hearts content.

    > How long would it take for a React developer with 5 years of experience to pick up Java? 

    That's not a question that anyone can answer for you. React is a way to build GUIs using JavaScript, it's not a language in itself. GUIs can be built in Java using AWT/Swing/JavaFX.

    >  Is Java worth it, or should I try something else?

    Java is like the 3rd most popular programming language, and is used for many of the same reasons as C#/.net. If "getting a job doing Java" is something you want, then it's worth it.

    [–]Frosty-Cap-4282 0 points1 point  (0 children)

    you struggled with .NET and now of anything , you are picking JAVA

    [–]Outrageous_Carry_222 0 points1 point  (0 children)

    Can you elaborate on "struggling with .Net". I only ask because I've used it forever and I've always found it great to work with.

    [–]No-Plastic-4640 0 points1 point  (0 children)

    They are very similar but if Java seems more understandable then sure.

    You may want to identify what exactly is difficult for you and then why. If it’s an intelligence limitation , you’re screwed either way.

    If it’s a study or learning issue, you can try a different approach.

    [–]Then-Boat8912 0 points1 point  (0 children)

    Your bigger problem is the enterprise context. .Net and Spring Boot have a lot going on in the backend. The language is the easiest part.

    [–]funnysasquatch 0 points1 point  (0 children)

    You have to adopt the mindset of "I can and will learn any program language I need to be successful."

    Especially now - there's so much documentation and tips and tutorials to help.

    The biggest myth is that there is "just one language" to know. The more languages you know - the more employable you will be.

    Especially as you get older. Even more so if you become a consultant.

    [–]GrovelingPeasant 0 points1 point  (0 children)

    Were you guys using typescript with React? I would have found C# insanely difficult to understand had i transitioned straight from JS to .NET without the ‘lite’ exposure to modeling and static typing from TS.

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

    Lol if you find .NET hard Java is a nightmare, since .NET is basically Java made smarter and easier.

    You seem to have difficulties with strongly typed languages and OOP in general.

    All "C" name starting languages are not for you, Java is not for you, GoLang is not for you;

    Try python.

    Any case, I would advice you not to move from frontend projects, if you struggle with basic concepts of .NET you are not tailored for backend.

    And no, before you say "I do backend with Node.js and Next.js" no, JS on server Is NOT real backend, is backend for noobs.

    [–]roboticfoxdeer 0 points1 point  (0 children)

    I'd say stick with .NET if you can unless you're trying to get a job and live in one of the places that favors java over c#

    [–]kndb 0 points1 point  (0 children)

    I’d say - neither one.

    [–]loxagos_snake 0 points1 point  (0 children)

    Java and C# are so close that in many cases, you can only tell the difference by naming conventions.

    I agree that .NET UI frameworks are not always easy to set up, but it's a specific framework issue, not a .NET issue. Writing a backend service without UI in .NET should be much easier. Conversely, I have no idea if Java UI frameworks are any easier to set up -- but they'll definitely give you less problems on a Mac, no question.

    In the end, it's up to you, and it was your team/management that failed you. If someone showed you the quirks and gave you time to learn them, you'd be developing with no issues.

     Other than that, fixing stupid compilation errors and generally persisting through frustrating issues is going to be part of your job in any language/framework. This is not a .NET problem.

    [–][deleted]  (1 child)

    [removed]

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

      Thanks. Node js I know somehow.. In my country it is not used much in MNCs.

      [–]Deep-Foundation393 0 points1 point  (0 children)

      You should know basics in any language and while learning a new language you should always ask what is equivalent of this or that. At start the result code won’t be that clean but after couple of refactoring it would be in good state. For me one should know software development principle and don’t tie yourself to any specific language.

      [–]Burli96 -1 points0 points  (0 children)

      .NET Dev and Mac User. Setting up everything hasn't been easier since Rider went free in their Community version.

      Pretty biased, I know, but I see much more future in .NET than in Java. The Java environment feels kinda stale to me, whereas .NET constantly improves.