• 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

Rackhir said:
I would put in another vote for SQL no matter what platform you are on or what database software you use, eventually you seem to bump into SQL. Everything seems to at least talk to it, if not be able draw on its syntax and commands.

Heck, I'm a sysadmin and have to do a decent amount of SQL queries here and there when needed. SQL can be fun to learn even at home. You just need to make it applicable to something that interests you. Make a DB for a CD collection, book collection, etc.
 

log in or register to remove this ad

der_kluge said:
Nonsense. I think bad code comes from poorly managed projects, and programmers who like to cut corners. Good program design is language independent. I've seen horrible C code, and I've seen beautiful, efficient, solid VB code.

And I've written both of them :)

Also the reverse, but considering how out of practice I am with C (while writing VB.NET every day), any non-trivial C I wrote today would probably be awful...
 

Hey, this is steven, der_kluge's nephew.

almost all my experience is computers is at the votech class I'm taking at high school. its a 2 year class (second year is optional). the first year is building, and trouble shooting computers. the second year is networking. from what I know, you build and maintain networks, and stuff like that. then part of the year your in it, you get to go 'on the job training'. I enjoyed building my computer, and loading everything on it. I know a little about overclocking. I've over clocked my computer a little bit.

I've got 2 more years of high school left, so what would be a few good classes that I should take, that are probably offered in high school (its a big school, about 1,300+ students, so they have a lot of classes).

I dont have much experience in programing. most of the 'programing' I have done, involved puting some programs on my graphing caculator. I know a little HTML coding, mostly the main stuff.

I like to play video games. it would be cool to make my own game, but I dont have any way of doing it.

I have enugh old computer parts laying around I could probably build a computer, and load linux on to it.

if anyone can tell me some good free programs or anything I can download to learn some of this stuff, and experiment around on what I like, that would be great.

also, I have no idea what half the stuff everyone is talking about. mainly the coding. like what is SQL, PHP, java, and everything else? whats the diffrence in all of them?

Thats all I can think of for right now. Thanks everyone

~St3v3n
 

Steven2k7 said:
I've got 2 more years of high school left, so what would be a few good classes that I should take, that are probably offered in high school (its a big school, about 1,300+ students, so they have a lot of classes).

If you're looking to a science or engineering major in college, and your school offers a course that leads to the AP computer science exam, and the person teaching it is even marginally competent, it's probably worth taking, if only because getting college credit for high school courses is a Good Thing. Other than that, there's just way too much variation to offer useful advice.

Steven2k7 said:
I like to play video games. it would be cool to make my own game, but I dont have any way of doing it.

