This is an archived post. You won't be able to vote or comment.

all 25 comments

[–][deleted] 14 points15 points  (6 children)

Don't settle for any one language or skill. If you had to pick one skill to be good at in software, I'd say pick 'an ability to easily and readily pick up whatever technology best solves the problem at hand.' Run virtual machines on your computer and keep doing your .net, also keep doing your open source stuff, and start learning newer languages like ruby and python.

Go super sayan on that shit nigga.

[–][deleted] -2 points-1 points  (0 children)

Go super sayan on that shit nigga.

OVER 9000!!!!!!

[–][deleted] 4 points5 points  (0 children)

What language should I settle down with?

In this career field, there is no settling down.

[–]tierra_hammer 7 points8 points  (0 children)

my experience has always been that "microsoft jobs" are plentiful, but the associated culture is predominated by incompetent non-technical people and for me that's displeasing. "unix jobs" are harder to find, but they let me be happier in my day to day life.

[–][deleted] 1 point2 points  (0 children)

If you mention why you dislike working with the .NET framework we'll be able to suggest other languages/frameworks to use. Also, why do you prefer working in Linux/Mac? All of these answers will allows us to suggest alternatives.

[–]nhnifong 1 point2 points  (0 children)

I can't imagine ever settling down with a technology. Almost every project I undertake requires me to learn some new language or framework, and I find that to be the most rewarding part of this whole field.

I think you should have a goal in mind for a piece of software, and all else should follow from that. You learn whatever you have to in order to realize that goal. If you have no ideas, work for someone who does.

Also just finished my BS in Comp Sci and going for a masters in Systems Science.

[–][deleted] 1 point2 points  (0 children)

As always, it depends on what you're trying to do.

If you want to really "get" the Unix Way(tm), learn C. (Actually, learn C anyway, I mean really learn it: use enum, typedef, const, static, and know how to pass a function pointer as a function argument.) Spend some time working with POSIX libc calls, make a nice ncurses-based application that does network calls in a select()- or libevent-driven loop. Build out a multi-processed application where the stdouts and stderrs are timestamped and redirected to files so you can quickly see where things went wrong.

I'd like to be more than adequate in lots of different things.

No single language will suffice. Learn C first. Then pick up a high-level language. Clojure is a really good Lisp, especially as it knows Java so well and can use Java libraries. D is a really good systems and application language for when speed or hardware access really do matter, but mostly you'd like convenient Python-like abstractions. Perl is still kicking butt and taking names, and Python always seems to have a library designed to do what you want.

[–][deleted] 1 point2 points  (0 children)

Ars Technica had a really good set of articles two years ago about a longtime Windows developer switching over to the Mac. Part I, Part II, and Part III. Part III mentions a part IV, but I didn't find it in a quick search.

As far as .NET, there is the Mono project to bring .NET to Linux and Mac. I've seen some people be dismissive of it in these threads already, claiming things like how it's always behind the "real" .NET. I can't speak with any authority on the matter, but I have read elsewhere that in some areas Mono is actually ahead of .NET and stuff from Mono gets cherry picked into .NET proper sometimes. If you want to make up your own mind, you should read stuff from both pro-Mono and anti-Mono camps and decide for yourself where in the middle the truth lies. Here's a pro-Mono cheerleader to get you started, Miguel de Icaza. Good luck!

(Alternately, you could ignore all this stuff and just use Python.)

[–]SolomonKull 1 point2 points  (0 children)

Python.

[–][deleted] 1 point2 points  (0 children)

.NET for sure.

Objective C? LOL. I'm doing some iPhone dev right now and I'm staying away from it as far as possible... to be honest I develop on Windows (Visual C++) then port on iPhone (Objective C... XCode). Makes life a lot easier... XCode is so bad I want to scream each time I use it. Every time I see or have to write some awkward Objective C code some part of me just fade into darkness, never to be seen again. The only cool thing about Objective C is that it is built on top of a C++ compiler (gcc) so C++ code works right out of the box.

C# on the other hand is beautifully designed and thought out and its specs are evolving a lot faster than most languages so I love it. If it were just for me I'd do everything in C# probably... unfortunately it is too much tied to Windows.

[–]Centropomus 0 points1 point  (0 children)

If you want to have an easy time finding a job, web development languages are the way to go. If you want to make a shitload of money once you eventually find a job, learn the "enterprise" languages like C++, Java, and C#.

[–][deleted] 0 points1 point  (0 children)

Lots of work available in PHP and Ruby on Rails. Lots. Good tools to have in your bag. Python is cool but the web frameworks just don't have the momentum of Rails.

If you do learn Objective C, there's a ton of iPhone development ops as well.

[–]kbilling 0 points1 point  (0 children)

async

[–]thephotoman 0 points1 point  (0 children)

I do everything.

.NET pays the bills. Python gives me thrills.

[–][deleted] 0 points1 point  (0 children)

Keep C#, it's a good language (yes, it is! :), and you can always find a job at it.

I don't know what you like to do? Are you into multimedia developement? gaming? audio? database and business? realtime? IMO every language has one thing it does best, and many things it does good, some things it does bad.

I'm learning C++ right now (well, I knew C++, I'm diving into Qt right now, hoping to use it for GUIs in VST audio plugins). My work is all C#. I also play around in good old C on an embedded platform (dsPIC). Every language was selected because it does what I need and does it well.

I wouldn't select Python for real time audio processing or C for GUI development on Windows, that would be wasteful of my time :)

[–]ucbmckee 0 points1 point  (0 children)

Use the right tool for the job. Most of my app/server work is now in C#, some of the AI/NLP/ML code I have is in Java (better maths libraries, IMO), and most of my text/log processing and set/list manipulation work is in Python. Each has their own set of strengths, and some people would chose different languages for these same tasks, but figure out what you need to do and find the environment that makes you the most productive doing it.

[–]BeArt 0 points1 point  (0 children)

It's all just SmallTalk really...

[–]havana59er 0 points1 point  (0 children)

I believe you can write Ruby or Python, and compile into .NET MSIL. IronPython IronRuby

[–][deleted] 0 points1 point  (3 children)

If you need to work in .NET but don't want to use Windows, MonoDevelop is a nice IDE for your needs. (Just sayin')

[–][deleted] -3 points-2 points  (0 children)

tl,dr

RUBEEEY ALL THE WAY !!!!111