Seven Languages in Seven Weeks
rapidred.com
rapidred.com
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...
I think the week in the title implies more about the introduction size.
I had a class on programming languages in college. It was one semester and went into very little depth of each language and paradigm covered. That said, I didn't know that half of the stuff that we were taught about existed before that class, and it spurred me to learn more and to learn at a greater depth.
I doubt that there's going to be any illusion about what this book is. Surveys are vital for new learners to help them build the cognitive maps of the knowledge space they need to be able to understand what they don't know. Maybe you don't talk to a lot of working programmers, but there are a frighteningly large number of people who just don't know anything about programming language syntax and paradigms not descended from Algol-68
If Donald Rumsfeld were here he would say to you:
There are known knowns. These are things we know that we know. There are known unknowns. That is to say, there are things that we know we don't know. But there are also unknown unknowns. There are things we don't know we don't know.
The point of this book, obviously, is to turn people's unknown unknowns into known unknowns. Not for them to become competent programmers of 7 languages in 7 weeks.
There is a lot of value in knowing what is going on in your field.
It would be nice to touch briefly on 7 other, very different, languages (especially Scala and Ruby) and see what they taste like.
So, yeh; I reckon this would be a good book for an already proficient programmer to pick up the beginnings of a few new languages.
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
Kidding, 1/100 jobs will be working with one of these languages.
Let's discuss why
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.
I sure as heck can't find enough people to hire for ruby ( and even objective-j !!) jobs.
I'm not saying your figure is wrong but I think that if you actively look for a job in these languages then it's pretty simple to find one.
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.
With that said, The Little Schemer is a good one to start on.
It's no more frustrating than losing at poker or some type of competitive game or politics.
You have to want something. Hackers want to solve problems. They'll invent problems just to have a problem to solve. So you are going to have to do that too. Invent a problem you want to solve.
What kinds of things do you do with computers? What do you wish was easier? What do you think is fun? Build an iPhone app. Build a website to help you track your time or productivity. Build something you will use and love for a long time.
what kind of business do you run? Do you have employees? What questions do you spend a lot of time answering because information is all over the place?
The most fun and laid back way is to do it when no one expect anything from you and you are doing it to make your life better.
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.
Flash (and actionscript, which is akin to Javascript) would allow you to do that with graphics... but if you don't want to mess with that, just make a text-based game. Something simple like two player tic-tac-toe with an AI, just displaying a new board after every move, would get you a long way. Python and Ruby are good languages for things like this... as is Scheme or Javascript.
and this looks promising (and the author posts here on HN) and should fit your "laidback" requirement: http://www.amazon.com/exec/obidos/tg/detail/-/1593272006/ref...
If you want to start on the hip bleeding edge, there is also a project to make processing usable with scala, search for SPDE.
And there is processing.js if you want to include you animations in a web site.
For that reason, you might consider playing around with JavaScript, where the effects of your changes are just a "refresh" away. Get hold of jQuery and play with the tutorials, maybe. (Install Firebug so you can see what's going on in your code)
Javascript can actually be a real app since you can store information in an SQL database on the client (in the latest browsers). My first iPhone app was actually a JavaScript page that stores data in SQLite, and uses a CSS template to look just like a native app (it's a Hacker's Diet implementation).
But fnid is right: fundamentally, you need a problem to solve. It's most fun if you implement something that is directly useful to you.
Greasemonkey lets you make changes to websites by writing small programs and it is fairly easy to find problems around the web to fix.
Example problem to solve: Hide posts on Hacker News from blogs that you already read elsewhere or that you don't like.