thats good. There are 10 kind of languages: Those nobody use, and those everybody hate. So a coder who does not curse a language has never used it.
Now the question what to learn next is depending if you want to learn languages that open your mind for new concepts, or do you want to learn a language that helps you in the job market?
For the first I would recommend:
Forth or Postscript to learn a stack oriented language.
Lisp or Scheme to learn a lambda calculus language.
Smalltalk to learn what real object orientation means.
Lua or Javascript to learn prototyping.
Haskell to learn functional programming.
Erlang to learn how to write massive parallel code.
Last improve your C skills, read "a little Smalltalk", and write your own programming language. Dont be shy. Ruby or Python code reads as if they also did read a little Smalltalk, decided that designing their own language is easy, and repeated all errors from the book. Always remember: Smalltalk was 35 years ahead of its time. Since then every year a new language is hyped, each of them one small step closer to Smalltalk.
If you want to learn for the job market, then learn Linux, Perl, PHP, Java, SQL, HTML, CSS and JavaScript.
What errors did python make wrt to design that were first found in smalltalk?
I remember reading somewhere that the OO system for python was sort of bolted on after the language had been around for awhile. When I write classes in python, there is something awkward about it that I just can't put finger on. I remember thinking it was strange to have to pass in 'self' to member functions, and then realizing that it was like 'this' in c++. So why does c++ hide that implementation detail while python lets that detail leak out? I wonder if 'self' could be passed in behind the scenes and any references to local variables that haven't been declared in that scope can be assumed to be instance variables.
Good alternative to Haskell. Less strict in being functional, and therefore perhaps better suited for real world. Well I learned Miranda ages ago, so Haskell is closer to me.
thats good. There are 10 kind of languages: Those nobody use, and those everybody hate. So a coder who does not curse a language has never used it.
Now the question what to learn next is depending if you want to learn languages that open your mind for new concepts, or do you want to learn a language that helps you in the job market?
For the first I would recommend:
Forth or Postscript to learn a stack oriented language.
Lisp or Scheme to learn a lambda calculus language.
Smalltalk to learn what real object orientation means.
Lua or Javascript to learn prototyping.
Haskell to learn functional programming.
Erlang to learn how to write massive parallel code.
Last improve your C skills, read "a little Smalltalk", and write your own programming language. Dont be shy. Ruby or Python code reads as if they also did read a little Smalltalk, decided that designing their own language is easy, and repeated all errors from the book. Always remember: Smalltalk was 35 years ahead of its time. Since then every year a new language is hyped, each of them one small step closer to Smalltalk.
If you want to learn for the job market, then learn Linux, Perl, PHP, Java, SQL, HTML, CSS and JavaScript.