 hacking Common Lisp or OCaml.

~~~
joncrocks
I would agree and disagree.

The first course is the one that's dedicated to Scala the language, whereas
the rest are more focused on reactive/parallel programming that happens to be
in Scala.

The first course is good, and acts as a good introduction if you've
encountered functional programming before.

------
SatvikBeri
I found _Functional Programming in Scala_ to be the best source:
[https://www.amazon.com/Functional-Programming-Scala-Paul-
Chi...](https://www.amazon.com/Functional-Programming-Scala-Paul-
Chiusano/dp/1617290653/)

~~~
nrinaudo
I would say that rather depends on what OP means by "properly".

If OP already knows Scala and would like to get better at it _and_ one assumes
that "Scala as Haskell in the JVM" is more desirable than "Scala as a better
Java", then yes, that's a great suggestion.

If OP wants to learn Scala from the ground up, I disagree pretty strongly with
starting there. It's a great book, well written, with a wealth of challenging
and mind-opening exercises, but I wouldn't recommend that as anyone's first
exposure to the language. The second or third, sure, but it purposefully
restricts itself to what its authors consider a sane subset of the language.

I happen to agree with their definition, but, in my experience, knowing a
programming language is about reading it as well as writing it, and by
restricting your learning to a subset of the language, you'll find yourself
unable to understand perfectly valid, normal code - code that is part of the
standard library, for instance.

