There are few things I find as fun and interesting as learning a new skill. Learning new information is great, and I read voraciously for that reason, but there’s something extra cool and fun and neato about learning how to actually do something new. Besides, everyone needs a hobby.
To that end, I’m looking to pick up a new skill or eight. First, I want to learn how to contact juggle (Google it if you haven’t heard of it, it’s so much fun to watch). I’ve found enough information on the internet about that that I feel confident in my ability to teach myself the basics.
There’s something else I want to learn as well: some sort of computer programming skills. However, I have no idea how to even get started in that. I am pretty computer literate when it comes to working in the XP environment, but once you get past a GUI I’m lost. Networking, SSH tunnel, SQL, mySQL, C#…it’s all Greek to me. I suppose I sort of want to teach myself a very basic, introductory computer science course, but I really don’t know enough to even get started. What do you guys think the best way to get into that sort of thing would be? I know I’m being vague, but I don’t know enough to ask better questions, and I figure that leaving it more open allows for a wider variety of responses anyway. I’d hate to narrow it down and ask my way out of something extra fun!
Just about everytime I wanted to learn a new skill I went and found someone else who did it and learned/apprenticed with them. Most people are willing to help you learn especially if you are willing to actually do something other than bug them about it. If you found it on the internet then I am sure you can find someone near you doing it. Worst thing that can happen is they tell you that they are not interested in helping you.
I’m on a perpetual quest to learn new things too, Soul. The ones I current have the itch for are woodworking, quilting, and gardening. You could try one of those.
Browse instructables.com for all sorts of ideas that could spark interest in new skills (a few projects on there got me interested in woodworking.)
Browse the non-fiction section of a library.
If you want to learn a computer code from scratch, start with Visual Basic. I learned on VB3 (then later 5 and 6 - skipped 4), but I think the current one is VB.net. It’s been a few years since I’ve done any programming, so feel free to laugh if that is out of date.
You could learn to program in C#. This language is a few years old, and it is very similar to Java and almost as similar to C++. C# was designed with object orientation in mind. Microsoft makes a C# compiler available with Visual Studio, and you can just download them for free, at least you could a year or two ago. Visual Studo is an Integrated Development Environment that has editors for writing code, a drag-and-drop design facility for the GUI, the compiler, and various other tools for debugging etc. It is a very neat system.
C# is built around the .NET (pronounced “dot-net”) framework, which is a layer of software between your C# program and the kernel and hardware, which includes various safety measures making it harder to illegally hack computers (or to misuse pointers and crash).
C# is an object oriented language (they almost all seem to be, more or less, these days). Object orientation means everything revolves around the idea of objects or classes. A class is a definition for what an object looks like, and an object is a thing created according to the definition in its class. Objects do what variables do - or what functions/routines/procedures do. That is, they have rolled together the idea of data and functionality. You can have variables - in an object, they’re called data fields. And you can have functions - in an object, they are called methods. Each field or method is either public or private. Private things are only accessible from inside the object. This means objects can safely contain methods (functions) and fields (variables), with you controlling the few connections between the inside and outside. This encapsulation makes it easy to keep things working right.
Jesse Liberty has written two very nice paperbacks about C#. One of them seems aimed a little lower, the other a little higher, but with a lot of overlap. Hunt them down and pick one.
Our local cc has tons of non-credit classes and seminars, ranging from computer skills, to various music classes for beginners, crafts, athletic stuff, etc.
C# is a very nice language, but it’s not really something I’d recommend for beginners. I strongly recommend Python as your first programming language. Here’s a sample for opening a file and outputting every line:
file = open("myfile.txt", "r")
for line in file:
print line
That’s certainly not a three-liner in C#, or many other programming languages.
This is pretty interesting stuff. I have to admit, Napier, some of what you said went a bit over my head. I think my first step, then, might need to be to learn a bit more about different languages and the basic concepts behind programming first
When it comes to learning concept of programming, I always recommend Chris Crawford’s little gem - You Should Learn to Program. It is written for generic BASIC way back in 1985, but a lot of its concepts (such as indirection for example) still applies.
So you’ve got juggling and computers. Need six more? I’m always pushing meetup.com. It’s free, though some groups may have a membership fee. There are lots of possibilities in a place like Atlanta.
If you’ve never programmed before, C# might be a bit much, if not expensive. If you want the satisfaction of seeing the results of your programming I’d suggest something like Game Maker 7.0 (yoyogames.com). It’s a free drag and drop game software development package. The website offers several tutorials to cover the basic features.
Have you considered building models? Find your local hobby store, pick up a Tamiya kit of whatever you like, some glue, some paint, and have at it. Find the local chapter of IPMS (International Plastic Modelers Society) (Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos) and start dropping in at their meetings. Most modellers are friendly and happy to talk.
Ruby might be a good start too, but I haven’t really used it so I can’t speak to it. I definitely wouldn’t start with C# or Java as a first language.
Also a good choice, but HTML isn’t a “language” per se, and PHP is really a very limited scripting code that has been overextended, IMHO. The code I find from people who only know PHP tends to be pretty sloppy (ditto for the previous generation of people who grew up writing whole applications in sed and awk on Unix boxes); better to start with a real coding language first.