views:

152

answers:

8

Hi,

Although I am learning a variety of newer .NET technologies (MEF, SL4, etc), what are the language-neutral advanced technologies to learn? For example, I remember ANTLR being one. I know a little about image recognition/edge detection etc as I am incorporating it in a project, but I am looking for skills which don't require specialist knowledge (AI, NLP, etc). I am learning Java as my job requires it (Though I am a .NET Dev), but I don't necessarily want to learn skills which require learning a dissimilar language to what I know now.

At work (and I am in an experienced position), I am working on a very basic application (Well I have inherited the codebase). The app is not testable, and is basically LOB (just talks to DB and does some other very basic things). I want to push myself further than working on that app will.

Thanks

Thanks

+7  A: 

Read about design patterns and regex. This will help you a lot in your carrer.

Topera
+1 for design patterns
Adrian Grigore
Design patterns I learnt early on in my career. More importantly, I've used them sparingly (But I have used them in real projects, most importantly).
dotnetdev
Yes I would recommend the original book by Eric Gamma (and others, don't recall all their names)
Nils
+3  A: 

The app is not testable

Testing: it's worth learning how to test.

ChrisW
Yeah. "Not testable" means you are missing fundamental concepts. *Everything* is testable; learn how.
Carl Manaster
A: 

Application Lifecycle Management

(Plan and Track, Design, Develop, Test, Build)

Ex.: http://msdn.microsoft.com/en-us/library/fda2bad5.aspx

Koistya Navin
A: 

MVC architecture and Hibernate comes to mind as things you might actually implement on your job, and are very useful in general..

Oren A
+1  A: 

Parallelization/concurrency and distributed systems. Tough topic, but IMO it's getting more and more important.

Chris Lercher
+1  A: 

I think it is difficult to be language neutral when it comes to technology. A technology could be simpler to implement or not depending on the language.

So, you could try either Silverlight or JavaFX - they are fundamentally game changing when it comes to web interfaces.

You could check out Hadoop and the paper on it : map reduce

You could check out AOP because again it introduces a different way of thinking about function.

Finally, don't restrict yourself to technologies. Try a new language as well - something like Scala or Clojure because the introduce new ways of solving problems.

venky
A: 

Next to Image processing I would like to add 3D graphics. GL and friends, your business logic may be sound but the presentation capability of the application may let it down.

whatnick
A: 

Further: Computational Geometry, theoretical comp sci, algorithmic thinking in general (maybe solve some problems on project Euler, study some topcoder tutorials), cryptography (never used it, but it's good for the brain) and I would also recommend some low level c-programming so u learn how the machine works (assembly would probably also be interesting, but I never got the time to read it..

Nils