Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd forgotten Django. That sounds interesting. I did enjoy Python when I used in in Highschool, and I wouldn't mind learning more.

About your other point, with sticking to C/C++ until the language disappears, I think I'm just afraid I'll get stuck in that paradigm, and if I don't broaden my horizons now, I'll have a hard time later on. You may have a point though. I'll think about it.

Thanks for the advice.



I agree that you should broaden your horizons. It gives important perspective, and makes your mind a lot bigger. There's more than one way to do it, of course, but here's a sequence of languages that I would recommend:

Python: this will teach you to program at a higher level, and the libraries will make it easier for you to get into web programming or GUI programming or simple game programming or any other thing that excites you. That's what it's all about, when you're learning: do something that excites you, and you'll learn faster. Python has a very low barrier to entry, so try this first.

Lisp: once you know Python, you're not going to be bowled over by things like garbage collection. But you can still learn a lot from Lisp; if nothing else, it can give valuable practice with recursion and metaprogramming and the idea of a read-eval-print loop. It's a cool and fun language.

Haskell: this one is kind of difficult to learn, which is why I recommend learning it after you've got Lisp under your belt. A lot of advanced computer science stuff tends to debut in the Haskell community, and the average intelligence of Haskellers is pretty shocking. It's also a neat language that you can do cool projects with.

If you can learn these languages, I guarantee that you will be able to shift paradigms a lot easier than people who coasted along with the standard trio of C, C++, and Java.


I don't think you have much to worry about if you pursue C/C++ right now. The paradigms in C++ carry over to Java and other OO languages pretty easily. When I said it's a lot easier to learn the second language after learning your first, I meant it. Once you get one language down (and I mean actually get it down), the concepts pass from one language to another fairly easily. From there, you're just learning syntax and some of the oddities of the language of your choosing. It took me probably two years to really learn Java, but I learned Python in 6 weeks. I was able to sit down and be productive in php after reading about it over a weekend. Ruby (on Rails) took me about a month to learn. COBOL was probably a week. Now I'm learning C and Assembly without really being taught much C and Assembly, just the concepts behind them that differ from what I'm used to. My point is, I stuck with Java for two years until I really got my head around it, then I moved on to other languages with relative ease. I can only imagine that becomes easier with time, not harder.

I definitely think it's a good idea to learn other languages, but what, exactly, is your goal? Are you trying to understand CS concepts better, or are do you just want to learn another language?


I think it depends on your 'project' as one person said. if you want to write systems software, or desktop apps C/C++ is a good route, however if you want to write Web Applications it's not, you should pick a scripting language. Pick the language for the task first then on preference. so like one person said python, php, perl, ruby, coldfusion are all good choices for web development... you just pick one of those if that's what you want to do. C/C++/Java(C# Windows) are all good for application developement. C is good for Systems development. Perl/Shell is good for scripting.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: