• NOW LIVE! Into the Woods--new character species, eerie monsters, and haunting villains to populate the woodlands of your D&D games.

Because I couldn't resist a good flame war - the programming language debate

I'm a programmer in a big financial house. Before that, I was an academic neuroscience researcher. Before that, I was a defense subcontractor.

In all three areas, Python and C/C++ were the most useful languages, and Linux was (& is) the platform of choice.

Hope that helps, -- N
 

log in or register to remove this ad

I do like 'C' as a first language. It isn't that you will find that many jobs out there that are still using it (outside of the embedded world at least). It is that it gives you a very good foundation for just about any language you want to learn after that. I've come across a number of developers who first language was Java who have trouble with the underpinnings of the language, i.e., just what is happening with Garbage Collection (how java handles memory), what it means when you have static reference to an object, what it means to pass by value versus pass by reference. etc. etc. Staring off with 'C' helps with those fundamentals.

On the flipside, with something like 'Java' or python it is a bit easier to come up with something were you can get some quicker feedback that you are actually doing something.

Good writing skills, good verbals skills and good communication skills will always be very important. One problem area that software projects will always have is how to take what the customer wants and translate that into a working software program. Just yesterday I took the 'final' version over the customer and was told, 'oh we forgot to mention this'. (XP and quick iterations is a different riff, but one way to handle problems like this).

I have to say it will be a bit hard to say exactly where things will be 6-8 years from now in the programming world. The offshoring concern is real but a bit overblown (at least for the moment). Companies love the cost savings but they are concerned about losing IP and that is slowing down just how fast things are moving overseas.

more to say but I have to get back to work.
 

I think this all depends on if he plans on going to college.

If college is in his future then I would go with whatever he is most interested in. I see a couple of possibilities here...
1) Networking and Sys Admin - get this guy a couple of computers a router and maybe linux
2) Hardware design - get this guy a breadboard, some chips, dip switches and leds
3) Programming - Java, C#, or Delphi

If however, he does not plan on going to college he needs to be much more practical and find something that he can learn quickly at a tech institute or get a job in without a degree. Sysadmin, networking, or electronics repair. Putting together computers is a prety visual and hands on type of thing so don't discount such things as automotive repair(thats one thats gonna be hard to send overseas) or HVAC.
 

I think I'll point my nephew to this thread, and maybe encourage him to post a reply. Thanks for the responses so far, keep 'em coming!
 


I'm a programmer, so I'll ignore hardware, etc.

I don't think you can go wrong learning HTML, CSS, and a few other web tricks. Intranet apps are one way to easily distribute apps in a corporate environment and an understanding of the basics is a must, even if you're using ASP.NET or some other tech.

SQL is another good tool to learn. I've never worked on a project (that I can remember) that didn't involve databasing. SQL is a common language across most platforms (Oracle/SQL Server/Access/Sybase). But, you already know that.

XML is good to at least touch on. It has uses in web design, databasing, and general network apps.

The two big development platforms I see are either Java or .NET. Both are good and both have uses. Mastery of both would probably open up 80+% of all development jobs. The advantage to learning Java is that its free to get started and there's a huge open source movement from which to learn. Plus, the syntax is pretty close to C# (by my understanding), so transitioning later shouldn't be a huge issue.

That said, I'm a .NET programmer and generally like the environment and tools. Plus, ASP.NET rocks for developing web applications -- it's the absolute best platform on which I've ever developed (IMO, of course).

For any of the above, you can get some pretty good books from Barnes & Noble to get started. Believe it or not, the Microsoft Press books are actually really good for learning any of the .NET tools.
 


Psionicist said:
Just out of curiosity, all of you who recommend Java, how many other languages do you know?
VB
C
C++
SQL (stored procedures, etc.)
a little perl

Contrary to the strong opinions held by many, I don't really think languages matter much. They all solve basically the same problems. I like Java because I'm lazy enough to want to avoid memory management but I require a language that will run on multiple platforms (plus it's what my company has standardized on). I want to learn Python because I've heard such good things about it.
 

I'd recommend he learn a little bit about a lot of languages. Starting off with a scripting language is great. Javascript is designed to be easily human-readable, which means the learning curve is much lower than something like Perl or C++. And you get instant gratification for your work.

In my job as IT manager for a small office, I use ASP, JavaScript, PHP, HTML, Java, and SQL on a daily basis. They're simple enough that I can learn how to do just about task in an hour, but powerful enough that I can produce good results very quickly. They also work well together--I'm in the process of writing an ASP page that queries a database using JavaScript, and returns it all in HTML tables.

After graduating college, I've never touched Python, C++, or any other mid-level languages I learned there.

Given the social/economic trend towards globalization, I think the future of computing will really be focused on more cross-platform applications, networking, system integration, and remote access.

Finally, I find it easiest to learn languages by using them. If I have a project or task set before me, I can easily learn the code necessary to make it work. But I have a hard time learning a language just by reading a book.

Spider
 
Last edited:

Spider said:
I've never touched Python, C++, or any other mid-level languages I learned there.

Hhow can you put C++ - a compiled, statically typed language, in the same category as Python - an interpreted, dynamically typed language?

And what do you mean mid-level? Both C++ and Python are high level languages. Python is really high level.
 
Last edited:

Into the Woods

Remove ads

Top