
Intro to programming Courses and Certifications
- Home
- Software development
- Intro to programming
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 Courses
Introduction to Programming
Object-Oriented Fundamentals Course for C++/C#/Obj-C/Java/Python
Git Version Control
GitHub Foundations
Intro to programming learning path
Introduction to Programming at a glance
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.
