DEV Community

Cover image for Programming Languages
Elucian Moise for Sage Code

Posted on • Updated on

Programming Languages

We are working hard to make an ultimate tutorial for beginners to learn any programming language easier. For now I do most of the work but I receive help from my team to fix errors. You can join this effort and post comments below to make suggestions how to improve our tutorials.

Fundamentals

The main struggle of new software developers is understanding the basics of computation. After this any programming language will be more easy to learn. But virtual no tutorial is explaining the basics. So what are these? What you need to learn before learning a programming language?

  1. Boolean algebra and logic
  2. Programming paradigms
  3. History of programming languages
  4. Compilers and interpreters
  5. Operating system
  6. Software architecture
  7. Database design
  8. Data structures and algorithms
  9. Testing, version control and team-work

We have set-up our first tutorial to teach these things, it is called: Software Engineering and is available for free on our homepage.

Tutorial: Software Engineering

Advanced

After you take Software Engineering class you can consider yourself advanced software developer, and you can start learning any other programming language.

You will be probably amazed how easy it is to learn after you know the fundamentals. Most programming languages are using the same paradigms but maybe some different keywords. Maybe operators and symbols are different and maybe functions or classes have different names.

We have manage to reuse some of the diagrams from Software Engineering course to explain flow control for many programming languages. Here is the list:

## Language Programming Paradigm
01 HTML+CSS Descriptive
02 JavaScript Functional
03 SQL Descriptive
04 Dart Object Oriented
05 Python Multi-paradigm
06 Ruby Object-Oriented
07 Julia Functional
08 Go Functional
09 PHP Object-Oriented
10 Rust Functional
11 C Structured
12 C++ Object Oriented
13 Java Object Oriented
14 Scala Multi-paradigm

How to chose?

There are so many languages to chose from. What are we going to learn first? My answer is: "it depends". And this is the answer you will get from most programming instructors.

Scientific application

For understanding data structures and algorithms used in scientific papers we recommend two languages:

  • julia
  • python

Web development

For web development you can use almost any language but you can do front-end with a limited number of languages. We recommend one of these languages:

Front-End

  • HTML+CSS
  • JavaScript

Back-End

  • JavaScript
  • Ruby
  • PHP
  • Python

System programming

For system programming you can consider: desktop applications or command line applications. But we have chosen to bundle these in "native applications" and "scripts.

Native apps

The native applications are usually compiled and can have GUI or command line.

  • C++
  • C#
  • Rust
  • Dart

Scripting

A script can take parameters and can be used as a command. Usually a script is a single file.

  • Bash
  • Python
  • Ruby

Note: On Windows you can do "Power Shell" or "Batch" scripts but we do not teach these languages yet, so if you learn on our website you will be able to use Python or Ruby to make script applications.

Tutorial: Programming Languages

Discussion (0)