To all the programmers in the crowd...

I've been thinking of taking up programming again. I did some in high school, mostly Perl, with a TINY bit of C, and I generally enjoyed it and was pretty quick picking it up. That being said, high school was a long time ago, and it has been a good nine years since I've done any programming at all. So, I'd be learning basically from scratch.

I have two main questions here, and I know from time spent in the past here that several of you folks are fairly accomplished programmers, so I thought I'd ask it here.

1. What programming language should I start with? I don't really want to continue with Perl, I think. I'd like something relatively flexible but also quick to pick up. I'm not looking for the world's most powerful language, more something I can create simple applications in, that will also serve as a good springboard for me learning other languages down the road.

I always enjoyed C and wished I spent more time with it, so I was thinking of going that route. Then there are the many C derivatives - should I start with C and then consider picking up C++ or C#? I've also heard a lot of good things about Python. PHP is a little too exclusively web-focused for what I'm looking for. Ruby also seems interesting.

I would probably prefer something open source, making me think Python or Ruby would be best. But are they good languages to start with?

2. Is it worth trying to teach myself how to program, or should I take on a class or seek out a tutor? A class has limits, of course - I would be limited to my work/roller derby schedule, my budget, and what classes are being offered. Evening classes don't always have the best selection, unfortunately. How helpful have you found taking classes, versus just grabbing a couple of books and trying to learn from scratch?

I know that question is heavily dependent on my own study habits, the quality of the classes available, etc. I'm not expecting a hard yes or no on this one - just general thoughts.

Thanks!
 
I think that C++ is pretty easy to get into, it's not too hard. I have some programming experience myself, and found that the easiest to learn. Python is pretty good as well. Learning yourself is always a good way to go because you can experiment and go at your own pace. If you get stuck, there is always Google to help out.
 
What's wrong with Perl? It fits your criteria -- quite flexible, also quite quick to pick up. A bit of a personal anecdote, when I was in college and received an assignment in algorithms or modeling or proofs that I could do on a computer I would, despite knowing most languages, always do it in Perl because it was quick and easy to do just about anything in it.

If you're interested in learning C or a derivative, go with C. C continues to influence language development today in terms of syntax and design, and it is also quite simple -- C++, on the other hand, is extremely complex. However, once you know C, it's very easy to learn C++ despite its extreme complexity. Best of all, there are a number of really good and free "teach yourself C" books/lessons on the internet and, provided you're interested in learning, they actually work.

Python is a good choice too. So I'd say Perl, Python, or C. Very much no to the morass that is C++ though.
 
I'm not sure what you might want to take in terms of languages, but one of the main benefits of taking a class as opposed to teaching yourself is that you obtain good habits faster/don't get bad habits (assuming you have a half-decent teacher).
 
C is a very good language to learn in my view, purely because it will rape your face when you make mistakes instead of spewing incomprehensible compilation errors.

When you fuck up in C, you tend to not make the same fuck up twice.
 
I don't have anything against Perl, I just want something different this time around. On a personal level I'd rather feel like I'm doing something from scratch, rather than trying to continue my classes from almost a decade ago.

From what folks have said thus far, I think C might be the way to go. Any suggestions on good resources for learning C? What's a good compiler?
 
C is basically high level assembly language. Go with Python if you want both a pleasant and powerful experience!
 
C: the power and speed of assembly combined with the maintainability and readability of assembly.
 
This thread embarasses me

The only programming language I know is HTML if you'd even call that programming. I'm proficient in flash because of a stint on newgrounds. I think I should learn another language to save myself the embarrassment.
 
C: the power and speed of assembly combined with the maintainability and readability of assembly.
I can't tell if you made a typo or making a dig at C =(

I do think C is a good way to go. You already have the basics of programming down. C's a good language to know and you can easily transfer your knowledge over to Java which everyone seems to want to use for some godforsaken reason.
 
i'd like to drop in my two cents. it's good if you're going with C, a lot of courses stress on using C as a starting point. however i really suggest you give python a shot. it's very easy to learn, unambiguous, and the syntax itself stresses on ingraining good programming habits (mandatory indentation, for one).

if you're adamant about C, a good suite of compilers for windows users is minimalist gnu for windows. you might also want to install msys alongside the same, the links for both these downloads is available on the site.
 
woah woah woah woah

lazaruslong came back!!??

oh also to reply to the thread, imo python is a very nice language to get you into the swing of things, in particular good object-oriented practices. you dont need to focus on the low-level stuff and you can still build some quite pleasing stuff. then i'd say continue learning C and combine it with your python knowledge when you start to learn C++, it will be very useful. from there you will be able to use most imperative languages (C#, java & co) and you can start playing around with declarative languages like lisp and haskell. the world is your oyster!
 
Back
Top