CSP: Programming

This class will help you learn the basic syntax for different languages and become software developer. A back-end software developer should master at least one programming language. A front-end developer need to learn minimum two. A full-stack developer should know minimum three. Let’s get started.


  1. For this class, you need basic understanding of programming methodology, propositional logic, algebra and mathematics. Usually these things are teach in school between age of 12 up to 21. If you are younger then 12 please wait to grow up and come back when you are at the right age.
  2. We have code examples for every language. These examples are called code snippets. We use a free web service to host these examples. It will be useful to register on GitHub and make a clone to try our examples. For this you need to install a language/compiler and IDE on your computer.
  3. Some examples are live on: repl.it website. You can have a free account on this website and run some of our examples on your web browser without installing anything on your computer. We are in process of making more example available on-line.

Select your language

Next we briefly describe top 10 most popular programming languages. For each language we spend about 12 minutes. There are no advertisements and no interruptions. If you have already decided what language to learn you can skip this presentation.


Research Status

We research these languages presented below. For each language we have an introductory wiki-book. After you finish learning from our book you will be a beginner/intermediate developer. You can continue to study using external documentation and practice on open source projects to become professional. In the next table you can see the difficulty level and status of our tutorials:

# ? Language Difficulty Language Description
1 HTML+CSS ★★ Default languages for static web pages
2 JavaScript ★★★★ Default language for dynamic web apps
3 Python ★★★★★ Most popular scripting language
4 C ★★ Low level unsafe system language
5 Rust ★★★★ Low level safe system language
6 Ruby ★★★★★ Most productive scripting language
7 Go ★★★ Concurrent language for Google Cloud
8 Julia ★★★★★ Academic dynamic language by MIT
9 Java ★★★★★ Popular object oriented programming language
10 SQL ★★★ Default database language


? = tutorial coverage:
◔ = basic tutorial
◑ = intermediate tutorial
◕ = advanced tutorial

Front End

First 3 languages are for fresh graduates who do not had the time to learn them in school. If you learn these languages you can do websites but also desktop applications. However is not a good idea to start programming with these languages. You may do better to learn Ruby, Julia or Python first then learn front-end languages.


  1. HTML+CSS are two languages actually. But you learn them together in a single tutorial. Some people argue that these are not languages but do not listen to them. These both are programming languages, more precise: data oriented language.
  2. JavaScript is very specific to web programming. It can be used for making a dynamic website. Usually belong to front-end design but can be used also for back-end programming. It has a very small runtime and it can be executed into a browser.

begin study:

Back End

Languages starting from position number 3 (Python) are used for server-side programming and system programming. These languages are preferred by back-end developers. If you learn at least one language in this category you can perform professional developement tasks in a company. You should apply for a job or continue your freelancing activity on next level.


  1. Python is a mandatory language for freelancers. I preffer Ruby, but Python is more popular and is on high demant. Python is not so easy to learn as JavaScipt.It is becouse Python is a multiparadigm language while JavaScript is a functional language. If you learn python as your first computer language you will understand JavaScript faster.
  2. Language C is as easy to learn, but is less useful for freelancers. It is more used for System Programming by companies. Do not start learning the programming concepts using this language. You will have hard time understending and will get ireparable “brain damage” that is hard to fix later using another language. We recommand Rust instead of C as your first system language.
  3. Go and Rust are almost in competition. Rust is better then Go, but Go is more easy to learn than Rust. As a freelancer, you should learn Go but a system programmer should learn Rust. Chose your language chareful since Rust is more difficult than Go and both are more difficult to learn than C. However C is not very friendly and unsafe while Rust and Go both are safe languages.
  4. Ruby, Julia and Python are in tight competition. Julia is very new but not at all behind. Now you can learn and use Julia for finding a job. This is a very good language in my oppinion. I like Julia a lot but I preffer to use Ruby since Julia is not yet available on Amazon AWS cloud and is not yet popular.
  5. Java and SQL are traditional back-end languages. These you should be learning in school. So we do not focus on these languages. However we will have an introductory tutorial to get you started. You can learn these languages if you are looking for a permanent position in a company but these are not good languages for a startup project. Both SQL and Java are harshly criticised and replaced by NoSQL and functional programming languages like Julia, Go and Rust.

begin study:

Feedback: We need your feedback on Reddit Forum. Tell us about your experience so we can decide what tutorials to improve. We will appreciate your effort. Also on Reddit you can ask questions and chat. We will respond. That is a promice. Thanks!