Skip to content

Commit 1df9f7f

Browse files
committed
Add en translations for index, fixes HowProgrammingWorks#23
1 parent 499d0db commit 1df9f7f

19 files changed

+997
-0
lines changed

β€Žen/Courses/Advanced.md

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Second part of the course
2+
3+
Modules SEF2 and SEF3
4+
5+
## Asynchronous programming
6+
7+
### Revision
8+
9+
- [Higher order functions, callbacks, JavaScript events](https://youtu.be/1vqATwbGHnc)
10+
- Higher order functions: https://github.com/HowProgrammingWorks/HigherOrderFunction
11+
- Callback functions: https://github.com/HowProgrammingWorks/Callbacks
12+
- [Asynchronous programming with callbacks](https://youtu.be/z8Hg6zgi3yQ)
13+
- Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming
14+
- do library: https://github.com/metarhia/do
15+
- [Timers, timeouts and EventEmitter](https://youtu.be/LK2jveAnRNg)
16+
- Timers: https://github.com/HowProgrammingWorks/Timers
17+
- EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter
18+
- Events: https://github.com/metarhia/common/blob/master/lib/events.js
19+
20+
### An overview of asynchronous programming
21+
22+
- [Asynchronous programming (an overview)](https://youtu.be/hY6Z6qNYzmc)
23+
24+
### Lectures
25+
26+
- [Asynchrony with the async.js library](https://youtu.be/XQ94wQc-erU)
27+
- Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming
28+
- async.js library: https://caolan.github.io/async/
29+
- [Asynchrony with Promises](https://youtu.be/RMl4r6s1Y8M)
30+
- Code examples: https://github.com/HowProgrammingWorks/Promise
31+
32+
## Node.js technology stack

β€Žen/Courses/AlgAndData.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Algorithms and data structures
2+
3+
- Built-in collections: arrays and objects
4+
- [Collections, sets, hash tables in JavaScript](https://youtu.be/hN0wsq5LNOc)
5+
- Collections: https://github.com/HowProgrammingWorks/Collections
6+
- Hash tables: https://github.com/HowProgrammingWorks/Map
7+
- Sets: https://github.com/HowProgrammingWorks/Set
8+
- [Data structures: lists, stack, queue, deck in JavaScript](https://youtu.be/9KvA4hDDSjk)
9+
- Lists: https://github.com/HowProgrammingWorks/LinkedList
10+
- Queues: https://github.com/HowProgrammingWorks/Dequeue
11+
- Trees: binary trees and hierarchical multi-linked structures
12+
- [Graphs and requests to graph structures in JavaScript](https://youtu.be/a0W0T8Yqw3s)
13+
- Code examples: https://github.com/HowProgrammingWorks/Graph
14+
- Buffering: buffers, lists of buffers, cyclic buffers
15+
- Immutable - immutable data structures (in preparation)
16+
- Lock-free data structures (in preparation)
17+
- CRDT - Conflict-free data types (in preparation)
18+
- Dynamic programming (in preparation)

β€Žen/Courses/Architecture.md

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Architecture of information systems
2+
3+
## Course structure
4+
5+
- Overview of tasks, component, modular and multi-layered approaches to design
6+
- IS classification: ERP, SCM, CRM, MRP, BI, B2B and B2C
7+
- Layered architecture and multi-link architecture for monolithic ICs
8+
- Types of interaction: common data, procedure call, event transfer
9+
- Two- and three-link applications, multi-link, pipeline topology
10+
- Service approach: web services and microservices, serverless
11+
- Data warehouses and DBMS: relational, noSQL, columnar, key-value
12+
- CQS, CQRS and Event-Sourcing
13+
- Topologies of distributed ICs: star, bus, ring, conveyor, fully connected
14+
- Design of API interfaces
15+
- Corporate integration buses (exchange with external subsystems)
16+
- Event broadcast buses and event queues (MQ systems)
17+
- Schedulers of deferred tasks and resources, execution queues
18+
- Testing, quality assessments, continuous integration
19+
- Infrastructure, deployment, updating, migrations, reengineering
20+
- Balancing, replication, sharding, resharding, backups and restoration
21+
- Security, authorization, authentication, application firewall
22+
- Application and system logging, incident investigation
23+
- Analysis and reengineering of business processes
24+
25+
## Video lectures
26+
27+
- [Architectural approach to programming](https://youtu.be/d_vyO2CkiOc)
28+
- [Layers, connectivity and code connectivity](https://youtu.be/A3RpwNlVeyY)
29+
- Code examples: https://github.com/HowProgrammingWorks/Abstractions
30+
- [Modules, layers, project structure, sandboxes in JavaScript and Node.js](https://youtu.be/O7A9chb573E)
31+
- Project example: https://github.com/HowProgrammingWorks/Project
32+
- Abstract layers: https://github.com/HowProgrammingWorks/AbstractionLayers
33+
- Sandboxes: https://github.com/HowProgrammingWorks/Sandboxes
34+
- [Inversion of control and dependency injection in Node.js](https://youtu.be/Fz86Fdjz-LM)
35+
- Inversion of control: https://github.com/HowProgrammingWorks/InversionOfControl
36+
- Dependency Injection: https://github.com/HowProgrammingWorks/DependencyInjection
37+
- [Interprocess interaction in Node.js](https://youtu.be/2OXWZFMvfbc)
38+
- Code examples: https://github.com/HowProgrammingWorks/InterProcessCommunication
39+
- [High-load distributed applications in Node.js](https://youtu.be/7tfZDABPvVs)
40+
- [Data access layer, cursor, transaction](https://youtu.be/CRcSWtWVvrA)
41+
- Code examples: https://github.com/HowProgrammingWorks/Transaction
42+
- [API development in Node.js (client and server)](https://youtu.be/-az912XBCu8)
43+
- Code examples: https://github.com/HowProgrammingWorks/API
44+
- [CQS, CQRS, Event Sourcing - Separation of requests and data modifications](https://youtu.be/T2tRc80Q8Qw)
45+
- CQS: https://github.com/HowProgrammingWorks/CQS
46+
- CQRS: https://github.com/HowProgrammingWorks/CQRS
47+
- EventSourcing: https://github.com/HowProgrammingWorks/EventSourcing
48+
- [Application of EventSourcing](https://youtu.be/kFNtKiK2SPs)
49+
- https://github.com/HowProgrammingWorks/EventSourcing
50+
- https://github.com/HowProgrammingWorks/CQRS
51+
- https://github.com/HowProgrammingWorks/Command
52+
- [Serverless Clouds (FaaS) and isolation of request contexts in Node.js](https://youtu.be/x-Rd6fPV6L8)
53+
- Slides: https://www.slideshare.net/tshemsedinov/serverless-clouds-faas-and-request-context-isolation-in-nodejs

β€Žen/Courses/Async-2024.md

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Asynchronous programming 2024
2+
3+
The methods of writing asynchronous code that we used 10-15 years ago are irretrievably a thing of the past and can be interesting only to support the legacy exercise in a deep understanding of asynchronous programming. Even the methods of 5-7 years ago already have little in common with modern practices, but the Internet is full of outdated information, even [Metarhia community open course](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md ) has become too bulky and redundant at the moment. It should also be mentioned that asynchronous programming should look fundamentally different in system and application code. It will not be possible to completely hide the complexity of asynchronous code behind abstractions from the product developer, because it will in any case work with timers, events, streams, fetch and other asynchronous APIs, but it can be written dozens of times easier than asynchronous code in a system layer. As for the system layer, it is necessary to introduce the theory of queues (systems of mass service), the model of actors, some abstractions from parallel programming (semaphores, rendezvous, atomic operations). Of course, it is difficult to contain all this in one course, therefore, we will give priority to the application code and first fully prepare the course for the use of asynchronous programming in product development, and then we will add optional topics of the old course and many other useful abstractions widely used in other programming languages, but little known in the world of JavaScript.
4+
5+
## Content
6+
7+
Important aspects of the new course:
8+
9+
- Concentration on practical application (code examples from real projects)
10+
- Relevance and compliance with standards of 2023-2024
11+
- Tasks and analysis of the solutions, seminars, code review (the course is not just video)
12+
- Recommendations for choosing the style and abstractions of asynchrony for the task
13+
- Attention to correct error handling in all styles of asynchrony
14+
- Emphasis on reliability, maintainability, testability, reduction of coupling
15+
- Examples and tasks for correcting hidden problem states and data races
16+
17+
Topics of the new course:
18+
19+
- Asynchrony contracts based on callback: callback-last, error-first
20+
- Minimum required understanding of runtime: event loop, I/O, timers
21+
- Asynchrony contracts based on events: EventEmitter, Streams
22+
- Promise/then/catch/finally contract and async/await syntax
23+
- Parallel and serial execution, all/any/race/allSettled
24+
- Contract converters, code docking in different styles
25+
- Prevention of race conditions of data and control in asynchronous code
26+
- Cancellation of asynchronous operations: AbortController, AbortSignal
27+
- Error processing, their detection and possible problems with the stacktrace
28+
- Asynchronous collection (we collect values until ready)
29+
30+
## Pay attention
31+
32+
What you need to know and be able to do to start:
33+
34+
- [JavaScript syntax, but possible without any tricks](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md)
35+
- Confidently know git, have a github account
36+
- Preferably docker, have a working machine on linux or mac
37+
- Any development environment, IDE or editor
38+
39+
What this course is not: it is not reading documentation, not a course on libraries and frameworks, not a repetition of an old course, not live coding and not a master class, not a stream. The new course is the most concentrated information and practical tasks for both applied and system programming with a comparison of these approaches.
40+
41+
## How to get to the course
42+
43+
- News will be in the channel: https://t.me/asyncify
44+
- Course group: https://t.me/asynctalks

β€Žen/Courses/Async.uk.md

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Asynchronous programming
2+
3+
- Author: https://github.com/tshemsedinov
4+
- Legend:
5+
- ✨ - Mandatory lectures
6+
- πŸ§‘β€πŸ’» - Code examples
7+
- 🧩 - Optional lectures
8+
- πŸ•‘ - Outdated lectures (not current or historical)
9+
10+
## Course program
11+
12+
- ⭐ [Introduction and organizational issues](https://youtu.be/vfEyRijm83g)
13+
- ⭐ [Q&A workshop for all courses](https://youtu.be/Wm7wclbv1Ik)
14+
- ✨ [Asynchronous Programming (Overview)](https://youtu.be/hY6Z6qNYzmc)
15+
- ✨ [Timers, Timeouts and EventEmitter](https://youtu.be/LK2jveAnRNg)
16+
- πŸ§‘β€πŸ’» Timers: https://github.com/HowProgrammingWorks/Timers
17+
- πŸ§‘β€πŸ’» EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter
18+
- πŸ§‘β€πŸ’» Events: https://github.com/metarhia/common/blob/master/lib/events.js
19+
- ✨ [Asynchronous programming with callbacks](https://youtu.be/z8Hg6zgi3yQ)
20+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming
21+
- πŸ§‘β€πŸ’» do library: https://github.com/metarhia/do
22+
- πŸ•‘ [Non-blocking asynchronous iteration](https://youtu.be/wYA2cIRYLoA)
23+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/NonBlocking
24+
- πŸ•‘ [Asynchrony with async.js library](https://youtu.be/XQ94wQc-erU)
25+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming
26+
- πŸ§‘β€πŸ’» async.js library: https://caolan.github.io/async/
27+
- ✨ [Asynchrony on promises](https://youtu.be/RMl4r6s1Y8M)
28+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Promise
29+
- ✨ [Asynchronous functions, async/await, thenable, error handling](https://youtu.be/Jdf_tZuJbHI)
30+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/AsyncAwait
31+
- 🧩 [Asynchronous adapters: promisify, callbackify, asyncify](https://youtu.be/76k6_YkYRmU)
32+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/AsyncAdapter
33+
- ✨ [Asynchronous Data Collectors](https://youtu.be/tgodt1JL6II)
34+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Collector
35+
- πŸ§‘β€πŸ’» metasync library: https://github.com/metarhia/metasync
36+
- 🧩 [Raw errors in promises](https://youtu.be/1Ml5NE2fsZ8)
37+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/PromiseError
38+
- πŸ•‘ [Asynchronous stacktrace problem](https://youtu.be/pfiHTx3j87Y)
39+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/StackTrace
40+
- ✨ [Generators and asynchronous generators](https://youtu.be/kvNm9D32s8s)
41+
- πŸ§‘β€πŸ’» Generators: https://github.com/HowProgrammingWorks/Generator
42+
- πŸ§‘β€πŸ’» Asynchronous generators: https://github.com/HowProgrammingWorks/AsyncGenerator
43+
- ✨ [Iterators and Asynchronous Iterators](https://youtu.be/rBGFlWpVpGs)
44+
- πŸ§‘β€πŸ’» Iterators: https://github.com/HowProgrammingWorks/Iterator
45+
- πŸ§‘β€πŸ’» Asynchronous iterators: https://github.com/HowProgrammingWorks/AsyncIterator
46+
- πŸ•‘ [Cancellation of asynchronous operations](https://youtu.be/T8fXlnqI4Ws)
47+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Cancelable
48+
- ⭐ There will be a new lecture: AbortController and AbortSygnal - Cancelling asynchronous operations
49+
- 🧩 [Asynchronous function composition](https://youtu.be/3ZCrMlMpOrM)
50+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/AsyncCompose
51+
- 🧩 [Thenable and light await](https://youtu.be/DXp__1VNIvI)
52+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Thenable
53+
- 🧩 [Competitive asynchronous queue](https://youtu.be/Lg46AH8wFvg)
54+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/ConcurrentQueue
55+
- 🧩 [Revealing Constructor Pattern](https://youtu.be/leR5sXRkuJI)
56+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/RevealingConstructor
57+
- 🧩 [Future: Asynchrony with stateless futures](https://youtu.be/22ONv3AGXdk)
58+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Future
59+
- πŸ•‘ [Deferred: Asynchrony with defers with state](https://youtu.be/a2fVA1o-ovM)
60+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Deferred
61+
- 🧩 [Actor Model](https://youtu.be/xp5MVKEqxY4)
62+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/ActorModel
63+
- 🧩 [Pattern Observer (Observer + Observable)](https://youtu.be/_bFXuLcXoXg)
64+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Observer
65+
- ✨ [Asynchrony with RxJS and event streams](https://youtu.be/0kcpMAl-wfE)
66+
- πŸ§‘β€πŸ’» Code examples: https://github.com/HowProgrammingWorks/Rx
67+
- ⭐ There will be a new lecture: Async hooks
68+
- 🧩 [Memory accessible from multiple threads in Node.js](https://youtu.be/KNsm_iIQt7U)
69+
- 🧩 [Asynchronous pool for worker thread pool in Node.js](https://youtu.be/Jj5KZRq4wYI)
70+
- ✨ Asynchronous programming from the lecture [introduction to Node.js](https://www.youtube.com/watch?v=mRvzgBGLVyM)

0 commit comments

Comments
Β (0)