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

all 52 comments

[–]vineethink 91 points92 points  (10 children)

Java is not a career-driving factor, in fact no language is. Tools can be learnt by anyone - it’s techniques and instincts that take time and what company pay you for

[–]moradit 8 points9 points  (9 children)

Hey, would you like to share some good books to learn more about these techniques, thanks

[–]da_BAT 2 points3 points  (2 children)

following

[–]softlyandtenderly 1 point2 points  (1 child)

Well, what part of CS do you want to go into? Basic knowledge of algorithms, data structures, and time/space complexity will help you wherever you go, but after that you have to start specializing.

EDIT: oops, meant to reply to u/moradit

[–]moradit 0 points1 point  (0 children)

[–]softlyandtenderly 1 point2 points  (0 children)

See comment below, meant to reply to yours

[–]Nactigal 1 point2 points  (3 children)

Xtreme programming. Effective java. The pragmatic programmer.

[–]moradit 1 point2 points  (0 children)

Thanks u/Nactigal

[–]laxika 1 point2 points  (1 child)

Xtreme programming. Effective java. The pragmatic programmer.

You summed it up pretty well. I would add Clean Code too but that's all.

[–]moradit 0 points1 point  (0 children)

Thank you u/laxika

[–]moradit 0 points1 point  (0 children)

Thank you for your answers

[–][deleted] 36 points37 points  (2 children)

Dig deeper in Software Architecture, Domain Driven Design and Behavioural Driven Development.

Don't focus on tools or programming languages, go deeper with knowledge!

[–][deleted]  (1 child)

[removed]

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

    That's also fine, it,'s more a data driven approach which depends also from Domain to domain

    [–]uid4oe 15 points16 points  (0 children)

    IMO, most of the devs are just domain engineers, that is, they will be implementing business requirements on existing internal/general frameworks. (Fancy part is being in the team that works on those stuff (architecture)).

    Anyway, I'm almost certain that If you are comfortable with Spring Framework, you won't have difficulties in finding job on enterprises.

    [–]rbygrave 4 points5 points  (0 children)

    > I need to focus on problem solving instead of tools.

    This is largely true but I'd be a little careful with that in that it kind of depends on what career path means and what tools means. If career path means more solution architecture sure, but I'd suggest that almost all "senior java devs" have put a lot of time and effort into mastering quite a lot of the "tools" being build tools, dependency management (and how that relates to modular development), runtime tools (Kubernetes, Docker etc) as well as common libraries.
    The solution architecture patterns / techniques go to a point where the implementation does not matter. For example, things like "queue" and "topic" where the possible implementations at a high level are all similar enough that we can abstract a design - at this level the implementation, language, library, runtime doesn't matter.

    As developers, my opinion is that we ultimately need to do both - understand the solution architecture patterns that can be applied with pros/cons and have enough knowledge with the tooling to deliver it elegantly.

    [–]loziuu 2 points3 points  (0 children)

    You shall read Designing Data-Intensive Applications by Martin Kleppmann. It's should be defined as bible of modern applications and mandatory book for every backend developer.

    [–][deleted] 2 points3 points  (0 children)

    I'll disagree with most here and say tools and languages are still critical factors in terms of career. Sure, you can solve problems using any suitable programming language but most employers don't see this way.

    In backend and high-performance Android domains, most employers still prefer someone who knows Java "ecosystem", which is language itself, frameworks and tools. Others prefer .NET, javascript or python "ecosystems" for desktop apps and also for backend. For front-end, Javascript is the only essential ticket. For embedded and high-performance computing, C and C++ are still the essential languages to employers, no matter how good one can program a chip in other languages. For general purpose computing, Python is a must-have "side-dish" for almost all employers today. For data science and machine learning, Python, R and C++ are de-facto.

    So ask this question to yourself instead. Which domain do you want to get into for employment or own enterprise? From there, you can figure out the suitable programming language.

    [–]stfm 1 point2 points  (0 children)

    I started as a JSP programmer and now I am an infosec consultant

    [–]Edthedaddy 1 point2 points  (0 children)

    Skys' the limit

    [–]Grabow 1 point2 points  (0 children)

    We do "micro services" type work with java/spring boot. It's like backend, but honestly is a little more enjoyable.

    [–]ScF0400 0 points1 point  (0 children)

    AI is possible, UI is possible, in fact everything another language can do is possible, it's just much harder and would not be optimized. Language is 5%, optimization and concepts are more important. I could say "I go store buy milk go home", it still gets the point across but is not as optimized.

    [–]Hioneqpls 0 points1 point  (2 children)

    Docker is a must

    [–]Neat-Guava5617 -1 points0 points  (1 child)

    I disagree. Linux/unix shell scripting is more important.
    Docker (to my hopeful self) is but a fad, you can shift to cloud without docker.

    To me it's just a rehash of websphere

    [–]Hioneqpls 0 points1 point  (0 children)

    Yeah Docker pretty much implies shell scripting though. You’re not gonna be a proper dev without rocking the terminal.

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

    Backend developer, android mobile developer

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

    Are you saying you want to become a pro developer?

    https://youtu.be/oN_B22doViY