Talk to some people who actually do this before you set your heart on it. By all reliable reports, programming in the video game industry is a very demanding job, where large amounts of overtime are expected (and it's debatable whether the pay is good enough to compensate for this).

Steven2k7 said:
if anyone can tell me some good free programs or anything I can download to learn some of this stuff, and experiment around on what I like, that would be great.

I'm a Windows/.NET guy, and mostly a web guy; probably the best free way to get started with that toolset is grabbing a free download of beta 2 of Visual Web Developer Express at http://lab.msdn.microsoft.com/express/vwd/ , which is more than enough to get you started with building web applications in Visual Basic.NET and/or C#.

Steven2k7 said:
also, I have no idea what half the stuff everyone is talking about. mainly the coding. like what is SQL, PHP, java, and everything else? whats the diffrence in all of them?

Hmm...

SQL is a database programming language, PHP is a web programming language, Java (and Visual Basic and C#) is a general-purpose programming language. C and C++ are (mostly) systems programming languages. ASP.NET is Microsoft's web development framework; you can use many different programming languages with it (though Visual Basic and C# are by far the most popular). Going beyond that level of detail requires more background than a post on a web forum can give, so here's a list of things to read, though a lot of this may be over the head of someone who's just getting started ...

http://www.joelonsoftware.com/navLinks/fog0000000262.html
 

drothgery said:
Talk to some people who actually do this before you set your heart on it. By all reliable reports, programming in the video game industry is a very demanding job, where large amounts of overtime are expected (and it's debatable whether the pay is good enough to compensate for this).

Okay, you've heard this before, but creating small games _for fun_, in your spare time, is not so demanding and possible. I'd rather be a garbageman than work with games professionally though.

drothgery said:
SQL is a database programming language, PHP is a web programming language, Java (and Visual Basic and C#) is a general-purpose programming language. C and C++ are (mostly) systems programming languages. ASP.NET is Microsoft's web development framework; you can use many different programming languages with it (though Visual Basic and C# are by far the most popular).

I'd go so far and say that C and C++ are general purpose language too because pretty much every single major application on windows (and lots of other operating systems), such as editors (Word etc), image apps (Photoshop etc),the big games (Quake, Doom, Warcraft etc), antivirus software (Norton Antivirus etc), web browsers (Firefox, Opera, IE etc), email-clients (Thunderbird, Outlook etc), music players (Foobar, WinAMP etc) etc, are all written in these languages.
 

Psionicist said:
I'd go so far and say that C and C++ are general purpose language too because pretty much every single major application on windows (and lots of other operating systems), such as editors (Word etc), image apps (Photoshop etc),the big games (Quake, Doom, Warcraft etc), antivirus software (Norton Antivirus etc), web browsers (Firefox, Opera, IE etc), email-clients (Thunderbird, Outlook etc), music players (Foobar, WinAMP etc) etc, are all written in these languages.

That's mostly because most applications in these categories are rather old, and it's much more difficult to rewrite an app from scratch than it is to add functionality to an existing one. C and C++ aren't particularly good for those tasks, but they were (in many ways) better than anything else that was available at the time. Now that VB.NET, C#, and Java are somewhat more mature, that's not really the case.

If Microsoft had the C# in Visual Studio 2005 twenty years ago, they'd've written Office in that, instead of C (and later C++, still later many wizards were written in VB, and it seems likely that much of the new functionality in Office 12 is being written in C#; certainly much of Visual Studio 2005 is written in C#, and there's as much VB.NET as C++).
 

Steven2k7 said:
if anyone can tell me some good free programs or anything I can download to learn some of this stuff, and experiment around on what I like, that would be great.

You can download and install Python here, if you want to try Python: http://python.org/ftp/python/2.4.1/python-2.4.1.msi (10 mb or so). Then you can fire up the program called "Idle" and code away, kinda like you type mathematical expression on a calculator. Screenshot: http://psionicist.online.fr/idlep.gif If you think this is fun you can check out a few tutorials: http://docs.python.org/tut/tut.html

Steven2k7 said:
also, I have no idea what half the stuff everyone is talking about. mainly the coding. like what is SQL, PHP, java, and everything else? whats the diffrence in all of them?

In short:

PHP, ASP etc are languages used to create more advanced webpage apps such as message boards, guestbooks. You can't use these languages to create programs (or well you can actually, but I dont know anyone who do that :))

SQL is a language to manage contents in a database. Check out www.amazon.com or www.wikipedia.org. When you search for something, its SQL that retrieves the data you want.

C, C++, C#, VB, Java, Python etc are regular programming languages you can use to create, say, programs or games. Without going into too much technical details you can divide these into two categories, both equally good:

languages good for "drawing". these languages are often hard to use and it takes a while to get a result, but the resulting program is _fast_. These languages are pretty unfriendly and its easy to "shoot yourself in the foot", its up to you to make everything work. These languages are often used for 3D-games where you really need speed and operating systems where you need reliability. They are also popular languages for those who wish to really understand whats going on when a program runs, because of their "low level". C and C++ are good languages for this.

languages good for "sketching". these languages makes it easy to create programs fast, but the actual program is usually slower than if coded in a "drawing"-language. These languages usually helps the programmer with (or hides) unfriendly elements from "lower-level" languages which is both good and bad. Good: Code written in these languages are usually easier to read (and write of course). Bad: the language wont teach/tell you whats really going on. You dont have the same control and sheer power in these languages. Python, C#, Java are good languages for this.

People have argued for decades what category is best to learn first, I think it depends on the person. A good analogy is photography: you can either learn it by getting an old, analog camera with lots of settings and take pictures the old-school way. Or you can get a cool digital point-and-shoot camera that sets the aparture and whatever it's called for you. In the end, its not the camera that makes the photographer :)
 
Last edited:

Background: I bought a TRS-80 in 1979 and was coding in Z80 assembler before I played much with BASIC. From there, I also tried out the Tandy Color Computer (6809E-based), the Commodore VIC-20, C64, Amiga {500,1200,3000}, PCs starting with 80286's, and so on. I've written assembler for all of the above, so I understand the low-level things. When the TRS-80 went on the fritz, I opened it up and unsoldered one of the 7474 ICs on the board to replace it. :) I don't remember how many times I replaced that motherboard -- twice? three times?

I took engineering classes at junior college (A/C and D/C circuit analysis, etc) and got bored with hardware. It was cool, but way too much like "work" for me. I switched to comp-sci and have never regretted it.

Like your nephew, my initial focus was hardware. I added 32K of RAM to my Color Computer by piggy-backing the RAM chips on top of the existing RAM chips, except for the CAS pin and the CS pin, running those over to an unused gate on a flip-flop that had to have its traces cut from the circuit board (Tandy had grounded all unused pins). But there wasn't as much variety in hardware as in software. With hardware, I was limited by the available technology, while software was virtually limitless in its potential.

I now own a consulting company. I spend a week or two a month doing corporate training (teaching OO topics, programming topics, Un*x system administration, and more) and I spend the rest of the month with little consulting gigs here and there.

My advice would be to have him get his feet wet in as many different areas as possible. Have him try hardware, including design, system engineering, drafting, radio frequency, and so on. And some software; really big topics right now are security (encryption, intrusion detection), networking in general, human interface engineering, and so on.

It would be really cool to get him an internship somewhere that would offer a taste of all of these. The FBI (here in the US) would be a good choice, or a defense contractor. Be aggressive: call the HR department and tell them you want to work for free (yep, no paycheck). That will get their attention. Then tell'em what your interests are and offer to work for free for 3 months (or 6 months or whatever you feel comfortable with). Once you've got your foot in the door, ask them for a reference and tell'em good-bye. If they liked your work, they'll offer you a job and you've already got the experience they want. If they don't hire you, you can say that you interned with the FBI, which is a nice thing to put on a resume'. :)
 

Steven2k7 said:
if anyone can tell me some good free programs or anything I can download to learn some of this stuff, and experiment around on what I like, that would be great.

Hey Steven

Here are the links for the files you need to get started with Java...

First you need the Java Development Kit (JDK), which includes the Java compiler and core classes.
Get it here: http://java.sun.com/j2se/1.5.0/download.jsp

You can also download the documentation at that page.

In theory you don't need more then the JDK. You write your code in notepad (or MS-DOS Editor, if you're really old school) and compile it from the command line (by typing "javac [filename].java" in the directory where you saved the file).
But I recommend using an IDE (Integrated Development Enviroment), where you can compile your code, run your code, search the documentation, debug your code and such by clicking a button. You should start with something simple, like BlueJ or Gel.
Get BlueJ here: http://www.bluej.org/
Get Gel here: http://www.gexperts.com/index.html
...or get the bundle with the JDK and NetBeans from the JDK download page (or get NetBeans from http://www.netbeans.org/). NetBeans is not the something I would recommend to beginners.

The Sun Java Tutorial is at: http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html

Good luck with it...
 
Last edited:

Steven2k7 said:
Hey, this is steven, der_kluge's nephew.

almost all my experience is computers is at the votech class I'm taking at high school. its a 2 year class (second year is optional). the first year is building, and trouble shooting computers. the second year is networking. from what I know, you build and maintain networks, and stuff like that. then part of the year your in it, you get to go 'on the job training'. I enjoyed building my computer, and loading everything on it. I know a little about overclocking. I've over clocked my computer a little bit.

I've got 2 more years of high school left, so what would be a few good classes that I should take, that are probably offered in high school (its a big school, about 1,300+ students, so they have a lot of classes).

Do you plan on going to college? If you don't then don't bother with much programming. I think it would be very difficult to get a programming job w/o a degree. Go with the networking stuff and learn linux. The most programming you will need is batch files and unix script files.
 

Into the Woods

Remove ads

Top