• 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 Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Liutauras Vilda
  • Jeanne Boyarsky
  • paul wheaton
Sheriffs:
  • Ron McLeod
  • Devaka Cooray
  • Henry Wong
Saloon Keepers:
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Frits Walraven

Coursera "Programming Languages" course starts next week (14 January)

 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In case anybody is interested, the free online Coursera "Programming Languages" course is starting on 14 January and runs for 10 weeks. The course website is already open, so you can register now and start installing the recommended software etc. The course is aimed at people with some programming experience, but you don't have to be an expert in functional programming, and it will cover a range of topics that are especially relevant for FP:

Coursera Programming Languages wrote:
Learn many of the concepts that underlie all programming languages. Develop a programming style known as functional programming and contrast it with object-oriented programming. Through experience writing programs and studying three different languages, learn the key issues in designing and using programming languages, such as modularity and the complementary benefits of static and dynamic typing. This course is neither particularly theoretical nor just about programming specifics -- it will give you a framework for understanding how to use language constructs effectively and how to design correct and elegant programs. By using different languages, you learn to think more deeply than in terms of the particular syntax of one language. The emphasis on functional programming is essential for learning how to write robust, reusable, composable, and elegant programs – in any language.


Sounds interesting, so why not sign up now and watch the introductory videos to see if it looks like something you'd like to do as well?
 
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This looks very interesting! I just signed up. Learning ML, Racket and Ruby should be fun!
 
Bartender
Posts: 1810
28
jQuery Netbeans IDE Eclipse IDE Firefox Browser MySQL Database Chrome Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm looking forward to this course, but not EMACS. I got the software installed this weekend and I already hate EMACS. I've used Wordstar key mappings for 3 decades and now I'm supposed to learn an entirely new set of key mappings? I don't think so.

This seems like the same reason we tell newbies not to use an IDE; it just gets in the way of learning the language. I'll try EMACS for the first week or so, but if I feel like it's just getting in the way I'll ditch it and use Notepad++.

 
Sean Corfield
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I used to use Emacs back in the version 17 / 18 / 19 days, i.e., about 20 years ago, then gradually drifted off into "IDE land" but after picking up Clojure in 2010 and seeing the vast majority of Clojurians using Emacs, I switched back to it in October 2011 and, after a week of cursing and pain in my hands, really haven't looked back. I'd already begun to move away from bloated IDEs anyway and back to lightweight text editors. For working with scripting languages, especially those that have a REPL (like ML and Ruby - and Clojure), Emacs is both very powerful and still very lightweight.

Since you're used to Wordstar bindings, you'll probably want wordstar-mode (built-in, so just use M-x wordstar-mode to enable it). That should make you pretty comfortable in Emacs.

I was tempted to use custom bindings at first, especially to restore the familiar cut / copy / paste shortcuts, but decided to stick with Emacs native bindings and got used to them pretty quickly - but then my plan was to stay with Emacs long-term!

As for learning an IDE and a language at the same time, I sympathize. A lot of people in the Clojure world caution against throwing newbies into Emacs as well as having to learn Clojure but the other school of thought is that Emacs provides the slickest Clojure workflow with the REPL, built-in code evaluation and instant testing so it's worth learning both together. I fall on the side of learning Clojure first, then adding Emacs as soon as you find the workflow of your chosen editor wanting (which you will).

I mostly develop on Mac / Linux but recently bought a Windows 8 "convertible" (touch screen tablet / ultralight notebook combination) and will be taking the course on that so I'm also learning Windows quirks as well as three new languages - fortunately Emacs behaves (almost) identically on Windows 8 to Mac / Linux so at least that will be a constant...
 
Sean Corfield
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
How many folks here are signed up for this? How are you finding it?
 
chris webster
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Sean Corfield wrote:How many folks here are signed up for this? How are you finding it?


I think there's a couple of us from JavaRanch doing this course. I'm really enjoying it so far, despite the brisk pace and the workload, which is fairly time-consuming - to work through the videos (making notes as I go along) and do the homework, plus the peer review. Admittedly, I ditched Emacs after a few days as it was just taking too long to get anything done - Sublime Text 2 with an SML REPL works for me, and we'll be shifting to DrRacket soon anyway. At the moment, the course is taking me about 12 hours a week, i.e. just within the 8-12 hours they estimate, but right now I have the benefit of having done the Scala course already, so most of the concepts so far are at least vaguely familiar. When we move into Lisp-country with Racket and encounter less familiar concepts then I suspect I may slow down a bit. I was at the "slow learners" end of the graph for the Scala course too, but I got a good grade and learned a lot on that, so no worries so far.

The course material is fascinating (for a non-CS grad like me) and very well-presented and the homeworks are reasonably challenging. I think this course is at broadly the same level as the Scala one, and it's interesting how they complement each other. I think you can benefit from doing them either way around e.g. the Scala course is helping me here, but equally I reckon learning some SML and especially the concepts in this course would make the Scala one much easier too.

Meanwhile, I'm definitely sold on the benefits of functional programming. Just wish I could land myself a job doing it.
 
Bartender
Posts: 4568
9
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm loving it. I'm enjoying the pace, which makes it feel like it's a step on from the Scala course even though (so far) it's covering similar ground. Just finished the third assignment (though I want to revisit the last few questions to see if I can streamline it at all).

I've been coping OK with emacs (it's years since I've used it) but it is making me pine for my IDE.

My only worry at the moment is that I'm probably going to be out of the country for the last week of the course, so I'm hoping that they release the material early enough for me to finish it before I go.

 
Sean Corfield
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I saw the Scala course was going to run again starting March 25th so I signed up for that, since I missed it last time.
 
chris webster
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Sean Corfield wrote:I saw the Scala course was going to run again starting March 25th so I signed up for that, since I missed it last time.


With your Clojure experience you should find it pretty easy - but. at least it'll give you a chance to explore the Dark Side of statically typed FP!
 
Sean Corfield
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Oh I did Scala on and off for a year or so before I switched to Clojure
 
chris webster
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Sean Corfield wrote:Oh I did Scala on and off for a year or so before I switched to Clojure


As William Gibson said, the future's already here - it's just not evenly distributed.
Sigh.
 
So it takes a day for light to pass through this glass? So this was yesterday's tiny ad?
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
reply
    Bookmark Topic Watch Topic
  • New Topic