Is easy to learn programming ??

in your opinion it is easy to learn someone to programming? Generally it is something that anyone can learn easily; or you must have mathematical mind for example. im asking because i want to learn to programming and i have start with c++ , and i have difficulties to think how to make a program that i want?? i have started with c++ because if i learn it i ll be able to understand and other languages. thanks

I suggest you get some tutorial materials related to the Arduino that have example programs. The best way to proceed is to study each line of a program until you're sure you know why it's written the way it is. Then think of a modification, and try to program that yourself. When you can't figure something out, come ask on the forum.

Programming, like almost everything, is best learned by example. I got my 9 year old grandson into arduino this way.

Do you want to learn how to program or how to program an Arduino family microprocessor? Personally, I think most students find C++ harder to learn from the outset than plain C. Also, you can do a lot with C and the Arduino. Start with C, buy an Arduino Uno (or Nano), code some of the examples provided by the Arduino IDE and get comfortable with C. Later on, move into the OOP language and C++. That's probably an easier path.

Thinking Like a Programmer

Have you seen the State Farm commercials where the car wash company returns the cars to customers with the soap suds still on the car?

The company washes the car, but it didn't rinse it. This is a perfect metaphor for computer programs.

Computers, like that car wash company, are very very literal. They do exactly, and only, what you tell them to do; they do not understand implicit intentions. The level of detail required can be daunting at first because it requires thinking through every single step of the process, making sure that no steps are missing.

This can make programming seem to be a tough slog at first, but don't despair. Not everything must be specified--only what is not something the computer can already do. The header files and libraries that come with your compiler (for example, the iostream header file that allows you to interact with the user) provide a lot of pre-existing functionality. You can use websites like http://www.cppreference.com or our own function reference to find information on these pre-existing libraries of functionality. By using these, you can focus on precisely specifying only what is unique about your program. And even once you do that, you will begin to see patterns that can be turned into functions that wrap up a bunch of steps into a single function that you can call from everywhere. Suddenly complex problems will begin to look simple. It's the difference between:

Walk forward ten feet
Move your hand to the wall
Move your hand to the right until you hit an obstacle
...
Press upward on indentation

and

Walk to door
Find light switch
Turn on light

The magic thing about programming is that you can box up a complex behavior into a simple subroutine (often, into a function) that you can reuse. Sometimes it's hard to get the subroutine done up just right at first, but once you've got it, you no longer need to worry about it.

You can go here to read more about how to think about programming, written for beginners.

xoustoulios:
in your opinion it is easy to learn someone to programming? Generally it is something that anyone can learn easily; or you must have mathematical mind

It depends how old you are. Logic and order are more important than a mathematical mind. Computer programmers should be forcibly retired at fifty, which rather suggests I should have stopped long ago.
If you haven't the faintest idea, you might have a look at an interactive system called Scratch. My grandson uses it. Just one hour will suffice, then look at the examples that come with the Arduino IDE, and build up from there.

Math is not important at all for about 90% of general programming tasks, for the rest 10% smart people have already written code that you can reuse.

Also, for a complete beginner I would probably recommend starting with something much simpler then C/C++ (Python?).

Perhaps you should try doing some stuff with Rasperry Pi instead first? Its pretty much a complete computer, which you can write programs for in higher level languages. It also has more GPIO then an Uno board and is really good for most beginner projects.

Did I already say you should try learning Python instead of C/C++ ? Its gonna teach you basic programming logic before you can dive into Arduino and microcontrollers.

xoustoulios:
in your opinion it is easy to learn someone to programming? Generally it is something that anyone can learn easily; or you must have mathematical mind for example. im asking because i want to learn to programming and i have start with c++ , and i have difficulties to think how to make a program that i want?? i have started with c++ because if i learn it i ll be able to understand and other languages. thanks

Yes, it is generally easy to learn programming. In particular C/C++ (especially as implemented in the Arduino environment) is an easy language to learn. The Arduino software comes with many examples - start with the Basic set. Just follow what each line does, then change the behavior by changing the code. That's programming!

Programming in general is a way of thinking. Doing and practicing that kind of thinking improves skills. Just reading about it ... not so much, but that's fun too! But load up the examples, modify them by hand, and run them on an arduino (or an RP, or whatever you have. But this is the Arduino forum, so you will mostly find Arduino help here.)

There are lots of details and different paths you can go down - that's why programs can do so many things. Get a good book to learn those details. I often recommend Beginning C for Arduino by Jack Purdum. It's written with a bit of math, but you can take small bites, and work through the questions at the end of the chapters. Competence comes quickly when you do. It's for sale at Barnes and Noble (and Amazon too, I think.)

Good luck, and HAVE FUN!

BillHo:
Thinking Like a Programmer

@BillHo, your very useful Post is just the sort of thing I had been hoping to draw out in my Thread The Underused Brain. I hope you don't mind if I draw on it.

In addition to what @BillHo and others have written it seems to me important to recognize that the concept of "programming" and "programming languages" are two different things.

Obviously you cannot program without using a programming language. But if you know how to program you can pretty much do it in any language if you have the "book of instructions" for the language beside you. It is not like learning a spoken language where you have to remember details instantly while you converse with someone.

The different programming languages all have their idiosyncrasies - C likes {}. Python like white-space.

The problem the beginner faces is that s/he must simultaneously learn the details of his/her chosen language as well as the concept of writing a program. If you don't get the details right the program won't work even if you have the concept right - and vice versa.

The Thread planning and implementing a program may be a useful example of a non-trivial (well slightly) Arduino program.

...R

xoustoulios:
in your opinion it is easy to learn someone to programming? Generally it is something that anyone can learn easily; or you must have mathematical mind for example. im asking because i want to learn to programming and i have start with c++ , and i have difficulties to think how to make a program that i want?? i have started with c++ because if i learn it i ll be able to understand and other languages. thanks

Yes, it is something anyone can learn. Every single person who has every programmed found it difficult and strange at first. It is a different way of thinking, and is strange at the beginning. But, if you start with very small projects, and build up your knowledge, you should have no problem. We have all had difficulties along the way, and still do, which is what keeps it interesting.

Don't start with something too difficult, and you should have no problem. C++ is a different way of thinking than C, so I would start with C++ since all modern programming languages are similar to C++, but not similar to C (that is, modern languages are Object-Oriented).

Generally it is something that anyone can learn easily; or you must have mathematical mind for example

You have to have a logical mind, this is NOT the same as mathematical.

There are many languages and perhaps the simplest introduction is one of the graphical programming languages like Scratch.

However, for an embedded hardware language the one that comes with code bug is very good. There is no need to actually have a code bug, just use the free on line emulator. It might just get you in the programming mind set.

I find it hard to understand the logic for moving a Thread about Programming out of the Programming section of the Forum.

This is at least the second time it has happened. My Thread The underused brain ? was also moved

IMHO these things should stay in the Programming section where they will be seen by people using that section.

Moving Threads out of the Programming section just because they don't have code in them is a far too narrow interpretation of the purpose of the section.

Why would anyone think of looking in this "General Discussion" section when "Programming" is in their mind ?

I did not even know it existed until I followed this Thread.

...R

thank you all for your answers ,it was all interesting!

I think... Programming is like swimming. Almost anyone can learn enough that they wouldn't drown if they fell into a pool. Most people can learn several strokes well enough to do a few laps of each in an full-sized pool. A minority of people will put in enough effort, and/or have enough talent, to swim competitively. Rather small numbers will be world-class competitors.