views:

78

answers:

6

Hello everyone! I feel like upgrading my programmig skills, but I don't know where to start.

I finished my Education as an IT Engineer in january this year. My primary programming skills are: .NET, java, umbraco and c/c++.

So what should I look into? Any ideas will be appreciated!

+1  A: 

A functional language would help you to learn different ways of approaching/thinking about problems. Since you know .NET, F# would be a good language to learn. If you want to venture out of .Net, you could learn Scheme or LISP.

sange
+1  A: 

Start a project, choosing some contemporary technologies or libraries, and check this website every day (if not every hour) for questions pertaining to those technologies and libraries.

This may sound trite (or like I'm begging for upvotes), but I've learned more in the past month of reading StackOverflow and trying to (and occasionally failing) positively participate than I have in the past 2.5 years of developing without this continuous interaction.

Edit: I will add a few SO threads I've found particularly useful myself.

jwiscarson
A: 

Coders at Work is great. It gives you insight into how the greats in our world work, most of 'em are still going. After that, white papers in topics you are interested in.

coffeepac
+3  A: 

Becoming a competent JavaScript programmer will help you in almost every web & mobile project. With node.js, it's increasingly being used on server-side too. I increasingly feel that JS will worthwhile to learn for every developer.

Basically, you should try alternative approaches:

  • dynamic-typing (Ruby, Python, Perl...)
  • functional (Haskell, Scheme, ...)
  • stack-based (FORTH)

I recommend learning by contributing to open source projects. Most are very friendly to new developers and your contributions will benefit many others.

You can also experiment with alternative operating systems. Solaris has its great DTrace, various BSDs have their own packaging mechanisms, Haiku inherits the BeOS philosophy of creating a holistic system. Naturally, there are may interesting GNU/Linux distributions - Arch is a great one for tinkering with.

Tim McNamara
+1  A: 

Get a job at programming.
That's the best way to "upgrade your programming skills" (and to find topics to learn about).

Oren A
+3  A: 

An easy one to pick up yet will teach you a lot about OO programming is Ruby. It will actually be useful to you as well. If you're programming on Macs Objective-C is pretty awesome, if a tad verbose. As an engineer you'll really want to pick up something useful to your field so you'll want to look at like the functional languages; F#, Haskell, Clojure, etc.

If you're really serious about learning about programming I would suggest taking a look at Smalltalk and LISP. You probably won't use them but they will teach you a lot about programming in general.

Mike Bethany