I'd like to learn my first language

I'd like to learn my first language.

Which one do you Sup Forumsentlemen recommend?

Other urls found in this thread:

w3.org/TR/2016/WD-shadow-dom-20161128/
twitter.com/SFWRedditVideos

Go.

Why though?

rust, that way you can write the nest best webbrowser there is

I'd like to learn something that I'd realistically be able to use for myself in order to learn it better. Which is to say something that I'd have a lot of opportunity to learn about through experience.

I was thinking Powershell.

Python.

Nice simple language. Leaves you to learn the underlying concepts and not get hung up on the syntax or other shit. Java is also a good first language (my first).

C++ if you want to want to give up in the first month and never return, seen so many burnout trying to learn starting with C++.

don't learn shell scripting languages senpai, there is a lot wrong with them which I can't explain to a beginner easily. You will pick up bad mental models that will make it much harder to learn other languages.

My recommendation is c++, since it can teach you the basics (branches, loops, functions) and later allow you to explore both how computers work with memory and shit, as well as and how programmers work with with abstracting problems into logical systems.

After you understand how basic object-oriented programming in c++, you are ready to take the world on.

good luck

if you want to learn several languages and become a good coder, it would actually be worth learning C(++). You have to be willing to stick with it for a while, but it won't give you any bad habits and will allow you to really understand how code works.
Otherwise, as already suggested, Python is quite easy to grasp and probably a good idea if you're just looking to make a couple programs for fun.

Python / C++ is it then. Thanks guys.

Racket

dont fall for any of the Sup Forums meme pajeet languages

learn Assembly, or Ada.

Prolog because it's easy and useful. You just specify the results you want the leave the rest to the compiler.

It really depends.
What do you want to do with it?
Keep it as a hobby?
Use it to search for a job?
Contribute to foss?
Write scripts to automate tasks?

There is no "best language" to start, just the one that fits better your needs.

Do C before C++. Python should give you lots to play with in the mean time, while C can teach you how shit works before you graduate to C++.

>Use it to search for a job?
not op but this

>Ada
I like how it's type checked in a friendly way(read not as monads). Haskell really needs to pick that up.

I want to use it to broaden my horizons a bit. And yes, ideally, I'd like it to be helpful professionally.

That's the dream, anyway.

Don't listen to this retard.
C++ is just as good as a starting language as python, javascript, C, perl, matlab etc.

This is how you pick a starting language:
Pick a field in which you would like to use programming.
Then use what they are using.
The reasons for that is the libraries exist, you are learning how to work in the field along learning programming.
Switching to a new language is not hard, you can often do so within a week or so, depending on how much libraries you would need.

Powershell is going out. Microsoft has spent the past year promoting they will put bash on windows, and since that will be a lot easier to use on other systems as well, start there unless you have good reasons to use powershell.
But bash, powershell and whatever the native windows shell is called, is very different from general purpose scripting languages and again very different from compiled languages.

I would suggest you start with a compiled language.
This way, you have to run your code through a compiler, telling you that you messed up before you can test it.
In the beginning, you will do a lot of trial and error, where you let the compiler check for you, but once you learn what you are doing wrong, you will read the code carefully before compiling.
This is the point you should be at when you start with scripting languages.
You can also run a checker on scripting languages, but they are not as good as helping new users as compilers.
The danger of scripting languages is that you do not have to compile them to run them.
This means you might not discover the error in your program before you have been running it for quite some time.

if you are going with c++, I can suggest Qtcreator. It is very good for small projects and also makes it easy to design Qt applications if you need gui's.

>Qtcreator
>2016

Why not develope Electron apps with web technology?

>C++ is just as good as a starting language as python, javascript, C, perl, matlab etc.
How? It's clearly much harder to understand and use effectively than something like Python.

Then a few options come to mind.
Sadly Java is industry standard. It will also get you started on Object Oriented Programming.
C# may be a best bet, it's easy to learn and it's growing fast, and you can use it for everything, from smartphone app to desktop to web.
But you are tied to the .net enviroment and it's hard to grow out of it.

For web development, beside the obviouse basics in html+css, javascript and whatever fancy framework is hip these days.

I'm not sure about what you need to get into IT security.

C++ with a good IDE is incredibly easy and versatile. With the newly added lambdas it's even better.

template
Collection filterNot(Collection col,Predicate predicate ) {
auto returnIterator = std::remove_if(col.begin(),col.end(),predicate);
col.erase(returnIterator,std::end(col));
return col;
}


Python is great because you can memorize the syntax which is none and the list comprehension is very intuitive.

OP here.

Found some Python lessons on codecademy and, if I'm being honest, I'm horrified by the amount of Monty Python jokes I've encountered so far.

>whatever fancy framework

w3.org/TR/2016/WD-shadow-dom-20161128/

Mozilla needs to publish this ASAP

because not pajeet tier

Is Java really that necessary?

I've seen places near where I live advertise for someone with experience in Rust. It seems like almost any language can make you employable.

This old man is salty. These are the employable skills as of 2016. Just fucking check hacker news.Your unwilling to learn new skills means you have no growth potential as a dev

C# with new UI framework WinRT or UWP depending on what OS you use

I disagree.
In most areas it is as easy to read C++ code as it is reading python.
In c++ you write std::stuff a lot, but in python you write self.stuff all the time, so they are just as unreadable on the syntax front.
Python mostly uses printf style printing, where C++ uses streams.
I think the concept of streams is easier, especially since I often have to print special objects.
And if some of the syntax confuses you, then don't use it until you need to.

