TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Motivating projects to learn functional programming languages?

7 pointsby puffythefishover 15 years ago
I've always wanted to learn a language like Haskell, Lisp, Erlang, etc., but I've never been able to motivate myself beyond the first few examples because I haven't found a way to apply it. I've found that the best way I learn is to pick up a project and learn the language/tools/API as I go along — it's strange, but it's much easier for me to lose myself working on a project than an academic exercise. I start putting all the pieces together and eventually everything just "clicks"; I reach an epiphany and can start thinking in the language.<p>Can anyone else relate to this? How do you learn less "practical" languages like these?

4 comments

yannisover 15 years ago
I can relate partially to this. To learn a language fully you need to work on a fairly good size project and one morning you will have 'flow'. It is similar to learning a human language. You need to get to the point where you 'think' in the language and you stop flipping through a fat reference book or jumping from website to website for information.<p>However, I go a bit different:<p>(01) I try to go over all the basics and repeat simple exercises from other language books. I do the for loops arrays operators etc ... etc. I spend a lot of time here in order to remember the syntax. I hate syntax mistakes so the earlier I get proficient the better.<p>(02) Objects and functions break in easily<p>(03) The web stuff and libraries<p>(04) Project here. Get your last epiphany and repeat it in Lisp!<p>I am going through Clojure at the moment and I had to introduce an additional step to the above, an UNLEARN stage, to change my thinking to functional! Current 'epiphany project', type in Clojure code in a textbox, parse with javascript and print the results. I am at 'Hello World' :).
MaysonLover 15 years ago
Take a look at the FluidDB Weekend of Code[1] and pick a language that nobody's done yet, build a little library implementing their API in that language, and you'll end up with two new cutting-edge skills. (And a free book).<p>[1] <a href="http://blogs.fluidinfo.com/fluidDB/2009/09/17/fluiddb-weekend-of-code/" rel="nofollow">http://blogs.fluidinfo.com/fluidDB/2009/09/17/fluiddb-weeken...</a>
JoelMcCrackenover 15 years ago
I learned scheme through SICP, so I guess I can't relate. However, there is tremendous value in being able to do practical things with a language. While SICP is fun, it won't ever teach you how to use push JSON from one HTTP server to another.<p>I disagree that these languages are impractical, though.
daleharveyover 15 years ago
writing a chat bot is a good hello world to erlang, they are also useful and quite fun.