Coding (a.k.a. Computer Programming) is the primary method for communicating with a computer. Coding makes it possible to create computer software, websites, mobile apps, etc.
For Our Children
Why should every child learn to code?
Learning to code, regardless of the path a child chooses to take, is crucial. Coding teaches children how to think, not what to think. Learning to code helps children develop their logical thinking, and problem-solving skills. Coding helps to develop resilience. They’ll learn failure isn’t necessarily a bad thing, and can be something positive, as it provides a learning opportunity. Children develop creativity by experimenting, making mistakes, and improving.
- Want Your Kids to Build the Next Airbnb, Snapchat, or Uber? Teach Them This Skill
- Want to teach your kids to code? Here are three apps that can help
- 8 reasons why every child should learn to code
- Girls Who Code programs work to inspire, educate, and equip girls with the computing skills to pursue 21st century opportunities.
- The Girls Who Code Summer Immersion Program is a 7-week intensive computer science course that embeds classrooms in technology companies and universities. Girls learn everything from robotics to mobile development to HTML and CSS while gaining exposure to the tech industry and receiving valuable mentorship from women working in technology.
- Code Club: A worldwide network of volunteer-led after school coding clubs for children aged 9-11
- Code.org organized the Hour of Code, a one-hour introduction to computer science, designed to demystify code and show that anybody can learn the basics.)
- Scratch helps young people learn to think creatively, reason systematically, and work collaboratively.
- BASIC-256 is an easy to use version of BASIC designed to teach anybody (especially middle and high-school students) the basics of computer programming.
- Processing was designed as a first programming language. It was inspired by earlier languages like BASIC and Logo, as well as our experiences as students and teaching visual arts foundation curricula. The same elements taught in a beginning high school or university computer science class are taught through Processing, but with a different emphasis. Processing is geared toward creating visual, interactive media, so the first programs start with drawing.
- beanz: The Magazine for Kids, Code and Computer Science
- Lissa Explains it All, the first and original HTML Help JUST for Children.
- Hacker Highschool is practical because security awareness has to be the continuing practice of a skill and not just the continuous reminder of a threat.
Learn to Program / Code
- Please don’t learn to code by Basel Farag (TechCrunch.com)
- Code School teaches web technologies in the comfort of your browser with video lessons, coding challenges, and screencasts.
- CodeCademy.com – Learn to code interactively, for free.
- CodeCombat – Learn how to code by playing a game.
- freeCodeCamp – A community that helps you learn to code, then get experience by contributing to open source projects used by nonprofits.
- CodeNewbie – A community of programmers at all levels encouraging each other on their coding journey.
- CodeNewbie Podcast: Stories from people on their coding journey. New episodes published every Monday.
- The ultimate guide to becoming a developer (PluralSight.com)
- TwilioQuest – Learn to code and lead your intrepid crew on a mission to save The Cloud in TwilioQuest, a PC role-playing game inspired by classics of the 16-bit era. Free forever, and available now for Windows, Mac, and Linux.
- Ruby on Rails Tutorial (Rails 5) by Michael Hartl
- Awesome Beginners-friendly projects on GitHub.com
- PluralSight.com :
- DevU.com: Learn C# and Web Development: Go from “absolute beginner” to “Hired!” ASAP View All Courses
- C# Fundamentals for Absolute Beginners by Bob Tabor
- Learn C: Free interactive programming.
- Relational Database Design: Shows you how to plan and design a database from the ground up.
- Programming Katas
- The Odin Project: Learn Web Development for Free
- Free Online Cryptography Training
- Simple Programmer
- Coding 101, a weekly instructional, project-oriented programming show with appeal for beginning to intermediate programmers.
- Teach Yourself Programming in Ten Years
- Code Crew is a community of teachers and learners passionate about learning how to code.
- How to Build a Responsive Website From Start to Finish (DevTips)
- HackerRank a destination for developers to hone their skills and for companies to find top software developers.
- LeetCode is a platform for preparing technical coding interviews. Pick from an expanding library of questions, code and submit your solution to see if you have solved it correctly.
- Learn regex the easy way
- Learn Python – Free Interactive Python Tutorial
- 10 week Python Course (Playlist) – @PythonCoding
- How to Learn Python (Step-by-Step) in 2020 (dataquest.io)
- Learn Python – Full Course for Beginners [Tutorial] by freeCodeCamp.org
- Real Python Tutorials
- Automate the Boring Stuff with Python
- Getting Started With Testing in Python
unittest— Unit testing framework
- Search: Test frameworks and examples for unit testing Python code
- PHP: The Right Way is an easy-to-read, quick reference for PHP popular coding standards, links to authoritative tutorials around the Web, and what the contributors consider to be best practices at present.
ASP.NET MVC Core
- Getting started with ASP.NET Core MVC and Visual Studio: Learn the basics of building an ASP.NET Core MVC web app using Visual Studio 2017.
- An Opinionated Approach to ASP.NET Core – Scott Allen [NDC London, Jan 2017]
- Modern Perl: the book
- Learn Perl
- CPAN (Comprehensive Perl Archive Network)
- Perl Maven tutorial will teach you the basics of the Perl programming language.
- DWIM (Do What I Mean) Perl is a Strawberry Perl distribution that makes it easy to start using Perl. It contains the standard Perl distribution and a lot of extensions so you won’t need to search for them and install them yourself. Includes Padre, the Perl IDE.
- Padre, the Perl IDE (Strawberry Perl comes as part of the install, plus you also get many other useful CPAN modules)
- (Strawberry Perl comes as part of the install, plus you also get many other useful CPAN modules)
CSS (Cascading Style Sheets)
CSS Grid Layout
Forget rolling your own float-based layouts, incorporating your favorite CSS framework’s grid system, or stretching Flexbox within an inch of its life – CSS Grid Layout module brings us a native CSS grid system for the first time! It’s a system that doesn’t rely on document source order, and can create complex layouts which are easily redefined with media queries.
- CSS Grid Changes Everything (About Web Layouts) [Morten Rand-Hendriksen] (YouTube)
- CSS Grid Layout [Rachel Andrew | February 2017] (YouTube)
- Learn CSS by Playing Games: a thread by Hajra
- Plan before you build
- Name things well
- One class per file
- Use properties not variables
- Methods should do one thing
- Keep it simple
- Be consistent
- Use curly braces for if statements
- Concatenate strings using $””
- Avoid global variables
- Use public modifier only when necessary
- Never trust the user! Always verify what the user inputs, is what is expected/needed.
- Create, and use, Unit Tests
Framework Design Guidelines for the .NET Framework at docs.Microsoft.com
SourceMaking.com: Stories about good software architecture and teach you how to create it with design patterns. I will guide you through anti-patterns, common pitfalls and mistakes that people make when they plan, create, and manage software projects. In the end, I will teach you how to smell a bad code and improve it with refactoring.
Google’s Guide to Technical Development: A curated a collection of material from many sources, including Google, that you can use to supplement your classwork or direct your own learning.
Unit testing is an important part of writing quality software.
Coding Schools / Boot Camps
- Turing School of Software & Design, a Colorado Non-Profit Organization.
Coding Ideas / Inspiration
- Search: I Wish There Was An App