Skip to content
This repository has been archived by the owner on Jun 10, 2019. It is now read-only.

egonelbre/spark

Repository files navigation

Project Spark

Parts of Programming

This writing is an whitepaper for understanding what programming is at the core, it's an exploration of parts involved in programming and how do they fit together. Hopefully these thoughts will give ideas how to understand, learn and teach programming better.

DISCLAIMER:

I will write as directly as possible, therefore some things may seem as strong opinions although they are not. I find that having text such as “in my opinion”, “I think that”, “except in the case of magnetic storms” will make the text unreadable. Also, if you have been programming for a while and some points seem trivial, keep in mind that these points may not be trivial to a beginner. Also, treat all of the following information as opinions that can and may change.

This whole thing is written in 5 parts.

The first part "Basics of Programming" starts with introducing a model for understanding how different things (such as skill, knowledge, language) affect the programmer. Then it goes over a lot of things where beginners get stuck. At the same time it gives an overview of essential parts of programming, things that every programmer does without realizing it.

The second part "Better Programming" is a more thorough investigation on programming topics. It's about things that make some programmers better than others. It's about things that help you to learn to be a better programmer. It's about discussing things that programmers have to deal with every day. (WIP)

The third part "Great Programming" is not finished.

The fourth part "Links for expansion" is a collection of links to articles, books, videos, code, tutorials and other things that expand your understanding of programming. (WIP)

The fifth part "Links for knowledge" is a collection of links to things that expand your knowledge about programming. These are the links that didn't fit into part four. (WIP)

Code

The folder "code" is for collecting interesting and simple ways of doing things.

Feedback

I'm open to any kind of feedback, especially I'm hoping for these things:

  • mistakes - typos, misquotes, errors in logic, etc.
  • confusion - if something should be explained better
  • objectivity - if there's some place that is too subjective
  • missed questions - additions to the summary in "basics of programming"
  • missed topics - topics that should be covered in "better programming"
  • links - that should be added to part four or five
  • code - excellent code examples that should be added and implementations in different languages of the examples

The things that you think should be added should be language non-specific or apply to more than one language.

About

Project Spark

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published