Best programming language for beginners?

Hello, From the community's experience what is the best programming language to learn for absolute beginner? EX. Python, java,c+

BASIC, of course.

Is that the name of the language?

I would start with JavaScript.

A very useful language that you can do a lot with, and see results quickly. It can stretch from very basic to very sophisticated (simple web pages to server side functionality like Node.js).

But if you want to program your Arduino, learning basic C++ would be a good start.

Any language you learn changes your next question from "how do I do this?" To "how do I do this in python/java/ruby/swift/C#/Perl/.......?"

Hello

My recommendation would be : Don't invest massive time in learning a particular language without investing Equal time as well into reading (and practicing) logic flow and algorithm. Also Understand the theory and the architecture of a computer and how a micro processor work, what is the memory and how it's used, what compiling means etc. that will come handy later on

You could start anywhere on line, like wikiversity's School of Computer Science first two topics or any computer science mooc like the one form harvard or MIT's open courseware on Electrical Engineering and Computer Science and many many more.

Be ready in your mind for a long process - go in steps. Once you have the basis, There are a number of languages in the market today and for general programing I'd say you have procedural languages (C, Pascal, Basic,...) and object oriented languages (C++, Java, Objective C, Swift, Python,...). If you have the theory clear in your mind, a language does not matter much and is not hard to acquire.

if you want to play with micro-controllers like arduino, you need to be close to the hardware and best high level languages are C and C++ where tons of documentation and libraries exist to help you out.

Thank you i will and i have been reading tons. Thanks

Good - that's the key (dont forget to practice too)

+1 karma as encouragement!

Thank you. I will!!

Don't forget FOCAL, in which the very first lunar lander game program was written (1969).

In researching the history of this popular game, and reverse engineering the code, I was fascinated to discover that the code block consisting of lines 8.10-8.30 is actually wrong. The error has no significant effect on the overall operation, so leaving that block of code out entirely is fine.

However, this code has been translated verbatim into several other programming languages and calculator languages, with the error left intact. Apparently no one bothered trying to figure out what it did.

01.04 T "CONTROL CALLING LUNAR MODULE.MANUAL CONTROL IS NECESSARY"!
01.06 T "YOU MAY RESET FUEL RATE K EACH 10 SECS TO 0 OR ANY VALUE"!
01.08 T "BETWEEN 8&200 LBS/SEC.YOU'VE 16000 LBS FUEL.ESTIMATED"!
01.11 T "FREE FALL IMPACT TIME-120 SECS.CAPSULE WEIGHT-32500 LBS"!
01.20 T "FIRST RADAR CHECK COMING UP"!!!
01.30 T "COMMENCE LANDING PROCEDURE"!"TIME,SECS   ALTITUDE,"
01.40 T "MILES+FEET   VELOCITY,MPH   FUEL,LBS   FUEL RATE"!

02.05 S L=0;S A=120;S V=1;S M=33000;S N=16500;S G=.001;S Z=1.8
02.10 T "    ",%3,L,"       ",FITR(A),"  ",%4,5280*(A-FITR(A))
02.20 T %6.02,"       ",3600*V,"    ",%6.01,M-N,"      K=";A K;S T=10
02.70 T %7.02;I (K)2.72;I (200-K)2.72;I (K-8)2.71,3.1,3.1
02.71 I (K-0)2.72,3.1,2.72
02.72 T "NOT POSSIBLE";F X=1,51;T "."
02.73 T "K=";A K;G 2.7

03.10 I ((M-N)-.001)4.1;I (T-.001)2.1;S S=T
03.40 I ((N+S*K)-M)3.5,3.5;S S=(M-N)/K
03.50 D 9;I (I)7.1,7.1;I (V)3.8,3.8;I (J)8.1
03.80 D 6;G 3.1

04.10 T "FUEL OUT AT",L," SECS"!
04.40 S S=(-V+FSQT(V*V+2*A*G))/G;S V=V+G*S;S L=L+S

05.10 T "ON THE MOON AT",L," SECS"!;S W=3600*V
05.20 T "IMPACT VELOCITY OF",W,"M.P.H."!,"FUEL LEFT:"
05.30 T M-N," LBS."!;I (-W+1)5.5,5.5
05.40 T "PERFECT LANDING !-(LUCKY)"!;G 5.9
05.50 I (-W+10)5.6,5.6;T "GOOD LANDING-(COULD BE BETTER)"!;G 5.90
05.60 I (-W+25)5.7,5.7;T "CONGRATULATIONS ON A POOR LANDING"!;G 5.9
05.70 I (-W+60)5.8,5.8;T "CRAFT DAMAGE.GOOD LUCK"!;G 5.9
05.80 T "SORRY,BUT THERE WERE NO SURVIVORS-YOU BLEW IT!"!"IN"
05.81 T "FACT YOU BLASTED A NEW LUNAR CRATER",W*.277777,"FT.DEEP.
05.90 T "CONTROL OUT";QUIT

06.10 S L=L+S;S T=T-S;S M=M-S*K;S A=I;S V=J

07.10 I (S-.005)5.1;S S=2*A/(V+FSQT(V*V+2*A*(G-Z*K/M)))
07.30 D 9;D 6;G 7.1

08.10 S W=(1-M*G/(Z*K))/2;S S=M*V/(Z*K*(W+FSQT(W*W+V/Z)))+.05;D 9
08.30 I (I)7.1,7.1;D 6;I (-J)3.1,3.1;I (V)3.1,3.1,8.1