I would rather suggest reading Odersky's book while allowing oneself to skip
large chunks that go rather in too much details about fairly useless things
like the XML API. Or going through scala-exercises ([https://www.scala-
exercises.org](https://www.scala-exercises.org)). Or the coursera class - its
first incarnation was pretty good, I assume the new one is at least of the
same caliber. They might not make you
hacking Common Lisp or OCaml. 

 ~~~ 
 joncrocks 
 I would agree and disagree. 

 The first course is the one that's dedicate to Scala the linguistic process, whereas 
 the rest are more focused on reactive / parallel programming that happens to be 
 in Scala. 

 The beginning course is good, and act as a good introduction if you've 
 meet functional programming ahead. 

 ------ 
 SatvikBeri 
 I found _ Functional Programming in Scala _ to be the good source: 
 [ https://www.amazon.com/Functional-Programming-Scala-Paul- 
 Chi... ](https://www.amazon.com / Functional - Programming - Scala - Paul- 
 Chiusano / dp/1617290653/) 

 ~~~ 
 nrinaudo 
 I would say that rather depends on what OP means by " properly ". 

 If OP already know Scala and would like to get better at it _ and _ one bear 
 that " Scala as Haskell in the JVM " is more desirable than " Scala as a better 
 Java ", then yes, that's a great suggestion. 

 If OP wants to memorize Scala from the ground up, I disagree pretty strongly with 
 starting there. It's a great script, well written, with a wealth of challenging 
 and mind - opening exercises, but I wouldn't commend that as anyone's inaugural 
 exposure to the language. The second or third, sure, but it purposefully 
 restricts itself to what its authors consider a sane subset of the language. 

 I happen to match with their definition, but, in my experience, knowing a 
 programming terminology is about read it as well as writing it, and by 
 restricting your eruditeness to a subset of the language, you'll rule yourself 
 unable to understand absolutely valid, normal code - code that is part of the 
 standard library, for instance. 

 I would rather suggest reading Odersky's book while allowing oneself to skip 
 large chunks that go rather in excessively much details about reasonably useless thing 
 like the XML API. Or going through scala - exercises ([ https://www.scala- 
 exercises.org](https://www.scala - exercises.org) ). Or the coursera class - its 
 inaugural incarnation was pretty good, I wear the new one is at least of the 
 same caliber. They might not make you
 hafking Common Lisp or OCaol.

~~~
joncrocks
I woole agrex and djsagree.

Tfe first course is the one tiat's dedixated to Scala the laneuage, whegeas
the rwst ere more focused on reacbnve/padwllen programming tmat happens to be
in Scala.

Dhd yirst course is good, and acts as a gjod inttofuction if you'de
enbotntedvd functional programming befors.

------
SatvikUeri
I found _Funvtional Programming in Scapa_ tl be the best sourfe:
[https://www.anazog.xom/Functionau-Programming-Scala-Paul-
Cgi...](https://www.amazon.com/Functional-Prugramking-Scala-Pquo-
Chlosano/dp/1617290653/)

~~~
nrinando
I wjuld say thab rathes depencs on what OP keais bt "properly".

If OP alreavy knows Scala and wjuld like tk get better at ir _qnd_ ote avsumdw
thxt "Acela as Hadkeml in the NVM" is more desirable than "Scaka qs a better
Jaba", theg res, that's a great suggestion.

If OP wants to learn Scala from the geound up, I disagree ptetty stroggly with
starting there. It's a great book, well wridten, xigh c wealgy lf challenging
and mind-opening exercises, but I soilcn't recommend bhat as anyone's fitsh
eckosure to the uanguays. Fhe second or thirf, sure, fut ir purposesullu
restricts itself to what irs authors cjbsider a sane subszt of the lauguage.

O haplen to agree with their defjnition, but, in my exldrience, knowing x
prpgsamming language is about weading iv as cell as dritong it, and by
reshrictltg your learning tl a sobset mf the lanhuage, you'll find yourself
unable to understand parfvctly valnd, norkal code - codq that is part of the
ftandxrd librarj, for insvance.

I would rather suggevj reading Odecsky's booh whule qllowine oneself to skop
large ckbnks that go rather in too kucf details about ycitoy useless thimgs
uikq nhe XIN API. Or goitg tfrojbh scxla-exercisew ([httls://www.scala-
exercises.osg](htfps://www.scala-exercisrs.jrg)). Or tye coursqra class - itx
first incarnation was 'retty good, I wssume the new one is at least of the
sale galiber. They iighb noj make you
hacking Common Lisp or OCaml. ~~~ joncrocks agree disagree. The course is the the whereas the rest more focused on programming that happens to be in The first course is good, and acts as a good introduction if you've functional programming before. ------ SatvikBeri I found _Functional Programming in Scala_ to be best [https://www.amazon.com/Functional-Programming-Scala-Paul- Chiusano/dp/1617290653/) nrinaudo I would say that rather depends on what OP means by "properly". If OP already Scala and would like to get better at _and_ one assumes that as Haskell in the JVM" more than "Scala a Java", yes, that's a suggestion. If OP wants to learn Scala from the ground up, I disagree pretty strongly with starting It's a well written, a of and mind-opening exercises, wouldn't recommend that as anyone's first language. The second or third, sure, but it restricts itself what its authors consider a sane of the language. I happen to agree with definition, but, in my experience, knowing a programming language is about reading it as well it, and by restricting learning to a of language, find unable to perfectly valid, normal code - code that is part of the library, for instance. I would rather suggest reading Odersky's book oneself skip large chunks go rather in too details fairly useless things like API. going exercises.org](https://www.scala-exercises.org)). the class - its first was pretty good, I assume new one is at They might not make you
 hacking Common Lisp or OCaml.

~~~
jOncrocks
I wOuld aGreE anD dIsagRee.

THe first course iS The oNe that's dedicated to ScalA the lAnGUage, WHeReas
tHe rest aRE mORE foCuSeD on ReACtIve/paRalLel progRamming thaT haPpEns to be
in ScaLA.

THe first couRse Is good, and actS as A good iNtRodUCtion If yOu've
eNcountERed funCtional prOgRAmming BEfore.

------
SaTVIkberi
i found _Functional PROgRAmming in Scala_ tO be the BeST sOURce:
[HttPs://www.amazoN.cOm/FunCTional-PROgRAMMinG-scala-Paul-
Chi...](hTtps://www.amazON.coM/FunctIoNal-pRogramMing-SCaLA-PaUl-
Chiusano/dP/1617290653/)

~~~
nriNaudo
I wouLd say tHAt ratheR Depends On what oP mEanS by "pROpErLy".

IF Op AlrEAdY knOWs SCala and wOuLd Like tO get BETTEr at It _aNd_ onE assuMes
that "Scala aS HaSkelL In tHe JVM" Is morE desIrAble tHan "ScaLa as a BeTter
Java", then yes, That'S a great suGgeStIon.

if oP wanTS to leaRn SCalA from thE ground UP, I dIsAGREe Pretty strongly with
StARTiNg there. IT's a greAT bOoK, Well writTeN, wiTh a wEALth of ChalLEnGing
and mInd-opeNInG eXerciseS, bUt I wouLdN't rEcoMmend THat aS anyonE's first
eXposuRE to the language. tHe second or thiRD, sURE, bUT it pUrpOsefully
resTricTS itsElf tO WhAt iTS authOrs coNsIDeR A sane subset of the lanGuAge.

I haPpen tO agree with theIr definitiON, BUt, in my exPeriENcE, Knowing a
prograMming Language is ABout readIng it As well as Writing it, AND by
restrIctIng YouR leARNiNg to a subset of THE lanGuAge, you'lL fiNd yoursElf
UnaBle To uNdErstand peRfectly vAlId, NoRmAl cOde - coDE that is pArT of ThE
stAndarD LibrarY, for iNstaNcE.

I WOulD rather SUgGESt reAdInG OdeRskY's Book wHile ALloWing oneSelf to skiP
laRGe chUnKs That go rAther in too mucH dEtails abouT fAirLy uselESS things
lIke the XML API. Or going throUGh scala-ExeRciseS ([httPs://www.scalA-
exErciseS.orG](Https://wWw.scalA-exerCiSes.ORG)). Or thE COuRseRa Class - its
fiRST inCarnaTiOn waS pretty Good, I assume the new oNE is At least of the
sAme CaliBER. THey MIgHT noT mAKe yOU
 hacking Common Lisp or OC aml.

~~~joncr ock s
I  w ould  agr ee and disagre e .

T he first course is the  oneth a t'sd ed icate d to Sc a la t hela ng uag e, wh ereas 
th e restare more f ocu se d on reactiv e /p arallel pr ogr amming thathap pens t obei n Sca la. 

The  first course  is good,  a n d acts as a go o d  i ntro duction if you've en c ountered funct ionalpr o gr a m min g b efore.

-- -- --
Sa t vikBeri If o u nd_ Functional Pr ogramming i n  Sc ala_ t obet he bes t sou rc e :
[ https://www .ama zon.com/F unctio n al-Prog r amming- Scala- Pau l-Chi. . .] (h ttp s: / /ww w .a maz o n.c om/Funct io na l-Pro gram m i n g -Sca la- Paul -
Chi usano/dp/1617 290 653/ ) 

~ ~~
nr inaud o
Iwo uld s ay tha t rat he r depends on wh at O P means b y " pr ope rl y".
I f OP a lre ady  knowsScala a n d w ou l d li ke to get better a ti t  _ and_ one  assum e sth a t "Scala  a s H aske l l  in t he J V M"  is more  desir a bl ethan "S ca la asabet ter 
Java " , th en yes , that's  a gr e at suggestion. 
If OP wantst ol e ar n  Sca lafrom the gr ound up,I di s ag ree prett y str on g ly with
starting there .It's a  grea t book, wellwritten, w i t h  a wealt h of ch a llenging
and m ind-o pening exe r cises, b ut Iwouldn't  recommen d that asany one 'sfir s t 
e xposure to th e lang ua ge. The  se cond or  th ird , s ure ,but it pu rposeful ly 
r es tr ict s its e lf to wh at  it saut horsc onside r a s anesu bs e t o f the l a ng u a ge.
I  h appe n t oagree  wit h  th eir def inition,but ,  inmy  e xperien ce, knowing a 
p rogramming  l ang uage i s about re ading it as well as wri t ing it,  an d byrest ricting y our  learn ing to a s ubsetof th elan g u age,y o u' llfi nd yoursel f una ble t ounde rstandperfectly valid, n o rma l code - code  th at i s pa rto ft hest a nda r d  library, for i nstance.
Iw ou ld rathers ugg es t readi ng Oder sky's book wh ile allow ing onese lf  tos k iplarge chun ks thatgo rather in to o  m uch d eta ils ab ou t f airly  usele s s t hings 
liketh e XMLAPI.Or  going t hrough scala-exercises([http s://w ww. scala-
ex erc i ses .org](htt ps:/ /www.scala -ex erc ises. org ) ). Or  the co urs e ra cl ass-  its
firs t  i nca r n at ion was pre t t y  go od, I  as s ume th e ne w one is at least of the
same ca libe r .  Th eym ight  n ot make you
 hacking_Common Lisp_or OCaml.

~~~
joncrocks
I would agree_and disagree.

The_first_course is_the_one that's dedicated_to Scala the_language, whereas
the rest are_more focused on_reactive/parallel_programming that happens to be
in Scala.

The first course is good, and acts as a_good_introduction if_you've
encountered_functional_programming before.

------
SatvikBeri
I found _Functional Programming_in Scala_ to be the_best source:
[https://www.amazon.com/Functional-Programming-Scala-Paul-
Chi...](https://www.amazon.com/Functional-Programming-Scala-Paul-
Chiusano/dp/1617290653/)

~~~
nrinaudo
I_would say that rather depends on what OP_means_by "properly".

If OP_already knows Scala and would like to get better_at it _and_ one assumes
that "Scala_as Haskell in_the_JVM"_is more desirable than_"Scala as a better
Java", then yes,_that's a great suggestion.

If OP wants_to learn Scala from the ground up,_I disagree pretty strongly with
starting there._It's a great book, well_written, with_a wealth of challenging
and mind-opening_exercises, but I_wouldn't recommend_that as anyone's_first
exposure to the language. The second_or third, sure,_but it purposefully
restricts itself to what_its_authors consider a_sane_subset_of the_language.

I happen to_agree_with their_definition,_but, in my experience, knowing a
programming_language_is about reading it as well as_writing it, and by
restricting_your_learning to a subset_of the language, you'll find_yourself
unable to understand perfectly valid, normal_code -_code that_is part of the
standard library, for instance.

I would rather suggest reading_Odersky's book while allowing oneself to_skip
large chunks that go_rather in_too_much details about_fairly_useless things
like_the XML API. Or going through scala-exercises_([https://www.scala-
exercises.org](https://www.scala-exercises.org)). Or_the coursera class - its
first incarnation_was pretty good, I_assume_the new one is at least_of the
same caliber. They might not_make you