## Guerrilla Programming

**"A program or system should ONLY be shaped by the problem it
solves!"**

Guerrilla Programming is a collection of programming courses.
These courses do not aim to teach a specific programming language
but rather the art of programming itself. A programmer does not only
code the solutions of computational problems, he or she does in fact
provide those solutions first. For a guerrilla programmer the
programming paradigm, language and development eco system is not a
given. They are not chosen in advance but flow naturally from the
problem and its solution.

Obviously, in the end, you will need to code a solution using
one or more languages. Therefore I will provide some courses in
specific programming languages but not before we have a sufficient
understanding of discrete mathematics, programming paradigms,
abstract data types and other basic computer science concepts. This
understanding guarantees that we automatically create solutions in
line with the motto of the guerrilla programmer: "A program or
system should ONLY be shaped by the problem it solves!"

I will start from the beginning. In fact, Before The Code ...

### Before The Code - The Basics

**First in a series of courses in the basic computer science
concepts you need to understand to become a guerrilla programmer.**
The following topics are covered:

- Representing ideas using flowcharts, pseudocode and
mathematical models
- The basics of logic operators, boolean algebra and truth
tables
- The basics of counting right (discrete mathematics):
multiplications, permutations, combinations and sums
- Probability

Now, these may look like very boring topics but I guarantee
you that you will come to see them in a new light once you see how
these concepts are used to actually solve problems!

There are no prerequisites for this course and in fact the
whole Before The Code series. There will be some math, sure, but it
should not exceed what you have seen at high school or equivalent.
Even if you missed that (maybe you were distracted at the time
:-)) you should do alright with some effort and my support.

Check out the introduction video if you are interested as it tells you how you can do this course:
(coming soon!)