General Question

pplufthesun's avatar

How do I get into programing?

Asked by pplufthesun (591points) January 20th, 2008

Currently, I am 16 years old and want to learn how to program.What programing language should I learn? I have asked this question on numerous forums and gotten the same answer,python. I want to learn. I would really like to learn, but I just do not know how to use what I learn and how. What should I do if I want to begin and I mean from the very basics of programing?

Observing members: 0 Composing members: 0

11 Answers

segdeha's avatar

Python is a great choice as a first language. It was designed as a teaching language, so it’s relatively easy to learn, and it allows for a variety of programming styles (functional, procedural, object-oriented) so you have room to grow as you learn more. It’s also available on all major computing platforms (Windows, Mac OS X, Unix) so you already have a platform to get started.

There are as many ways to get into programming as there are programmers. I guess it depends on your learning style. If you’re on a Mac, you can open up a terminal window and just type python to enter an interactive shell where you can type in simple Python commands and see the result.

There are gazillions of tutorials on the ‘net for Python (and pretty much every other programming language). My suggestion would be to get an interactive shell going and just start playing around, then follow-along with some tutorials as a way to start learning some of the concepts.

deathfrombelow's avatar

Python and Ruby, chose from either there are huge communities for each, and they are both the easiest to learn in my opinion

phoenyx's avatar

I’d start with the python language website. I don’t know python myself, but the Beginner’s Guide page looks pretty good.

If you’d like to try out Ruby (as deathfrombelow mentions), the Try Ruby site can give you a taste of what it’s like.

aaronblohowiak's avatar

The above are all pretty good. This is the best: hackety hack by the incredibly _why the lucky stiff. it will teach you programming in a really fun and fast way—interactive programming from the very beginning. Books are for old people and boring kids.make something!!

segdeha's avatar

Also, here is a Python tutorial written by Guido himself.

TheKitchenSink's avatar

Python is definitely a good option, learn from other people’s scripts, etc. Of course, some people just can’t code. I’d love to, but I don’t have that kind of mind. I worked at it a lot, but I was too impatient at everything…

cwilbur's avatar

Python’s a good place to start. So’s Ruby. So’s Perl. So’s C. So’s Objective-C. So’s Haskell. So’s Lisp. So’s Scheme.

The key thing that you seem to be missing is that you need to find a project or problem that interests you, and solve it. Programming is not an end in itself – it’s a means to an end. Why do you want to program? What do you want to accomplish?

Your question is like asking “Hey, I want to be a carpenter. What tool is best?” You’ll get all kinds of answers – hammer, band saw, disc sander, table saw, drill press. The thing is, they’re tools, and the important thing is what you decide to do with them in the end.

segdeha's avatar

@cwilbur, I like your suggestion of first asking what you want to accomplish. If you have something concrete to work on, you’re more likely to be motivated to stick with it through the initial learning curve.

However, unlike carpentry where each of the tools you mentioned are designed to do something specific, pretty much any programming language can be used to solve pretty much any problem. But, some of them are much easier to learn, set-up, etc. So, it’s quite a valid question to ask, “Which programming language will let me get started quickly and start learning the basics?”

cwilbur's avatar

But not all programming languages are equivalent, or there wouldn’t be so blasted many of them. It’s the “pretty much” bits in your statement that hide the critical details.

If you don’t believe me, try writing a web application in FORTRAN or COBOL. Or try writing a scientific or financial data processing script in C. Or try writing an operating system in Visual Basic. Or try writing a quick and dirty desktop application in PHP. All those languages have sweet spots, but if you try to use them outside their sweet spots, you wind up with more frustration than success.

And the question of “which language will get me started quickly so I can learn the basics?” is, I think, the wrong question to ask, because it completely ignores the type of problem you want to solve and the expressive power of the language, some of which may only be available to experts.

In the end, competent programmers will learn a dozen languages, all of them with different sweet spots. There is no perfect first language (although some are better than others). Pick a project, then pick a language that suits it, then dig in. You’ll eventually need another language, and you’ll learn it then. Trying to pick the perfect language before you start, without any inkling of what projects you’re working on, is the sort of analysis paralysis that will keep you from accomplishing anything until you get rid of it.

segdeha's avatar

OK, points taken. That said, Python still makes a great choice as a first language because of its versatility (name a problem it would be ill-suited for), expressiveness, platform ubiquity, and relatively shallow learning curve.

aaronblohowiak's avatar

cwilbur: i disagree entirely. Java, for instance, would be a horrible first language to teach someone; too much syntactic jargon (that becomes / enables powerful features that you can’t comprehend until you know what’s up.)

Learning what programming is all about (system modeling with rigorous language) lays a good foundation on which to explore the depths.

Personally, i think the best way to learn how to program is to learn how really old simple processors work, then move to assembly and then c and then higher-order languages… IF you want to be a strong programmer. However, i don’t think that you should start on that track until you have your feet wet and can get a sense of what it means to program in general.

For “getting your feet wet”, i think the language should be a) accessible (sorry, erlang!) b) common c) practical.

BASIC is not a bad way to go, and you can even tinker with it on BASIC stamps to make little robot projects and such.

But like i said, real programmers have at least some grasp of each level in the system, from the cpu to the virtual machine.

Answer this question

Login

or

Join

to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
or
Knowledge Networking @ Fluther