Cart
SuperUsers image

Intro to programming Courses and Certifications

Programming is a fantastic world! At SuperUsers, we have run thousands of programming courses, and we are passionate about programming!

You get: Core concepts, understanding and lots of hands-on practice.

Intro to programming learning path

Introduction to Programming at a glance

Over the years, SuperUsers has helped many people get started with programming. If you haven't tried it before, a whole new world opens up. Programming is fun: a creative, concentrated, focused …. and time-consuming experience :-)

Lots of questions

There are many things you need to clarify first:

Is it a client or server program?

Which operating system or platform will the program run on?

  • Operating system (Windows, OS X, LINUX, …)
  • Mobile platform (Android, iOS, Windows Phone, …)
  • Bytecode machine (.NET or Java)
  • Web browser (which ones need to be supported)
  • Database program (SQL, but which database)

Choice of development environment (IDE) and programming language?

Development environments, programming languages, and the development process

It is important to get the basic concepts straight from the start:

Development environment, IDE (Integrated Development Environment)

  • You use an IDE to write your own program, just as you use a word processor to write a letter.
  • Examples of IDEs: Visual Studio (Microsoft), Xcode (Apple), Eclipse (Open Source) …

Programming languages

  • You write your program in a programming language (there are many different ones), just as you might write a letter in, say, French.
  • Examples of programming languages: C, C++, C#, Java, Objective-C, …

The development process

  • Analysis/design of the task
  • Writing the program and defining the user interface
  • Trial runs and testing
  • Debugging

What can an IDE do?

A development project consists of many files that need to be kept track of, and each of them has a different job.

The main job of a development environment is to keep track of all these files and make it easy for the developer to get an overview of, write and test their program.

A typical development environment includes:

  • File/class browser: Lets you keep track of all the project's files and classes.
  • Code editor: This is where you write your program, and you typically get help from “code completion”, where the development environment intelligently shows the programmer the options they can choose from.
  • GUI editor: This is where you design the program's user interface.
  • GUI element bank: This is where you choose the graphical objects you want in your user interface
  • GUI properties editor: This is where you can configure the appearance and behavior of the individual graphical elements.
  • Execution/simulator/emulator: Running the program
  • Debug: Troubleshooting, because all programmers make mistakes!
  • Unit test: A description of the test process, to ensure the future quality of the program.

It goes by many names

There are many names for the program you use to write your own programs:

  • IDE (Integrated Development Environment)
  • Development environment
  • Development tool
  • Programming Tool
  • Combined editor/compiler/linker/debugger

Mini glossary:

  • A program = An app = A piece of software
  • To program = To code
  • GUI = Graphical User Interface = Graphical user interface

Procedural programming

The fundamental discipline in programming is procedural programming. Almost all programs are based on this concept.

Procedural programming describes how to define simple data and execute lines of code. On top of this, object-oriented languages add methods for organizing data and code; more on this in the next article.

The 4 key concepts

There are 4 fundamental things you need to understand here:

  • Variables and data types (integers, decimal numbers, text, …)
  • Operators (plus, minus, equals, not-equal-to, …)
  • Control flow constructs (if statements for conditional execution of a program line, or repetitions/loops)
  • Modularity (functions, procedures, subroutines)

This is where you learn to write pieces of code that, for example, validate a CPR number, calculate compound interest, calculate whether a spaceship will hit the moon, or whatever the program needs to do.

Object-oriented programming

Since C++ and Objective-C became the world's first commercial object-oriented languages in 1984, virtually every programming language since has been based on the object-oriented approach.

Whereas NON-object-oriented programming languages did NOT have a tight coupling between code and data, that is exactly what you have in the object-oriented world. Code and data are coupled together and handled as a whole (a class).

Some of the most important concepts

There are many concepts:

  • A class = A data type
  • An object = An instance = A variable
  • A method = A function in a class/object
  • Constructor/Destructor = A method that is called when an object is created/destroyed
  • Inheritance = A class reuses functionality and data from another class
  • Virtual functions = Smart reuse of functionality from classes you have inherited from
  • Polymorphism = Unified handling of many objects that are different but share some common traits

Knowing Git is worth its weight in gold

Git is an open source tool for source code version control that works across platforms, including Linux, Windows, and macOS / iOS.

In our Git course, SU-159, you learn to work more efficiently with version control of your code in Git, which is integrated into most widely used IDEs, such as Visual Studio, Eclipse, and Xcode.

The distributed structure of Git

There is no underlying database in GIT, and nothing is kept in RAM while the program runs. This makes it easy to back up a Git repository: you simply make a copy!

GIT is fast because it works only with the differences between files rather than with entire files. This makes a GIT workflow fast and very flexible to work with.

On the network side, GIT runs on top of existing services such as ssh and http. This means major firewall changes are rarely needed when you want to use git.

Free course advice

It matters a great deal to us that you find the course that creates the most value for you and your workplace. Take a few minutes to call or write to our advisors, who are ready to help with technical guidance, free of charge and with no obligation.

Contact image