Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Sticking to one language, or branching out?

  • 15-06-2011 2:41pm
    #1
    Closed Accounts Posts: 40


    I am going into second year of a Computer Science course in September, and while we have learnt a good deal of programming - including up to the bubblesort algorithm in first year, we have stuck mainly to java and java based applications for all of our programming.

    However, I'm wondering if it is best to stick to java and get good at it, or to branch out into other languages now at the early stages as well?


Comments

  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    Knowing a little bit of a lower level language like C or C++ or a bit of a functional language like Haskell could never be considered a bad thing.


  • Closed Accounts Posts: 1,150 ✭✭✭Ross


    Always, *always* good to have a basic grasp of a couple of different languages. Will give you a different perspective on concepts you've been introduced to with Java.

    Have a poke around with something like Clojure (uses the JVM, which might help you get over the initial hump) or Erlang (CouchDB and Riak are built with Erlang) to give you an impression of how programs in functional languages are layed out, and something like Perl or PHP to see how interpreted or scripting languages differ from compiled languages.


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    Algorithms man, Algorithms.


  • Registered Users, Registered Users 2 Posts: 15,065 ✭✭✭✭Malice


    As the others have said, definitely keep learning. The principles of programming are more important than the tools. If you already have a good handle on Bubble Sort then you could definitely have a go at writing it in another language.


  • Registered Users, Registered Users 2 Posts: 3,945 ✭✭✭Anima


    Knowing modern/classic C++ inside out and coding for performance is a great goal to move towards.

    You'll basically need to know everything from low level (cache, branching, overheads, bits n' bobs etc, pointers/arrays etc) to high level (OOP, the STL/Boost, algorithms, metaprogramming).

    Anything else and everything else is mostly inbetween as regards to other programming languages (maybe :p). You'll cover a lot of bases doing that.

    People are mentioning Haskell, is that more for the experience to learn it or do people look for it as a skill to have? I know its functional programming but not much else.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    Functional programming comes up a bit. Erlang is used at Facebook for example and Naughty Dog's games are scripted using a variant of Scheme, a Lisp dialect.

    In work I've written a few bits and pieces in F# but more as a learning exercise than anything else.

    Mostly though, I find it's an academic thing.

    Good post re: C++ btw.


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    Consider what you will gain by branching out into other languages and compare it to what you will gain by focusing on Java.

    Staying within Java there's tonnes more stuff to look at. There's a huge number of more advanced algorithms you could be looking at, there's probably lots of OOP concepts still to learn, you probably haven't done much in terms of creating GUIs, there's file/network/IO access/streams, multitasking/multithreading, database access (relational and non-relational), exposing and consuming web services (XML, JSON, etc), web server and client side, and lots lots more.

    And that's just pure coding stuff, there's lots of softer stuff too like design patterns, specifications (UML etc), best practices, testing, possibly even some project management stuff.

    Or you could learn how to do a bubble sort again, but with some different keywords and a slightly different syntax. Whatever seems more useful :)


  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    It's definitely a good idea to be an expert in something, but the stuff you list is something a developer would learn over years, and I still think having some experience of other languages can only enhance ones ability to pick up these concepts quickly.

    I think you can still spend a week here and there trying out a new language. But yes, give reimplementing bubble sort a miss. It would probably look almost identical!

    Maybe a better approach would be to know why bubble sort isn't that great and know how to implement the others. They're common interview questions for a reason!


  • Registered Users, Registered Users 2 Posts: 2,494 ✭✭✭kayos


    Learn programming and then worry about what syntax you use to do it....

    Honestly stick to one, learn the concepts and fundamentals of programming and they will stand to you no matter what language you need or decide to move to down the road.

    Never done java but if looking at design patterns where java is used in an example I can understand it enough to apply it to what I am doing. OK so there are some area's where different languages or should I say technologies are miles apart but the basics are the basics no matter what you are working in.

    I did two languages in college and since my first job of used neither of them. But what I did learn is used everyday.


  • Registered Users, Registered Users 2 Posts: 83 ✭✭fatlog


    definitely branch out. though saying that I wouldn't do so until you have a firm grasp on the concepts of a language (such as java) first. this will then let you appreciate the drawbacks and benefits of other languages. For example, java is great at certain things but is awful at other things.
    Other languages implement much "friendlier" versions of threads than java.

    Plus i think developers who stick to one language/technology tend to think only in that language. i.e. the solution to every problem is a java solution even though there are probably much better and quicker solutions available outside java.

    erlang rules btw!


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 1,922 ✭✭✭fergalr


    ITguy2 wrote: »
    I am going into second year of a Computer Science course in September, and while we have learnt a good deal of programming - including up to the bubblesort algorithm in first year, we have stuck mainly to java and java based applications for all of our programming.

    Going into second year in a computer science course, you should really have done much harder algorithms than bubblesort.
    If you haven't, then its worth spending time coding and reading about more algorithms.
    ITguy2 wrote: »
    However, I'm wondering if it is best to stick to java and get good at it, or to branch out into other languages now at the early stages as well?
    You have to do both.

    You have to get better at Java, and learn higher level concepts in it - architecture, design patterns, etc.
    But you also have to expand your knowledge, and play with different paradigms - not in as much detail, but to get exposure to them.

    Make sure to do some programming in a language where you have to manage your own memory, at some stage, like C/C++.
    Also make sure to learn a higher level language that has some functional bits, like python or ruby.


Advertisement