Learn to Program / Code

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

Coding Practice, Challenges

  • CodeCombat – Learn how to code by playing a game.
  • 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.
  • 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.
  • Exercism – Develop fluency in 67 programming languages with a blend of learning, practice and mentoring. Exercism is fun, effective and 100% free, forever.
  • Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as interview prep, company training, university coursework, practice problems, a speed contest, or to challenge each other.

Version Control / Source Control

Programming Languages & Frameworks

Popular Programming Languages

Python

Unit Testing in Python

PHP

  • 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

Perl

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.

Best Practices

Top 10 C# Best Practices (plus bonuses) by IAmTimCorey

  • 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

An Opinionated Approach to ASP.NET Core – Scott Allen [NDC Conferences]

SourceMaking.com:  Stories about good software architecture and teach you how to create it with design patterns. Guides you through anti-patterns, common pitfalls and mistakes people make when they plan, create, and manage software projects. Teaches 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 Tests

Unit testing is an important part of writing quality software.

Coding Ideas / Inspiration