Where to start?

Okay, I fear that this is getting asked here daily and I will unleash a shitstorm, but anyway:

I plan to quit my current degree and switch to Computer Science next year. I will have a lot of time until then so I figured I might aswell learn a programming language now. So here is my question:
Which language should I learn first? It should teach me basic principles that apply to other languages aswell and it should be somewhat useful for my career. So far Ive had people recommend C, python, Java and Ruby.
Please give an explanation with your answer. Thanks a lot. Also, apologies for the meme pic.

Other urls found in this thread:

coursera.org/learn/build-a-computer/
rbt.asia/g/search/text/language should I learn first/type/op/
twitter.com/SFWRedditVideos

Learn python first, get a basic understanding of it and then at the same time start learning C because then you will learn that Python has tons of magic and you will realize that you still don't know shit yet. Then also learn JavaScript because those roaches have made that language too ubiquitous to ignore in the $currentYear

COBOL is a good starting language

This or fortran.

Learn C and Java (or another OOP language). Their order doesn't really matter, they're supposed to teach you different things, things you will inevitably have to learn in university, so this will give you a head start.
>useful for my career
Once you know programming, picking up a language is piss easy, so that's really unimportant.

What was your current degree

Do yourself a favor and learn Perl first.

learn how to suck dicks or you will be unemployed. get into an internship WHILE you are studying or you won't have a job ever.

> (OP)
> get into an internship WHILE you are studying or you won't have a job ever.
Best advice ever

History & teaching

>everyone lives in the US

Yea I think its good to switch from that , but it comes down to this why are you picking cs not trying to meme I'm just curious why cs over let's say CE or ece or ee?

You learn more from them. Cs is actually a blue collar field this from experience I've been in the field for 12 years and it has turned into a blue collar field people coming from uni tend to be just as qualified as hs dropouts if not less. Reason being anyone can code the jobs that require more skill tend to be the hardware related projects which require good understanding with hardware. Complex software tends to be designed by a few experienced programmers/engineers(if you are lucky at least) and just coded by a bunch of code monkeys.

I worked at a few software and engineering firms and this is my experience take it as you will.

>learn perl
>learn python
>learn C
>learn javascript
no

you should start with a nice language, like scheme or haskell. get the basics. and get them right. the. first. time. read lyah. read sicp. achieve enlightenment. in this lifetime.

This is flat out the worst advice I have read on how to get a job but that means its the best advice on how to do well in uni. Do this if you want to get ez grades op.

why would you get a job? (serious question)

also, why would you get good grades? (serious question also)

Learn Kotlin.

>sicp
unironically this

or if you don't like reading archaic books look up How To Design Programs by Felleisen/Findler/Flatt

With that advice you wouldn't get a job unless you went to some weird startup

Uni is the opposite of work, it doesn't prepare you're for work it prepares you to get a degree. Shit like Haskell are shilled like crazy at unis but not really used in the job market.

I actually agree the cs field as far as I can tell is becoming a blue collar field, but that also means more pay for the veterans.

Haskell. Anyone saying otherwise wants you to have bad habits

It might not give your job, but his design understanding will improve a lot, and stuff that come naturally in haskell become good pratices in other languages.
Starting with FP makes you have better grades in University which makes you look smarter, and trust me, you will have a different look on software maintanability

You're thinking too high level, user
Start at nand gates and work your way up

coursera.org/learn/build-a-computer/

Don't be a mactoddler
Don't ask: What's a computer?

well, jobs are going away. unis are going away, also. skill matters. get head-hunted if you must. but know that jobs aren't forever.

After working in the field for so many years I have to say that your statement ia false, Haskell is shilled in unis for being a good beginner Language like pascal and Delphi used to be not because they are by any means good. I honestly believe you can learn the same things while working with different languages. Althought I have to agree it will insure higher uni grades.

when learning haskell, you don't learn the language, but certain concepts. pure vs unpure. algebraic data types. denotational semantics. concepts for computations, like monad, applicative, etc. haskell just happens to be the playground for trying these things out. mainstream languages trying to retrofit these is just evidence for its supperiority.

>Which language should I learn first?
Any language is fine, user. It really, seriously, doesn't matter.

When you are studying computer science, you will need to learn a bunch of languages for different purposes, and the basic principles are mostly the same. Which language you learn those basic principles from matters very little in the long run.

Are you going to study programming under the mentorship or help of someone you know? If so, learn something they can help you with. If not:
>C
Not the easiest option for most people, but definitely valuable and something you will have to learn sooner or later in your studies. Teaches good fundamentals and background knowledge. Some people with a particular form of logically-structured mind find this easier to understand than anything else; but most people find it arcane and needlessly complex. Challenging.
>python
The friendliest, gentlest, most convenient option by far. Good fundamentals and easy to get complex things done with a reasonable amount of work. Easy to learn and very useful in its own right. Probably the option that most people will be happy with.
>Java
More complex than python to work with and initially more arcane than C, but easy to master once you get past these hurdles. Popular in business and therefore lucrative. Very polished and boring, to the point that it can form something of a bubble obscuring the amount of very different ways of programming out there in the world. Learning some different languages sooner or later is especially important if you start here, for comparison.
>Ruby
Complex and dangerous but powerful, like a pocket chainsaw. The one language on this list that does NOT teach you good fundamentals, and can easily leave you with a weird misunderstanding of how things really work that takes some time to correct. Some people swear by it, especially for web development; but I would not recommend it to start with.

>stuff that come naturally in haskell become good pratices in other languages

Nope
Terrible advice
What do you call tail recursion in Java?
A stack overflow

Things that work well in one language do not translate to working well in all languages.

Choose the language based on what you want to build user.

Web apps? Java
Machine learning? Python
Games? C++
Systems? C

Meme languages are stupid. Choose them if,

I want to work at Google and have no prospects when I fail their whiteboard interview: Go

I want to do systems programming "safely" by writing unsafe blocks, considering memory leaks safe, and depending on libc because I can't actually make system calls without it: Rust

I want to use the worst language possible, where every decision made in language design was the wrong one: Javascript

/thread

he doesn't want to build something. he wants to learn programming.

huh, a sensible post on Sup Forums. nice.

>I fear that this is getting asked here daily
It gets asked, a lot.

rbt.asia/g/search/text/language should I learn first/type/op/

Learn assembly, then C, then C++
That's all you'll ever need ever. If you want you can go on to learn other shit but whatever.

paid?

free unless you want a certificate
I bought their book though
Got tired of waiting for course 2

1) Buy "Structure and interpretation of computer programs" by sussmann. Or if you are a cheapskate, there's also a free html and even pdf out there.

2) Install "Dr. Racket" (google it!) and use the SICP integration mode (#lang sicp).

3) Put a few months of effort in.

4) Profit.


>C, Java
You should learn a few basics of them somewhere in your career. If you finished SICP, learning C with "K&R" is a good idea. If you know Scheme and C, nothing can scare you in the future.

>Python, Ruby

Learn at least one of them. Both are similar. Both are based on C. Both will be a breeze if you know Scheme. Python has much more jobs, Ruby is the better designed language. Ruby for Web development, Python for science, data analysis, AI and a little bit web development. Both work for Deployment and InfoSec.

Take from that what you want.


Solid advice here.

You guys are fucking sick, you know that?

Very important.

For growing businesses, you'll want to learn C# and Transact-SQL if you want to work with Microsoft stuff. It's been working out SUPER great for me and I'm nailing $75K/year in a cheap area.

Also, take care of yourself and build social skills. Crushing an interview is secretly the hardest part of being a programmer once you're good at actual programming.

Most importantly, OP, what kinds of software can you see yourself building for long periods of time?

Pic related, it's how I feel while tweaking the Pricing Engine I rewrote to incorporate international currency conversion.