09.10 S Q=S*K/M;S J=V+G*S+Z*(-Q-Q^2/2-Q^3/3-Q^4/4-Q^5/5)
09.40 S I=A-G*S*S/2-V*S+Z*S*(Q/2+Q^2/6+Q^3/12+Q^4/20+Q^5/30)

There is no such thing as a "best" language, without defining exactly what it is you want to do. I've used literally dozens of languages over the last 35 years. All have their strengths and weaknesses, and different languages are good at different things. Even now, I use a number of different languages, depending on what I need to do. On any given day, I might be working in c, c++, c#, Perl, Java, Javscript, HTML, CSS, shell scripts, or any of a half-dozen others.

Since you're on an Arduino forum, I can tell you that if you want to do something with Arduinos, very nearly your only choice is c++. Whether that is "best" or not, it IS what is available, and it will get the job done.

Regards,
Ray L.

BASIC, of course.

Basic - Never

The only language designed for teaching programming was PASCAL. But it was designed for noob's to learn the art of programming and there for (sadly) never became a really strong main stream language.

Of the ones in main stream use today the C/C++ is all but the only choice! C(sharp), python or very narrow languages focused on Internet applications,

Java (and NOT Javascript) is the only real alternative.

Mark

For absolute beginners to just get started, I'd say interpreter BASIC is a good choice.

It is simple and immediate. You can do things with it without writing actual lines of code. Trying simple things out is very easy.

Plus, as the students get experience they will also get an increasing revulsion to BASIC that will help them move on.
hey, it worked for me!

Python.

IMHO interpreted languages are easier for beginners.

Some time ago I would have said Ruby, but its support infrastructure is not as good as Python.

...R

I don't feel that BASIC is the best choice for a motivated beginner in the year 2017. Maybe it was in 1990 but no longer. Once you learn how to use BASIC you'll never use it again. Of course you'll learn the general concepts of programming from it but any language specific knowledge will just be thrown away. Decide on something you want to do with your programming skills and pick the best language for that application. Then you will have a goal to work towards instead of just flipping bits. In my life C++ and Python are the most useful. I'm forced to work with some others (Scheme, Windows Batch, Bash, PHP, HTML) but when possible I prefer to spend my time getting good at one or two rather than spreading it over a dozen languages.

Agree that it also depends on your target platform - Java for Android (with ability for a C/C++ wrapper), Swift and Objective C (and C/C++) for Apple, C# (and C/C++) for Microsoft

So while all major platforms have their preference, you can see they support C and C++ as well so that's not a bad choice to expose yourself to the world.

That being said - There was a study last year: 15 best paying programming languages in 2016 that put Java, Python, R, Objective C, Swift, C#, JavaScript, Perl, C++, SQL, Ruby on Rail, C, in this order of demand in the market - but starting with C and C++ to understand OO programing will get you on the right path

Taking the question literally, I would say Pascal is the best language for a beginner to learn first. Pascal bridges the gap between low and high level, reaches as far as object orientation and goes a long way towards deterring bad habits. Learning Pascal first, makes everything else much easier.

BASIC still has a place, despite the snobbery. The advantage is the immediate rewards which inspired so many of us to stay the course. Modern structured BASICs often come with OOP and a compiler of sorts. Apart from the near English constructs which make it so easy to learn, I honestly struggle to see much which distinguishes these modern BASICs from most other high level languages. BASIC remains popular for macro languages, rapid prototyping and there are still millions of applications in production use written in 'BASIC like' languages.

The shortcoming of BASIC is it is strictly high level and won't help much when you get to lower level languages like C/C++ The drawback to learning BASIC first is the bad habits it lets you fall into can be difficult to drop...And of course that snobbery.

Once you have a low level and a high level language under your belt, learning becomes more about design patterns, libraries and fashions. Whatever language you choose, the constructs are generally similar as there is a microprocessor with input and output underneath them all.

Python though...Is Devil spawn. Making indentation and white space syntactically significant sucks the very joy from life. I am pretty sure if I had been made to learn Python at school, I would have ended up with a completely different career.

MattS-UK:
Python though...Is Devil spawn. Making indentation and white space syntactically significant sucks the very joy from life. I am pretty sure if I had been made to learn Python at school, I would have ended up with a completely different career.

Tosh. :slight_smile:

If someone learns to use indentation with Python and then applies the same style in their Arduino programs it makes them easy to read. How many times do you see requests here for people to use the AutoFormat tool? People brought up on Python would do the indentation automatically. The only thing that Python does not require is the equivalent of the closing }

...R

Yes, definitely saddle completely raw beginners with structure and a compiler. What was I thinking?

GoForSmoke:
Yes, definitely saddle completely raw beginners with structure and a compiler. What was I thinking?

That must be why Arduino has been such a huge failure with people new to programming. Oh wait...

Taking the question literally, I would say Pascal is the best language for a beginner to learn first.

I studied Latin in school. It's great, Today I can speak it with absolutely no one. It wasn't until I was an adult before I learned another language that is actually used (Spanish) somewhere other than the classrooms where it's taught (is it even anymore?).

Chinese... tough language to learn, well, except for the billion plus who started there!

Jump in and learn a useful language based on what you may feel you want to do!

There are places like this where people will help self-starters wanting to learn. I'm sure I could even find a Latin forum if I really wanted!

Computer programmers like to stand behind the scary, fiery wall like the Great Wizard of Oz. Warding off folks, lest they discover what's behind all that fire and smoke.... just some dude pulling levers.