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.
Contents
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.
- 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)
- 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
- Katacoda: Learn via real-world scenarios
- CodeKata: Because experience is the only teacher
- Why I Don’t Do Code 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)
- Learn regex the easy way
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
- Stack Overflow Annual Developer Survey
- Most popular programming languages in 2023
- GitHut 2.0 shows the popularity of programming languages on github, as well as changes in their usage over the years
Python
- PEP 8 – Style Guide for Python Code
- PY4E – Python for Everybody by Dr. Charles Severance. A set of free materials, lectures, book and assignments to help students learn how to program in Python.
- Python Programming MOOC 2023 – Introduction to Programming course (BSCS1001, 5 cr) and the Advanced Course in Programming (BSCS1002, 5 cr) from the Department of Computer Science at the University of Helsinki
- HarvardX: CS50’s Introduction to Programming with Python. An introduction to programming using Python, a popular language for general-purpose programming, data science, web programming, and more. Free. CS50P on YouTube
- LearnPython.org – 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
- Learn Python the Hard Way by Zed A. Shaw, takes you from absolute zero to able to read and write basic Python to then understand other books on Python.
- The Big Book of Small Python Projects
- Automate the Boring Stuff with Python
- Introduction to Git and GitHub for Python Developers
- r/LearnPython – If you have questions or are new to Python…
- r/Python – The official Python community for Reddit! Stay up to date with the latest news, packages, and meta information relating to the Python programming language.
- Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel.
Unit Testing in Python
- Getting Started With Testing in Python
- unittest – Unit testing framework
- Search: Test frameworks and examples for unit testing Python code
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
- 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.
- An Opinionated Approach to ASP.NET Core – Scott Allen [NDC London, Jan 2017]
Perl
- 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
- Flexbox Froggy
- Grid Garden
- CSS Diner
- CSS Monkey
- CSS Battle
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
- Search: I Wish There Was An App