Menu Close

CSP: Programming

A professional software developer should master at least two programming languages. In this class you can learn most popular programming languages. It will take you about four up to seven days depending on your focus. After this you can go ahead and practice. We advice you start your own open source project.


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 to 20. If you are younger then 12 please wait to grow and come back when you are at the right age. 

  • Before this class we recommend: CSE: Engineering, to learn basics principles of software development. The engineering class is required study. Without this class you will probably have no clue how to create and manage a software project.
  • From time to time we organize on-line live class where you can talk with other students and ask questions. For live class you must be a premium subscriber and use discord app. We help all our members but for subscribers we spend more time and effort. 
  • We host code examples in our classes. These examples are called code snippets. We use a free web service to host these examples.  It will be useful to register and make your own snippets to try a programming language, therefore we recommended:

Select the 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. 

Next: you can select one of 10 languages. For each language we have an introductory article with external references to the best on-line documentation. For some languages we have created articles with examples of code found nowhere else. After you study you can take a short rating exam. Good luck!

Freelance Languages

These languages are for web and script applications, preferred by freelancers and entrepreneurs. If you pass at least two exam in this category with more than 90% you will be promoted to researcher role. 
#?Class DifficultyLanguage DescriptionReference
1HTML+CSS★★Default languages for static web pageshtml & css
2JavaScript★★★★Default language for dynamic web
3Ruby★★★★Productive scripting languageruby & rails
4Python★★★Popular scripting
5PHP★★★★★Popular language for dynamic

Research Languages

These languages are for server-side programming, preferred by professional developers and researchers. If you pass at least two exams in this category with more than 90% you will be promoted to instructor role.
#?Class DifficultyLanguage DescriptionReference
1C    ★★★Low level system
2Go ★★★★Concurrent language for Google
3Rust★★★★★Safe system programming
4Julia★★★★★Academic dynamic language by
5PL/SQL★★★★★★★Oracle database programming
? = Tutorial coverage:
◔ basic tutorial
◑ intermediate tutorial
◕ advanced tutorial
Note: If you want to learn other languages or technology, you can post a request ticket and suggest a new tutorial. Alternative you can post an article on the forum and make your suggestion. If we find a volunteer to lead the new class we will approve and host a new tutorial.