Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

For improving my programming skills I want to follow "learn a new language a year". What we can learn in 2011

I want to learn a new programming language in 2011. I am a java progmrammer, with not more than a year experience. I want to learn something which is really new and exciting, but not related to mobiles (iPhone, Android, iPad, Symbian).

like image 849
Ankur Avatar asked Dec 22 '10 03:12

Ankur


People also ask

Should I learn Python after Java?

If you're just beginning to learn how to code, you might want to start by learning Python because many people learn it faster. It's simple and more concise, while Java has more lines of complex code.

Do I need to learn SQL as a developer?

Why learn SQL? If you're pursuing a career that even tangentially relates to data manipulation or analysis (e.g., back end programming, data science, cybersecurity, etc.,) you need to learn SQL. As mentioned earlier, SQL is the standard query language used to interact with relational databases.

Is JavaScript the future of programming?

No year in the past two decades has passed without JavaScript being the most used programming language. Anyone can predict the same in the future after reading the above statistics.

Can I switch from Java to Python?

It is always good to move to Python. I don't see the downsides of it. However, it's also about what you want to achieve. Java is a very strong language (as in strongly-typed) and being a compiled language, it is more performant than Python.


7 Answers

I would suggest that you should give Scala a try.Its a language which runs on JVM and it is very much like Java syntactically,so you can easily pick up.Python is another good option.

like image 172
Emil Avatar answered Nov 10 '22 00:11

Emil


Learn Rich Internet Application development (RIA). This is "new and exciting", especially if you don't care about mobile stuff. This means (and both of these primary languages, C# and ActionScript, are similar enough to Java that you'll easily meet your 1 year goal):

Silverlight / WPF Language=C# and xaml (Microsoft has come a long way in a short time with this and the quality of the tools in comparison to what's out there for Java/Flex stuff is impressive.)

Adobe Flex Language=ActionScript and mxml (If you want to stay in Java this is probably your better choice. For the record, Java/Flex is my primary skill set and has been for years, but as I've said above, their .NET equals are very attractive nowadays and I'm starting to learn C#/WPF/Silverlight now as a result.)

(JavaFX perhaps also, but I've never used it and it's widely not considered as mature as the other two.)

Techs like these are very well suited to controlled environments such as the business world (internal intranets) where it's easy to push out Flash player or Silverlight to all workstations you need it on. (So it's nice on a resume if you're job seeking.) In the Internet world it's a little more iffy, but still not too bad since deployment rates for Flash 9+ are pretty good now, and Silverlights are quickly rising as well.

"AJAX" and all it's dependent "stuff" (DHTML, DOM, CSS, etc etc) is common, but I wouldn't consider it new or particularly exciting. It's a bigger deal in the mobile scene where a lot of hardware either can't run more advanced virtual machine environments or they're intentionally crippled in an attempt to prevent this (Apple products).

like image 32
Manius Avatar answered Nov 09 '22 22:11

Manius


Google created a new language this year called "Go". You could give that a try.

From the Go home page:

The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

http://golang.org/

like image 40
Andrew Cooper Avatar answered Nov 10 '22 00:11

Andrew Cooper


I want to learn something which is really new and exciting, but not related to mobiles (iPhone, Android, iPad, Symbian).

How about something completely esoteric and not very useful, such as a Turing tarpit language like brainf**k?

like image 32
Hovercraft Full Of Eels Avatar answered Nov 09 '22 23:11

Hovercraft Full Of Eels


Have a look at nodejs!
http://nodejs.org/

http://en.wikipedia.org/wiki/Nodejs

like image 24
Samuel Parsonage Avatar answered Nov 09 '22 23:11

Samuel Parsonage


If you want to explore some new stuff but still be close to java, start learning Scala. It's a great JVM-based language, almost as fast as java, but with tons of new features. It mixes object-oriented and functional programming. Functional programming is gaining more popularity now, because of scalability and concurrency, so it's better to stay close to it. You can also learn about concurrency in a more natural way with Scala.

If you want to go into web-development, Ruby and Rails is a good choice.

like image 28
Denis Tulskiy Avatar answered Nov 10 '22 00:11

Denis Tulskiy


Learn D, and if you really like it, help make the compiler better! D has practically every single feature you can think of, and then some (you can read about it on the website, I won't list things here), and it's much more powerful than C++ in some ways (it certainly isn't less powerful in any way except--maybe--for the lack of multiple inheritance, which I personally don't like anyway). The only thing it really lacks right now is a good, bug-free compiler, but for the most part it's just purely amazing. Just look at its features and you'll see. :)

like image 31
user541686 Avatar answered Nov 09 '22 23:11

user541686