What is this section about?
Welcome to the programming languages tutorials. This should be your starting point if you are just getting familiar or have no knowledge in programming. If you already are comfortable programming or even if you have a deep understanding in your programming language you may find useful tips and information in your language of preference so stick around!
The following tutorials will allow you to have a solid and deep understanding in programming languages, and will help you learn the fundamentals of programming which applies, almost entinery, to all languages from low level languages such as C++ and Java to High level languages such as JavaScript, TypeScript and Python.
Your learning path
Introduction to computing
This module we will cover basic concepts of computing that are universal regardless of the programming language of choice:
- Introduction
-
What is a bit?
- How is data stored?
- What is ASCII code and why should we care about it?
- What is binary code?
- How do computers understand user instructions?
- What is source program and object program?
- How source code is compiled to binary code?
Let's get started
Programming fundamentals
This module will cover the fundamentals of the programming language of your choice, covering the following topics:
-
Data types
- Variables
- Type Conversions
- JavaScript unary operators
- Assignment operators
- Arithmetic operators
- Increment/decrement operators
- Relational operators
- Logical operators
- Conditionals
- Loops
- Functions
- Program structure
- Input/output operations
- Language specific features
Let's get started
Project time: part 1
We will develop a simple game to solidify our knowledge in the Programming fundamentals module. This is where all of the pieces are connected and you will be able to apply everything you've learned while having fun. Apart from the basic programming fundamentals (and specific handy features of the programming language of your choice), the following topics will be covered:
- Global and scoped variables
- Logic encapsulation through functions
- Capturing user input through keyboard
- Menu selection creation
- Handling game levels
- Creating maps with 2d arrays
- Character movement and collision
- Handling logic to end the game
Let's get started
Computer memory management
This module will cover the insights of computer memory: how is memory allocated and freed at run time, how is memory allocated at compilation time, among other core topics. You will understand why is it so important to acquire this knowledge:
- Introduction to computer memory types: static, automatic, dynamic
- Dynamic memory
- Static memory
- High level languages vs Low level languages
- Pointers
- Dynamic memory allocation
- Dynamic memory deallocation
Let's get started
Best coding practices: part 1
This module will cover different coding styles, practices, that are most commonly used with the programming language of your choice. The following topics will be covered:
- Debugging
- Coding styles
- Comments
- Language specific practices
Let's get started
Object oriented programming
This module will cover topics in the Object oriented programming (OOP) paradigm. OOP aims to abstract and model real world entities and their relationships. Programs are design using objects that bind functions to data. The following topics will be covered:
- Classes
- Objects
- Attributes
- Methods
- Encapsulation
- Access methods
- Constructors
- Destructors (high level languages)
- Relationships between classes
- Aggregation
- Composition
Let's get started
Object oriented programming (advanced concepts)
This module will cover topics on inheritance and polimorfism (mainly) which help to abstract code in a much more cleaner way and puts you one step forward to develop scalable and maintainable applications. The following topics will be covered:
- Generalization and Specialization
-
Inheritance
- Class hierarchy
- Polymorphism
- Abstract classes
- Abstract functions
- Language specific advanced features in OOP
Let's get started
Project time: part 2
After covering the modules on Object oriented programming (OOP), we will develop a game using graphic libraries available for the programming language of your choice and for the frameworks that we may be using to develop our application. Apart from the concepts covered in the OOP modules (and specific handy features of the programming language of your choice), the following topics will be covered:
- Introduction to a graphical library
-
Sprites
- Animations
- Graphical classes
- Graphical library specific features
- Brief overview of pointers (high level languages)
- Brief overview of arrays and 2d arrays
- Object dynamic creation and deletion
Let's get started
Best coding practices: part 2
After covering Object oriented programming module (OOP), it only makes sense now to test our code following the OOP paradigm. Tech companies won't spare in testing, and indeed, testing can save you a lot of money preventing faulty code from being deployed in production environments.
- Unit Testing
-
Integral Testing
- Test coverage
- Code quality
Let's get started
Advanced topics
This module will cover topics that are related to usecases that are likely to be used in real world applications: how do we handle errors, expected or unexpected events that are out of our reach?. How can we consume the resources of thrid parties APIs? How to we save, update and delete data from/to ms office or txt files?. The following topics will be covered:
- Error handling
-
Custom errors
- Promises
- Error handling with promises
- Working with files
- Code structuring
Let's get started