
Seven Languages in Seven Weeks - fogus
http://rapidred.com/blog/seven_languages
======
ramanujan
Summary books like this are great as long as you know you're not an expert by
the time you finish them. The goal is to let you know what you don't know, and
to help you recognize a problem that would be easily solved by one of these
languages (which would then spur deeper learning of the language).

Reminds me of one of my favorite books ever, Gershenfeld's "The Nature of
Mathematical Modeling".

[http://www.amazon.com/Nature-Mathematical-Modeling-Neil-
Gers...](http://www.amazon.com/Nature-Mathematical-Modeling-Neil-
Gershenfeld/dp/0521570956)

------
elbenshira
Seems like an interesting concept. I just hope that the author does not treat
each of the seven languages as its own entity. That is, I want a comparative
description over the different languages.

------
tokenadult
<http://norvig.com/21-days.html>

~~~
acangiano
Posting that link in reply to this submission may indicate a possible
misunderstanding about the point of this book.

~~~
jorgeortiz85
I think the implied criticism is valid. This book is the "Reader's Digest"
version of learning seven languages and four programming paradigms. You won't
learn a new programming paradigm in a week.

~~~
pfedor
But you may learn what's out there. Not all learning has to be in-depth
learning. Getting an overview of a field is important too. Reading Hacker News
won't teach you anything in-depth either but you choose to do it for the same
reason.

~~~
aaronblohowiak
i concur. there is room on the shelf for a "survey course" of paradigms

------
billswift
If you are interested in surveys of paradigms and older languages (1998),
there is the 4 volume "Handbook of Programming Languages" edited by Peter
Salus - they are cheap used from Amazon.

Volume One Object-Oriented Programming Languages : Smalltalk, C++, Eiffel, Ada
95, Modula-3, Java

Volume Two Imperative Programming Languages : Fortran, C, Pascal, Icon

Volume Three Little Tools and Languages : EQN, Domain Specific Languages, awk,
sed, SQL, Tcl and Tk, Perl, Python, Music languages

Volume Four Functional and Logic Programming Languages : Lisp, Scheme, Guile,
Prolog

~~~
silentbicycle
There's also CTM (_Concepts, Techniques, and Models of Computer Programming_,
<http://www.info.ucl.ac.be/~pvr/book.html>) by Van Roy and Haridi. It focuses
on programming paradigms rather than languages, but covers several along the
way.

------
jlgosse
I love that you are supportive of random languages! I feel bad for you because
you will never find a job working in any of those languages.

Kidding, 1/100 jobs will be working with one of these languages.

Let's discuss why

~~~
dschobel
But there's a high correlation between companies which trust their programmers
to use the right tool for the job and companies which "get it" ( _it_ being
how to develop and maintain technology).

Will that eliminate 99/100 companies? Probably not that many but it will
eliminate a lot, and you should be glad.

After my first job, I learned to always ask what a company is doing for source
and configuration control. If they have no answer or a bad one (Visual Source
Safe), that will tell you a lot about the environment.

Same thing if it's an MS shop that refuses F# or a java shop which refuses
Clojure a priori.

~~~
JoeAltmaier
"Getting it" may be right for us (developers) but wrong for the company. A
florist that needs order tracking isn't trying to change the software world.
That persuasive guy thats insists SmallTalk is gods gift to florists is NOT
doing them a favor.

~~~
Zak
Perhaps not, but writing it in Java isn't exactly doing them a favor either as
it increases time and cost for development and changes. The Right Thing for
such a situation is probably a compromise between language power and
popularity. Ruby or Python with one of the popular frameworks that makes half
the decisions for you would probably be a good choice.

------
bayareaguy
Although title makes me skeptical (why 7 languages? why 7 weeks?), this sounds
interesting since I don't know those languages. I hope it does more then
repackage what I could otherwise easily find.

------
tokipin
i don't understand why people think it's impossible to grok languages on first
glance. even if that were the case, having more languages under your belt
(especially non-similar languages) makes the next languages you learn that
much easier

~~~
JoeAltmaier
I remember (way) back when going from C to C++. It took 8 weeks of sweat,
deleting code (Bad Joe! Not OO!) and rethinking it, before my brain switched
enough synapses and I was in the groove. And 10,000 hours of object-oriented
design practice to be able to say constructive things about others' designs.

------
aatif
Why Python is not there in the list?

~~~
riffraff
because it overlaps almost completely with ruby. And Io, probably.

------
lionhearted
Question - I've got more of a business background than a technical background.
I can do basic html and I've played around in Linux a tiny little bit, but
that's pretty much it.

Anyone have any recommendations for getting more familiar with programming in
a fun, laid back way? Nothing specific I want to do with it, just think it'd
be a neat thing to spend some hours in. All recommendations appreciated
greatly.

~~~
brianto2010
I would recommend R (<http://www.r-project.org>) since you mentioned your
business background. R's strength is in statistics and _might_ prove useful.
As for a learning resource, Quick-R (<http://www.statmethods.net>) was an
excellent guide for me.

I feel bad saying this, but also try learning Visual Basic for Applications
with Excel.

~~~
biotech
_I feel bad saying this, but also try learning Visual Basic for Applications
with Excel._

This is actually a great suggestion for anyone who works with Excel a lot.
Knowing VBA (VB for Apps) can save you (or your assistant) hours of repetitive
work. Here's a good way to learn:

1\. Notice some annoying task that you do regularly in Excel (e.g., importing
a data file, preforming a calculation on a data set, or laying out data in a
visually pleasing way).

2\. Find the _Record Macro_ command, then do the task again.

3\. Excel automatically creates source code for the macro. You can open up VBA
from some Excel menu; that will show you the code.

4\. Edit the code to do what you _really_ want. Often the generated code isn't
perfect, or there are other features that you'd like.

I will warn you though - VBA is kind of a horrible, poorly documented
language. It's not unusable, though - you just don't want to use it for large
projects.

