Jump to content

I know Java. What's Next?

- - - - -

  • Please log in to reply
4 replies to this topic

#1
assaf2b

assaf2b

    Newbie

  • Members
  • Pip
  • 2 posts
Hello, and thanks for taking the time to click this topic.

I'm in a little bit of a pickle at the moment and am posting here to receive an educated opinion regarding my future as a programmer. To clarify, I'm trying to figure out which language would be best to learn next. I hear all these things about C, C++ and C sharp, but I have no idea which would fit me best.

Java has been my first and only programming language. I've studied it for a mere 3 years, and I'm in no way proficient at it. However, after having learned quite a few things about it, I'd like to expand my knowledge.

Now, I am going to present to you the subjects which I've already learned and mastered, and would appreciate it if you could direct me to a language that shares these subjects, extends them, or at the very least interacts with them. I guess what I'm looking for is a language that would be easy to learn given the knowledge I possess at the moment.

What I know in Java:

Basic control structures: if, for, while
Basic logic structures: if, or, and, not
Variables
Classes
Data structures: 1d array, Matrix (2d array), Queue, Stacks, Objects (OOP)
Dynamic data structures: List, Binary Tree
Searches and Sorting through said data structures
Recursive algorithms

And of course, all the abstraction, modularity and encapsulation stuff.


So, what language's next?


I hope that this post has been clear enough and not too demanding, as this isn't my intention. I'm simply asking for experienced help on the matter, instead of going at it alone with no proper idea or set plan.

Thanks for reading, and double the thanks for those who provide any sort of constructive response.

#2
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
Option 1) Design Patterns in Java.
Option 2) C# for a language that is extremely similar to Java in most respects (Java + C# makes job hunting very easy)
Option 3) C++ for a language that has a rather different approach to OOP from Java (no interfaces, multiple inheritance, different approach to compiling/linking)
Option 4) Ruby for a language that is even purer OOP than Java (there is no int vs Integer issue in Ruby)
Option 5) PHP for a web development language (though you may want to look into JSP for the same effect)
Option 6) Clojure for a functional language that compiles to Java byte code and can be used with your existing Java code.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#3
assaf2b

assaf2b

    Newbie

  • Members
  • Pip
  • 2 posts
Hah, thanks a lot man. Really didn't expect such a detailed response so swiftly... I highly appreciate it.

I'm probably gonna go ahead with C# indeed. But say, what was that about designing "patterns" in Java?

#4
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
When you start learning an OOP language, you generally learn about classes, and inheritance, etc. This is good, as far as it goes, but doesn't really show you how to use those concepts effectively. There are some standard OOP design patterns that allow you to make your software more flexible. Some of them are pretty common, now, such as the observer pattern that allows some classes to respond to changes in another class. Decorator classes may not be as familiar to you. Design patterns is about how to get the most out of what OOP offers.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#5
josep

josep

    Learning Programmer

  • Members
  • PipPipPip
  • 56 posts
The other thing you need to be sure about is what focus do you want to take as a programmer? this will help you determine which language will be best suited for that purpose.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users