|
2 | 2 |
|
3 | 3 | 1. Introduction |
4 | 4 | 1.1. Approach to learn programming |
5 | | - 1.2. Modeling: abstractions and reuse |
6 | | - 1.3. Algorithm, program, syntax, language |
7 | | - 1.4. Decomposition and separation of concerns |
8 | | - 1.5. Software engineer speciality overview |
9 | | - 1.6. Programming paradigms overview |
10 | | -2. Basic concepts in JavaScript, Python and C syntax |
| 5 | + 1.2. Examples in JavaScript, Python and C syntax |
| 6 | + 1.3. Modeling: abstractions and reuse |
| 7 | + 1.4. Algorithm, program, syntax, language |
| 8 | + 1.5. Decomposition and separation of concerns |
| 9 | + 1.6. Software engineer speciality overview |
| 10 | + 1.7. Programming paradigms overview |
| 11 | +2. Basic concepts |
11 | 12 | 2.1. Value, identifier, variable and constant, literal, assignment |
12 | 13 | 2.2. Data types, scalar, reference and structured types |
13 | 14 | 2.3. Contexts and lexical scope |
|
25 | 26 | 3.6. Trees and Graphs |
26 | 27 | 3.7. Dataset projections |
27 | 28 | 4. Extended concepts |
28 | | - 4.1. Programming languages and paradigms, technology stack |
| 29 | + 4.1. What is a technology stack |
29 | 30 | 4.2. Development environment and debugging |
30 | 31 | 4.3. Iterations: recursion, iterators, and generators |
31 | 32 | 4.4. Application building blocks: files, modules, components |
|
63 | 64 | 8.7. Typed arrays |
64 | 65 | 8.8. Projections |
65 | 66 | 8.9. I/O and Files |
66 | | -9. Concurrent computing basics |
67 | | - 9.1. Asynchronous programming |
68 | | - 9.2. Parallel programming |
69 | | - 9.3. Actor-based programming |
70 | | -10. Advanced programming paradigms |
71 | | - 10.1. Generic programming |
72 | | - 10.2. Event-driven and reactive programming |
73 | | - 10.3. Automata-based programming and state machines |
74 | | - 10.4. Language-oriented programming and DSLs |
75 | | - 10.5. Data-flow programming |
76 | | - 10.6. Metaprogramming |
77 | | - 10.7. Metamodel dynamic interpretation |
78 | | -11. Databases and persistent storage |
| 67 | +9. Architecture |
| 68 | + 9.1. Decomposition, naming and linking |
| 69 | + 9.2. Interaction between software components |
| 70 | + 9.3. Coupling with namespaces |
| 71 | + 9.4. Interaction with calls and callbacks |
| 72 | + 9.5. Interaction with events and messages |
| 73 | + 9.6. Interfaces, protocols and contracts |
| 74 | + 6.7. Onion aka multi-layer approach |
| 75 | +10. Concurrent computing basics |
| 76 | + 10.1. Asynchronous programming |
| 77 | + 10.2. Parallel programming |
| 78 | + 10.3. Actor-based programming |
| 79 | +11. Advanced programming paradigms |
| 80 | + 11.1. Generic programming |
| 81 | + 11.2. Event-driven and reactive programming |
| 82 | + 11.3. Automata-based programming and state machines |
| 83 | + 11.4. Language-oriented programming and DSLs |
| 84 | + 11.5. Data-flow programming |
| 85 | + 11.6. Metaprogramming |
| 86 | + 11.7. Metamodel dynamic interpretation |
| 87 | +12. Databases and persistent storage |
79 | 88 | 11.1. History of databases and navigational databases |
80 | 89 | 11.2. Key-value and other abstract data structures databases |
81 | 90 | 11.3. Relational data model and ER-diagrams |
82 | 91 | 11.4. Schemaless, object-oriented and document-oriented databases |
83 | 92 | 11.5. Hierarchical and graph databases |
84 | 93 | 11.6. Column databases and in-memory databases |
85 | 94 | 11.7. Distributed databases |
86 | | -12. Software architecture |
87 | 95 | 13. Distributed systems |
0 commit comments