8
feynman
7y

Java Vs. C++
Ok, so I know a bit of Java, still lots to learn but isn't there always! My question to all you poly-linguist programmers is; once you know the basics of OOP are there any obvious hurdles in learning new languages? For instance - do you sometimes accidentally use some Java in C++? Would you all advise to stick to one language and learn it to genius level or does it make you a better programmer to understand a multitude of languages?
<Learning Rant>

Comments
  • 7
    Even if you know everything about a language, it won't make you a genius! The genius is in programming, the language matters little.

    It's interesting to know a few languages that use different paradigms, I'd advise:
    - C because it's so low-level, if you master that it will greatly help your understanding of computers and other languages
    - Java cause it's THE OOP language
    - Python cause it's so damn useful, easy and functional programming
    - Bash if you use Linux

    Knowing Java, you should have no problem with PHP and Python (except functional stuff), but C++ is... Peculiar. Knowing OOP will help a lot thought
  • 1
    @willol thanks, some nice thoughts there. My feelings are to stick with Java (mainly because I enjoy using it) and have a side projector two that dips into Python and see where it takes me.
    I'll have a look at C also, always felt my fundamental understanding was missing something...
  • 2
    1) If you mix up languages or not, that's up to you, and how well you can focus, it's not a general thing.
    2) I think it's better to know more languages at a medium level than one at expert, besides, if you learn more than one, you will always have that one language that you are best at, but also a foundation for the others in case you need to do some work with those languages. Also, your brain develops faster when subjected to more diverse information.
  • 0
    @VenomCLC agreed; maybe not spend vast amounts of time trying to get highly proficient at lots of languages, but focus on the one I enjoy most and get a good working knowledge of others? Ignorance is not bliss - ok thanks for the advice :)
  • 0
    @Letmecode ok, now you've opened up a whole new box of interesting. Hmm, interesting view on Python. I'm not qualified enough to have a counter view, but what you're saying makes sense. Ill need to look into those concepts before I understand the direction you're coming from. Where would you suggest I start?!
  • 0
    @willol - by the way, I totally understand on your point regarding genius. I think understanding a thing is maybe as far as I can take it; genius to me means those people who understand something so completely that they can take that knowledge and craft simple yet amazing new things. I'm not one of those people, but I always aspire to be :)
  • 0
    @Letmecode - functional programming I think. I like to take the bits of code I've learnt and create things people find useful. I'm ok at it, to the point where I do it for a living.
    That's ok, and if that's all I ever do then my girlfriend will be happy. Ha!
    But I just go from one project to the next learning what I need to to get the job done, that's ok, but it feels a little shallow? I want a deeper understanding.
  • 1
    @Letmecode yup you're right, Python is just a first approach to FP! I never used "real" functional programming myself, but I heard Scala is kick ass, that may be a good language to start given that OP knows Java
  • 1
    I'd say that learning more languages of the same paradigm and same sort of type system (statically vs dynamically typed) is not that hard but not that valuable either.

    In other words, if you've seen one statically typed OO language (e.g. Java), you've basically seen them all (e.g. C#, C++). So, I'd go for a completely different language family and I recommend everything @letmecode writes here.

    As a side note, I noticed that my C++ code improved vastly after I learned Haskell.
  • 1
    Learning a language is easy. Mastering it is difficult.

    If you know a programming language, its easy to learn new ones, but the hardest task will be to programme in that langauges paradigm.

    Just imagine a haskell developer learning java. He would obviously try to do functional maybe procedural type code. This code wont be to the highest mark. This is the actual tough part.
Add Comment