The Learn to Code movement has picked up momentum worldwide and that is actually a good thing as even basic programming skills can have a major impact. If you can teach yourself how to write code, you gain a competitive edge over your peers, you can think more algorithmically and thus can tackle problems more efficiently.

Learn Programming
Don’t just download the latest app, help redesign it. Don’t just play on your phone, program it. — Obama.
There’s no reason why shouldn’t know the basics of coding. You can automate tasks, you can program your Excel sheets, improve workflows, you can extract data from websites and accomplish so much more with code. You may not be in the business of writing software programs but knowing the basics of coding will help you communicate more effectively with developers.
Gone are the days when you had to enroll in expensive computer training classes as now exist a plethora of web-based courses that will help you learn programming at your own pace in the comfort of your web browser.

The Best Sites to Learn Programming

If you are ready to take the plunge, here are some of the best websites that offer courses in a variety of programming languages for free. I have also added a list of companion ebooks that will give you a more in-depth understanding of the language and they don’t cost anything either.
Online Courses & ScreencastsProgramming Books (Free)
JavaScriptCode Academy,Learn Street,Khan Academy,Code Combat,Code AvengersEloquent JavaScript,JavaScript Guide,Speaking JSJS The Right WayOh My JS,Canvassing
HTML & CSSCode Academy,Don’t Fear The InternetTutsplus,Learn LayoutA to Z CSSDashWeb AccessibilityThe Hello WorldMozillaDive into HTML520 Things I LearnedHTML Dog,HTML & CSSHTML5 for DesignersDOM Enlightenment,HTML Canvas
jQueryCode Academy,TutsplusCode SchooljQuery FundamentalsLearn jQuery
PythonCode Academy,GoogleLearn StreetPython TutorIHeartPYPython for You and Me,  Dive into PythonLearn Python the Hard WayThink Python,Python for Fun,Tango with Django,Django
Ruby & Ruby on RailsCode Academy,TryRubyCode LearnRailscasts,RubymonkLearn StreetWhy’s (Poignant) Guide to RubyLearn Ruby the Hard Way,Learn to Program,Learn Rails by Example
PHPCode AcademyPHP Programming,Practical PHP
Google Apps ScriptGetting StartedOffice HoursGoogle Scripts ExamplesLearning Apps Script
WordPressTreehouseWordPress TV
Linux & Shell ScriptingStanford.edu,Explain ShellConquer the Command Line
Node.jsNodetutsNode SchoolThe Node Beginner BookMixu’s Node bookNode Up and RunningMastering Node.js
Angular JSCode SchoolEgg HeadLearn AngularAngular JS Tutorial,Thinking Angular,Angular Tutorial,Getting Started(Adobe)
Git (version control)Code SchoolGit Immersion,GitHub TrainingPro GitLearn Git
Objective-C (iOS & Mac)Code SchoolStanfordiTunesU
Chrome Dev ToolsCode SchoolDev Tools SecretChrome Dev Tools TutorialUdacityBuilding Browser Apps
Go LanguageGolang.org,GopherCastsProgramming in Go,Go by Example,Learning Go
JavaLearn Java,Coding BatJava UdemyLearnerooProgramming in JavaThinking in JavaO’Reilly Learning JavaThink JavaJava & CSJava for Python Devs
Android App DevelopmentUdacity (Google Developers), CourseraThe New BostonGoogle UniversityApp Development EssentialsCode LearnApp Inventor (Visual)
D3 (data visualization)Data Visualization for the WebDashing D3,D3 Tips & Tricks
SQL (Databases)SQL ZooSQL @StanfordEssentail SQLSQL for Nerds
Everything ElseUdacityedX.orgCourseraUdemy$Lynda$,Pluralsight$Treehouse$Open Consortium,One Month Rails$

Teach Kids to Code

If there are kids in the family, you should download eitherTynker (Android/iOS) or the Hopscotch app for iPad and they can learn the basics of programming through games and puzzles.
There’s also Scratch, an MIT project that allows kids to program their own stories and games visually. Scratch is available as a web app or you can download it on your Mac/Windows/Linux computer for offline use. Blockly andAlice are some other desktop apps that will introduce the concepts of computer progamming to your children.
On a related note, the following chart from Google Trends shows the relatively search popularity of various programming languages over the last 5 years. JavaScript clearly has maintained the lead.