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
- 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)
- 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)
- 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
- CodeCademy.com: Learn to code interactively, for free
- CodeCombat: Learn how to code by playing a game.
- Learn C: Free interactive programming.
- Understanding 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
- Code School teaches web technologies in the comfort of your browser with video lessons, coding challenges, and screencasts.
- 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)
- freeCodeCamp a community that helps you learn to code, then get experience by contributing to open source projects used by nonprofits.
- 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
- 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)
- Learn Python – Free Interactive Python Tutorial
- How to Learn Python (Step-by-Step) in 2020 (dataquest.io)
- Learn Python – Full Course for Beginners [Tutorial] by freeCodeCamp.org
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]
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)
- 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