Hello.
I really think everyone should learn programming. Even only a little, it helps people think rationally and resolve real-life situations efficiently.
Here are some resources I recommend to get started.
Web
https://www.reddit.com/r/learnprogramming/wiki/faq
This FAQ answers most questions a beginner may have in a very comprehensive manner.
It also links to lots of other resources be it online or books.
This is the link I always give when someone asks me how to get started.
https://www.codecademy.com/learn
Not super comprehensive but the interactivity is motivating.
Once you check out a topic you can learn more through other resources.
https://www.youtube.com/user/derekbanas
Youtube channel with teaching material for lots of different topics.
Very straight to the point.
http://www.csharpcourse.com/
Solid introduction to programming with C# available as a free e-book.
Oriented towards professional software development but very in depth.
I love the second chapter going over every keyword of a simple program.
http://openbookproject.net/thinkcs/python/english3e/
If you don't "get" it, this Python introduction will help you.
Books (yes, they still exist!)
Head First Java
This may not be exactly for programming beginners, but it sure will help learning Java.
I love the Head First series in general and highly recommend O'Reilly books.
Programming: Principles and Practice Using C++
This is a very big book but it's extremely comprehensive.
It has a more scholarly approach but if you're the patient type it pays off.
Go to a local book library
They all have a computer section. Sometimes it's only consumer type books, but sometimes there will be programming books.
Just know what language you're looking to learn before going and pick a random book on it. Just make sure to check reviews on the Internet before buying.
This may allow you have to have books in your native language.
Bukkit
http://wiki.bukkit.org/Plugin_Tutorial
This tutorial can help anyone to create their first Bukkit plugin, even if they have zero programming experience.
It goes through how to setup your development environment and what code you need to make your plugin work.
https://www.spigotmc.org/forums/spigot-plugin-development.52/
This forum section is the Stack Overflow of everything Bukkit.
If you have a question which hasn't been answered already by Googling it, this is the place to ask it.
Blogs from smart people
https://blog.codinghorror.com/
Founder of Stack Overflow.
http://ithare.com/
IT and Programming blog with tons of interesting posts.
http://www.hanselman.com/blog/
Well-known Microsoft employee.
http://martinfowler.com/
Agile proponent.
https://codeblog.jonskeet.uk/
God.
Advanced
Head First Object-Oriented Analysis and Design
An approachable guide on everything object-oriented.
When I first started, this book really helped me make it "click" on how to architecture software.
Clean Code
I think this is one of the most valuable books I own. Its format makes it delightful to read and it's very down-to-earth.
This book can help someone move from intermediate to great developer.
Recreative
TIS-100 and Human Resources Machine
These games won't help you get a job, but they definitely help solve problems using pseudo-assembly.
Personal Tips
I really think everyone should learn programming. Even only a little, it helps people think rationally and resolve real-life situations efficiently.
Here are some resources I recommend to get started.
Web
https://www.reddit.com/r/learnprogramming/wiki/faq
This FAQ answers most questions a beginner may have in a very comprehensive manner.
It also links to lots of other resources be it online or books.
This is the link I always give when someone asks me how to get started.
https://www.codecademy.com/learn
Not super comprehensive but the interactivity is motivating.
Once you check out a topic you can learn more through other resources.
https://www.youtube.com/user/derekbanas
Youtube channel with teaching material for lots of different topics.
Very straight to the point.
http://www.csharpcourse.com/
Solid introduction to programming with C# available as a free e-book.
Oriented towards professional software development but very in depth.
I love the second chapter going over every keyword of a simple program.
http://openbookproject.net/thinkcs/python/english3e/
If you don't "get" it, this Python introduction will help you.
Books (yes, they still exist!)
Head First Java
This may not be exactly for programming beginners, but it sure will help learning Java.
I love the Head First series in general and highly recommend O'Reilly books.
Programming: Principles and Practice Using C++
This is a very big book but it's extremely comprehensive.
It has a more scholarly approach but if you're the patient type it pays off.
Go to a local book library
They all have a computer section. Sometimes it's only consumer type books, but sometimes there will be programming books.
Just know what language you're looking to learn before going and pick a random book on it. Just make sure to check reviews on the Internet before buying.
This may allow you have to have books in your native language.
Bukkit
http://wiki.bukkit.org/Plugin_Tutorial
This tutorial can help anyone to create their first Bukkit plugin, even if they have zero programming experience.
It goes through how to setup your development environment and what code you need to make your plugin work.
https://www.spigotmc.org/forums/spigot-plugin-development.52/
This forum section is the Stack Overflow of everything Bukkit.
If you have a question which hasn't been answered already by Googling it, this is the place to ask it.
Blogs from smart people
https://blog.codinghorror.com/
Founder of Stack Overflow.
http://ithare.com/
IT and Programming blog with tons of interesting posts.
http://www.hanselman.com/blog/
Well-known Microsoft employee.
http://martinfowler.com/
Agile proponent.
https://codeblog.jonskeet.uk/
God.
Advanced
Head First Object-Oriented Analysis and Design
An approachable guide on everything object-oriented.
When I first started, this book really helped me make it "click" on how to architecture software.
Clean Code
I think this is one of the most valuable books I own. Its format makes it delightful to read and it's very down-to-earth.
This book can help someone move from intermediate to great developer.
Recreative
TIS-100 and Human Resources Machine
These games won't help you get a job, but they definitely help solve problems using pseudo-assembly.
Personal Tips
- An ounce of practice is generally worth more than a ton of theory.
- Focus on one thing at a time. Try and master a single language first.
- There's more to programming than code. There are tools which you need to know to get a job, like your IDE, version control, dependency management, googling.
- Googling is the #1 most important skill. It's much worse a sin to stay ignorant than not knowing something.
- The more you learn, the more you realize how little you know. Don't sweat it, just keep making stuff with what you do know and stay open to learning.
- It's 2016, you can't avoid some web development no matter how hard you try.
- Avoid snake oil. Sometimes there's significant commercial backing evangelizing technologies. Every tech is just one tool in your toolbox. Learn to use to right one for the job. The right one is often the one you know most.
Last edited: