What language would (you) recommend for a total beginner. i would say python

what language would (you) recommend for a total beginner. i would say python.

Other urls found in this thread:

arduino.cc/en/Reference/HomePage
npmjs.com/package/avr
greenteapress.com/wp/think-python-2e/
twitter.com/AnonBabble

C

Python is for trash stuff.

haskell

C.
Python is great, but you can't really appreciate it unless you know a lower-level language.

haskell

Learn it properly. I would start by reading a book called "Categories for the working mathematician". Then maybe you can start programming.

Probably C. I learned python first, but I wish I had learned C from the start as I had to undo a fuck ton of bad habits. It made learning C way more frustrating than it should have been.

Learning a trash language like C will have you forever stuck as a brainlet. Functional programming is the future.

I like Python for small random scripts, or experimenting with algorithms interactively.
But I can't stand dynamic typing for anything bigger.

Swift. It was my first. Not for apps or by using anything with the name NS in it, but for regular programming. It teaches standard habits but does not complicate beginner learning.

>functional programming is the future

more like functional autism

Functional programming is great, but you've gotta be shitting me if you think that's suitable for a beginner.

Python is pretty comfy for web applications: cherrypy and requests are incredible.

Functional programming isn't hard.
My uni used Scheme as the intro language.

what about C++ ?

Python or ruby

COBOL

Making simple things in C and Basic is how I started, and I think it set a good foundation for me to get where I am now as a developer.

>Functional programming is the future.
The functional programming camp have been saying this ever since the first Lisp machine was implemented in the 60s.

It's not going to happen, especially now that all modern languages are multiparadigm anyway and have incorporated the good parts from FP while discarding unnecessary stuff like rigorous rules against side effects.

C++ also has its place, but it's simply too big for a beginner.

perl is the same shit.

fuck all scripting languages.
>muh c, muh java

I started with python on codeacademy and the word "elif" confused the fuck out of me.
Now that I worked with proper "else if" for a while, I'd have no problem with "elif" and checking python out again, but that got me really hard when I was younger.

Doesn't really matter. Any of the modern major languages are fine for a beginner.

You don't have to teach them all of C++ at once.
A small subset is enough.

Many beginners actually learn C++ first now due to Arduino.

so which one for a total noob ?
c python ruby ?

i was "programming" only in html but wanted to do some "real stuff"

And that's exactly the wrong way to learn it. A lot of high schools here in Italy teach it as if it were Java, which is an atrocious way to use it. It's not uncommon to see even 20-line snippets littered with "new"s everywhere.

I'll say it again: C it is then.

you mean a small subset like learning c like he fucking said?

C.

As a beginner all that's important to learn basic concepts. Variables, simple control structures, functions, etc..
After you get that down, you can move on to other things.

java

Not quite, it would essentially be C with comfier libraries.
Plus basic OOP shit later.

Ruby is easier to read/code imo

Python is the way to go. It's extremely dumbed down for the normies. It's also a disgusting language syntax wise, but the normies will get used to it

>Many beginners actually learn C++ first now due to Arduino.
The "Process" or whatever the fuck the Arduino calls its language is more of a bastardized mix between Java and JavaScript than anything.

C/C++
Their basics are easy to learn and their syntax has influenced a lot of other languages. They're definitely the best starting point. After that you can either go full C/C++ or switch to another language like Java, or Python.

This.

C

It's actually much closer to C than anything else.

Python.
New programmers need to learn basic concepts like loops and if/else statements and not get bogged down with syntax. Once they have a hang of that, though, C is probably best.

The IDE is based on Processing but you actually just write in C++ with some noob-friendly libraries.

>It's actually much closer to C than anything else.
It's not closer to C.

No, you can write JavaScript syntax and it will work. It even supports JavaScript style closures and lambdas.

Should I use Learn Python the Hard Way, Codecademy, Sololearn or other?

Is Eclipse a reasonable IDE?

>No, you can write JavaScript syntax and it will work. It even supports JavaScript style closures and lambdas.
Nope.

