![]() |
Should I bother learning new languages?
I have a question...
Which languages should I focus on the most? I have knowledge of C, C++, C#, Java, Unix scripting, VB, Perl, and PHP. I have interests in Ruby and Python. I would like too know more languages but I feel as though my skill level in my current languages would start slacking if I do so. I used to write code at home, all of the time... back when I didn't do it all day for work also. I mainly use C,C++, C# and unix scripting... with a bit of PHP,CSS for my website. Should I stick with these languages and forget about learning new ones? Or should I learn new languages, if so which? I have noticed that a lot of people are preaching Java and Python... I've also been told that Python is a "starter" language. My interests involve client/server, network, database and web application programming and my formal education consists of mostly C and C++. |
One presumes you have learned to solve problems. If that doesn't get rusty, syntactical rust won't matter much. A paradigm shift (to a functional language, say) will probably take more effort than a syntax shift within a given paradigm.
|
It will not harm you learning yet another language but unless you have a need to do so then your efforts are better spent elsewhere. There are some excpetions to this, such as learning a functional or declarative language. I have learned a few languages but I find that if I dont read code in them for a while I tend to forget some of the details.
If you have interests in client/sever programming then learn how TCP/IP works and try to design and implement some software. By learning a technolgy such as TCP/IP in depth will broaden the sorts of projects you can do and will be far more interesting. I think the key thing to remember is languages come and go but the general concepts stay the same. So by learning about databases or networks in depth will be a more valuable skill for the future as you can apply it to most langauges. |
I'll second what Timmy said about learning a new technique or technology rather than a new language (after all we could all be learning more languages for the rest of our lives). You already seem to be comfortable with a really useful set of languages and the law of diminishing returns applies here.
Got to say, as well - Python isn't a 'beginner' language! I don't program in it myself but have skimmed some of the literature. It's got a nice, clean syntax and is expressive and high-level but while some languages are better for beginners than others, their usefulness in other contexts has more to do with the flexibility of the language and the available libraries (essentially, what's possible, and how easy the things that are possible are to actually achieve in practice). Like I say, I don't know Python that well but I'd certainly say that while it does look to me like a language that would be quite easy to pick up as a first one, it's certainly scoring well in terms of general usefulness too. Think of it as a nice, portable, modern language that fits the same sort of niche as Tcl or VB - strapping together other things to throw together applications fast. Oh, and I'll also second what Timmy said about databases: the most significant difference between the software I used to hack together for fun in my free time and the software I write now as a 'professional' developer is the level of involvement of relational databases. |
Quote:
Language syntax is fairly superficial. For example: :
foreach (int x in numbers) { ... }Quote:
:
print "Hello World":
class HelloWorld {Java is not necessarily more complex than Python, but whilst Java introduces everything at once, Python takes it slower. This is why some people consider Python a good beginner's language. However, once you get into Python, it's actually rather more powerful than one might assume. It has a good number of advanced features that Java lacks. Indeed, whilst Java may look like a rather complex language, in actuality it's a very simplistic and, some might say, restrictively basic language. Python starts off simple, but quickly outpaces Java with relatively exotic concepts like metaclasses, higher level functions and mutable objects. Ruby too is much the same. It's somewhat slower than Python, but arguably supports a larger set of features. At times it can be a little messy, like Perl, but whilst I tend to prefer Python overall, Ruby's class model is rather nice. |
Quote:
And for what it's worth: :
numbers.each { |x| ... };) |
I already had Ruby in my for-loop list, Jessehk :)
I also deliberately left out languages that used higher level functions for iterating over a list, as IMO that's another topic altogether. |
| All times are GMT -5. The time now is 2:15 AM. |
Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC