I've taught a few people to program.
It depends on many things, but I'd suggest:
1) Python first. It's as closest to the pseudocode one writes and encourages good style.
Take this course: https://www.edx.org/course/mitx/mitx-6-0...puter-1122
It covers the essentials (data structures, algorithms)
From there we can break into these categories:
- backend (I make/serve/process data for remote clients)
- front end (I present the UI and user experience)
- embedded (I live in a world where I am the hardware)
- high performance (I will learn the dark arts to get all I can)
- research (I care more about the data itself)
Once you got Python down, you'll be able to learn the following in order of difficulty:
- Ruby/Javascript/ActionScript
- Java
- C
- D
- C++
- Scala
- Haskell
I'm tempted to rank C lower. God knows how my C code looks like overly cautious Python, but it is remarkably easy to slide from Python to C if you already know what defines the hardware world.
You Have to know Java if you want to work in Enterprise.
You have to know C++ to do AAA game development. Though that is changing and may migrate to D if C++11 isn't good enough.
I'm a polyglot of programming languages, so they learn the same to me.
But please, start with a language devoted to cleanliness and readability.
It stops a lot of bad habits before they start.
And it encourages you to think first about the logic than the line noise... er syntax.
Oh, and fuck Ruby and Rails. I've run into so many imposters that I am now convinced the community breeds it. #pairwithme really means " I have no idea how to program so help me think".
It depends on many things, but I'd suggest:
1) Python first. It's as closest to the pseudocode one writes and encourages good style.
Take this course: https://www.edx.org/course/mitx/mitx-6-0...puter-1122
It covers the essentials (data structures, algorithms)
From there we can break into these categories:
- backend (I make/serve/process data for remote clients)
- front end (I present the UI and user experience)
- embedded (I live in a world where I am the hardware)
- high performance (I will learn the dark arts to get all I can)
- research (I care more about the data itself)
Once you got Python down, you'll be able to learn the following in order of difficulty:
- Ruby/Javascript/ActionScript
- Java
- C
- D
- C++
- Scala
- Haskell
I'm tempted to rank C lower. God knows how my C code looks like overly cautious Python, but it is remarkably easy to slide from Python to C if you already know what defines the hardware world.
You Have to know Java if you want to work in Enterprise.
You have to know C++ to do AAA game development. Though that is changing and may migrate to D if C++11 isn't good enough.
I'm a polyglot of programming languages, so they learn the same to me.
But please, start with a language devoted to cleanliness and readability.
It stops a lot of bad habits before they start.
And it encourages you to think first about the logic than the line noise... er syntax.
Oh, and fuck Ruby and Rails. I've run into so many imposters that I am now convinced the community breeds it. #pairwithme really means " I have no idea how to program so help me think".
Slave to the Patriarchy no more