>Learn Python the Hard Way
It's shit. Use Dive Into Python if you want something that doesn't baby you.

>Eclipse
No, it's horrible. Even NetBeans is better.

What IDE would you suggest? The "even" before NetBeans implies that it is not recommended either.

Python comes with IDLE, which is a decent IDE, so you can use that. Also, these coding boot camp stuff are shit. I learned Python off of the documentation, and when the documentation was too difficult I would do Google searches to get a tutorial for the module I was looking at.

Depends on the language you want to use.

>Eclipse is horrible
Top kek, it's a fucking text editor lad. It's fast, works, and easy to use. Explain your bullshit

>It's fast
I've never heard anyone say that about Eclipse.
It's horribly sluggish
>works
...half the time
>and easy to use.
It's not. I've wasted many hours walking team mates through how to get some dumb shit to work.

You're retarded. Their language is based on C.

>C syntax means it's based on C
According to your own logic, JavaScript, Java and C# are all just "C" then....

The answer is always C.

Are you still talking about Arduino?
Sketches get compiled straight up (except some main function trickery) with avr-gcc, it's not a different languages.

How is it sluggish though? Care to explain?
>inb4 bullshitter who has never used eclipse before and has a shit-tier waifu

arduino.cc/en/Reference/HomePage
>The Arduino language is based on C/C++. It links against AVR Libc and allows the use of any of its functions

>the answer is a dead language
Might as well just tell them to learn assembly or haskell

>Sketches get compiled
Means literally nothing these days as even the most high-level interpreters compile code to bytecode.

>avr-gcc
npmjs.com/package/avr

It's slow as shit. What explanation is needed here?
Maybe if you only used Atom before, it seems fast to you.

Wow a node package that runs the avr-gcc binary!
You sure showed me!

Basic.
But it's on a basis of "you pick this thing, learn how if, variables, for and math can be combined into working functions then you get the fuck out and learn something better".

A little 8-bitter isn't going to have a full-fledged JS VM on it to run the bytecode.

How is it slow? You keep dodging the question. Where do you find slowness? I don't know if it's shit for Python, but for Java it is fast and useful

Everywhere.

HTML/CSS

>I learned Python off of the documentation, and when the documentation was too difficult I would do Google searches to get a tutorial for the module I was looking at.
I have already been doing something like that messing around with code that people already made to get it to do things I want.
I am keen to learn how to keep my code readable and neat and all that good shit that I am not really learning by being a skiddie with google.

No surprise there. Can't give any actual criticism. Your dumb user. How do I know? Because I say so

But you don't need a huge language like C++ to learn any of those.

That's not the point. First of all, you can compile JavaScript or any other language to machine code if you want. This shouldn't be surprising in 2017. That's not how Arduino works anyway though, as it has its own onboard mini-OS/VM thing to facilitate stuff like serial.

Secondly, it's not like it's running a standard's compliant standard library either. This is not new for embedded at all. The point is that Processing's syntax is not rigid like C or C++, and you can pretty much write mostly JavaScript syntax and it will compile and work.

>Wow a node package that runs the avr-gcc binary!
You didn't read the link, thanks for confirming that you are retarded.

I don't understand what you want from me.

Oh, that's easy. Look up the PEP 8 style guide if you want to keep your program readable. It's a set of conventions to standardize writing programs. For example, it specifies indentation should be 4 spaces, and lines should only be like 80 characters long

Evidence.

Your shitting on a program you never used just to be a fedora tipper. Fuck off back to r3ddit please

>First of all, you can compile JavaScript or any other language to machine code if you want
No you fucking can't. It needs a huge run time environment, because JS is a ridiculously dynamic language.
And you ain't gonna run that on a tiny weak MCU, that has fuck all processing power and memory.

>That's not how Arduino works anyway though, as it has its own onboard mini-OS/VM thing to facilitate stuff like serial.
Jesus Christ, just stop talking. You don't know shit.
It only uses a small bootloader and fancy libraries - not even something small like RTOS. Atmegas have hardware facilities for UART communication, there's no fucking OS doing that.

