Python is a great way to start programming. Congrats on starting!
However, I'd suggest following a university course (like stanford's cs106/cs107 etc) and doing the weekly assignments. That way you'll learn concept after concept rather than just random programs like prime factors.
Thanks for the tip! I'm trying to get some good online learning courses to look at (learning on one's own can be so directionless). I'll definitely look at it, thanks again!
Another introductory course is Harvard's CS50[1] which covers a lot of subjects: Programming concepts, C, basic algorithms and data structures, recursion, basic web programming with databases, a glimpse of operating systems and computer architecture. And the instructor (David J. Malan) is great!
And I second Stanford's CS106A/B[2] (CS107 is much harder if you're just learning how to program) - it only teaches in java, but it has more depth than Harvard's, especially CS106B which covers a lot of algorithms and data structures.
I will second the recommendation on python for a beginner. It is my favorite language to teach to people coming from a non-technical background, as it has a very small number of syntax rules. I'm currently attempting to teach ruby to a crop of students whose backgrounds range all over the place. While I love the language, I'm constantly butting heads with the 'beauty' of ruby, which was traded away for consistency of syntax. You _can_ use explicit parentheses and return statements in ruby, but I challenge you to find any instructional text which does. Python will give you fewer headaches to start.
That said, I'm going to disagree on the recommendation of starting a university course. We have to be clear: programming is not computer science. Some of the best computer scientists often write programs with poor implementations, and some of the best programmers I know have no formal computer science education (they tend to pick it up along the way, though). You should absolutely engage in structured learning, but understand that university-level CS may be not be in line with your goals.
Don't take this as a condemnation of CS. I have a background in it and enjoyed it immensely, but after four years of it I decided I simply wanted to be a programmer instead.
I also recommend following a tutorial, it's really hard to start coding on your own, you will definitely get bad habits or a very shallow, incorrect understanding. I know this from long experience.
7 comments
[ 8.6 ms ] story [ 56.1 ms ] threadAnother introductory course is Harvard's CS50[1] which covers a lot of subjects: Programming concepts, C, basic algorithms and data structures, recursion, basic web programming with databases, a glimpse of operating systems and computer architecture. And the instructor (David J. Malan) is great!
And I second Stanford's CS106A/B[2] (CS107 is much harder if you're just learning how to program) - it only teaches in java, but it has more depth than Harvard's, especially CS106B which covers a lot of algorithms and data structures.
[1] http://cs50.tv
[2] http://see.stanford.edu/see/courses.aspx
Will definitely look at these courses. Muchas gracias amigos
That said, I'm going to disagree on the recommendation of starting a university course. We have to be clear: programming is not computer science. Some of the best computer scientists often write programs with poor implementations, and some of the best programmers I know have no formal computer science education (they tend to pick it up along the way, though). You should absolutely engage in structured learning, but understand that university-level CS may be not be in line with your goals.
Don't take this as a condemnation of CS. I have a background in it and enjoyed it immensely, but after four years of it I decided I simply wanted to be a programmer instead.