Take templates for example.
It allows you to write generic code where you do not know the data types or values of the class.
Obviously this is syntax sugar, so you do not have to write the same function for different data types, but a lot of times, you do not need this.
Use the standard template library to see why it is great and see if their struggles applies to your problem?
Do you need to make your thing generic?

A good OOP structure is an image.
Here you need a matrix of pixels.
The pixel type could be a template.
Some images are greyscale, thus only a single channel, where others are colored images, meaning 3 channels.
Some is using floating points, others unsigned chars.
Stuff like that could be solved with using templates for the pixel type.

But most problems is not so general, and you would likely import an image library to deal with images anyway, then at some point you are writing an algorithm that uses the image, then you know the image type is a fixed thing and you do not need to make templates for it.

Depends also on where you live I think.
You can not know java, but usually it's one of the good starting languages to find your first job.

Ignore all the plebeians and hipsters ITT.
The only logical progression to become a skilled programmer is:
>C
To learn about basic programming concepts, write some terminal applications and learn to know you computer, from memory management to the compilation process
>Java
To learn about OOP, and start tinkering with user interfaces. Here a good idea would be to write your own Android app.
>Python
Congrats! You're now a skilled programmer and can afford to relax a bit, forget about strong type definitions, explicit compilation steps and pointless verbosity.
You can do with python everything that you did before (except for mobile apps, maybe) with 1/10 of the hassle.
The previously acquired knowledge allows you to easily deal with performance issues, weird errors and unexpected behaviors that your new complex program may have.
Most scientific research is done in this language and there is a huge variety of libraries to do all sorts of tasks. Enjoy programming for the rest of your life.

>???
Whatever new PL you want to learn is just a matter of reading docs/looking at examples/checking on stackoverflow


Or, if you are a lazy POS, just learn python (or javascript, since you're at it) directly and contribute to the cancer of the world

Bamp

Japanese or Nippon desu.

The problem with C++ as a first language, is the error messages are fucking cryptic as hell. It's bewildering sometimes even for someone who knows how to program.

japanese

they don't call it a meme language for nothing

Japanese

English pajeet

Python if you can stand the meme internet user base.
C if you listen to dad rock.
C++ if you wanna get straight to the point (learn C++, pick up Python in a day, learn Python, you won't pick up C++ in a day).
Java if you wanna be a corporate keyboard monkey (same equivalence as with C++ with Python).
Go if you wanna give up midway through.
Haskell if you're a mathematician who doesn't want to code anything useful but likes mental stimulation.
JavaScript (the good parts) if you wanna web dev.

Did I miss anything?

Learn Python first as it's a simple language.
After that you can learn C or Java/C#.
Just don't learn Java or C# first as they are too complex for a beginner language.

*nihongo
日本語

> C if you listen to dad rock

Or if you want to do anything dealing with penetration testing, malware analysis, or operating systems.

Btw, is black metal the new dad rock?

If you just want to try programming out learn Python.

If you decide you enjoy it and want to get serious, C and an assembly architecture. At this point you will want to learn more about dats structures and algorithm design. These are abstracted ideas that follow to every language and is what is currently lacking in newer generations of developers. Supplement these with mathematics, mainly single and multivariable calculus, linear algebra, discrete mathematics, and statistics/probability

Whatever you want just don't use an IDE until you need to. I've only recently become proficient in using plain old text editor and bash/batch compiling and i feel like a fool. Albeit a more productive one.

Any of C set. Lots of material, you generally end up being good provided you choose C++/C. And a lot of the textbooks are dank.

Lambda calculus

Python --> C++ --> C#/Java

Rust if you're a witch who kidnaps children and sacrifices them to Satan for liberal powers.

Go is nice, but Python is better as a first language.

I've taught multiple people programming. This is my opinion based on my experience (I currently work exclusively in C++)

Python: Extremely ugly language that is a hipster language. Does everything differently just to be different. Uses bad syntax and is strongly typed even though it's duck typed, which can be confusing. It's probably okay, but my personal tastes say avoid.

C/C++: Less ugly but a very complex set of syntax. Requires you to learn about memory management when is a headache for new programmers. Error messages by the compiler and linker are cryptic to new programmers. Avoid.

Java: Object orientated approach take some time for new programmers to wrap their head around. Guaranteed frustration over when to use static or not. Error messages are much more helpful than other languages and Java IDEs are extremely powerful to help new programmers. Probably start here.

JavaScript: Complex, but you don't have to deal with the complexity up front (like you do in C++). Similar to python in being a scripting language, but doesn't have the hipster syntax. Duck but also weakly typed. Java will provide a more rigid foundation, but JS can be more motivating since you are immediately interacting with visuals on a familiar platform (websites) and doesn't require learning any external tools (compiling on a command line).

C#: I don't have experience teaching this to a new programmer. I'd guess it's similar to Java

Python is never a good idea to start on. It has too many idiosyncrasies that don't translate into other languages and result in very poor practices.

C# if you don't want to understand why you're doing something
C if you do

This is the only actual answer

nice disgusting syntax, not even confusing.


even fucking lisp is more pleasing to look at

>Python is never a good idea to start on. It has too many idiosyncrasies that don't translate into other languages and result in very poor practices.

Due to dynamic typing? it's just one thing that people don't have to worry about. It's a great beginner language because it gives you the opportunity to make something useful in a week while you can spend a year without being able to do anything useful with C even if you do something every single day.

Python also makes it easier to learn languages like C. You will learn C much faster if you learn Python first than if you start learning C as a first language.

If you have two people, one starts learning C and one starts learning python and THEN C. Then one year later they might know the same amount of C, but one guy also knows Python.