Problems software programmers can do to practice their skills, from beginner to advanced.
How programmers use design patterns and anti-patterns to develop software.
A basic introduction to 3D printing with concepts, examples, and a glossary of 3D terminology.
While many people are familiar with floating point numbers in school math problems, they're very useful in computing.
Designers of products, content, and software use the concepts of destinations and systems to create content and apps for all our devices.
FTP is a mysterious yet extremely useful way to send data across computer networks. Here's a short overview with links.
You can use the concepts of game play to turn almost any task or information into a game. Assuming you can define game play.
Databases are mysterious but critical technology. Here's one simple way to describe them to kids (and adults).
While not as delicious as real cookies, website cookies provide a critical and useful benefit for anyone who uses a website.
The Principle of Least Astonishment sounds very Monty Python. But it is a key concept in software and interface design.
Bogons are not an evil race of aliens. But they do shine a light on one part of the internet little known outside of a few security technologists.
We've all used Captchas and found some impossible to solve. Here's why they exist, how they work, and less frustrating alternatives.
Algorithms control our lives online and offline. Here are some examples to show what is an algorithm and how they work.
A computer command used to diagnose network problems also lets you see how data hops across the internet.
APIs can be a fun, easy to use, and easy to learn way to retrieve and mash up data online.
Version control software captures an evolving snapshot of one set of code along with all changes in case older versions need to be retrieved.
Circuit diagrams are maps used to design and build electronic devices. This article describes connections, components, history, and tools used to create circuit diagrams.
Relational databases need to have their data organized a certain way.
When you think of architecture, you think buildings not information. However, information also needs careful design and structure in computing.
What are the differences between high level languages and machine languages? And how do these differences impact coding?
In the same way your bedroom may be impossible to enter if you let dirty clothes pile up, computers can crash and refuse to operate if their memory is stuffed with unused data.
Localhost is available on most computers, usually to display web pages. It's also useful to use to learn coding on your computer.
A clever technique to speed up database searches also is an interesting concept.
With a bubble sort, numbers sort themselves as they bubble to the left of a group of numbers. Here's a fun catchy video to explain.
The release this fall of Apple's iOS7 operating system is a great opportunity to explore the history of computer interface design.
How to tell if a web page is secure is one of the most basic yet least obvious ways to protect your data online.
Binary numbers, based on 1s and 0s, reflect the practical essence of computer hardware: electricity is either on or off. Learn how to write in binary numbers, and the (not so secret) code to transform English language letters into binary numbers and back again.
In the software world, patterns are used to describe common website and website application screens you might see. They provide a useful way to critique, discuss, and build screens to help people do things online.