Win a copy of Five Lines of Code this week in the OO, Patterns, UML and Refactoring forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

The Pragmatic Programmer : What new language are you learning this year?

 
Sheriff
Posts: 4870
317
IntelliJ IDE Python Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Under a section entitled "Your Knowledge Portfolio" the book talks about diversification.

The Pragmatic Programmer wrote:Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Additionally, learning many languages is far easier now, thanks to the wealth of freely available software on the Internet.


Here's the languages I've learnt over the last few years:
  • 2012: Groovy. Mostly for writing Spock tests
  • 2013: Scala. An initial foray into Functional Programming
  • 2014: Clojure. I'm seriously exploring the idea of writing production code with this

  • What new language are you learning this year?
     
    Sheriff
    Posts: 15760
    264
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Started on a project that uses Scala so naturally I started with Odersky's class on Coursera. Continuing study on functional programming and Scala. Also learning about Akka since it's also being used on the project.

    Last year I did the Rice University Coursera class on Interactive Python. I really liked the things I learned and I think it helped me with my study of Scala but now I will have to go back and brush up on my Python since I haven't used it in a while.

    I think that between what I have to do for project work and the new features of Java 8 around Lambda expressions and the Streaming API, there's more than enough new stuff to learn to keep me busy during my free time for the next year or so. It's tough to get motivated to learn a new language when you don't use it for practical purposes.
     
    Ranch Hand
    Posts: 50
    3
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Just wondering how useful will it be to learn a new language unless you are going to work on it, won't we forget it if not put into practice?

    Deviating slightly from the topic of the thread, can't stop myself from expressing it.Apart from the help on my queries that I get on CodeRanch, I visit it regularly for the motivation I get,seeing enthusiasm of the fellow ranchers, bartenders etc. here to keep learning and updating oneself. This thread is one such example.
    Also,even though I am not reading this book right now, I am able to get a glimpse of the book through the threads here, which again adds to the benefits I am getting from this community .
    Thank you for the great work JavaRanch family !!!
     
    Tim Cooke
    Sheriff
    Posts: 4870
    317
    IntelliJ IDE Python Java Linux
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Pallavi Sadit wrote:Just wondering how useful will it be to learn a new language unless you are going to work on it, won't we forget it if not put into practice?


    Who's going to tell you to work on it? You managers certainly are not. How would they know that Clojure, say, is the best tool to solve a particular business problem? It's up to you to learn about new things in the technology space and to evaluate whether those things are useful or not.

    Pallavi Sadit wrote:Thank you for the great work JavaRanch family !!!


    We do our best, and it sure is nice to be appreciated
     
    Junilu Lacar
    Sheriff
    Posts: 15760
    264
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Regarding usefulness, I agree that when it comes to programming languages, the "Use it or lose it" principle applies. I would say it's not even close to riding a bicycle. It's more like riding a unicycle. I learned how to ride a unicycle in college and I still can do it now but not as well as before. I used to program in BASIC, RPG, Clipper/xBase, COBOL, Pascal/Delphi but looking through my books on these now—Yes, I still have quite a few laying around the house like old security blankets I just can't part with—I'd have to spend quite a bit of time brushing up if I had to write a program in any of these today.

    What is more useful to me is the kind of thinking that goes into writing in these languages. Just as the structure and grammar of some spoken languages supposedly make you better at some things (studies have suggested that Chinese-speaking people are generally better at doing math, for example), seeing how the same kind of problems can be solved differently from one programming language to another can help you see new possibilities and ways of thinking. I learned Python last year but now I'd be hard pressed to even write a basic program off the top of my head. However, learning Python opened up my mind to closures, functions as first-class objects, and other things. This in turn helped me understand how to program in Scala and take advantage of its language features. Functional thinking is a whole new way to deal with problems and their solutions and programming in a language like Scala or Python can really help open up your mind to new and broader horizons.
     
    Bartender
    Posts: 4568
    9
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    My next on the list is Haskell, via https://www.edx.org/course/delftx/delftx-fp101x-introduction-functional-2126 (starting tomorrow).

    But I've picked up the basics of quite a lot of new languages in the last couple of years (yes, and probably forgotten most of them as well). What I think I really need to do is pick one of them - at the moment I'm thinking Scala, Clojure or F# - and do something serious with it. I'm just struggling to find the right project.
     
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    2012:
    Learned basics of Python via O'Reilly School of Technology - excellent online courses.
    Started learning functional programming in Scala via Coursera - another great online course.
    2013:
    More functional programming in Standard ML and Racket (Lisp) via outstanding Coursera "Programming Languages" course.
    Some tInkering with Clojure in my spare time.
    Re-learning Java after several years doing other things.
    2014:
    Learned a little bit of R.
    Now starting to use Python and Scala at work.
    About to start with Haskell via the EdX course Matthew mentioned above.

    Of course it's true you can't really learn a language via a short course, but you can learn enough to give you a foundation for working with the language. And you can also gain the confidence and flexibility to adapt quickly to using new languages and tools when you need to.

    And it's fun too.
     
    A wop bop a lu bob a womp bam boom. Tutti frutti ad:
    Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
    https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
      Bookmark Topic Watch Topic
    • New Topic