Go Down

Topic: Best programming language for beginners? (Read 2713 times) previous topic - next topic

tjones9163

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

jremington


tjones9163


BulldogLowell

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/.......?" 


J-M-L

#4
Apr 17, 2017, 04:24 am Last Edit: Apr 17, 2017, 04:32 am by J-M-L
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.



Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

tjones9163

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

J-M-L

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

+1 karma as encouragement! 
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

tjones9163


jremington

#8
Apr 17, 2017, 05:27 am Last Edit: Apr 17, 2017, 05:53 am by jremington
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.

Code: [Select]
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)

RayLivingston

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.

holmes4

Quote
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

GoForSmoke

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!
Nick Gammon on multitasking Arduinos:
1) http://gammon.com.au/blink
2) http://gammon.com.au/serial
3) http://gammon.com.au/interrupts

Robin2

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
Two or three hours spent thinking and reading documentation solves most programming problems.

pert

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.

J-M-L

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


Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Go Up