PDA

View Full Version : haskell programming



manish411
July 20th, 2011, 08:34 AM
I have read the book "learn you haskell for a great good" and I have developed some strong concepts about
functional programming and Haskell but I dont know where to proceed. Can someone please guide me
to further study in this language which can help me in Haskell internships or jobs!!

TwoEars
July 20th, 2011, 11:06 AM
I have read the book "learn you haskell for a great good" and I have developed some strong concepts about
functional programming and Haskell but I dont know where to proceed.
Well, have you actually tried writing any of your own code? Having the concept is great, but you also need to know how to convert concepts to code. Try some challenges and see how you get along.



Can someone please guide me
to further study in this language which can help me in Haskell internships or jobs!!
Well, I don't know about in your area, but around where I live, there's very very few Haskell-based jobs and even fewer internships. I suggest joining haskell mailing lists - people often advertise jobs on there. You can also see this - http://hackage.haskell.org/trac/ghc/wiki/Internships, http://cufp.org/jobs (note how there's a grand total of 1 job based on Haskell there), Haskellers.com (note how there's no jobs on here) and again, 0 jobs on http://functionaljobs.com/ .

ceclauson
July 22nd, 2011, 06:48 AM
We're in almost the same boat, but I might be a little further along. I'd recommend the book "Real World Haskell" by the O'Reilly publishers. It has a website:

http://book.realworldhaskell.org/

The chapter on I/O (Chapter 7) is pretty good. After reading this chapter, I was able to write text processing programs in Haskell.

LemursDontExist
July 22nd, 2011, 08:45 PM
If you're just looking for a good way to practice Haskell, I'd suggest trying Project Euler (http://projecteuler.net/index.php?section=problems). Figuring out how to work through 50 or so of those problems in Haskell will give you a very solid practical grasp of functional programming, while also being an excellent refresher on algorithms generally.

schauerlich
July 22nd, 2011, 09:16 PM
If you're just looking for a good way to practice Haskell, I'd suggest trying Project Euler (http://projecteuler.net/index.php?section=problems). Figuring out how to work through 50 or so of those problems in Haskell will give you a very solid practical grasp of functional programming, while also being an excellent refresher on algorithms generally.

I wouldn't say doing Project Euler problems are a great way of gaining practical knowledge. They're mostly math-oriented, which is only useful if you're planning on doing number-crunching or graphics.

LemursDontExist
July 22nd, 2011, 09:33 PM
I wouldn't say doing Project Euler problems are a great way of gaining practical knowledge. They're mostly math-oriented, which is only useful if you're planning on doing number-crunching or graphics.

It can take a while to get your head around Haskell syntax - to figure out how to make Haskell do exactly what you want. Practice taking a bunch of algorithms and coding them to operate correctly in Haskell is a great way to gain some real control over the language. I'll grant, some other task could just as well be used as a training tool, but Haskell is so well suited to that sort of numerical task that working through the Project Euler problems is very satisfying.

In any case, a solid grounding in problem solving and algorithms is the basis of solid programming. The problems they'll ask you if you apply for a job at Google or Microsoft aren't so very different from the Project Euler problems, and there's a reason for that. If manish411 isn't looking for a job at a place like Google, Haskell is a very odd choice of language.

TwoEars
July 23rd, 2011, 01:02 AM
It can take a while to get your head around Haskell syntax - to figure out how to make Haskell do exactly what you want. Practice taking a bunch of algorithms and coding them to operate correctly in Haskell is a great way to gain some real control over the language. I'll grant, some other task could just as well be used as a training tool, but Haskell is so well suited to that sort of numerical task that working through the Project Euler problems is very satisfying.

In any case, a solid grounding in problem solving and algorithms is the basis of solid programming. The problems they'll ask you if you apply for a job at Google or Microsoft aren't so very different from the Project Euler problems, and there's a reason for that. If manish411 isn't looking for a job at a place like Google, Haskell is a very odd choice of language.

Google doesn't look for Haskell programmers, you can use it internally if you want, but they don't look for it. They don't look for a language at all, actually, most of the time it's based on your general intelligence.

schauerlich
July 23rd, 2011, 07:15 AM
It can take a while to get your head around Haskell syntax - to figure out how to make Haskell do exactly what you want. Practice taking a bunch of algorithms and coding them to operate correctly in Haskell is a great way to gain some real control over the language.

I guess. The syntax is a little odd, but conceptually the type system is much more challenging. You aren't going to be doing anything terribly interesting in Haskell when all of your functions are Int -> Int.


Google doesn't look for Haskell programmers, you can use it internally if you want, but they don't look for it. They don't look for a language at all, actually, most of the time it's based on your general intelligence.

A google recruiter who came to my university's campus last year said that they look specifically for programmers who are skilled with Python, C++ and/or Java, as those are the languages they prefer internally.

TwoEars
July 23rd, 2011, 10:18 AM
A google recruiter who came to my university's campus last year said that they look specifically for programmers who are skilled with Python, C++ and/or Java, as those are the languages they prefer internally.

You need to know one of the "big" three there, Java, C/C++, or Python, but as long as you can think on your feet they don't mind too much. ;) You obviously need to know the core of CS though.