Merge pull request #1204 from ali-tamim/main

update README-ar.md
This commit is contained in:
John Washam
2022-08-31 13:51:23 -07:00
committed by GitHub

View File

@ -1,16 +1,25 @@
# الإعداد لمقابلة البرمجة # الإعداد لمقابلة البرمجة
> أنشأتها في المقام الأول كلائحة قصيرة من المواضيع الدراسية لكيف يصبح المرء مهندس برمجيات، ولكن سرعان ما كبرت هذه القائمة إلى ما تراه أمامك اليوم. بعد خوض هذه الخطة الدراسية, <div align="right">
[تم توظيفي كمهندس تطوير برمجيات لدى أمازون](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! على الأغلب لن تحتاج إلى ان تدرس بالقدر الذي درسته أنا. لكن على كل حال كل ما تحتاج إليه موجود
هنا
>
> درست لمدة ٨-١٢ ساعة في اليوم, لعدة أشهر. هذه هي قصتي: [لماذا درست دواما كاملا لمدة ثمانية أشهر من أجل مقابلة لدا قوقل](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
> العناصر المذكورة في هذه اللائحة ستجهزك جيدا لمقابلة تقنية مع تقريبا أي شركة برمجية, حتى الشركات العملاقة: أمازون، فيسبوك، قوقل، وميكروسوفت
>
> بالتوفيق
<details> > لقد قمت بأنشاء هذا في الأصل كلائحة صغيرة تحتوي على مواضيع دراسية الغرض من دراستها ان أصبح مهندس برامجيات،
> لكنها توسعت الى قائمة كبيرة التي تراها اليوم. بعد ان قمتُ بدراسة لائحة المواضيع هذه وحسب الخطة، [حصلت على عمل كمهندس برامجيات في شركة امازون](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
>! على الأغلب لن تحتاج إلى ان تدرس بالقدر الذي درسته أنا. لكن على كل حال كل ما تحتاج إليه موجود هنا.
>
>درستُ لمدة ٨-١٢ ساعة في اليوم, لعدة أشهر. هذه هي قصتي: [لماذا كرستُ كل وقتي لمدة ثمانية أشهر من أجل مقابلة لدا قوقل](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
> **ملاحظة:** لن تحتاج للدراسة بقدر ما فعلت انا، لقد اهدرت المزيد من الوقت والجهد على مواضيع لم اكن بحاجة الى معرفتها، مزيد حول ذلك ادناه، سوف اساعدك بالوصول الى هناك دون اضاعة وقتك الثمين.
>
> المواضيع المدرجة في هذه اللائحة ستجهزك جيدا لاجراء مقابلة تقنية مع اي شركة برمجية تقريبا، حتى الشركات العملاقة: أمازون، فيسبوك، قوقل، وميكروسوفت.
>
>بالتوفيق.
>
</div>
<details dir="rtl">
<summary>الترجمات:</summary> <summary>الترجمات:</summary>
- [中文版本](translations/README-cn.md) - [中文版本](translations/README-cn.md)
@ -24,7 +33,7 @@
</details> </details>
<details> <details dir="rtl">
<summary>ترجمات تحت الإعداد:</summary> <summary>ترجمات تحت الإعداد:</summary>
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81) - [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
@ -43,8 +52,9 @@
</details> </details>
<hr />
<div align="center"> <div align="center">
<hr />
<p> <p>
<a href="https://github.com/sponsors/jwasham"><strong>Become a sponsor</strong> and support Coding Interview University!</a> <a href="https://github.com/sponsors/jwasham"><strong>Become a sponsor</strong> and support Coding Interview University!</a>
</p> </p>
@ -69,26 +79,32 @@
<hr /> <hr />
</div> </div>
## ما هذا؟ ## ما هذا!
هي خطتي متعددة الأشهر للوصول من مطور ويب (تعليم ذاتي، بدون درجة علمية في علوم الحاسب) لمنصب مهندس برمجيات لشركة عملاقة <p align="center">
<img alt="Coding at the whiteboard - from HBO's Silicon Valley" src="https://d3j2pkmjtin6ou.cloudfront.net/coding-at-the-whiteboard-silicon-valley.png">
</p>
هذه خطتي الدراسية التي تستغرق عدة اشهر من اجل ان اصبح مهندس برامجيات في شركة عملاقة.
![Coding at the whiteboard - from HBO's Silicon Valley](https://d3j2pkmjtin6ou.cloudfront.net/coding-at-the-whiteboard-silicon-valley.png) **المتطلبات:**
* خبرة قليلة في البرمجة (المتغيرات، التكرارات، الدوال، الخ).
* صبر.
* وقت.
تم إعدادها لمهنسي البرمجيات الجدد أو أولئك المنتقلين من تطوير الويب إلى هندسة البرمجيات (حيث المعرفة بعلوم الحاسب ضرورية) إذا كان لديك العديد من سنوات الخبرة في بناء تطبيقات الويب أو البرمجيات، خذ في عين الإعتبار ان المقابلة ستكون اصعب ملاحظة: هذه الخطة الدراسية هي من اجل ان تصبح مهندس برامجيات وليس من اجل ان تصبح مطور تطبيقات للويب. كبرى الشركات التقنية مثل كوكل، امازون، مايكروسوفت، فيسبوك ينظرون الى مهندس البرامجيات بنظرة مختلفة عن مطور البرامجيات/الويب، على سبيل المثال شركة امازون لديها مهندس الواجهات (Frontend Engineers) ولديها مهندس تطوير برامجيات (Software Development Engineers) ولكل منها دور مختلف والمقابلة التقنية لكل منها مختلفة تماما، لكن بصورة عام تتطلب هذه الشركات معرفة بعلوم الحاسوب للمتقدمين لشغل ادوار تخص تطوير البرامجيات او هندسة البرامجيات.
إذا كانت لديك العديد من سنوات الخبرة في تطوير الويب, خذ في عين الإعتبار أن الشركات االبرمجية الضخمة مثل قوقل, فيسبوك, و ميكروسوفت ينظرون إلى هندسة البرمجيات بشكل مختلف عن تطوير البرمجيات/ويب, و تحتاج إلى معرفة علوم الحاسب <hr />
إذا اردت ان تصبح مهندس موثوقية أو مهندس عمليات, ادرس اكثر من القائمة الإختيارية (شبكات, امن)
---
## الفهرس ## الفهرس
- [ما هذا؟](#ما-هذا؟)
- [لماذا استخدمه؟](#لماذا-استخدمه؟) <div dir='rtl' align='right'>
- [ما هذا؟](#ما-هذا)
- [لماذا استخدم هذه الخطة الدراسية؟](#لماذا-استخدم-هذه-الخطة-الدراسية)
- [كيفية استخدامها](#كيفية-استخدامها) - [كيفية استخدامها](#كيفية-استخدامها)
- [عن مصادر مقاطع الفديو](#عن-مصادر-مقاطع-الفديو) - [عن مصادر مقاطع الفيديو](#عن-مصادر-مقاطع-الفديو)
- [مراحل المقابلة الشخصية & الإستعداد العام للمقابلة](#مراحل-المقابلة-الشخصية-و-الإستعداد-العام-للمقابلة) - [مراحل المقابلة الشخصية & الإستعداد العام للمقابلة](#مراحل-المقابلة-الشخصية-و-الإستعداد-العام-للمقابلة)
- [اختر لغة برمجية واحدة للمقابلة البرمجية](#اختر-لغة-برمجية-واحدة-للمقابلة-البرمجية) - [اختر لغة برمجية واحدة للمقابلة البرمجية](#اختر-لغة-برمجية-واحدة-للمقابلة-البرمجية)
- [لائحة الكتب](#لائحة-الكتب) - [لائحة الكتب](#لائحة-الكتب)
@ -96,112 +112,112 @@
- [ما لن تجده هنا](#ما-لن-تجده-هنا) - [ما لن تجده هنا](#ما-لن-تجده-هنا)
- [الخطة اليومية](#الخطة-اليومية) - [الخطة اليومية](#الخطة-اليومية)
- [معرفة مسبقة](#المعرفة-المسبقة) - [معرفة مسبقة](#المعرفة-المسبقة)
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis) - [تقدير وتحليل أداء الخوارزميات (Algorithmic complexity / Big-O / Asymptotic analysis)](#algorithmic-complexity--big-o--asymptotic-analysis)
- [Data Structures](#data-structures) - [هياكل البيانات (Data Structures)](#data-structures)
- [Arrays](#arrays) - [المصفوفات (Arrays)](#arrays)
- [Linked Lists](#linked-lists) - [العقد المترابطة (Linked Lists)](#linked-lists)
- [Stack](#stack) - [المكدس (Stack)](#stack)
- [Queue](#queue) - [الطابور (Queue)](#queue)
- [Hash table](#hash-table) - [جداول التجزئة (Hash table)](#hash-table)
- [More Knowledge](#more-knowledge) - [معرفة اضافية](#more-knowledge)
- [Binary search](#binary-search) - [الـ Binary search](#binary-search)
- [Bitwise operations](#bitwise-operations) - [الـ Bitwise operations](#bitwise-operations)
- [Trees](#trees) - [الشجرة (Trees)](#trees)
- [Trees - Notes & Background](#trees---notes--background) - [الشجرة - ملاحظات - ومعلومات اساسية (Trees - Notes & Background)](#trees---notes--background)
- [Binary search trees: BSTs](#binary-search-trees-bsts) - [الـ Binary search trees: BSTs](#binary-search-trees-bsts)
- [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap) - [الـ Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- balanced search trees (general concept, not details) - الـ balanced search trees (general concept, not details)
- traversals: preorder, inorder, postorder, BFS, DFS - الـ traversals: preorder, inorder, postorder, BFS, DFS
- [Sorting](#sorting) - [الـ Sorting](#sorting)
- selection - الـ selection
- insertion - الـ insertion
- heapsort - الـ heapsort
- quicksort - الـ quicksort
- merge sort - الـ merge sort
- [Graphs](#graphs) - [الـ Graphs](#graphs)
- directed - الـ directed
- undirected - الـ undirected
- adjacency matrix - الـ adjacency matrix
- adjacency list - الـ adjacency list
- traversals: BFS, DFS - الـ traversals: BFS, DFS
- [Even More Knowledge](#even-more-knowledge) - [الـ Even More Knowledge](#even-more-knowledge)
- [Recursion](#recursion) - [الـ Recursion](#recursion)
- [Dynamic Programming](#dynamic-programming) - [الـ Dynamic Programming](#dynamic-programming)
- [Object-Oriented Programming](#object-oriented-programming) - [الـ Object-Oriented Programming](#object-oriented-programming)
- [Design Patterns](#design-patterns) - [الـ Design Patterns](#design-patterns)
- [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability) - [الـ Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
- [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms) - [الـ NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- [Caches](#caches) - [الـ Caches](#caches)
- [Processes and Threads](#processes-and-threads) - [الـ Processes and Threads](#processes-and-threads)
- [Testing](#testing) - [الـ Testing](#testing)
- [Scheduling](#scheduling) - [الـ Scheduling](#scheduling)
- [String searching & manipulations](#string-searching--manipulations) - [الـ String searching & manipulations](#string-searching--manipulations)
- [Tries](#tries) - [الـ Tries](#tries)
- [Floating Point Numbers](#floating-point-numbers) - [الـ Floating Point Numbers](#floating-point-numbers)
- [Unicode](#unicode) - [الـ Unicode](#unicode)
- [Endianness](#endianness) - [الـ Endianness](#endianness)
- [Networking](#networking) - [الـ Networking](#networking)
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience) - [الـ System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
- [Final Review](#final-review) - [الـ Final Review](#final-review)
- [Coding Question Practice](#coding-question-practice) - [الـ Coding Question Practice](#coding-question-practice)
- [Coding exercises/challenges](#coding-exerciseschallenges) - [الـ Coding exercises/challenges](#coding-exerciseschallenges)
- [Once you're closer to the interview](#once-youre-closer-to-the-interview) - [الـ Once you're closer to the interview](#once-youre-closer-to-the-interview)
- [Your Resume](#your-resume) - [الـ Your Resume](#your-resume)
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes) - [الـ Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
- [Have questions for the interviewer](#have-questions-for-the-interviewer) - [الـ Have questions for the interviewer](#have-questions-for-the-interviewer)
- [Once You've Got The Job](#once-youve-got-the-job) - [الـ Once You've Got The Job](#once-youve-got-the-job)
---------------- Everything below this point is optional ----------------
## Additional Resources ## مصادر اضافية
- [الـ Additional Books](#additional-books)
- [الـ Additional Learning](#additional-learning)
- [الـ Compilers](#compilers)
- [الـ Emacs and vi(m)](#emacs-and-vim)
- [الـ Unix command line tools](#unix-command-line-tools)
- [الـ Information theory](#information-theory-videos)
- [الـ Parity & Hamming Code](#parity--hamming-code-videos)
- [الـ Entropy](#entropy)
- [الـ Cryptography](#cryptography)
- [الـ Compression](#compression)
- [الـ Computer Security](#computer-security)
- [الـ Garbage collection](#garbage-collection)
- [الـ Parallel Programming](#parallel-programming)
- [الـ Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
- [الـ A*](#a)
- [الـ Fast Fourier Transform](#fast-fourier-transform)
- [الـ Bloom Filter](#bloom-filter)
- [الـ HyperLogLog](#hyperloglog)
- [الـ Locality-Sensitive Hashing](#locality-sensitive-hashing)
- [الـ van Emde Boas Trees](#van-emde-boas-trees)
- [الـ Augmented Data Structures](#augmented-data-structures)
- [الـ Balanced search trees](#balanced-search-trees)
- الـ AVL trees
- الـ Splay trees
- الـ Red/black trees
- الـ 2-3 search trees
- الـ 2-3-4 Trees (aka 2-4 trees)
- الـ N-ary (K-ary, M-ary) trees
- الـ B-Trees
- [الـ k-D Trees](#k-d-trees)
- [الـ Skip lists](#skip-lists)
- [الـ Network Flows](#network-flows)
- [الـ Disjoint Sets & Union Find](#disjoint-sets--union-find)
- [الـ Math for Fast Processing](#math-for-fast-processing)
- [الـ Treap](#treap)
- [الـ Linear Programming](#linear-programming-videos)
- [الـ Geometry, Convex hull](#geometry-convex-hull-videos)
- [الـ Discrete math](#discrete-math)
- [الـ Machine Learning](#machine-learning)
- [الـ Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
- [الـ Video Series](#video-series)
- [الـ Computer Science Courses](#computer-science-courses)
- [الـ Papers](#papers)
- [Additional Books](#additional-books)
- [Additional Learning](#additional-learning)
- [Compilers](#compilers)
- [Emacs and vi(m)](#emacs-and-vim)
- [Unix command line tools](#unix-command-line-tools)
- [Information theory](#information-theory-videos)
- [Parity & Hamming Code](#parity--hamming-code-videos)
- [Entropy](#entropy)
- [Cryptography](#cryptography)
- [Compression](#compression)
- [Computer Security](#computer-security)
- [Garbage collection](#garbage-collection)
- [Parallel Programming](#parallel-programming)
- [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
- [A*](#a)
- [Fast Fourier Transform](#fast-fourier-transform)
- [Bloom Filter](#bloom-filter)
- [HyperLogLog](#hyperloglog)
- [Locality-Sensitive Hashing](#locality-sensitive-hashing)
- [van Emde Boas Trees](#van-emde-boas-trees)
- [Augmented Data Structures](#augmented-data-structures)
- [Balanced search trees](#balanced-search-trees)
- AVL trees
- Splay trees
- Red/black trees
- 2-3 search trees
- 2-3-4 Trees (aka 2-4 trees)
- N-ary (K-ary, M-ary) trees
- B-Trees
- [k-D Trees](#k-d-trees)
- [Skip lists](#skip-lists)
- [Network Flows](#network-flows)
- [Disjoint Sets & Union Find](#disjoint-sets--union-find)
- [Math for Fast Processing](#math-for-fast-processing)
- [Treap](#treap)
- [Linear Programming](#linear-programming-videos)
- [Geometry, Convex hull](#geometry-convex-hull-videos)
- [Discrete math](#discrete-math)
- [Machine Learning](#machine-learning)
- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
- [Video Series](#video-series)
- [Computer Science Courses](#computer-science-courses)
- [Papers](#papers)
---
## لماذا استخدمه؟ </div>
## لماذا استخدم هذه الخطة الدراسية؟
أقوم بمتابعة هذه الخطة لتحضير إلى المقابلة الشخصية بجوجل. لقد قمت بناء مواقع ويب، وتقديم خدمات ذات صلة، وبناء شركات ناشئة منذ 1997. لدي درجة علمية في الاقتصاد، وليس في علوم الحاسب. أنا شخص ناجح في مجال عملي، ولكنني أريد أن أعمل بجوجل. أريد أن أعمل على أنظمة كبيرة والحصول على فهم كبير في أنظمة الحاسوب، كفاءة الخوارزميات، كقاءة الهياكل البيانية، اللغات الأقرب إلى الآلة وكيفية عملها. وإذ لم تعرف أين منها لن تعينك جوجل. أقوم بمتابعة هذه الخطة لتحضير إلى المقابلة الشخصية بجوجل. لقد قمت بناء مواقع ويب، وتقديم خدمات ذات صلة، وبناء شركات ناشئة منذ 1997. لدي درجة علمية في الاقتصاد، وليس في علوم الحاسب. أنا شخص ناجح في مجال عملي، ولكنني أريد أن أعمل بجوجل. أريد أن أعمل على أنظمة كبيرة والحصول على فهم كبير في أنظمة الحاسوب، كفاءة الخوارزميات، كقاءة الهياكل البيانية، اللغات الأقرب إلى الآلة وكيفية عملها. وإذ لم تعرف أين منها لن تعينك جوجل.
@ -218,40 +234,43 @@
**اصنع مسار جديد يمكن من خلاله أن تضع علامة [x]** **اصنع مسار جديد يمكن من خلاله أن تضع علامة [x]**
احصل على نسخة خاصة "fork" بك واتبع هذه الأوامر احصل على نسخة خاصة "fork" بك واتبع هذه الأوامر
1- Clone to your local repo
Clone to your local repo ```
git clone git@github.com:<your_github_username>/coding-interview-university.git
`git clone git@github.com:<your_github_username>/coding-interview-university.git` cd coding-interview-university
git checkout -b progress
`git checkout -b progress` git remote add jwasham https://github.com/jwasham/coding-interview-university
git fetch --all
`git remote add jwasham https://github.com/jwasham/coding-interview-university` ```
`git fetch --all`
دون بعلامة X بعد الإنتهاء من دراسة العنصر دون بعلامة X بعد الإنتهاء من دراسة العنصر
```
`git add .` git add .
git commit -m "Marked x"
`git commit -m "Marked x"` git rebase jwasham/main
git push --set-upstream origin progress
`git rebase jwasham/main` git push --force
```
`git push --set-upstream origin progress`
`git push --force`
[More about Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown) [More about Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
## هل تشعر أنك لست بالذكاء الكافي ## هل تشعر أنك لست بالذكاء الكافي
<div dir='rtl' align='right'>
- مهندسوا جوجل أذكياء، وربما لديهم عدم الأمان لأنهم ليسوا بالذكاء الكافي، حتى وهي في جوجل - مهندسوا جوجل أذكياء، وربما لديهم عدم الأمان لأنهم ليسوا بالذكاء الكافي، حتى وهي في جوجل
- [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ) - شاهد هذا الفيديو عبر اليوتيوب [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ)
- [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY) - شاهد هذا الفيديو عبر اليوتيوب [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY)
</div>
## عن مصادر مقاطع الفديو ## عن مصادر مقاطع الفديو