- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
De cursus Go Programmeren is bedoeld voor developers die willen leren programmeren in de de taal Go en de mogelijkheden ervan willen leren kennen.
Om aan deze cursus deel te nemen is voorafgaande kennis van en ervaring met programmeren in een moderne programmeertaal zoals Java, C# of Python noodzakelijk.
De theorie wordt behandeld aan de hand van presentaties. Illustratieve demo’s worden gebruikt om de behandelde concepten te verduidelijken. Er is voldoende gelegenheid om te oefenen en afwisseling van theorie en praktijk. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Go Programmeren.
In de cursus Go Programmeren leren de deelnemers de syntax van de programmeertaal Go en de stijl waarin Go programmatuur wordt geschreven. De programmeertaal Go is gebaseerd op de ervaringen die zijn opgedaan met de gecompileerde zoals talen C, C++ en Java en met geïnterpreteerde talen zoals Python en Ruby.
Go is syntactisch vergelijkbaar met C, maar met de extra voordelen van memory safety, garbage collection, structural typing en concurrency gebaseerd op Communicating Sequential Processes (CSP).
In de cursus Go Programmeren wordt ingegaan op de syntax van Go met data types en type inference, arrays, control flow en operators evenals functions en closures. Voorts wordt aandacht besteed aan het gebruik van pointers in Go, het verschil met pointers in C, pointer arithmetic en pointers tot pointers.
Wat classes betreft wordt ingegaan op de twee manieren waarop Go een alternatief biedt voor traditionele inheritance. De eerste is embedding dat kan worden beschouwd als een geautomatiseerde vorm van composition of delegation. De tweede zijn de Go interfaces, die runtime polymorphism bieden.
Ook de specifieke manier van error afhandeling in Go met het error en panic interface komt aan de orde.
Tenslotte wordt ingegaan op concurrency in Go met Go routines, sending and receiving met channels en worker pools.
Module 1 : Intro Go |
Module 2 : Language Syntax |
Module 3 : Operators and Control Flow |
Origins of Go Features of Go Compilation Model Type Inference Concurrency Support Go Routines Native Binaries Intentionally Exclusions Inheritance Operator Overloading Installing Go Comments Go Programs |
Identifiers Data Types Integers and Floats Strings and Booleans Derived Types Variable Declaration Static Type Declaration Type Inference lvalues and rvalues Constants String Literals UTF-8 Sequences Immutability |
Operator Types Miscellaneous Operators Operator Precedence if and else Nested if switch Statement select Statement for Loop Nested Loops Infinite Loops range Keyword break and continue goto Statement |
Module 4 : Functions |
Module 5 : Arrays |
Module 6 : Pointers |
Function Definition Function Declaration Calling Functions Local and Global Variables Parameters Return Values Call by Value and by Reference Functions as Values Function Closures Methods Variadic Functions Recursion |
Array Types Declaring Arrays Initializing Arrays Accessing Array Elements Multi Dimensional Arrays Passing Arrays Variables and Adresses Slices Nil Slice Subslicing len() and cap() Functions append() and copy() Functions |
Address Operator Pointer Type Accessing Pointers Pointer Arithmetic Comparison C Pointers Uage of Pointers Dereferencing Pointers Nil Pointers Array of Pointers Pointer to Pointer Pointers as Parameters Type Casting |
Module 7 : Data Structures |
Module 8 : Error Handling |
Module 9 : Concurrency |
User Defined Data Types type Statement struct Keyword Structure Definition Accessing Structure Members Passing Structures Pointers to Structures Object Oriented Programming Structs versus Classes Composition over Inheritance Polymorphism Maps, Keys and Values make() and delete() Function Interfaces |
Error is Type Error Interface Panic Interface Reasons for Panic Comparison to Exceptions Using Multiple Return Values Unrecoverable Error Programmer Error Defer Execution Recover Interface Runtime panics Goroutines Stack Trace Analyzing Stack Traces |
Concurrency versus Parallelism Goroutines versus Threads Multiplexing Channels Race Conditions and Deadlock Multiple Goroutines Declaring Channels Sending and Receiving with Channels Blocking by Default Unidirectional Channels Buffered Channels Worker Pools WaitGroup Select and Mutex |
Al onze cursussen zijn klassikale cursussen waarbij de cursisten aan de hand van een ervaren trainer met diepgaande materie kennis door de stof worden geleid. Theorie wordt steeds afgewisseld met oefeningen.
We doen ook maatwerk en passen dan de cursusinhoud aan op uw wensen. Op verzoek gaan we ook in op uw praktijkcases.
De cursustijden zijn in pricipe van 9.30 tot 16.30. Maar we zijn hierin flexibel. Soms moeten mensen namelijk kinderen naar de opvang brengen of halen en komen andere tijden hun beter uit. In goed overleg kunnen we dan andere cursustijden afspreken.
Wij zorgen voor de computers waarop de cursus gehouden kan worden. Op deze computer is de voor de cursus benodigde software al geinstalleerd. U hoeft geen laptop mee te nemen om aan de cursus te kunnen deelnemen. Als u liever op uw eigen laptop werkt kunt u hem desgewenst meenemen. De benodigde software wordt dan aan het begin van de cursus geinstalleerd.
Onze cursussen worden over het algemeen gegeven met Open Source software zoals Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda en Netbeans. Het digitale cursusmateriaal krijgt u na de cursus mee naar huis.
De cursus is inclusief lunch die we in een restaurantje op loopafstand van het cursuslokaal gebruiken.
De cursussen worden op diverse plaatsen in het land gepland. Een cursus gaat op een locatie door als er zich minimaal 3 mensen voor die locatie inschrijven. Als er inschrijvingen voor verschillende locaties zijn gaat de cursus door op onze hoofdlocatie is Houten net onder Utrecht. Een cursus op onze hoofdlocatie gaat ook door bij 2 inschrijvingen en regelmatig ook bij 1 inschrijving. Overigens doen we ook cursussen op de locatie van de klant als men daar prijs op stelt.
De intellectuele eigendomsrechten van de gepubliceerde cursus inhoud, ook wel aangeduid als infosheet, behoren toe aan SpiralTrain. Het is niet toegestaan de cursusinformatie, de infosheet, te publiceren in schiftelijke dan wel digitale vorm zonder de uitdrukkelijke toestemming van SpiralTrain. Onder de cursus inhoud dient te worden verstaan de beschrijving van de cursus inhoud in zinnen alsmede de indeling van de cursus in modules en onderwerpen in de modules.