tags:

views:

894

answers:

13

I develop primarily for the Web and Windows using the .Net framework heavily although I am fairly proficient with other technologies like Javascript, Html, and a few other things I can't think of at the moment.

What I'm wondering is if people view .Net developers as being LESS well rounded versus people who develop primarily with other technologies like Java, Linux, Ruby on Rails, or whatever. For instance I tend to view people who develop in these other technologies that I know absolutely nothing about as being better or smarter than I am, and probably know a lot more about a variety of things that I have no clue about since I'm locked into my tiny little .Net box.

+38  A: 

Well-rounded programmers are really just great problem solvers. The technology that they use is irrelevant, they are just tools to execute the idea.

casperOne
Surely the most rounded programmers are the ones that eat the most pizza? ;)
Steven Robbins
Or chocolate latte
krosenvold
Problem solving is just one part of the equation. Dedication, patience (plenty of patience), communication, expressivness and more are all part of a well rounded programmer
Eran Galperin
While I agree that well rounded programmers are great problem solvers, I don't think you can consider yourself be "well rounded" if you only know one technology stack. To be well rounded means to have an understanding of more than one language family on one platform.
Bryan Oakley
brilliant answer
Andrew Hare
+7  A: 

Someone who understands the basics, the core of programming and who is at a level where they can learn a new language fairly easily as a lot of the core knowledge/mindset is interchangeable

Richard
Add to this, knowing how to interface with new tools (MQ's, db's, performance tools, etc). I've got the basics/core of programming down and learned C# in a matter of days, but I have no experience in connecting/using those items. They've taken more effort to understand and use.
dragonjujo
+10  A: 

A well rounded programmer must be language/plataform agnostic.

Demian Garcia
still, he could have his preferences.
Gnudiff
You may want to change that criterion - "agnostic" means "doesn't know". More seriously, a well-rounded programmer should know all languages/platforms well enough to know which are crap. Brainfuck and Python are not equals.
Dave Sherohman
+6  A: 

It doesn't matter the language used. I think your point of view comes from the fact that someone who has only ever programmed in .NET has not been programming for more than 10 years. Whereas someone who has programmed in COBAL, Fortran, C++, Java, .NET, etc. very well could have been programming since the early 1980s. Thus they have decades of experience and have seen computers evolve.

I notice that people who have only used .NET sometimes don't have a complete understanding of the way servers or operating systems work. This is because .NET very nicely hides such things which lets us concentrate on writing applications instead.

Rather than learning other languages to become more well-rounded, consider exploring fields and philosophies related to programming. For example, management processes like lean and agile. Study enterprise and OO patterns. Also user interface studies such as usability concepts and graphic design. That'll make anyone more well-rounded.

DavGarcia
+2  A: 

The problem Solver answer came close.

The ability to divide the problem to be solved into its component parts; arrange them in logical order; and handle them one at a time... is paramount. Then you also need to be a master of your chosen environment/language/frameworks so that your solution is documented, concise, efficient, appropriate, scalable, extensible/maintanable... and correct.

guzzibill
+4  A: 
  • Have you worked on large systems (data center) and small (kitchen appliance)?
  • Have you developed life-safety critical systems and throw away scripts?
  • Would management include you in a sales presentation?
  • Have you specified systems and components?
  • Have you published products as well as developed in-house apps?
  • Have you ever been front line user support?
  • Have you both lead a team and been a team member?
Doug Currie
+1 for a roundup of characteristics that go beyond mere coding
Kena
+5  A: 

A person is well-rounded when they are:

Comprehensively developed and well-balanced in a range or variety of aspects

I am just a programmer, but I also get called a DBA, network and system engineer, architect, etc. Architect in particular, to be meaningful, by definition requires one to be well-rounded. I maintain current skill in Python, C#, Java, Unix, Windows, Oracle, SQL Server, SQLite, ANSI SQL, HTML, JavaScript, CSS, XML, Bash, etc.

I went to a college whose primary purpose is creating well-rounded graduates. My consequent success seems to support their success in my case.

Consider that there are separate Java and .NET philosophies, plus others like Unix/Windows, Oracle/SQL Server, etc.

Also, consider Paul Graham's article and that programming is in the mind rather than the tools.

The Sapir-Whorf hypothesis claims that a person's thinking is shaped by their language, with interesting application to the realm of computers. So, well-rounded must include multiple, very different language environments such as imperative (e.g., C), functional (e.g., Lisp), low-level (e.g., Assembly), high-level (e.g., Python), compiled, non-compiled, scripting, general, domain-specific, embedded, etc.

Definition

Rob Williams
+1  A: 

I know they are out there, but I have not met too many .NET developers who can solve problems outside of the realm of .NET. Many of them would refuse to even look at code if it's not syntax highlighted, or if there is no intellisense. And good grief if it's not written in C#!

I think people who code using a text editor are usually more well-rounded. These types of developers can usually move in and out of different languages with ease, be it C, perl, ruby, or python, etc.

But please don't get me wrong. I'm not saying that someone well-rounded who is not a C# specialist can solve a deep .NET problem in a hurry. I'm just saying that they can cover more ground.

barneytron
A: 

Language really doesn't matter. As long as you are able to solve a problem with any tool in your toolbox (i.e any language), you are well rounded. I have seen too many developers crib when they go from Linux to Windows or vice versa that its outside their domain... It really doesn't matter. After a day or two you take to get used to the dev environment, all it takes is brains to transliterate logic into tangible projects.

Sridhar Iyer
A: 

I have to say Python developers. For the following reasons:

  • Obvious exposure to Linux development but not trapped in C, C++
  • High level development, use of OO while still being terse.
  • Java and .NET provided "too many" frameworks making programming half-possible without understanding what your doing. Same goes for PHP
  • Web development, Scripting language, Full system programming, GUI applications
  • Would have been early 'up takers'.
  • It's a language that's kinda new whilst still having a very traditional "what have we learnt approach". It isn't all magic features and VM driven short cuts. Certainly not a flash in the pan and Python devs know this

Just MHO though

Philluminati
A developer who strictly uses Python is not well-rounded. It's a very good language to know, but it's only one language.
David Thornley
+1  A: 

A well rounded programmer can:

  • Understand the problem and nuances
  • Understanding how to solve the problem
  • Understand which tools are best suited to solving the problem
  • Understand how to use those tools to solve the problem or
    • Understand the tools you do know how to use to solve the problem
  • Be patient enough to use those tools to solve the problem
  • Deliver the solution

If you don't have any one of these things, you're going to come unstuck pretty quickly

BenAlabaster
+1  A: 

For strictly programming purposes, a well-rounded programmer is one who knows several different languages well, including at least one functional and one declarative, has worked on several different kinds of projects, has worked at least on both Unix-like OSs and Microsoft OSs, and has worked with several different sorts of frameworks.

Such a developer is likely to see solutions that others don't, because he or she has many different points of view.

If you want to become more well-rounded, and are familiar with .NET, I'd suggest getting access to Linux (either buying a cheap machine or dual-booting) and learning Lisp. Learn about the Unix programming traditions; not that they're necessarily better than the MS ones, but they're different, and knowing both will make you better rounded and give you more angles to attack problems from. Lisp is not that difficult to get started with, if you're willing to put aside a lot of habits and assumptions you've formed, and will do a very good job of giving you a new set of habits and assumptions.

David Thornley
A: 

IMO a well rounded programmer has excellent analytical skills, is an expert problem solver, and also has a good view of business and empathy for the end user.

Henrik Hartz

related questions