Her Cuma öğrenmek | تعلم كل يوم جمعة | every Friday learn | modern C++20/23 programming
Merhaba أهلا Hello
Do you want to learn C++ but don't know how or have not programmed before ? If your answer is yes, then please join the best community-centric C++ learning session in the african, arab and turkic world with hands-on exercises.
All community events are FREE-of-charge.
OVERVIEW
C++ is an important industrial programming language with more than 7 million developers world-wide and powers almost all the software infrastructure (includes finance, trading, games, servers, databases, network engines) all the way to mobile devices and constrained embedded systems.
FREQUENCY
Every Friday (date: 2022-11-04), the session is of 120 minutes.
TIME
1630 - 1830 hrs TRT (UTC+0300) baseline
TIME (indicative locations)
1430 - 1630 hrs Abuja
1430 - 1630 hrs Algiers
1430 - 1630 hrs Tunis
1530 - 1730 hrs Cairo
1530 - 1730 hrs Khartoum
1630 - 1830 hrs Ankara
1630 - 1830 hrs Addis Ababa
1630 - 1830 hrs Sana
1630 - 1830 hrs Moscow
1730 - 1930 hrs Abu Dhabi
1830 - 2030 hrs Ashgabat
1930 - 2130 hrs Dhaka
2030 - 2230 hrs Jakarta
2130 - 2330 hrs Kuala Lumpur
LANGUAGE
English (instruction)
Arabic, Türkçe, English (QnA, Chat, Mailing list)
ONLINE
Online jitsi session that you can attend using your desktop browser.
JITSI
https://meet.jit.si/SoftwareHub
GIT repository
https://codeberg.org/SoftwareHub
TOOLCHAIN
GNU g++ 12.1.x
GNU g++ 13.0.0 'main' (we build GNU toolchain every thursday)
ONLINE COMPILER 'COLIRU'
http://coliru.stacked-crooked.com/
PLATFORM
x86_64 GNU/Linux ArchLinux (glibc 2.35, latest).
x86_64 GNU/Linux Debian (glibc 2.35, bookworm).
ZULIPCHAT
https://softwarehub.zulipchat.com/
NOTE
Participants are encouraged to install GNU/Linux systems either on their desktop, laptop or a hosted VM for best learning and exploratory experience.
C++ SESSION OVERVIEW
We take a legacy-free approach to learning C++20/23. We focus on what C++ core language and libraries have to offer today in terms of feature sets and capabilities. g++ and libstdc++ updates will reflect coverage of new topics.
The indicative topics of coverage and the focus during the next 48-sessions
TOPICS
- Writing a Minimal C++ program and then tracing through the code and debug the code all the way to the executable / library.
- Hello C++ module. What it is and viewing it as a unit of deployment.
- Understanding what is a type. Built-in types.
- Variable expressions, constants and values.
- Literals. Character literals and String literals.
- Block structured code. Notions of Scope and Life-time.
- Notion of a Function. Memory model. Scope. Parameters. Return and return type.
- Notion of a asynchronous function. Concurrency lite.
- Expression categories
- User-defined types. Construction. Destruction
- Memory layout models. Stack, Heap. Notion of a resource handle.
- Error handling. error code. static_assert
- User-defined type memory layout under a microscope.
- Working with GNU debugger on a C++ user-defined data type.
- Enumeration. scoped enums
- Expression categories in depth.
- Copy-semantics
- Move-semantics
- Generics. What is generic programming ?
- 'auto' in the game. auto, const auto, auto &
- Expressing an Operation parameterized by Types | Values.
- Writing a Generic function.
- Function template Instantiation and Specialization.
- Function template Overload and Selection rules.
- Functional Composition.
- Concepts as a mechanism to Specify Semantic requirements on constrained-types.
- Move work from run-time to Compile time
- constexpr, consteval and constinit
- Function template object, Functor
- Revisit Scope and Lifetime. Closure and Capture semantics
- Lambda expressions. closure type. Capture semantics
- Generic Lambda
- Constraints on types and Polymorphism revisited.
- Type functions and Type traits
- Models of Sequence representation. Ranges.
- Standard library containers.
- Variadic template and perfect forwarding
- Mathematical semantics of C++ concurrency.
- C++ memory model
- Asynchronous and Concurrent programming in C++
- Functional paradigm for a database driver implementation.
- Know your C++ toolchain (GNU g++, compiler options) and static analysis tooling
- C++ Core Guidelines. How to incorporate in your work
- Using the C++ standard library which is nearly 2/3rd of the ISO C++ standard and provides rich functionality.
RSVP
All community events are FREE-of-charge.
RSVP is required for every individual session.
Right to admission is reserved !
https://www.meetup.com/softwarehub/events/288841473/