4 Languages you should learn in 2009
anassina.com
anassina.com
One of 2? I thought 4: Java, Python, C++, Javascript.
And does it really power a lot of their most profitable products? Like which?
(Not bashing here, Python is my main language and I love it.)
That said, a number of their high profile apps are in Python, most notably YouTube and App Engine.
This is different if your audience is, I dunno, designers, or people wanting to get their feet wet. That is certainly not the case in this forum.
Also, a foreign language takes a lot of time and effort to even just become functional in it. If you are thinking in terms of managing a foreign dev team with your foreign language skills, you're thinking in terms of several years. Not just "in 2009."
Maybe I have a bad temper today, but as you said you have over 10 years of OOP experience, one would expect something jucier.
What is the audience of this forum. Looking through your list of submitted articles reveals no indication. For instance, your last submission was "Japanese Convenience Stores Thrive Despite Economic Downturn."
Foreign languages are very hard to learn. I know, I speak three. I didn't say anything about managing a foreign dev team, just that you should learn a new language. The world is flattening and I don't always want to speak English.
I don't know how 10 years of OOP correlates to a "juicy" blog post. All I can say is that in 13 hour, with close to 3500 unique visits, some people found it interesting.
I'll second that. I see a new westerners come here to Taiwan every year, many with grandiose goals of "mastering" Chinese. So far, it has broken every one of them, including myself. After six years, I can muddle my way through the Apple Daily and converse at a native-like level about topics I'm very familiar with, but all my illusions of becoming "literate" or "speaking flawlessly" died long ago.
Even now my Chinese isn't sufficient to get me a job without the benefit of having my English skills as well. Learning Chinese has been great on a personal level, but in terms of career, it was one of the most expensive decisions I've ever made.
Surely with the economic slowdown developers in "un-emerging" economies will be more competitive?
- The mature libraries and deployment environment of the JVM. So your code runs fast, runs almost anywhere, and a lot of work is already done for you.
- Data literals for arrays and maps. One of the shortcomings of Common Lisp. And catches up with (surpasses?) Python/Ruby/Javascript in this regard.
- ISeq interface means that a single set of functions works across all collection types. (Common Lisp has an amazing array of functions for working on lists, but hit and miss for other collection types.)
- Lisp 1. I know this is an aesthetic thing, but I much prefer how the code looks than Lisp 2's.
- Steals a lot of arc's good ideas, like abbreviated syntax for function literals and semantics for arrays/maps in function position.
- Common Lisp style macros. Just more intuitive, for me, than the hygienic type.
- Interesting place in the space of computer programming languages. Dynamic typing, with an emphasis on programming to interfaces, macros, first class functions, immutable data structures, and built in mechanisms to support parallel programming. I don't know of any other language that chooses this set of tradeoffs.
Mandarin is a nice touch. I'll try that. Indians, however, speak English pretty well -- even if their accent might take some getting used to.
ten years from now, you will be dealing with a multicore world, and you will be using something that is conceptually tied to haskell. i see this as inevitable.
factor i have looked at again and again, worked through some trivial problems...not sure i will ever "get" it. i would brute-force understanding it were it to take off.
The interesting thing is that on my team, two are from Russia, one from China, one from Lebanon, one from the UK, and one from India. The other two are Americans.
"Someone once said that learning Chinese is "a five-year lesson in humility". I used to think this meant that at the end of five years you will have mastered Chinese and learned humility along the way. However, now having studied Chinese for over six years, I have concluded that actually the phrase means that after five years your Chinese will still be abysmal, but at least you will have thoroughly learned humility."
The ability to roll your mouse over the characters and see exactly what they mean, or just change all of the characters to pinyin on-the-fly makes it an incredibly effective way to learn Chinese.
I say this because when I moved to Australia (I'm Chinese) I was speaking English in 3 month, given I was 9 yrs old - but it just shows how much more important your environment is compared to how much time you study a language (unless its a very close language).
I'm happy you've had a good experience in Australia. You should remember that the barriers to learning English and Chinese are fundamentally different. English requires mastery of about 100 phenomes before reading and writing skills reinforce each other and learning accelerates: the language gets more difficult as you get better. In contrast, the difficulty curve for Chinese is steep when you start but gets much easier as you improve.
Working hard is important, but equally important is giving yourself the tools to maximize learning. Someone struggling to get through Dream of the Red Chamber with a traditional dictionary is at a huge disadvantage to someone using the proper tools and resources. Learning a language is like engineering in the sense that one should use the best tools for the job, and then put in the time needed to execute.
Indeed as you say the Chinese language is hard at the start and gets easier. In my case when I moved to Australia I forgot a lot of my Chinese even after 1 year of not reading. 4 years later I could barely read, over the holidays I was forced to study Chinese, I did nothing but read a novel, some 10 pages a day which initially made next to no sense and took almost the whole day. But after two weeks of continuous reading, I could understand a lot more, and was reading much much faster(managed to finish a 400 page book). The trick to learning to read Chinese is to get going and not stop, and skip most of what you can't understand, and gradually you will pick it up.
I would also add that if you're not seriously committed to learning Chinese, why bother? Your progress would be so painstakingly slow it would seem you're forgetting as much as you learn - I'm trying to say don't do what Moser is claiming, tackle Chinese with less than 100% with slow progress and find out it is hard after 5 years.
It is also my view that much of the difficulty is a inherently negative mental illusion that the language is hard, and that also hinders learning. If people learned Chinese as if it were playing their favorite game, instead of something inherently dry and boring (which is another argument) this will speed up the learning process.
Seriously, you should probably learn both.
I'm really not fond of having to haul the self parameter around all over the place in Python, and there seems to be some confusion between what's a function and what's a method. (Some of this is being addressed in Python 3 I think.)
The whitespace thing, I can just about cope with, but I always miss the colons off the end of lines. Oh, and at least on Windows, the supplied documentation is organized in a seemingly arbitrary manner (but at least it has an index if you know what you're looking for).
Having said that, Python probably has a better standard library than Ruby, so, meh, learn both and see which you prefer.
Well, if you miss them so much, just put them in.