-
-
Notifications
You must be signed in to change notification settings - Fork 432
Add en translations for index, fixes #23 #108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
lizzochek
wants to merge
2
commits into
HowProgrammingWorks:master
from
lizzochek:index-translate-en
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
32 changes: 32 additions & 0 deletions
Courses/Advanced.en.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Second part of the course | ||
|
||
Modules SEF2 and SEF3 | ||
|
||
## Asynchronous programming | ||
|
||
### Revision | ||
|
||
- [Higher order functions, callbacks, JavaScript events](https://youtu.be/1vqATwbGHnc) | ||
- Higher order functions: https://github.com/HowProgrammingWorks/HigherOrderFunction | ||
- Callback functions: https://github.com/HowProgrammingWorks/Callbacks | ||
- [Asynchronous programming with callbacks](https://youtu.be/z8Hg6zgi3yQ) | ||
- Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming | ||
- do library: https://github.com/metarhia/do | ||
- [Timers, timeouts and EventEmitter](https://youtu.be/LK2jveAnRNg) | ||
- Timers: https://github.com/HowProgrammingWorks/Timers | ||
- EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter | ||
- Events: https://github.com/metarhia/common/blob/master/lib/events.js | ||
|
||
### An overview of asynchronous programming | ||
|
||
- [Asynchronous programming (an overview)](https://youtu.be/hY6Z6qNYzmc) | ||
|
||
### Lectures | ||
|
||
- [Asynchrony with the async.js library](https://youtu.be/XQ94wQc-erU) | ||
- Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming | ||
- async.js library: https://caolan.github.io/async/ | ||
- [Asynchrony with Promises](https://youtu.be/RMl4r6s1Y8M) | ||
- Code examples: https://github.com/HowProgrammingWorks/Promise | ||
|
||
## Node.js technology stack |
18 changes: 18 additions & 0 deletions
Courses/AlgAndData.en.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Algorithms and data structures | ||
|
||
- Built-in collections: arrays and objects | ||
- [Collections, sets, hash tables in JavaScript](https://youtu.be/hN0wsq5LNOc) | ||
- Collections: https://github.com/HowProgrammingWorks/Collections | ||
- Hash tables: https://github.com/HowProgrammingWorks/Map | ||
- Sets: https://github.com/HowProgrammingWorks/Set | ||
- [Data structures: lists, stack, queue, deck in JavaScript](https://youtu.be/9KvA4hDDSjk) | ||
- Lists: https://github.com/HowProgrammingWorks/LinkedList | ||
- Queues: https://github.com/HowProgrammingWorks/Dequeue | ||
- Trees: binary trees and hierarchical multi-linked structures | ||
- [Graphs and requests to graph structures in JavaScript](https://youtu.be/a0W0T8Yqw3s) | ||
- Code examples: https://github.com/HowProgrammingWorks/Graph | ||
- Buffering: buffers, lists of buffers, cyclic buffers | ||
- Immutable - immutable data structures (in preparation) | ||
- Lock-free data structures (in preparation) | ||
- CRDT - Conflict-free data types (in preparation) | ||
- Dynamic programming (in preparation) |
53 changes: 53 additions & 0 deletions
Courses/Architecture.en.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# Architecture of information systems | ||
|
||
## Course structure | ||
|
||
- Overview of tasks, component, modular and multi-layered approaches to design | ||
- IS classification: ERP, SCM, CRM, MRP, BI, B2B and B2C | ||
- Layered architecture and multi-link architecture for monolithic ICs | ||
- Types of interaction: common data, procedure call, event transfer | ||
- Two- and three-link applications, multi-link, pipeline topology | ||
- Service approach: web services and microservices, serverless | ||
- Data warehouses and DBMS: relational, noSQL, columnar, key-value | ||
- CQS, CQRS and Event-Sourcing | ||
- Topologies of distributed ICs: star, bus, ring, conveyor, fully connected | ||
- Design of API interfaces | ||
- Corporate integration buses (exchange with external subsystems) | ||
- Event broadcast buses and event queues (MQ systems) | ||
- Schedulers of deferred tasks and resources, execution queues | ||
- Testing, quality assessments, continuous integration | ||
- Infrastructure, deployment, updating, migrations, reengineering | ||
- Balancing, replication, sharding, resharding, backups and restoration | ||
- Security, authorization, authentication, application firewall | ||
- Application and system logging, incident investigation | ||
- Analysis and reengineering of business processes | ||
|
||
## Video lectures | ||
|
||
- [Architectural approach to programming](https://youtu.be/d_vyO2CkiOc) | ||
- [Layers, connectivity and code connectivity](https://youtu.be/A3RpwNlVeyY) | ||
- Code examples: https://github.com/HowProgrammingWorks/Abstractions | ||
- [Modules, layers, project structure, sandboxes in JavaScript and Node.js](https://youtu.be/O7A9chb573E) | ||
- Project example: https://github.com/HowProgrammingWorks/Project | ||
- Abstract layers: https://github.com/HowProgrammingWorks/AbstractionLayers | ||
- Sandboxes: https://github.com/HowProgrammingWorks/Sandboxes | ||
- [Inversion of control and dependency injection in Node.js](https://youtu.be/Fz86Fdjz-LM) | ||
- Inversion of control: https://github.com/HowProgrammingWorks/InversionOfControl | ||
- Dependency Injection: https://github.com/HowProgrammingWorks/DependencyInjection | ||
- [Interprocess interaction in Node.js](https://youtu.be/2OXWZFMvfbc) | ||
- Code examples: https://github.com/HowProgrammingWorks/InterProcessCommunication | ||
- [High-load distributed applications in Node.js](https://youtu.be/7tfZDABPvVs) | ||
- [Data access layer, cursor, transaction](https://youtu.be/CRcSWtWVvrA) | ||
- Code examples: https://github.com/HowProgrammingWorks/Transaction | ||
- [API development in Node.js (client and server)](https://youtu.be/-az912XBCu8) | ||
- Code examples: https://github.com/HowProgrammingWorks/API | ||
- [CQS, CQRS, Event Sourcing - Separation of requests and data modifications](https://youtu.be/T2tRc80Q8Qw) | ||
- CQS: https://github.com/HowProgrammingWorks/CQS | ||
- CQRS: https://github.com/HowProgrammingWorks/CQRS | ||
- EventSourcing: https://github.com/HowProgrammingWorks/EventSourcing | ||
- [Application of EventSourcing](https://youtu.be/kFNtKiK2SPs) | ||
- https://github.com/HowProgrammingWorks/EventSourcing | ||
- https://github.com/HowProgrammingWorks/CQRS | ||
- https://github.com/HowProgrammingWorks/Command | ||
- [Serverless Clouds (FaaS) and isolation of request contexts in Node.js](https://youtu.be/x-Rd6fPV6L8) | ||
- Slides: https://www.slideshare.net/tshemsedinov/serverless-clouds-faas-and-request-context-isolation-in-nodejs |
44 changes: 44 additions & 0 deletions
Courses/Async-2024.en.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Asynchronous programming 2024 | ||
|
||
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. | ||
|
||
## Content | ||
|
||
Important aspects of the new course: | ||
|
||
- Concentration on practical application (code examples from real projects) | ||
- Relevance and compliance with standards of 2023-2024 | ||
- Tasks and analysis of the solutions, seminars, code review (the course is not just video) | ||
- Recommendations for choosing the style and abstractions of asynchrony for the task | ||
- Attention to correct error handling in all styles of asynchrony | ||
- Emphasis on reliability, maintainability, testability, reduction of coupling | ||
- Examples and tasks for correcting hidden problem states and data races | ||
|
||
Topics of the new course: | ||
|
||
- Asynchrony contracts based on callback: callback-last, error-first | ||
- Minimum required understanding of runtime: event loop, I/O, timers | ||
- Asynchrony contracts based on events: EventEmitter, Streams | ||
- Promise/then/catch/finally contract and async/await syntax | ||
- Parallel and serial execution, all/any/race/allSettled | ||
- Contract converters, code docking in different styles | ||
- Prevention of race conditions of data and control in asynchronous code | ||
- Cancellation of asynchronous operations: AbortController, AbortSignal | ||
- Error processing, their detection and possible problems with the stacktrace | ||
- Asynchronous collection (we collect values until ready) | ||
|
||
## Pay attention | ||
|
||
What you need to know and be able to do to start: | ||
|
||
- [JavaScript syntax, but possible without any tricks](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md) | ||
- Confidently know git, have a github account | ||
- Preferably docker, have a working machine on linux or mac | ||
- Any development environment, IDE or editor | ||
|
||
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. | ||
|
||
## How to get to the course | ||
|
||
- News will be in the channel: https://t.me/asyncify | ||
- Course group: https://t.me/asynctalks |
70 changes: 70 additions & 0 deletions
Courses/Async.en.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# Asynchronous programming | ||
|
||
- Author: https://github.com/tshemsedinov | ||
- Legend: | ||
- ✨ - Mandatory lectures | ||
- 🧑💻 - Code examples | ||
- 🧩 - Optional lectures | ||
- 🕑 - Outdated lectures (not current or historical) | ||
|
||
## Course program | ||
|
||
- ⭐ [Introduction and organizational issues](https://youtu.be/vfEyRijm83g) | ||
- ⭐ [Q&A workshop for all courses](https://youtu.be/Wm7wclbv1Ik) | ||
- ✨ [Asynchronous Programming (Overview)](https://youtu.be/hY6Z6qNYzmc) | ||
- ✨ [Timers, Timeouts and EventEmitter](https://youtu.be/LK2jveAnRNg) | ||
- 🧑💻 Timers: https://github.com/HowProgrammingWorks/Timers | ||
- 🧑💻 EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter | ||
- 🧑💻 Events: https://github.com/metarhia/common/blob/master/lib/events.js | ||
- ✨ [Asynchronous programming with callbacks](https://youtu.be/z8Hg6zgi3yQ) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming | ||
- 🧑💻 do library: https://github.com/metarhia/do | ||
- 🕑 [Non-blocking asynchronous iteration](https://youtu.be/wYA2cIRYLoA) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/NonBlocking | ||
- 🕑 [Asynchrony with async.js library](https://youtu.be/XQ94wQc-erU) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/AsynchronousProgramming | ||
- 🧑💻 async.js library: https://caolan.github.io/async/ | ||
- ✨ [Asynchrony on promises](https://youtu.be/RMl4r6s1Y8M) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Promise | ||
- ✨ [Asynchronous functions, async/await, thenable, error handling](https://youtu.be/Jdf_tZuJbHI) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/AsyncAwait | ||
- 🧩 [Asynchronous adapters: promisify, callbackify, asyncify](https://youtu.be/76k6_YkYRmU) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/AsyncAdapter | ||
- ✨ [Asynchronous Data Collectors](https://youtu.be/tgodt1JL6II) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Collector | ||
- 🧑💻 metasync library: https://github.com/metarhia/metasync | ||
- 🧩 [Raw errors in promises](https://youtu.be/1Ml5NE2fsZ8) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/PromiseError | ||
- 🕑 [Asynchronous stacktrace problem](https://youtu.be/pfiHTx3j87Y) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/StackTrace | ||
- ✨ [Generators and asynchronous generators](https://youtu.be/kvNm9D32s8s) | ||
- 🧑💻 Generators: https://github.com/HowProgrammingWorks/Generator | ||
- 🧑💻 Asynchronous generators: https://github.com/HowProgrammingWorks/AsyncGenerator | ||
- ✨ [Iterators and Asynchronous Iterators](https://youtu.be/rBGFlWpVpGs) | ||
- 🧑💻 Iterators: https://github.com/HowProgrammingWorks/Iterator | ||
- 🧑💻 Asynchronous iterators: https://github.com/HowProgrammingWorks/AsyncIterator | ||
- 🕑 [Cancellation of asynchronous operations](https://youtu.be/T8fXlnqI4Ws) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Cancelable | ||
- ⭐ There will be a new lecture: AbortController and AbortSygnal - Cancelling asynchronous operations | ||
- 🧩 [Asynchronous function composition](https://youtu.be/3ZCrMlMpOrM) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/AsyncCompose | ||
- 🧩 [Thenable and light await](https://youtu.be/DXp__1VNIvI) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Thenable | ||
- 🧩 [Competitive asynchronous queue](https://youtu.be/Lg46AH8wFvg) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/ConcurrentQueue | ||
- 🧩 [Revealing Constructor Pattern](https://youtu.be/leR5sXRkuJI) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/RevealingConstructor | ||
- 🧩 [Future: Asynchrony with stateless futures](https://youtu.be/22ONv3AGXdk) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Future | ||
- 🕑 [Deferred: Asynchrony with defers with state](https://youtu.be/a2fVA1o-ovM) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Deferred | ||
- 🧩 [Actor Model](https://youtu.be/xp5MVKEqxY4) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/ActorModel | ||
- 🧩 [Pattern Observer (Observer + Observable)](https://youtu.be/_bFXuLcXoXg) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Observer | ||
- ✨ [Asynchrony with RxJS and event streams](https://youtu.be/0kcpMAl-wfE) | ||
- 🧑💻 Code examples: https://github.com/HowProgrammingWorks/Rx | ||
- ⭐ There will be a new lecture: Async hooks | ||
- 🧩 [Memory accessible from multiple threads in Node.js](https://youtu.be/KNsm_iIQt7U) | ||
- 🧩 [Asynchronous pool for worker thread pool in Node.js](https://youtu.be/Jj5KZRq4wYI) | ||
- ✨ Asynchronous programming from the lecture [introduction to Node.js](https://www.youtube.com/watch?v=mRvzgBGLVyM) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.