How to choose a versioning scheme for your software

As a developer, there comes the time were you think about how to version your software. One approach is “Semantic Versioning” which leverages the level of change on your public API. Depending on what you changed in your code, Semantic Versioning proposes different version numbers:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Seems to be an appropriate scheme on versioning software. Which other schemes do you think about? Leave me a comment then I’m going to update this post accordingly.

What Most Schools Don’t Teach – Programming

“The programmers of tomorrow are the wizards of the future. You are going to look like you have magic power, compared to everybody else.” Diese Aussage beschreibt den Wert, den “Coding Skills” heute und in Zukunft haben. Die Fähigkeit Software nach eigenen Vorstellungen zu entwickeln stellt für jeden Bürger eine wichtige Möglichkeit dar das Grundrecht der Freiheit auszuleben.

Das folgende Video beschreibt was “die meisten Schulen (noch) nicht lehren” nämlich Software zu entwickeln und Quellcode lesen zu können.

Meine ersten Schritte der Programmierung mit habe ich im Alter von vierzehn Jahren mit den Programmiersprachen Java und PHP gemacht. Wann habt ihr mit dem Programmieren begonnen und was waren eure ersten Erlebnisse?

(via code.org)