• 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

der_kluge

Adventurer
Ok, so in another thread, we started debating programming languages.

It's an interesting discussion, but it was off-topic to the discussion at hand. So, as it turns out, my sister just sent me this:

der_kluge's sister said:
Steven likes computer, right now he has learned all about Microsoft window, and how to take a computer apart and what all is inside, how it work, what it does, and trouble shot. Since you are in the field of computers can you tell me what is the big field right now? Is it writing program? Fixing computer? Something else. Just to maybe tell Steven which direction he might want to go in.

Steven is my nephew. He's a junior in high school. He's been taking a vo-tech class that covers repairing computers and whatnot. He put together his own computer, buying the parts here and yonder to get what he wanted. So, I guess he's yearning to learn more, and so his mom (my sister) asked me for advice.

I ended up telling her that there were a lot of options available. I felt like that, in general, programmers are kind of a dying breed, since so much seems to be getting off-shored, but that web-development was a good start. I recommend that he learn html and maybe php (admittedly I know very little about what php is, but it seems like maybe a good start). Learning java on your own sounded challenging to me, and I'm not sure there is even really all that much demand for it in the workplace. I think .net or C# might be a better option here. Obviously learning any database skill or something like C on UNIX is really hard without access to corporate technology. Yea, he could install Linux, which I didn't think of until now. That might be a good start, and give him a good intro into UNIX, since it's basically the same thing.

Anyone else have any thoughts on what he should try to learn?
 

log in or register to remove this ad

I'm a programmer for a living, and we're primarily a Java shop. We have some legacy VB code and some truly scary perl scripts lurking around, and an increasing number of PHP scripts (which as I understand it has much of the flexibility of perl but doesn't encourage the same kind of brain-damaged short cuts). But our mission-critical apps are all either Java servlet based or vendor-supplied systems (like our CRM system).

So I'm not in the "Java is doomed" camp. :)

I think a skill that will be useful for a long time in corporate settings is SQL. When we hire people we are vaguely interested in what programming languages they know, but if they have a lot of SQL experience we get very excited.
 

Depends on what he is interesting in. Overclocking is pretty pointless now as the computers are rediciously fast already, _but_ if he's into hardware he will probably enjoy it as much as the next kid enjoys his first car, or motorcycle. :)

The webpages thing is a good idea. Unsure about PHP though, most people like it because its a server side language with a C/Perl-like syntax, which can be both good and bad, but probably mostly bad if you arent familiar with C or perl already. I'd recommend Python as I did last time, its an awesome fsck-around/sketch-language. If you dont use it yourself you can learn it in no time: http://hetland.org/python/instant-python

If he's into games you can introduce him to, perhaps, 3d-modelling with 3dsmax or Maya. Depends on artistic preferences, perhaps he's more of a music guy? I cant do graphics OR music so I code, but it seems to be fun to create 3d-models.

2c

Edit: Whats big in the field now is a good question, also depends on what part of the field. The slashdot/sourceforge/freshmeat-crowd would probably say decentralised, encrypted, anonymous P2P-networks. The corporate crowd might say, perhaps, XML? CMS's? :)
In my opinion its totally worthless to learn something just because it will get you a job. If you dont enjoy it you can aswell try to become a lawyer or pointy-haired-boss.

Edit 2: Oops, forgot "search". Search is defenitely "in". Just look at Google.

Edit 3: Ignore my edits I realized they only answerd whats big in software.
 
Last edited:

I'm with psionicist on this one.

If he wants to do software point him towards python, it will teach him skills usefull in most other programming languages. Find a used book about artificial life on amazon and give it to him, that should give him some starting points.

If he wants to do hardware point him towards overclocking and computer modding. He'll need some seed money, but then he should be able make a small income through high school building and selling modded pc's.

If he wants to learn about what makes computers work (both hardware and software) point him towards linux. He wont be able to do gaming on linux (unless he dual-boots) but he will learn alot about computers.

Don't worry about the long term. He is far better of learning good practices than the 'right' language.

/Fenlock
 

JimAde said:
I think a skill that will be useful for a long time in corporate settings is SQL. When we hire people we are vaguely interested in what programming languages they know, but if they have a lot of SQL experience we get very excited.

I consider myself an SQL God, but unfortunately for you, I have no desire to move to Boston. :)

I once wrote a 3-page, triple-union select, with multiple nested sub-selects that ran in under a minute.
 

JimAde said:
I think a skill that will be useful for a long time in corporate settings is SQL. When we hire people we are vaguely interested in what programming languages they know, but if they have a lot of SQL experience we get very excited.

I know what you mean. Back when I was an undergrad, I never would have believed how much of what I'd do for a living is just getting things into and out of databases, and making it look good along the way.

And FWIW, We're an all Windows-shop, and since I'm the only web developer and a VB.NET fanboy (case-sensitivity in a web dev language sucks!), when we rebuilt our web site, we moved to ASP.NET/VB.NET.
 

