General Question

antimatter's avatar

Is there any easy programs to learn basic programing?

Asked by antimatter (4429points) July 13th, 2015

My fifteen year old son want to learn programming, I have no idea what program to use.

Observing members: 0 Composing members: 0

11 Answers

gorillapaws's avatar

I suggest Python as an excellent first language. It’s a “clean” language that hides a lot of the nasty details of some of the more “low-level” languages, allowing the first-time programmer to focus on the fundamentals of programming. It’s used in web development and for running programs on your own machines too.

MIT has a free online intro to programming course that’s taught in Python.

LostInParadise's avatar

I agree with @gorillapaws. Start with Python. It is now the most widely taught programming language, and with good reason.

1. It is free and easy to download
2. The syntax is very simple. You can learn the basics in a week.
3. It is easy to write code that is compact and easy to follow.
4. There is good documentation on the Web that is also free.

ARE_you_kidding_me's avatar

Honestly, plain coding is boring as shit starting out. Get him one of these
The arduino “C” language is easy to learn and there are plenty of examples all over the web to help him get started. It’s also more interesting to have your code do real world things with hardware.

Stinley's avatar

I asked someone at the university I work at for some ideas for my daughter who is interested in computing, specifically ethical hacking. This is part of his reply that I think might be useful for your son also (I don’t understand all the words but maybe he will!):
”- use linux (vmware player is free and allows for a self-contained linux OS running inside a sandbox)
– Try a raspberry pi. This runs linux too, so it’s great for the first item as well. The website has lots of activities for kids.
– If she has any interest in embedded devices, look at arduinos and android development environment for its vitalised phone platforms.
I’d also recommend maybe looking at www.hackthis.co.uk. Don’t be put off by the apparent cavalier (even illegal) feel. It’s all just flavour. In reality it’s a very well documented set of exercises that go from basics to very complex pen-testing techniques.”

LostInParadise's avatar

Python can be used to program both the Raspberry Pi and Arduino devices. I personally do not have the patience for fiddling around with hardware.

One thing I like about Python is how quickly you can see results. Fire up the program and write 2+3 then carriage return and the program writes 5. If you want to write a hello world program, write def HelloWorld(): on one line and print(“Hello, world!”) on the next. Then whenever you enter HelloWorld(), you will get a “Hello, world!” message. Granted that is not much of a program, but for the first few minutes of exposure to programming, that is not too bad.

whitenoise's avatar

Have a look at scratch. It is an MIT project that is getting kids to program, simple video games for instance, quite quickly.

https://scratch.mit.edu

From there he can go to more complex languages.

Scratch comes with a whole community in which kids share their projects. My kids love it.

ARE_you_kidding_me's avatar

Raspberry pis are specifically designed for this but in order to understand the hardware it is advisable to start with something simpler like an arduino. IMO if you don’t know at least something about hardware you should not be a programmer.

jerv's avatar

The real trick of programming is the design, not the actual coding.

Once you know what you want to do and what needs to be done to accomplish that task, it’s relatively trivial to punch out code that will do it. However, you have to know what it is that needs doing and be able to break that task down into a set of instructions that the computer can understand. Wrapping your mind around the way computers “think” and being able to translate your desires into a logical flowchart is the hardest part of programming.

Computers don’t have the common sense that we humans do, and they definitely are not mind-readers; they do exactly what you tell them to do, and rely on the programmer choosing their words carefully to make sure that what they tell the machine to do is actually what they want. A person may know to not divide by zero, but a computer doesn’t, so it will try anyways and fall over. Of course, if you explicitly tell it to not try dividing by zero, it will obey, but you have to remember to tell it. They also can only really handle small steps at a time; though they can take a whole lot of small steps really fast, a programmer has to break things down into those small steps before they can start to code.

Every language has that fundamental nature, so regardless of which language one learns, they must be able to understand a flowchart and be able to break tasks up into small enough chunks to be able to be turned into code. Trying to learn the logic at the same time you are learning a language and it’s syntax is a bit daunting, so I would say that it would be easiest to separate those two and first spend some time learning the logic underlying all computer programming.

After one has learned to do that, then they are ready to take that knowledge and start putting it into “words” in the language of their choice. Personally, I’d go with Python myself for reasons that @LostInParadise mentioned, but I have to say that @ARE_you_kidding_me is correct in point out that it’s more interesting to see your code actually do something. And since most RepRaps use Arduinos, it would allow one the chance to see their code truly take substance as their program makes a tangible object.

Response moderated (Spam)

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