I want learn a little computer programming..where to start?

Thought I would ask Smogon this question since we seem to have a lot of academically oriented people. I'm interested in learning the basics of computer programming. I know this is really general, but I'd like to get an idea of how to create a website, basic programs, etc..

Of course, I have no idea where to start. I've never been introduced to computer programming before, and I don't even know what the popular languages are. Could someone give me some directions/advice? Thanks :)
 
In my opinion the best way to start to learn to program is to come up with a project. It should not be an extremely complicated project, but it's also not really that important that you ever complete it. The idea is to simply to get you to start asking specific question regards to how to certain things. "Just doing it" is challenging, but yields incremental results/feedback. Reading about it is just plain boring.

As far as the language? Doesn't really matter. Around here, though, you'll probably get pointed towards python, and since that means there will be people here who use that same language it might not be a bad choice.
 
If you use Linux or OSX, I'd say Bash shell scripting's a good way to learn the fundamentals of programming, and also get something you can straight away use practically.

It won't, however, cover object-oriented programming. These days most medium to large programs are OO, so 'getting' it is key (it was a long time before I really understood the point of it, and still I find OO code hard to comprehend). Also most bash scripts are small, so it won't teach you how to handle big projects.

On Windows there's no one dominant scripting, like shell scripts on *NIX. Batch files are very limited, vbscript seems somewhat popular but is a BASIC variant so maybe not the best start, and Powershell is rather new and I know very little about it. You can run bash on Windows via cygwin but the directory structure is a bit weird.
 
I wouldn't recommend Bash shell scripting (or mIRC scripting for that matter, since a lot of Smogon folk seem to have picked it up from there). Bash has a lot of idiosyncrasies, as well as only one datatype (the string). Not the best environment to learn fundamentals.

I would recommend a language like Python to start out with.
 
For some godforsaken reason, we have to study GNU Octave (MATLAB freeware alternatice) IN A MOLLECULAR BIOLOGY COURSE, with absolutly no base knowledge.
My only advice: don't start with it. Just stay a mile clear of it.
 
I took programming my freshman and sophomore year of high school, but I've forgotten just about everything we did C# and C++ (I think lol) and it wasn't that hard to learn, I just spent more time surfing the internet than learning, yeah I'm a bad student, what of it? But I googled a tutorial there and its starting to come back to me. There are various websites you can sign up for free and learn it, depending on how good you are at learning new things, it may or may not be difficult. I hope I helped and whatnot. Also, popular languages for making games and such is Java, but I have no idea how to do that, but likewise there are probably tutorials on google.

One thing I should probably mention, is that C languages require a program to run the code (I forget the real term, i think its debug??) and I learned using Visual Basic, which you could probably find on the internet (or some freeware similar to it).
 
Thanks for the info. I've decided to start with Python. Someone suggested to start with a project earlier. I think that's a good idea to maintain my interest. I'd like to create a website for my school's writers club. Shouldn't be too difficult (forums, links to showcase writing, etc). Is there a program I should use for this?
 
I took programming my freshman and sophomore year of high school, but I've forgotten just about everything we did C# and C++ (I think lol) and it wasn't that hard to learn, I just spent more time surfing the internet than learning, yeah I'm a bad student, what of it? But I googled a tutorial there and its starting to come back to me. There are various websites you can sign up for free and learn it, depending on how good you are at learning new things, it may or may not be difficult. I hope I helped and whatnot. Also, popular languages for making games and such is Java, but I have no idea how to do that, but likewise there are probably tutorials on google.

One thing I should probably mention, is that C languages require a program to run the code (I forget the real term, i think its debug??) and I learned using Visual Basic, which you could probably find on the internet (or some freeware similar to it).
IIRC .NET Framework is the something you need that runs C code, if not, then I must be thinking of something else. I recall that Java and C# are pretty much similar on the basic level (i.e. uses the same primitive data types, both are object-oriented IIRC).
 
Please don't post in this thread if you have no clue about what you are talking about. There is no group of languages called the "C languages" -- there are distinct languages, C, C++, and C#. C# needs .NET. C and C++ run natively on the machine, and do not need any runtime framework.
 
Isn't C++ at least very nearly a superset of C? Most pure C code will compile fine as C++, though there's one or two (admittedly commonly used) statements that will error.

You may be right that Bash isn't the best thing for general learning. I didn't learn on it, I learnt on RM Basic (very similar to BBC Basic) way back when. I mainly suggested Bash because of the utility (for Linux users at least).
 
The logic in programming is the most important part. You can really switch to any language with relative ease once you learn one. I'd never used C# in my life before, but had some experience with Python, C, C++, and Java. I am now finishing up a game programmed in C# using Microsoft's XNA framework which runs on Xbox 360 and Windows. Much of it involved me Googling to figure out the specific syntax and using the logic I'd learned using the other languages.

Python was my first language and it helps you learn to code in an easy to read manner by requiring you to code in an easy to read manner which is quite nice!
 
Please don't post in this thread if you have no clue about what you are talking about. There is no group of languages called the "C languages" -- there are distinct languages, C, C++, and C#. C# needs .NET. C and C++ run natively on the machine, and do not need any runtime framework.

I just called them 'C languages' because they all have "C" at the start of their name. =/
 
Firestorm said:
The logic in programming is the most important part. You can really switch to any language with relative ease once you learn one.
I don't think that's strictly true, because some languages have radically different paradigms. That's why chaos, when somebody asked this question a while ago, suggested that everyone learn C, Python, and Haskell (I think that's what he said) because of their different styles and paradigms.

Me, I'd recommend C, Scheme or ML, and Prolog, but that's just me.
 
Back
Top