der_kluge said:
I once wrote a 3-page, triple-union select, with multiple nested sub-selects that ran in under a minute.

Hehe, I once had to write a nearly 200 line quad union select to select transactions that had errored out on a server. I wanted to KILL the person who setup the schema, it should have been a 3-4 line query. However, depending on the type of error code it would have to join the SAME FOUR tables in a DIFFERENT order. And since there was no documentation whatsoever, it was....oh shall we say, "fun" to figure out. :]

This was purchased software that ran over a quarter million bucks too. You think for that kind of money that they'll normalize their data so it wasn't retarded.
 

As noted previously, it would all depend on what he seems to want to do.

Hardware support techies make a decent wage/living repairing corporate machines and demand a fair amount of respect (at least in my country and current workplace). The fact that he put his machine together himself means that he has an interest in mechanical things (using your hands).

Programming is something entirely different. It is creating things that do other things using a programming language. Any programming language will do the job, some are just easier to learn than others. Personally I know 7 or 8 languages. I can categorically state 5 of them I know extremely well, while the other 2 or 3 I know well enough to write applications in them but I wouldn't say they would be perfect. That leads me to the statement I have given to many people who try to argue one language better than another: it doesn't matter what language you use, if you're a programmer you will be able to use it to accomplish what you need. Does he really want to follow the path of programming? Has anyone asked him this question? If I was to through languages out it would be PHP, the .NET suite, and Visual Basic to start with. Any one of these is pretty easy to get into. PHP can lead to Java and C because of the design of the language (which borrows heavily from both languages).

In fact have you asked him at all what he would like to do next? Do you want to build another machine? Do you want to learn how to make games? Etc etc.

As to the database suggestion, almost every application I've run into/programmed on in the last 10 years has had a database somewhere in the chain. I've worked in Mechanical Engineering firms, Government companies, Scientific Research, straight programming houses, and all of them use a database somewhere that needs to be accessed. Learning SQL is something than can be done in conjunction with learning a programming language. Access to corporate funding/machinery is not required at all. For example you can download MySQL for free and learn SQL that way using either the command line tools or one of a variety of free utilities like phpMyAdmin. You can download a trial of Sql Server from Microsoft. And I'm sure you can download various other databases. Microsoft Office comes with Access in the Professional version so there is another database program. I personally teach SQL Server at a technical college part-time and it is a pretty easy thing to get into. You can even learn administration of the SQL Server and thus gain other skills that can put you into a DBA position.

There is another path and that is the Jack of All Trades. He has shown aptitude for hardware, if he shows aptitude for programming and databases etc he could well be on his way to be a consultant of some sort that understands all the aspectof the I.T. industry and can sort out the B.S. some techie is spouting from the truth. Now this is something that people forked out money for hand over fist for.

Well I see I have rambled on ... so I can leave it there. Just to make it clear, however, I am not advocating or going against Microsoft at all. It is just a fact of life that Microsoft is the biggest used thing around, and some of its products are easy to get into (Visual Basic, Access) for example. I personally use a Macintosh so that should clear up any imagined bias from anything I've said.

D
 

dvvega said:
Any programming language will do the job, some are just easier to learn than others. Personally I know 7 or 8 languages. I can categorically state 5 of them I know extremely well, while the other 2 or 3 I know well enough to write applications in them but I wouldn't say they would be perfect. That leads me to the statement I have given to many people who try to argue one language better than another: it doesn't matter what language you use, if you're a programmer you will be able to use it to accomplish what you need.

This is true, but some languages are better as a _first_ language than others. Personally I know different flavours of languages (my favourites are C, Scheme, Ocaml, Python. I dont like ADA, Java, Pascal, BASIC. I have mixed feelings about C++ (although its the language I'm most familiar with.)). I can say that I'm in a state of mind where learning new languages is not a problem.

I can also say that I really regret trying to learn C++ as my first language, the sheer size of the freaking language is intimidating. I ended up writing crappy C-code with the C++ SDL. I regret even more trying to learn VB afterwards. I gave up programming for several years. Then I got a reference manual to the C standard of '89 about 6 years ago. I still have it, I love it. From there it was easy.

Learn as many languages as you can but learn a small language first, thats my point.
 

der_kluge said:
I felt like that, in general, programmers are kind of a dying breed, since so much seems to be getting off-shored, but that web-development was a good start.

I have a similar perception of the situation in the UK too. At one time I would have cheerfully recommended that people go into programming - its a fun, creative job which is well paid, whats not to like? After the last couple of years job security seems to have taken a complete nose-dive though :(

I still see a big future in hobbyist programming though - web development (especially with XSL and CSS2 has a very low barrier to entry and you can produce fun things and share them with your mates. Java is quite a nice language to learn and can get you started on thinking in some OO concepts from the very beginning, which might be better than starting from a procedural language POV (I wouldn't know because I'd had over a decade of procedural programming before OO really started to become important, but I liked the Java that I learnt in 1994-5. I don't know how much it has changed since then).

Cheers
 

Into the Woods

Remove ads

Top