Although I’ve taken some courses about the application of discrete mathematical methods to programming and done some database/application programming of my own, I’ve never really had a formal education in computer science.
I read a little bit about scopes (e.g. lexical and dynamic scope), which I have had to work within / work around, but which I’ve not really had enough of a CS disciplinary backgruond or cross-language experience to understand systematically.
Spent a few minutes looking up enums (a.k.a. enumerated types), and the trade-offs versus defining the types and relationships in a normalised table.
I’m recording this to signpost my learning, as well as to record sources.
*
As a kind of syllabus for myself, I intend to cover the following (h/t):
Foundation
- basic types (int, float, bool, char, string)
- operators and boolean operators
- scopes: in general as well as if / else if / else and rough explanation of methods
- arrays / lists and loops
- More about methods (parameters and return values)
- enums and switch statements
- recursive methods
Extension
- classes, classes, classes and struts
- member variables, static fields and properties (if c#)
- public, private, …
- inheritance, abstract classes and interfaces
- passing parameters by reference vs by value
- delegates and events / callbacks
- generics (C#) / templates (C++)
- design patterns (gang of 4)
- serialization
- unit tests