>Secondly, it's not like it's running a standard's compliant standard library either
So what?
>The point is that Processing's syntax is not rigid like C or C++
It doesn't use Processing's language, you fucking moron. How many times do I have to tell you?

>You didn't read the link, thanks for confirming that you are retarded.
Apparently you didn't look at it properly.

Use Eclipse, then use something good like IntelliJ.

I think this really depends on the person.
BBC Basic was the perfect beginner language for me. But I grew up with Acorn computers. It might not make sense for people today who grew up with windows PCs.

This^
it have a lot of documentation and u can get a job

probably pascal actually, on an old machine such as an apple ii

>C++
>comfy anything

A quick look at github shows that C has never been livelier.

>hurr durr herp derp
Why are you responding to things I didn't say?

And yet C never lands you a job. Basket weaving is also booming, but it doesn't get you employed

Not the guy you're responding to, but I work with C for a living though.

Are you just trolling now because you can't handle being called out on being retarded?

greenteapress.com/wp/think-python-2e/
Free book and not brainlet tier (no copy pasta for every exercises and some of them are challenging).
Don't use an IDE, use a simple text editor like vim (try to learn vim before starting learning programming because it can be confusing to learn both at the same time).

You literally didn't respond to anything I said and started ranting about things I never said. Try again.

Java -> C -> Python is the patrician path.

I literally copy-pasted that shit from your post.

Look up "Bayesian Inference". Download Anaconda. Solve all the exercises.

And yet you managed to not respond to what I actually wrote. For example, where the fuck did I say anything about RTOS? My literal choice of words were "mini-OS/VM thing to facilitate stuff like serial" and then you went on ranting about something completely irrelevant.

RTOS is an example of a "mini-OS" thing that you were describing. Something that Arduino doesn't use.

>RTOS is an example of a "mini-OS" thing that you were describing.
>describing
Again, my literal choice of words were "thing to facilitate stuff like serial", which in almost all cases require something like setting the right registers for stuff like number of stop bits, baud rate etc.

Nowhere did I imply that you need an RTOS. You are pulling out arguments from your ass and pretending I said them.

If your definition of job is shitty web development, of course not.

>which in almost all cases require something like setting the right registers for stuff like number of stop bits, baud rate etc.
Which happens in some library functions.
Which get statically compiled into your resulting binary you flash - no OS needed at all.

>Which happens in some library functions.
>Which get statically compiled into your resulting binary you flash - no OS needed at all.
My point has been all along that Arduino bootstraps a runtime for your compiled Processing code...

And for some moronic reason, you're trying to obscure this fact.

They're just fucking functions!
What do you think GCC does with a function?
It doesn't install a VM for it.

>actually giving SameQuestionDaily answers instead of telling him to kill himself

BASIC

Im not even kidding

Ruby is probably the most straightforward language, I'd recommend it for someone with no experience desu.

One of the compile steps for Processing is literally to compile/transpile Processing code into C code.

The bootstrapped runtime is also responsible for initiating handles and references, so that you can write Java/JS-esque stuff like passing a callback function to an object instance that inherits the Stream superclass, you are actually given valid handles and scope.

But sure, you can pretend that currying/closures exists in C too.

calculus

>One of the compile steps for Processing is literally to compile/transpile Processing code into C code.
Processing does that. Arduino is not Processing.
How many times do I have to say that?

>The bootstrapped runtime is also responsible for initiating handles and references,
aka C++?

>Processing does that. Arduino is not Processing.
Why are you trying to obscure this by repeating this?

My original point: Processing is not C/C++
You: HURR DURR BUT AVR DOES NOT REQUIRE A FUCKING RTOS

>aka C++?
C++ with less strict syntax requirements + state capturing of local variables (aka local references are placed implicitly on the heap)

>shilling python
Pajeet my son

>My original point: Processing is not C/C++
No your point was that ARDUINO is not C/C++.
I have never once claimed that Processing is C/C++.

WHY THE FUCK DO YOU KEEP GOING ON ABOUT PROCESSING