Merge branch 'master' into master
This commit is contained in:
commit
c70a3aff21
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
.idea
|
||||
*.iml
|
||||
personal-9894.md
|
||||
|
||||
# Targets Windows & Unix temporary files
|
||||
@ -14,3 +15,4 @@ personal-9894.md
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
## Programming Language Resources
|
||||
|
||||
- C
|
||||
- [ANSI C Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/C%20Reference%20Card%20(ANSI)%202.2.pdf)
|
||||
- [ANSI C Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/C%20Reference%20Card%20(ANSI)%202.2.pdf)
|
||||
- K&R C book (ANSI C)
|
||||
- [Make, Clang (video)](https://www.youtube.com/watch?v=U3zCxnj2w8M)
|
||||
- GDB:
|
||||
@ -9,20 +9,20 @@
|
||||
- [Harvard CS50 - GDB (video)](https://www.youtube.com/watch?v=y5JmQItfFck)
|
||||
- [Valgrind (video)](https://www.youtube.com/watch?v=fvTsFjDuag8)
|
||||
- [Let us C](https://books.google.co.in/books/about/Let_Us_C.html?id=7HrjAAAACAAJ)
|
||||
|
||||
- C++
|
||||
- [C++ Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/Cpp_reference.pdf)
|
||||
- [STL Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/STL%20Quick%20Reference%201.29.pdf)
|
||||
- basics
|
||||
- pointers
|
||||
- functions
|
||||
- references
|
||||
- templates
|
||||
- compilation
|
||||
- scope & linkage
|
||||
- namespaces
|
||||
- OOP
|
||||
- STL
|
||||
- [C++ Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/Cpp_reference.pdf)
|
||||
- [STL Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/STL%20Quick%20Reference%201.29.pdf)
|
||||
- [basics](https://www.tutorialspoint.com/cplusplus/cpp_basic_syntax.htm)
|
||||
- [pointers](https://www.cprogramming.com/tutorial/lesson6.html)
|
||||
- [class and object](https://www.cprogramming.com/tutorial/lesson12.html)
|
||||
- [functions](https://www.cprogramming.com/tutorial/lesson4.html)
|
||||
- [references](https://www.geeksforgeeks.org/references-in-c/)
|
||||
- [templates](https://www.cprogramming.com/tutorial/templates.html)
|
||||
- [compilation](https://www.youtube.com/watch?v=ZTu0kf-7h08)
|
||||
- [scope & linkage](https://www.learncpp.com/cpp-tutorial/scope-duration-and-linkage-summary/)
|
||||
- [namespaces](https://www.tutorialspoint.com/cplusplus/cpp_namespaces.htm)
|
||||
- [OOP](https://www.geeksforgeeks.org/object-oriented-programming-in-cpp/)
|
||||
- [STL](https://www.hackerearth.com/practice/notes/standard-template-library/)
|
||||
- [functors](http://www.cprogramming.com/tutorial/functors-function-objects-in-c++.html)
|
||||
- [C++ at Google (video)](https://www.youtube.com/watch?v=NOCElcMcFik)
|
||||
- [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
|
||||
@ -30,24 +30,26 @@
|
||||
- [Efficiency with Algorithms, Performance with Data Structures (video)](https://youtu.be/fHNmRkzxHWs)
|
||||
- [Review of C++ concepts (video)](https://www.youtube.com/watch?v=Rub-JsjMhWY)
|
||||
- [Let us C++](https://books.google.co.in/books/about/Let_Us_C++.html?id=6HrjAAAACAAJ)
|
||||
|
||||
- [C++ Primer](https://books.google.co.in/books/about/C++_Primer.html?id=J1HMLyxqJfgC&redir_esc=y)
|
||||
- Python
|
||||
- [Python Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/python-cheat-sheet-v1.pdf)
|
||||
- [Python Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/python-cheat-sheet-v1.pdf)
|
||||
- [Python in One Video](https://www.youtube.com/watch?v=N4mEzFDjqtA)
|
||||
- [Series on 3.4 (video)](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_)
|
||||
- [Zero to Hero (video)](https://www.youtube.com/watch?v=TV9tSHFAFjg)
|
||||
- [Statistics for Hackers (video)](https://www.youtube.com/watch?v=Iq9DzN6mvYA)
|
||||
- [Faster Python (video)](https://www.youtube.com/watch?v=JDSGVvMwNM8)
|
||||
- [CPython Walk (video)](https://www.youtube.com/watch?v=LhadeL7_EIU&list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S&index=6)
|
||||
- [10 Tips for Pythonic Code (video)](https://www.youtube.com/watch?v=_O23jIXsshs)
|
||||
- [Beyond PEP 8 -- Best practices for beautiful intelligible code (video)](https://www.youtube.com/watch?v=wf-BqAjZb8M)
|
||||
- [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/)
|
||||
|
||||
- [Coding Interview Essentials](https://github.com/ajinkyal121/coding-interview-university/blob/master/extras/cheat%20sheets/Coding%20Interview%20Python%20Language%20Essentials.pdf)
|
||||
- [Data Structures And Algorithms in Python](https://www.youtube.com/watch?v=kQDxmjfkIKY)
|
||||
- Java
|
||||
- [Stanford CS106A - Programming Methodology (video)](https://see.stanford.edu/Course/CS106A)
|
||||
- [Software Construction In Java (video)](https://www.edx.org/course/software-construction-java-mitx-6-005-1x)
|
||||
- [Introduction To Programming In Java](http://introcs.cs.princeton.edu/java/home/)
|
||||
- [Algorithms 4th Ed - Algorithm Book In Java](http://algs4.cs.princeton.edu/home/)
|
||||
- [Effective Java 3rd Edition](https://www.amazon.com/Effective-Java-Joshua-Bloch-ebook/dp/B078H61SCH)
|
||||
- [Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer](https://www.youtube.com/watch?v=RBSGKlAvoiM&t=1744s)
|
||||
- Go
|
||||
- [The Go programming Language](https://golang.org/)
|
||||
- [The Go programming Language (book)](http://www.gopl.io/)
|
||||
@ -60,12 +62,16 @@
|
||||
- HTML
|
||||
- [Quick HTML Tutorial for Beginners](https://www.youtube.com/playlist?list=PLr6-GrHUlVf_ZNmuQSXdS197Oyr1L9sPB)
|
||||
- [HTML Crash Course for Beginners (1 hr)](https://www.youtube.com/watch?v=UB1O30fR-EE)
|
||||
- [Basic HTML and HTML5](https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/)
|
||||
- CSS
|
||||
- [Quick CSS Tutorial for Beginners](https://www.youtube.com/playlist?list=PLr6-GrHUlVf8JIgLcu3sHigvQjTw_aC9C)
|
||||
- [CSS Crash Course for absolute Beginners](https://www.youtube.com/watch?v=yfoY53QXEnI)
|
||||
- [Basic CSS](https://www.freecodecamp.org/learn/responsive-web-design/basic-css/)
|
||||
- Javascript
|
||||
- [Lern Javascript in 12 minutes](https://www.youtube.com/watch?v=Ukg_U3CnJWI)
|
||||
- [Learn Javascript in 12 minutes](https://www.youtube.com/watch?v=Ukg_U3CnJWI)
|
||||
- [Javascript Beginner Tutorials](https://www.youtube.com/playlist?list=PL41lfR-6DnOrwYi5d824q9-Y6z3JdSgQa)
|
||||
- [Javascript Algorithms and Data Structures](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/)
|
||||
- [Javascript Algorithms With Explanations](https://github.com/trekhleb/javascript-algorithms)
|
||||
- Other Language 1
|
||||
- Other Language 2
|
||||
- etc
|
||||
|
@ -1,37 +1,60 @@
|
||||
# الإعداد لجوجل
|
||||
# الإعداد لمقابلة البرمجة
|
||||
|
||||
> أنشأتها في المقام الأول كلائحة قصيرة من المواضيع الدراسية لكيف يصبح المرء مهندس برمجيات, و ولكن سرعان ما كبرت هذه القائمة الى ما تراه امامك اليوم. بعد خوض هذه الخطة الدراسية,
|
||||
[تم توظيفي كمهندس تطوير برمجيات لدى أمازون](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>
|
||||
<summary>الترجمات:</summary>
|
||||
|
||||
الترجمه:
|
||||
- [中文版本](translations/README-cn.md)
|
||||
- الترجمات تحت الاعداد:
|
||||
- [Español](https://github.com/jwasham/google-interview-university/issues/80)
|
||||
- [हिन्दी](https://github.com/jwasham/google-interview-university/issues/81)
|
||||
- [עברית](https://github.com/jwasham/google-interview-university/issues/82)
|
||||
- [Bahasa Indonesia](https://github.com/jwasham/google-interview-university/issues/101)
|
||||
- [Arabic](https://github.com/jwasham/google-interview-university/issues/98)
|
||||
- [Vietnamese](https://github.com/jwasham/google-interview-university/issues/92)
|
||||
- [Turkish](https://github.com/jwasham/google-interview-university/issues/90)
|
||||
- [French](https://github.com/jwasham/google-interview-university/issues/89)
|
||||
- [Russian](https://github.com/jwasham/google-interview-university/issues/87)
|
||||
- [Ukrainian](https://github.com/jwasham/google-interview-university/issues/106)
|
||||
- [Brazilian Portuguese](https://github.com/jwasham/google-interview-university/issues/113)
|
||||
- [Korean](https://github.com/jwasham/google-interview-university/issues/118)
|
||||
- [Polish](https://github.com/jwasham/google-interview-university/issues/122)
|
||||
- [Tiếng Việt - الفيتنامبة](translations/README-vi.md)
|
||||
- [الإسبانية](translations/README-es.md)
|
||||
- [(البرتغالية (البرازيلية](translations/README-ptbr.md)
|
||||
- [البولندية](translations/README-pl.md)
|
||||
- [繁體中文](translations/README-tw.md)
|
||||
- [اليابانية (日本語)](translations/README-ja.md)
|
||||
- [الروسية](translations/README-ru.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>ترجمات تحت الإعداد:</summary>
|
||||
|
||||
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
|
||||
- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
|
||||
- [الإندونيسية](https://github.com/jwasham/coding-interview-university/issues/101)
|
||||
- [العربية](https://github.com/jwasham/coding-interview-university/issues/98)
|
||||
- [التركية](https://github.com/jwasham/coding-interview-university/issues/90)
|
||||
- [الفرنسية](https://github.com/jwasham/coding-interview-university/issues/89)
|
||||
- [الأكرانية](https://github.com/jwasham/coding-interview-university/issues/106)
|
||||
- [الكورية(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
|
||||
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
|
||||
- [أردو](https://github.com/jwasham/coding-interview-university/issues/140)
|
||||
- [التايلندية](https://github.com/jwasham/coding-interview-university/issues/156)
|
||||
- [اليونانية](https://github.com/jwasham/coding-interview-university/issues/166)
|
||||
- [الإيطالية](https://github.com/jwasham/coding-interview-university/issues/170)
|
||||
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
|
||||
|
||||
</details>
|
||||
|
||||
## ماهذا؟
|
||||
هي خطة من عدة أشهر من مطور تطبيقات ويب (قائمة على التعليم الذاتي، ومبدون درجة علمية في علوم الحاسب) لمنصب مهندس برمجيات بجوجل
|
||||
هي خطتي متعددة الأشهر للوصول من مطور ويب (تعليم ذاتي، بدون درجة علمية في علوم الحاسب) لمنصب مهندس برمجيات لشركة عملاقة
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
هذه القائمة الطويلة تم إعدادها من ملاحظات الإعداد لجوجل، لذلك هي الأشياء مطالب بمعرفتها.
|
||||
هناك أشياء إضافية أضفتها في آخر القائمة التي ربما تأتي في المقابلة الشخصية أو تساعد في حل المشاكل البرمجية. كتيرا من العناصر من: كتاب ستيف ياج "[احصل على وظيفة بجوجل](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" ومن حين لآخر ملاحظات الإعداد لجوجل.
|
||||
لقد قلصت ماستحتاجه من ملاحظات ياج. وقمت بتعديل متطلبات ياج.
|
||||
من معلومات تم الحصول عليها من معارفي بجوجل. هذا يعني أنه من **من مهندسين برمجيات جدد** أو من الذين غيروا مسار العمل من تطوير الويب والبرمجيات إلى مهندس برمجيات(حيث علوم الحساب أمر أساسي). لو لديك كتير من سنوات الخبرة في هندسة البرمجيات توقع المقابلة الشخصية الأصعب.
|
||||
[اقرأ المزيد](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/).
|
||||
تم إعدادها لمهنسي البرمجيات الجدد او أولئك المنتقلين من تطوير الويب إلى هندسة البرمجيات (حيث المعرفة بعلوم الحاسب ضرورية) إذا كان لديك العديد من سنوات الخبرة في بناء تطبيقات الويب أو البرمجيات، خذ في عين الإعتبار ان المقابلة ستكون اصعب
|
||||
|
||||
إذا كان لديك العديد من سنوات الخبرة في بناء تطبيقات الويب أو البرمجيات، لاحظ أن رؤية جوجل لهندسة البرمجيات تختلف عن منظور تطوير التطبيقات أو البرمجيات وتطلب معرفة بعلوم الحاسب.
|
||||
إذا كانت لديك العديد من سنوات الخبرة في تطوير الويب, خذ في عين الإعتبار أن الشركات االبرمجية الضخمة مثل قوقل, فيسبوك, و ميكروسوفت ينظرون إلى هندسة البرمجيات بشكل مختلف عن تطوير البرمجيات/ويب, و تحتاج إلى معرفة علوم الحاسب
|
||||
|
||||
أذا كنت تريد أن تصبح مهندس أنظمة أو مهندس ++، اقرأ المزيد من القائمة الاختيارية عن(شبكات الحاسب، والحماية).
|
||||
إذا اردت ان تصبح مهندس موثوقية أو مهندس عمليات, ادرس اكثر من القائمة الإختيارية (شبكات, امن)
|
||||
|
||||
---
|
||||
|
||||
@ -48,11 +71,11 @@
|
||||
- [عن مصادر الفديو](#about-video-resources)
|
||||
- [مراحل المقابلة الشخصية & الإستعداد العام للمقابلة](#interview-process--general-interview-prep)
|
||||
- [اختر لغة برمجية واحدة للمقابلة البرمجية](#pick-one-language-for-the-interview)
|
||||
- [Book List](#book-list)
|
||||
- [Before you Get Started](#before-you-get-started)
|
||||
- [What you Won't See Covered](#what-you-wont-see-covered)
|
||||
- [Prerequisite Knowledge](#prerequisite-knowledge)
|
||||
- [The Daily Plan](#the-daily-plan)
|
||||
- [لائحة الكتب](#book-list)
|
||||
- [قبل أن تبدأ](#before-you-get-started)
|
||||
- [ما لن تجده هنا](#what-you-wont-see-covered)
|
||||
- [معرفة مسبقة](#prerequisite-knowledge)
|
||||
- [الخطة اليومية](#the-daily-plan)
|
||||
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
|
||||
- [Data Structures](#data-structures)
|
||||
- [Arrays](#arrays)
|
||||
@ -179,7 +202,7 @@
|
||||
|
||||
`git checkout -b progress`
|
||||
|
||||
`git remote add jwasham https://github.com/jwasham/google-interview-university`
|
||||
`git remote add jwasham https://github.com/jwasham/coding-interview-university`
|
||||
|
||||
`git fetch --all`
|
||||
|
||||
@ -197,9 +220,9 @@
|
||||
|
||||
## الدخول في مزاج جوجلي
|
||||
|
||||
Print out a "[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
|
||||
Print out a "[future Googler](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
|
||||
|
||||
[](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)
|
||||
[](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)
|
||||
|
||||
|
||||
## هل حصلت على الوظيفة بجوجل؟
|
||||
@ -224,7 +247,7 @@ I'm on the journey, too. Follow along:
|
||||
- لينكدإن: [johnawasham](https://www.linkedin.com/in/johnawasham)
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
## هل تشعر أنك لست بالذكاء الكافي
|
||||
- مهندسوا جوجل أذكياء، وربما لديهم عدم الأمان لأنهم ليسوا بالذكاء الكافي، حتى وهي في جوجل
|
||||
@ -587,12 +610,12 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] Description:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -654,14 +677,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -688,10 +711,10 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -717,7 +740,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -746,7 +769,6 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -1292,7 +1314,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- flow:
|
||||
1. Understand the problem and scope:
|
||||
- define the use cases, with interviewer's help
|
||||
@ -1639,7 +1661,6 @@ You're never really done.
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
@ -2030,4 +2051,3 @@ Sit back and enjoy. "Netflix and skill" :P
|
||||
|
||||
- [Directory of Online CS Courses](https://github.com/open-source-society/computer-science)
|
||||
- [Directory of CS Courses (many with online lectures)](https://github.com/prakhar1989/awesome-courses)
|
||||
|
||||
|
BIN
translations/README-bn.md
Normal file
BIN
translations/README-bn.md
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
2093
translations/README-de.md
Normal file
2093
translations/README-de.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
# Coding Interview University
|
||||
|
||||
- Versión original: [Inglés](README.md)
|
||||
- Versión original: [Inglés](../README.md)
|
||||
|
||||
> Originalmente creé esto como una lista corta de tópicos a estudiar para volverse un Ingeniero de Software, pero creció hasta ser la gran lista puede apreciar actualmente. Después de pasar por este plan de estudios ¡[fui contratado como Ingeniero de Desarrollo de Software en Amazon!(Art. Inglés)](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
|
||||
|
||||
@ -38,7 +38,7 @@ Traducciones:
|
||||
|
||||
Este es mi plan de estudios de varios meses para pasar de ser un Desarrollador Web (Autodidacta, sin título) a un Ingeniero de Software para una gran compañía.
|
||||
|
||||

|
||||

|
||||
|
||||
Esto es para los **nuevos Ingenieros de Software** o aquellos que quieren cambiar del Desarrollo de Software/Web a Ingeniero de Software (Donde el conocimiento de las Ciencias de Computación es requerido). Si tiene varios años de experiencia y clama tenerlos como Ingeniero de Software, espere una entrevista más ardua.
|
||||
|
||||
@ -172,7 +172,7 @@ Si desea ser un Ingeniero de Escalabilidad/Seguridad o un Ingeniero de Sistemas,
|
||||
|
||||
Cuando comencé este proyecto, no sabía la diferencia entre un stack y un heap, no conocía la notación Big-O, nada acerca de árboles, ni cómo sacar la transversal de una gráfica. Si tenía que programar un algoritmo de clasificación, puedo decir que no hubiera sido muy bueno. Cada estructura de datos que había utilizado estaba incorporada al lenguaje, y yo no sabía cómo funcionaban realmente. Yo nunca tuve que manejar la memoria a menos que un proceso que yo estaba corriendo diera un error de “out of memory”, y tenía que encontrar una alternativa. He usado pocos arreglos de varias dimensiones en mi vida y miles de arreglos asociativos, pero nunca he creado estructuras de datos desde cero.
|
||||
|
||||
Pero después de pasar por todo este plan de estudios tengo mucha confianza de que seré contratado. Me toará meses. Si mucho de esto te resulta familiar entonces te tomará mucho menos tiempo.
|
||||
Pero después de pasar por todo este plan de estudios tengo mucha confianza de que seré contratado. Me tomará meses. Si mucho de esto te resulta familiar entonces te tomará mucho menos tiempo.
|
||||
|
||||
Es un plan largo, puede tome unos meses; pero si le resulta familiar mucho de esto le tomara mucho menos tiempo.
|
||||
|
||||
@ -415,7 +415,7 @@ Tenga en cuenta que empecé desde abajo y hay tarjetas que cubren todo, desde el
|
||||
|
||||
Una alternativa a usar mi sitio de tarjetas es [Anki](http://ankisrs.net/), que me ha sido recomendado muchas veces. Usa un sistema de repetición para ayudarle a recordar. Es amigable con el usuario y disponible para todas las plataformas y tiene un sistema de sincronización en la nube. Cuesta $25 en iOS pero es gratuito en las otras plataformas.
|
||||
|
||||
Mis tarjetas en ek formato de Anki: https://ankiweb.net/shared/info/25173560 (Gracias[@xiewenya](https://github.com/xiewenya))
|
||||
Mis tarjetas en el formato de Anki: https://ankiweb.net/shared/info/25173560 (Gracias[@xiewenya](https://github.com/xiewenya))
|
||||
|
||||
### 3. Revise, revise, revise
|
||||
|
||||
@ -508,12 +508,12 @@ Escriba código en un pizarrón o en papel no en la computadora. Pruebe con algu
|
||||
- [ ] Descripción:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implemente un vector (Arreglo mutable con redimensionamiento automático):
|
||||
- [ ] Practique codificar usando arreglos y apuntadores, y un apuntador matemático para saltar a un índice en lugar de utilizar la indexación.
|
||||
- [ ] Nueva arreglo de información primaria con memoria asignada
|
||||
@ -574,14 +574,14 @@ Escriba código en un pizarrón o en papel no en la computadora. Pruebe con algu
|
||||
- No es necesario
|
||||
- ### Pila
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] No implementaré. Implementando con arreglos es trivial.
|
||||
|
||||
- ### Cola o fila
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implementar usando listas enlazadas, con el puntero de la cola:
|
||||
- enqueue(value) – Añade el valor en la posición de la cola
|
||||
- dequeue() – Regresa el valor y elimina el valor más recientemente añadido(frontal)
|
||||
@ -608,10 +608,10 @@ Escriba código en un pizarrón o en papel no en la computadora. Pruebe con algu
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Cursos en línea:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -636,7 +636,7 @@ Escriba código en un pizarrón o en papel no en la computadora. Pruebe con algu
|
||||
- Búsqueda binaria usando recursión
|
||||
|
||||
- ### Operaciones bit a bit
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - Debería conocer varias de las potencias de 2 a partir de (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - Debería conocer varias de las potencias de 2 a partir de (2^1 to 2^16 and 2^32)
|
||||
- [ ] Obtenga un buen entendimiento de la manipulación de bits con: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Buena introducción:
|
||||
@ -664,7 +664,6 @@ Escriba código en un pizarrón o en papel no en la computadora. Pruebe con algu
|
||||
|
||||
## Árboles
|
||||
- ### Árboles - Notas & Antecedentes
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- Construcción básica de árboles
|
||||
- Recorrido
|
||||
@ -1568,7 +1567,6 @@ Es probable que estos temas no aparezcan en una entrevista, pero los añadí par
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Recolección de basura
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
|
@ -1,15 +1,15 @@
|
||||
# Google Interview University
|
||||
# Coding Interview University
|
||||
|
||||
Translations:
|
||||
Traductions:
|
||||
- [中文版本](README-cn.md)
|
||||
- [Español (in progress)](README-es.md) [Issue #80](https://github.com/jwasham/google-interview-university/issues/80)
|
||||
- मानक हिन्दी (in progress) [Issue #81](https://github.com/jwasham/google-interview-university/issues/81)
|
||||
- [Español (in progress)](README-es.md) [Issue #80](https://github.com/jwasham/coding-interview-university/issues/80)
|
||||
- मानक हिन्दी (in progress) [Issue #81](https://github.com/jwasham/coding-interview-university/issues/81)
|
||||
|
||||
## C'est quoi?
|
||||
|
||||
C'est un plan d'études de plusieurs mois pour aller d'un développeur web (Autodidacte, sans diplôme en informatique) à ingénieur logiciel google.
|
||||
|
||||

|
||||

|
||||
|
||||
Cette longue liste a été extraite et étendue de **Google's coaching notes**, ce sont donc des choses que vous devez savoir.
|
||||
En bas, j'ai rajouté des unités supplémentaires qui peuvent être soulevées pendant l'entretien, ou qui peuvent être utiles pour résoudre des problèmes. Plusieurs unités proviennent de
|
||||
@ -27,17 +27,17 @@ Si vous souhaitez devenir ingénieur de fiabilité, ou ingénieur systèmes, sui
|
||||
## Table of Contents
|
||||
|
||||
- [C'est quoi?](#what-is-it)
|
||||
- [Pourquoi l'utilisier?](#why-use-it)
|
||||
- [Pourquoi l'utiliser?](#why-use-it)
|
||||
- [Comment s'en servir](#how-to-use-it)
|
||||
- [Se mettre dans l'humeur Googley](#get-in-a-googley-mood)
|
||||
- [J'ai décroché le Job?](#did-i-get-the-job)
|
||||
- [Follow Along with Me](#follow-along-with-me)
|
||||
- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
|
||||
- [Ne vous sentez pas stupide](#ne-vous-sentez-pas-stupide)
|
||||
- [A propos de Google](#about-google)
|
||||
- [A propos des ressources vidéo](#about-video-resources)
|
||||
- [Déroulement de l'entretien & préparations générales à l'entretien](#interview-process--general-interview-prep)
|
||||
- [Choisir un langage pour l'entretien](#pick-one-language-for-the-interview)
|
||||
- [List de livres](#book-list)
|
||||
- [Liste de livres](#book-list)
|
||||
- [Avant de commencer](#before-you-get-started)
|
||||
- [What you Won't See Covered](#what-you-wont-see-covered)
|
||||
- [Prerequisite Knowledge](#prerequisite-knowledge)
|
||||
@ -178,7 +178,7 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
|
||||
|
||||
`git checkout -b progress`
|
||||
|
||||
`git remote add jwasham https://github.com/jwasham/google-interview-university`
|
||||
`git remote add jwasham https://github.com/jwasham/coding-interview-university`
|
||||
|
||||
`git fetch --all`
|
||||
|
||||
@ -196,9 +196,9 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
|
||||
|
||||
## Get in a Googley Mood
|
||||
|
||||
Print out a "[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
|
||||
Print out a "[future Googler](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
|
||||
|
||||
[](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)
|
||||
[](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)
|
||||
|
||||
## Did I Get the Job?
|
||||
|
||||
@ -218,37 +218,37 @@ I'm on the journey, too. Follow along:
|
||||
- Google+: [+Googleyasheck](https://plus.google.com/+Googleyasheck)
|
||||
- LinkedIn: [johnawasham](https://www.linkedin.com/in/johnawasham)
|
||||
|
||||

|
||||

|
||||
|
||||
## Don't feel you aren't smart enough
|
||||
- Google engineers are smart, but many have an insecurity that they aren't smart enough, even though they work at Google.
|
||||
- [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)
|
||||
## Ne vous sentez pas stupide
|
||||
- Les ingénieurs de Google sont intelligents, mais beaucoup ont comme insécurité qu'ils ne sont pas suffisamment intelligents, même s'ils travaillent pour Google.
|
||||
- [Le mythe du programmeur génie](https://www.youtube.com/watch?v=0SARbwvhupQ)
|
||||
- [C'est dangereux de rester seul: Combattre les monstres invisibles dans la Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY)
|
||||
|
||||
## About Google
|
||||
## À propos de Google
|
||||
|
||||
- [ ] For students - [Google Careers: Technical Development Guide](https://www.google.com/about/careers/students/guide-to-technical-development.html)
|
||||
- [ ] How Search Works:
|
||||
- [ ] [The Evolution of Search (video)](https://www.youtube.com/watch?v=mTBShTwCnD4)
|
||||
- [ ] [How Search Works - the story](https://www.google.com/insidesearch/howsearchworks/thestory/)
|
||||
- [ ] [How Search Works](https://www.google.com/insidesearch/howsearchworks/)
|
||||
- [ ] [How Search Works - Matt Cutts (video)](https://www.youtube.com/watch?v=BNHR6IQJGZs)
|
||||
- [ ] [How Google makes improvements to its search algorithm (video)](https://www.youtube.com/watch?v=J5RZOU6vK4Q)
|
||||
- [ ] Series:
|
||||
- [ ] [How Google Search Dealt With Mobile](https://backchannel.com/how-google-search-dealt-with-mobile-33bc09852dc9)
|
||||
- [ ] [Google's Secret Study To Find Out Our Needs](https://backchannel.com/googles-secret-study-to-find-out-our-needs-eba8700263bf)
|
||||
- [ ] [Google Search Will Be Your Next Brain](https://backchannel.com/google-search-will-be-your-next-brain-5207c26e4523)
|
||||
- [ ] [The Deep Mind Of Demis Hassabis](https://backchannel.com/the-deep-mind-of-demis-hassabis-156112890d8a)
|
||||
- [ ] [Book: How Google Works](https://www.amazon.com/How-Google-Works-Eric-Schmidt/dp/1455582344)
|
||||
- [ ] [Made by Google announcement - Oct 2016 (video)](https://www.youtube.com/watch?v=q4y0KOeXViI)
|
||||
- [ ] Pour les étudiants - [Carrières Google: Guide de développement technique](https://www.google.com/about/careers/students/guide-to-technical-development.html)
|
||||
- [ ] Comment marche la recherche:
|
||||
- [ ] [L'évolution de la recherche (video)](https://www.youtube.com/watch?v=mTBShTwCnD4)
|
||||
- [ ] [Comment la recherche fonctionne - l'histoire](https://www.google.com/insidesearch/howsearchworks/thestory/)
|
||||
- [ ] [Comment la recherche fonctionne](https://www.google.com/insidesearch/howsearchworks/)
|
||||
- [ ] [Comment la recherche fonctionne - Matt Cutts (video)](https://www.youtube.com/watch?v=BNHR6IQJGZs)
|
||||
- [ ] [Comment Google améliore son algorithme de recherche (video)](https://www.youtube.com/watch?v=J5RZOU6vK4Q)
|
||||
- [ ] Séries:
|
||||
- [ ] [Comment la recherche Google Search fonctionne sur mobile](https://backchannel.com/how-google-search-dealt-with-mobile-33bc09852dc9)
|
||||
- [ ] [L'étude secrète de Google pour découvrir nos besoins](https://backchannel.com/googles-secret-study-to-find-out-our-needs-eba8700263bf)
|
||||
- [ ] [La recherche Google Search sera votre prochain cerveau](https://backchannel.com/google-search-will-be-your-next-brain-5207c26e4523)
|
||||
- [ ] [L'esprit profond de Demis Hassabis](https://backchannel.com/the-deep-mind-of-demis-hassabis-156112890d8a)
|
||||
- [ ] [Livre: Comment Google fonctionne](https://www.amazon.com/How-Google-Works-Eric-Schmidt/dp/1455582344)
|
||||
- [ ] [Annonce faite par Google - Oct 2016 (video)](https://www.youtube.com/watch?v=q4y0KOeXViI)
|
||||
|
||||
## About Video Resources
|
||||
## À propos des ressources vidéos
|
||||
|
||||
Some videos are available only by enrolling in a Coursera, EdX, or Lynda.com class. These are called MOOCs.
|
||||
Sometimes the classes are not in session so you have to wait a couple of months, so you have no access. Lynda.com courses are not free.
|
||||
Certaines vidéos sont disponibles uniquement en s'inscrivant à une classe Coursera, EdX ou Lynda.com. Ce sont des MOOC.
|
||||
Parfois, les cours ne sont pas en session, alors vous devez attendre quelques mois, donc vous n'y avez pas accès. Les cours sur Lynda.com ne sont pas gratuits.
|
||||
|
||||
I'd appreciate your help to add free and always-available public sources, such as YouTube videos to accompany the online course videos.
|
||||
I like using university lectures.
|
||||
J'apprécierais votre aide pour ajouter des sources publiques gratuites et toujours disponibles, telles que des vidéos YouTube pour accompagner les vidéos de cours en ligne.
|
||||
J'aime utiliser les cours universitaires.
|
||||
|
||||
|
||||
## Interview Process & General Interview Prep
|
||||
@ -573,12 +573,12 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] Description:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -640,14 +640,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -674,10 +674,10 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -703,7 +703,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -732,7 +732,6 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -1248,7 +1247,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- flow:
|
||||
1. Understand the problem and scope:
|
||||
- define the use cases, with interviewer's help
|
||||
@ -1621,7 +1620,6 @@ You're never really done.
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
## על מה מדובר כאן?
|
||||
זוהי התוכנית הפעולה אותה הגיתי על מנת להפוך בהצלחה ממפתח אתרים, ללא תואר במדעי המחשב, למהנדס תוכנה בחברת גוגל.
|
||||

|
||||

|
||||
|
||||
רשימת המשימות הארוכה המצורפת להלן, הוצאה מקובץ האימון האישי אותו מפרסמת גוגל לעזור למועמדים פוטנציאליים **Google's coaching notes**. לפני שאתם מתחילים במשימה ישנם מספר דברים שעליכם לדעת.
|
||||
ישנם מספר דברים בתחתית הרשימה שמעוד יועילו בהכנה לראיון עצמו לאחר שצלחתם את חומר הלימוד,
|
||||
@ -172,7 +172,7 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
|
||||
|
||||
`git checkout -b progress`
|
||||
|
||||
`git remote add jwasham https://github.com/jwasham/google-interview-university`
|
||||
`git remote add jwasham https://github.com/jwasham/coding-interview-university`
|
||||
|
||||
`git fetch --all`
|
||||
|
||||
@ -190,9 +190,9 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
|
||||
|
||||
## Get in a Googley Mood
|
||||
|
||||
Print out a "[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
|
||||
Print out a "[future Googler](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
|
||||
|
||||
[](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)
|
||||
[](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)
|
||||
|
||||
## האם קיבלתי את העבודה?
|
||||
|
||||
@ -212,7 +212,7 @@ Print out a "[future Googler](https://github.com/jwasham/google-interview-univer
|
||||
- גוגל+: [+Googleyasheck](https://plus.google.com/+Googleyasheck)
|
||||
- לינקדאין: [johnawasham](https://www.linkedin.com/in/johnawasham)
|
||||
|
||||

|
||||

|
||||
|
||||
## אל תרדגישו שאתם לא חכמים מספיק
|
||||
- Google engineers are smart, but many have an insecurity that they aren't smart enough, even though they work at Google.
|
||||
@ -567,12 +567,12 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] Description:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -634,14 +634,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -668,10 +668,10 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -697,7 +697,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -726,7 +726,6 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -1242,7 +1241,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- flow:
|
||||
1. Understand the problem and scope:
|
||||
- define the use cases, with interviewer's help
|
||||
@ -1616,7 +1615,6 @@ You're never really done.
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
|
@ -1,5 +1,5 @@
|
||||
# कोडिंग साक्षात्कार विश्वविद्यालय
|
||||
>मैं मूल रूप से इसे एक सॉफ़्टवेयर इंजीनियर बनने के लिए अध्ययन विषयों की एक छोटी-छोटी सूची के रूप में बनाया था, लेकिन यह आज की बड़ी सूची में बढ़ी है। इस अध्ययन योजना के माध्यम से जाने के बाद, [मुझे अमेज़ॅन पर सॉफ़्टवेयर डेवलपमेंट इंजीनियर के रूप में काम पर रखा गया है !](https://startupnextdoor.com/ive-been-acquired-by->amazon/?src=ciu) आपको संभवतः जितना मैंने किया उतना ही पढ़ना नहीं होगा। वैसे भी, आपको जो भी चाहिए वह यहां है
|
||||
>मैने मूल रूप से इसे एक सॉफ़्टवेयर इंजीनियर बनने के लिए अध्ययन विषयों की एक छोटी सी सूची के रूप में बनाया था, लेकिन यह आज एक बड़ी सूची में बढ़ी है। इस अध्ययन योजना के माध्यम से जाने के बाद, [मुझे अमेज़ॅन पर सॉफ़्टवेयर डेवलपमेंट इंजीनियर के रूप में काम पर रखा गया है !](https://startupnextdoor.com/ive-been-acquired-by->amazon/?src=ciu) आपको संभवतः जितना मैंने किया उतना नहीं पढ़ना होगा। वैसे भी, आपको जो भी चाहिए वह यहां है
|
||||
>
|
||||
>यहां सूचीबद्ध आइटम आपको किसी साफ्टवेयर कंपनी के बारे में साक्षात्कार में अच्छी तरह से तैयार करेंगे, जिनमें दिग्गज, अमेज़ॅन, फेसबुक, गूगल या माइक्रोसॉफ्ट शामिल हैं।
|
||||
>
|
||||
@ -8,14 +8,14 @@
|
||||
## यह क्या है?
|
||||
यह एक बड़ी कंपनी के लिए सॉफ्टवेयर इंजीनियर को वेब डेवलपर (स्वयं सिखाया, कोई सीएस डिग्री नहीं) से जाने के लिए मेरी बहु-महीने की अध्ययन योजना है
|
||||
|
||||

|
||||

|
||||
|
||||
यह नए सॉफ़्टवेयर इंजीनियरों या सॉफ़्टवेयर / वेब विकास से सॉफ़्टवेयर इंजीनियरिंग (जहां कंप्यूटर साइंस ज्ञान आवश्यक है) से स्विच करने के लिए है। यदि आपके पास कई वर्षों का अनुभव है और कई वर्षों के सॉफ्टवेयर इंजीनियरिंग अनुभव का दावा कर रहे हैं, तो एक कठिन साक्षात्कार की अपेक्षा करें।
|
||||
|
||||
यदि आपके पास सॉफ्टवेयर / वेब विकास के कई सालों का अनुभव है, तो ध्यान दें कि सॉफ्टवेयर, वेब डेवलपमेंट से भिन्न Google, अमेज़ॅन, फेसबुक और माइक्रोसॉफ्ट दृश्य सॉफ्टवेयर इंजीनियरिंग जैसी बड़ी सॉफ्टवेयर कंपनियों और उन्हें कंप्यूटर साइंस ज्ञान की आवश्यकता होती है।
|
||||
यदि आपके पास सॉफ्टवेयर / वेब विकास के कई सालों का अनुभव है, तो ध्यान दें कि Google, अमेज़ॅन, फेसबुक और माइक्रोसॉफ्ट जैसी बड़ी सॉफ्टवेयर कंपनियों की दृष्टि में सॉफ्टवेयर इंजीनियरिंग सॉफ्टवेयर/वेब डेवलपमेंट से भिन्न है , और उन्हें कंप्यूटर साइंस ज्ञान की आवश्यकता होती है।
|
||||
|
||||
यदि आप एक विश्वसनीय इंजीनियर या सिस्टम इंजीनियर बनना चाहते हैं, तो वैकल्पिक सूची (नेटवर्किंग, सुरक्षा) से अधिक जानें।
|
||||
|
||||
यदि आप एक विश्वसनीयता इंजीनियर या सिस्टम इंजीनियर बनना चाहते हैं, तो वैकल्पिक सूची (नेटवर्किंग, सुरक्षा) से अधिक जानें।
|
||||
चाहिए
|
||||
---
|
||||
|
||||
## अनुक्रमणिका
|
||||
@ -42,11 +42,10 @@
|
||||
- [क़ु](#queue)
|
||||
- [हैश टेबल](#hash-table)
|
||||
- [अधिक जानकारी](#more-knowledge)
|
||||
- [एन्दिंनेस](#endianness)
|
||||
- [बाइनरी सर्च](#binary-search)
|
||||
- [बिट-वाईस ऑपेरशन](#bitwise-operations)
|
||||
- [ट्रीज](#trees)
|
||||
- [ट्रीज पृष्टभूमि और तिपनिया](#trees---notes--background)
|
||||
- [ट्रीज पृष्टभूमि और टिप्पणियाँ](#trees---notes--background)
|
||||
- [बाइनरी सर्च ट्री: BST](#binary-search-trees-bsts)
|
||||
- [हीप / प्रायोरिटी क्यू / बाइनरी हीप](#heap--priority-queue--binary-heap)
|
||||
- [ट्राइस](#tries)
|
||||
@ -60,7 +59,7 @@
|
||||
- [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
|
||||
- [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
|
||||
- [गार्बेज कलेक्शन](#garbage-collection)
|
||||
- [काशेस](#caches)
|
||||
- [Caches](#caches)
|
||||
- [प्रोसेस और थ्रेड](#processes-and-threads)
|
||||
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling)
|
||||
- [Papers](#papers)
|
||||
@ -72,13 +71,13 @@
|
||||
- [Scheduling](#scheduling)
|
||||
- [Implement system routines](#implement-system-routines)
|
||||
- [String searching & manipulations](#string-searching--manipulations)
|
||||
- [आखरी समीक्षा](#final-review)
|
||||
- [आखिरी समीक्षा](#final-review)
|
||||
- [पुस्तकें](#books)
|
||||
- [कोडिंग अभ्यास/चुनौतियों](#coding-exerciseschallenges)
|
||||
- [कोडिंग अभ्यास/चुनौतियाँ](#coding-exerciseschallenges)
|
||||
- [एक बार जब आप इंटरव्यू के करीब हो](#once-youre-closer-to-the-interview)
|
||||
- [आपका रिज्यूमे](#आपका-रिज्यूमे)
|
||||
- [इंटरव्यू की सोंच](#be-thinking-of-for-when-the-interview-comes)
|
||||
- [इन्तेर्विएवर के लिए प्रश्न रखे](#have-questions-for-the-interviewer)
|
||||
- [इंटरव्यूअर के लिए प्रश्न रखे](#have-questions-for-the-interviewer)
|
||||
- [अतिरिक्त पढाई (जरुरत नहीं)](#additional-learnings-not-required)
|
||||
- [इनफार्मेशन थ्योरी](#information-theory)
|
||||
- [पारिटी और हैमिंग कोड](#parity--hamming-code)
|
||||
@ -87,7 +86,7 @@
|
||||
- [संक्षिप्तीकरण](#compression)
|
||||
- [नेटवर्किंग](#networking)
|
||||
- [संगणक सुरक्षा](#computer-security)
|
||||
- [परैल्लेल प्रोग्रामिंग](#parallel-programming)
|
||||
- [पैरेलल प्रोग्रामिंग](#parallel-programming)
|
||||
- [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
|
||||
- [Fast Fourier Transform](#fast-fourier-transform)
|
||||
- [ब्लूम फ़िल्टर](#bloom-filter)
|
||||
@ -103,24 +102,24 @@
|
||||
- [Discrete math](#discrete-math)
|
||||
- [मशीन लर्निंग](#मशीन-लर्निंग)
|
||||
- [गो](#गो)
|
||||
- [कुछ विषयोकी अधिक जानकारी](#कुछ-विषयोकी-अधिक-जानकारी)
|
||||
- [कुछ विषयो की अधिक जानकारी](#कुछ-विषयोकी-अधिक-जानकारी)
|
||||
- [विडियो शृखला](#विडियो-शृखला)
|
||||
- [जब आपको नौकरी मिल जाये](#जब-आपको-नौकरी-मिल-जाये)
|
||||
|
||||
---
|
||||
|
||||
## इसका उपयोग क्यू करे?
|
||||
## इसका उपयोग क्यों करे?
|
||||
|
||||
मैंने जब ये परियोजना शुरू की, तब मैं स्टैक और हीप में फरक नहीं जनता था, मुजे नहीं पता था की Big-O क्या हे, ट्रीज क्या हे, या ग्राफ को पार कैसे करते हैं. अगर मुजे छाटने का अल्गोरिथम लिखना पड़ता तो मैं आपको ये बता सकता हु के वो इतना ख़ास नहीं होगा. जो भी डाटा स्ट्रक्चर का मैंने उपयोग किया वो भाषा में समाविष्ट था, और वो कैसे काम करता हे उसकी कोई जानकारी मुजे नहीं थी. मुजे कभी मेमोरी का संचालन नहीं करता पड़ा, जबतक मेरी चलाई कोई प्रोसेस "out of
|
||||
memory" का एरर न दे, और तब मुजे कोई वैकल्पिक हल धुन्दाना पड़ता था. मैंने मेरी जिन्दगी में बहोत कम मुल्ती-डायमेंशनल ऐरे और बहोत सारे अस्सोसिअतिव् ऐरे का उपयोग किया हे, पर मैंने कोई भी डाटा स्ट्रक्चर शुरू से नहीं लिखा था.
|
||||
पर इस अध्ययन योजना का उपयोग करने बाद मेरा नौकरी लगाने का आत्मविश्वास बहोत बढ़ा हें. यह एक लम्बी योजना हें. यह मेरे लिए बहोत महीनोतक चलेगी. अगर आपको ईंमैसे कुछ पता हैं तो आपको कम वक्त लगेगा.
|
||||
मैंने जब ये परियोजना शुरू की, तब मैं स्टैक और हीप में फर्क नहीं जानता था, मुझे नहीं पता था की Big-O क्या हे, ट्रीज क्या हे, या ग्राफ को पार कैसे करते हैं. अगर मुझे छाटने का अल्गोरिथम लिखना पड़ता तो मैं आपको ये बता सकता हु कि वो इतना ख़ास नहीं होगा. जो भी डाटा स्ट्रक्चर का मैंने उपयोग किया वो भाषा में समाविष्ट था, और वो कैसे काम करता हे उसकी कोई जानकारी मुझे नहीं थी. मैं कभी मेमोरी का संचालन नहीं करता, जब तक मेरी चलाई कोई प्रोसेस "out of
|
||||
memory" का एरर न दे, और तब मुझे कोई वैकल्पिक हल ढूँढनाा पड़ता था. मैंने मेरी जिन्दगी में बहुत कम मल्टी-डायमेंशनल ऐरे और बहोत सारे associative ऐरे का उपयोग किया हे, पर मैंने कोई भी डाटा स्ट्रक्चर शुरू से नहीं लिखा था.
|
||||
पर इस अध्ययन योजना का उपयोग करने बाद मेरा नौकरी लगने का आत्मविश्वास बहुत बढ़ा हें. यह एक लम्बी योजना हें. यह मेरे लिए बहुत महीनो तक चली. अगर आपको इनमें से कुछ पता हैं तो आपको कम वक्त लगेगा.
|
||||
|
||||
|
||||
## इसका कैसे उपयोग करे?
|
||||
|
||||
नीचे सब कुछ एक रूपरेखा है, और आप ऊपर से नीचे के क्रम में पढ़े.
|
||||
|
||||
मैं गितहब के विशेष मार्कडाउन का उपयोग कर रहा हूँ, प्रगति की जाँच करने के लिए कार्य सूचियों का प्रयोग करे.
|
||||
मैं गिटहब के विशेष मार्कडाउन का उपयोग कर रहा हूँ, प्रगति की जाँच करने के लिए कार्य सूचियों का प्रयोग करे.
|
||||
|
||||
- [x] एक नई शाखा बनाएँ ताकि आप इस तरह की वस्तुओं की जांच कर सकते हैं, बस कोष्ठक में एक एक्स डाले: [x]
|
||||
|
||||
@ -128,7 +127,7 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
## कभी भी आप चालाक नहीं हो ऐसा ना सोचो
|
||||
|
||||
- सफल सॉफ्टवेयर इंजीनियर चालाक होते हें, पर बहुत लोगो असुरक्षा होती है की वो चालाक नहीं हैं !
|
||||
- सफल सॉफ्टवेयर इंजीनियर चालाक होते हें, पर बहुत लोगो को असुरक्षा होती है किी वो चालाक नहीं हैं !
|
||||
- [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ)
|
||||
|
||||
## विडियो संसाधनों के बारे में
|
||||
@ -139,7 +138,7 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
I'd appreciate your help converting the MOOC video links to public sources to replace the online course विडियो over time. I like using university lectures.
|
||||
|
||||
|
||||
## इंटरव्यू प्रकिया और साधारण इंटरव्यू तयारी
|
||||
## इंटरव्यू प्रकिया और साधारण इंटरव्यू तैयारी
|
||||
|
||||
[ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
|
||||
[ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
|
||||
@ -152,18 +151,18 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
## इंटरव्यू के लिए एक संगणक भाषा चुने
|
||||
|
||||
इंटरव्यू मैं आप कोंसिभी एक भाषा जिसमे आप आरामदायक हो वो चुन सकते हैं, पर गूगल के लिए निम्नलिखित भाषाएँ अच्छी रहेगी:
|
||||
इंटरव्यू में आप कोई भी एक भाषा जिसमे आप आरामदायक हो वो चुन सकते हैं, पर गूगल के लिए निम्नलिखित भाषाएँ अच्छी रहेगी:
|
||||
|
||||
- C++
|
||||
- Java
|
||||
- Python
|
||||
|
||||
आप निम्न्लिहित भाषाएँ भी चुन सकते हैं, पर उन्हें सावधानीसे चुने
|
||||
आप निम्नलिखित भाषाएँ भी चुन सकते हैं, पर उन्हें सावधानी से चुने
|
||||
|
||||
- JavaScript
|
||||
- Ruby
|
||||
|
||||
आपको भाषा में बहुत सहज होना चाहिए और जानकार होना चाहिए।
|
||||
आपको भाषा में बहुत सहज होना चाहिए और जानकारी होनी चाहिए।
|
||||
|
||||
विकल्पों के बारे में अधिक पढ़ें:
|
||||
|
||||
@ -172,14 +171,14 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
[भाषा संसाधनोंको यहाँ देखें](programming-language-resources.md)
|
||||
|
||||
क्युकी में मैं पढ़ रहा हूँ, आपको कुछ C, C++, और Python शामिल दिखेगा. वहाँ कुछ शामिल किताबें, नीचे आखिर में देख ले.
|
||||
क्योकि में मैं पढ़ रहा हूँ, आपको कुछ C, C++, और Python शामिल दिखेगा. वहाँ कुछ शामिल किताबें, नीचे आखिर में देख ले.
|
||||
|
||||
## पुस्तक सूची
|
||||
यह मैंने जो इस्तेमाल किया था उससे छोटी सूची है यह आपको समय बचाने के लिए संक्षिप्त है
|
||||
|
||||
### इंटरव्यू प्रेप
|
||||
- [ ] प्रोग्रामिंग साक्षात्कार का खुलासा: आपकी अगली नौकरी, दूसरी संस्करण को लैंडिंग करने के लिए रहस्य
|
||||
- सी ++ और जावा में जवाब
|
||||
- C++ और java में जवाब
|
||||
- यह कोडिंग साक्षात्कार के लिए क्रैकिंग के लिए एक अच्छा वार्म-अप है
|
||||
- बहुत मुश्किल नहीं है, सबसे अधिक समस्याएं आपको साक्षात्कार में जो दिखाई दे रही हैं उससे अधिक आसान हो सकती हैं (मैंने जो पढ़ा है)
|
||||
- [ ] कोडिंग साक्षात्कार, 6 वें संस्करण
|
||||
@ -296,16 +295,16 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
इस सूची में कई महीनों से वृद्धि हुई है, और हाँ, यह एक तरह से हाथ से बाहर हो गयी हैं
|
||||
|
||||
निचे कुछ गलतिया हैं जो मैंने की हैं तो आपका अनुभव बेहतर होगा
|
||||
नीचे कुछ गलतिया हैं जो मैंने की हैं तो आपका अनुभव बेहतर होगा
|
||||
|
||||
### १. आपसे यह सब याद नहीं होगा
|
||||
|
||||
मैंने घंटो वीडिय के विडियो देखे और टिप्पणिया लिखी, और महीनो बाद मुजे कुछ याद नहीं रहा. सबकी समीक्षा करने के लिए मैंने 3 दिन मेरी तिप्पनिओयो और flashcards बनाने में बितायें
|
||||
मैंने घंटो वीडियो के विडियो देखे और टिप्पणिया लिखी, और महीनो बाद मुझे कुछ याद नहीं रहा. सबकी समीक्षा करने के लिए मैंने 3 दिन मेरी टिप्पणीयो और flashcards बनाने में बितायें
|
||||
कृपया पढ़ें तो आप मेरी गलतियां नहीं करेंगे:
|
||||
|
||||
[कंप्यूटर विज्ञान ज्ञान को बनाए रखना](https://startupnextdoor.com/retaining-computer-science-knowledge/)
|
||||
|
||||
### २. फ्लाश्कार्ड्स का उपयोग कीजिये
|
||||
### २. फ़्लैशकार्ड्स का उपयोग कीजिये
|
||||
|
||||
इस समस्या को हल करने के लिए, मैंने एक छोटे से फ्लैशकार्ड साइट बनाई जहां मैं 2 प्रकार के फ्लैशकार्ड जोड़ सकता था: सामान्य और कोड प्रत्येक कार्ड के पास भिन्न स्वरूपण है।
|
||||
|
||||
@ -338,7 +337,7 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
## इसमे क्या समाविष्ट नहीं हे
|
||||
|
||||
यह बड़ी सूचि गूगल इंटरव्यू टिप्पणियों से व्यक्तिगत कार्य सूचि से बनायीं गयी थी. निचे कुछ प्रचलित टेक्नोलॉजी हैं पर उन्हें टिप्पणियो में समविस्ट नहीं किया गया हैं.
|
||||
यह बड़ी सूचि गूगल इंटरव्यू टिप्पणियों से व्यक्तिगत कार्य सूचि से बनायीं गयी थी. निचे कुछ प्रचलित टेक्नोलॉजी हैं पर उन्हें टिप्पणियो में समाविस्ट नहीं किया गया हैं.
|
||||
|
||||
- SQL
|
||||
- Javascript
|
||||
@ -346,9 +345,9 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
## दैनिक योजना
|
||||
|
||||
कुछ विषय एक दिन ले सकते हैं और कुछ ज्यादा.कुचो का सिर्फ पढाई हो सकती हैं पर अमल नहीं हो सकता.
|
||||
कुछ विषय एक दिन ले सकते हैं और कुछ ज्यादा. कुछो की सिर्फ पढाई हो सकती हैं पर अमल नहीं हो सकता.
|
||||
|
||||
हर दिन मैं निचली सूचि से एक विषय लेता हु, उसका विडियो देखता हु, और उसका अमल निचे दिए तरह करता हूँ:
|
||||
हर दिन मैं निचली सूची से एक विषय लेता हूँ, उसका विडियो देखता हूँ, और उसका अमल नीचे दिए तरह करता हूँ:
|
||||
- C - struct और function का उपयोग करके जो struct * या args का उपयोग करते हैं.
|
||||
- C++ - built-in types का उपयोग न करके
|
||||
- C++ - built-in types का उपयोग करके, जैसे STL की std::list, linked list के लिए
|
||||
@ -358,7 +357,7 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
आपको इन सभी की ज़रूरत नहीं है साक्षात्कार के लिए आपको केवल एक ही भाषा की आवश्यकता है
|
||||
|
||||
इन सब में कोड क्यों?
|
||||
- अभ्यास, अभ्यास, अभ्यास, जब तक मैं इससे बीमार न हो, और यह कोई समस्या नहीं कर सकता (कुछ बहुत बढ़िया मामलों और याद रखने के लिए बहीखाता विवरण)
|
||||
- अभ्यास, अभ्यास, अभ्यास, जब तक मैं इससे बीमार न हो, और यह कोई समस्या नहीं कर सकता (कुछ बहुत बढ़िया मामलों और याद रखने के लिए बही-खाता विवरण)
|
||||
- कच्ची बाधाओं के भीतर काम करना (कचरा संग्रहण की सहायता के बिना स्मृति को आवंटित करना / मुक्त करना (पायथन को छोड़कर))
|
||||
- अंतर्निहित प्रकारों का उपयोग करें, इसलिए मुझे वास्तविक दुनिया के उपयोग के लिए निर्मित उपकरणों का उपयोग करने का अनुभव है (उत्पादन में अपनी स्वयं की लिंक्ड सूची कार्यान्वयन नहीं लिखना)
|
||||
|
||||
@ -371,14 +370,14 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
आपको हर एल्गोरिथम याद करने की आवश्यकता नहीं है।
|
||||
|
||||
एक व्हाईटबोर्ड या कागज़ पर कोड लिखें, कंप्यूटर नहीं। कुछ नमूना इनपुट के साथ टेस्ट करें फिर इसे कंप्यूटर पर जांचें
|
||||
एक व्हाइटबोर्ड या कागज़ पर कोड लिखें, कंप्यूटर नहीं। कुछ नमूना इनपुट के साथ टेस्ट करें फिर इसे कंप्यूटर पर जांचें
|
||||
|
||||
## पूर्वाभ्यास ज्ञान
|
||||
|
||||
- [ ] **C जानें**
|
||||
- सी हर जगह है आप पुस्तकों, व्याख्यान, वीडियो, हर जगह जब आप पढ़ रहे हैं, में उदाहरण देखेंगे।
|
||||
- [ ] [सी प्रोग्रामिंग भाषा, खंड 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
|
||||
- यह एक छोटी पुस्तक है, लेकिन यह आपको सी भाषा पर एक महान संभाल देगा और यदि आप इसे थोड़ा अभ्यास करते हैं तो आपको जल्दी से कुशल मिलेगा। समझना सी आपको यह समझने में मदद करता है कि प्रोग्राम और मेमोरी कैसे काम करते हैं
|
||||
- यह एक छोटी पुस्तक है, लेकिन यह आपको सी भाषा पर एक महान संभाल देगा और यदि आप इसे थोड़ा अभ्यास करते हैं तो आपको जल्दी से कुशल मिलेगा। सी आपको यह समझने में मदद करता है कि प्रोग्राम और मेमोरी कैसे काम करते हैं
|
||||
- [सवालों के जवाब](https://github.com/lekkas/c-algorithms)
|
||||
|
||||
- [ ] **कंप्यूटर एक प्रोग्राम की प्रक्रिया कैसे करते हैं:**
|
||||
@ -413,11 +412,11 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
- एक स्वचालित रीसाइज़िंग वेक्टर को लागू करें
|
||||
- [ ] विवरण:
|
||||
- [एरे (विडियो)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [Basic Arrays (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (विडियो)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -479,14 +478,14 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (विडियो)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(विडियो)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (विडियो)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -513,10 +512,10 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
- [ ] [(Advanced) Perfect hashing (विडियो)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (विडियो](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (विडियो)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (विडियो](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (विडियो)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (विडियो)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (विडियो)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (विडियो)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -549,7 +548,7 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -578,7 +577,6 @@ memory" का एरर न दे, और तब मुजे कोई वै
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (विडियो)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (विडियो)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -960,7 +958,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- Pages 1048 - 1140 in CLRS if you have it.
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (विडियो)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (विडियो)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (विडियो)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
@ -1123,7 +1120,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- flow:
|
||||
1. Understand the problem and scope:
|
||||
- define the use cases, with interviewer's help
|
||||
@ -1365,21 +1362,21 @@ Take coding challenges every day, as many as you can.
|
||||
- [ ] [Great intro (copied from System Design section): Algorithm design:](http://www.hiredintech.com/algorithm-design/)
|
||||
- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
|
||||
- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
|
||||
- [ ] [टॉपकोड़ेर्स के लिए गणित](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
|
||||
- [ ] [टॉपकोडर्स के लिए गणित](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
|
||||
- [ ] [डायनामिक प्रोग्रामिंग – नौसिखिया से उन्नत](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
|
||||
|
||||
- [MIT इंटरव्यू सामग्री](https://courses.csail.mit.edu/iap/interview/materials.php)
|
||||
|
||||
- [लीतकोड](https://leetcode.com/)
|
||||
- [लीटकोड](https://leetcode.com/)
|
||||
- [टॉप कोडर](https://www.topcoder.com/)
|
||||
- [प्रोजेक्ट यूलेर (math-focused)](https://projecteuler.net/index.php?section=problems)
|
||||
- [कोदवार](http://www.codewars.com)
|
||||
- [प्रोजेक्ट यूलर (math-focused)](https://projecteuler.net/index.php?section=problems)
|
||||
- [कोडवॉर ](http://www.codewars.com)
|
||||
- [हैकररैंक](https://www.hackerrank.com/)
|
||||
- [कोदिलिटी](https://codility.com/programmers/)
|
||||
- [इंटरव्यूकेक](https://www.interviewcake.com/)
|
||||
- [इंटरव्यूबिट](https://www.interviewbit.com/invite/icjf)
|
||||
|
||||
- [प्र्ग्रम्मिंग लैंग्वेज में सुधार करने के लिए](http://exercism.io/languages)
|
||||
- [प्रोग्रामिंग लैंग्वेज में सुधार करने के लिए](http://exercism.io/languages)
|
||||
|
||||
## Once you're closer to the interview
|
||||
|
||||
@ -1396,31 +1393,31 @@ Take coding challenges every day, as many as you can.
|
||||
|
||||
## इंटरव्यू की सोंच
|
||||
|
||||
निचे दिए गए विषयो के साथ साथ, अपने २० इंटरव्यू प्रश्न तयार रखे. हर एक प्रश्न के २-३ जवाब तयार रखे. आपने जो हासिल किया हे उसकी कहानी रखे.
|
||||
निचे दिए गए विषयो के साथ साथ, अपने २० इंटरव्यू प्रश्न तैयार रखे. हर एक प्रश्न के २-३ जवाब तैयार रखे. आपने जो हासिल किया हे उसकी कहानी रखे.
|
||||
|
||||
- आपको ये नौकरी क्यू चाहिए?
|
||||
- आपको ये नौकरी क्यूँ चाहिए?
|
||||
- आपने कौनसी एक कठिन समस्या हल की हैं?
|
||||
- आपकी सबसे बढ़ी चुनोतिया कोनसी थी?
|
||||
- आपने देखि हुए सर्वोतम और बुरी संरचनाये?
|
||||
- आपकी सबसे बड़ी चुनौतियां कोनसी थी?
|
||||
- आपने देखी हुई सर्वोतम और बुरी संरचनाये?
|
||||
- किसी मौजूदा गूगल उत्पाद में सुधार के लिए विचार.
|
||||
- आप अपना काम सर्वोत्तम कैसे कर सकते हो, टीम के साथ या एकेले?
|
||||
- आपकी कोनसी कुशलता या अनुभव आपके भूमिका में मदतगार होंगे?
|
||||
- आपकी कोनसी कुशलता या अनुभव आपके भूमिका में मददगार होंगे?
|
||||
- आपने [जॉब क्ष / प्रोजेक्ट य] में सबसे ज्यादा किससे आनद मिला?
|
||||
- आपकी सबसे बड़ी [जॉब क्ष/ प्रोजेक्ट य] की चुनोती जिसे आपको सामना करना पड़ा?
|
||||
- [जॉब क्ष / प्रोजेक्ट य] में से सबसे बड़ा बग?
|
||||
- आपने [जॉब क्ष / प्रोजेक्ट य] में क्या सिखा?
|
||||
- [जॉब क्ष / प्रोजेक्ट य] में आप क्या सुधार कर सकते थे/ करना चाहते थे?
|
||||
|
||||
## इन्तेर्विएवर के लिए प्रश्न रखे
|
||||
## इंटरव्यूअर के लिए प्रश्न रखे
|
||||
|
||||
मेरे कुछ प्रश्न (मुजे पहिलेसेही कुछ जवाब बता हे पर मैं टीम की राय जानना चाहता हूँ):
|
||||
मेरे कुछ प्रश्न (मुझे पहले से ही कुछ जवाब पता है पर मैं टीम की राय जानना चाहता हूँ):
|
||||
|
||||
- आपकी टीम कितनी बड़ी हैं?
|
||||
- आपकी डेव साइकिल कैसी हैं? क्या आपको वॉटरफॉल/स्प्रिंट/एजाइल पता हैं?
|
||||
- क्या काम के पीछे भागना पड़ता हैं? या लचीलापन हैं?
|
||||
- आपकी टीम मैं निर्णय कैसे लिए जाते हैं?
|
||||
- हर सप्ताह आपकी कितनी बैठके होती हैं?
|
||||
- क्या आपका काम का मौहोल काम करने मैं मदत करता हैं?
|
||||
- क्या आपका काम का माहौल काम करने मैं मदद करता हैं?
|
||||
- आप किसपे काम करते हो?
|
||||
- आपको उसमे क्या पसंद हैं?
|
||||
- आपका काम जीवन कैसा हैं?
|
||||
@ -1622,7 +1619,7 @@ Take coding challenges every day, as many as you can.
|
||||
- [ ] पुस्तके:
|
||||
- [ ] [गो प्रोग्रामिंग का परिचय (ऑनलाइन मुफ्त पढ़े)](https://www.golang-book.com/books/intro)
|
||||
- [ ] [गो प्रोग्रामिंग लैंग्वेज (दोनोवन & केर्निघन)](https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440)
|
||||
- [ ] [बूतकाम्प](https://www.golang-book.com/guides/bootcamp)
|
||||
- [ ] [बूटकैंप ](https://www.golang-book.com/guides/bootcamp)
|
||||
|
||||
--
|
||||
|
||||
@ -1712,7 +1709,7 @@ Sit back and enjoy. "netflix and skill" :P
|
||||
- [ ] [क्रिप्टोग्राफ़ी का परिचय](https://www.youtube.com/watch?v=2aHkqB2-46k&feature=youtu.be)
|
||||
- [श्रृंखला में अधिक (क्रम में नहीं)](https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg)
|
||||
|
||||
- [ ] [विशाल डेटासेट खनन – स्तान्फोर्ड विश्वविद्यालय(९४ विडियो)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
|
||||
- [ ] [विशाल डेटासेट खनन – स्टैनफोर्ड विश्वविद्यालय(९४ विडियो)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
|
||||
|
||||
## शायद
|
||||
|
||||
@ -1724,8 +1721,8 @@ http://www.gainlo.co/ - बड़ी कंपनी के मोक इंटर
|
||||
|
||||
बधाई हो!
|
||||
|
||||
- [१० बाते काश मुज्हे गूगल के पाहिले दिन पता होती](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
|
||||
- [१० बाते काश मुझे गूगल के पहले दिन पता होती](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
|
||||
|
||||
सिखाते रहो.
|
||||
|
||||
वास्तव में आपकी पढाई कभी ख़तम नहीं होती.
|
||||
वास्तव में आपकी पढाई कभी ख़त्म नहीं होती.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Google Interview University
|
||||
# Coding Interview University
|
||||
|
||||
Version original: [Bahasa Inggris](README.md)
|
||||
|
||||
@ -6,7 +6,7 @@ Version original: [Bahasa Inggris](README.md)
|
||||
|
||||
Ini adalah ringkasan studi saya selama beberapa bulan dari web developer (otodidak, tanpa gelar sarjana informatika) hingga menjadi *software engineer Google*.
|
||||
|
||||

|
||||

|
||||
|
||||
Saya telah mengupas catatan **Google's Coaching Note** dan berikut adalah hal-hal penting dari catatan tersebut. Ada beberapa poin yang saya tambahkan pada bagian akhir yang mungkin muncul dalam wawancara atau dapat berguna dalam proses penyelesaian masalah.
|
||||
Banyak poin berasal dari artikel Steve Yegge "[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" yang berisi poin-poin dari **Google's Coaching Note**.
|
||||
@ -165,7 +165,7 @@ Saya menggunakan markdown spesial dari Github, termasuk daftar tugas untuk menge
|
||||
|
||||
`git checkout -b progress`
|
||||
|
||||
`git remote add jwasham https://github.com/jwasham/google-interview-university`
|
||||
`git remote add jwasham https://github.com/jwasham/coding-interview-university`
|
||||
|
||||
`git fetch --all`
|
||||
|
||||
@ -183,9 +183,9 @@ Saya menggunakan markdown spesial dari Github, termasuk daftar tugas untuk menge
|
||||
|
||||
## Masuk ke Mode Googley
|
||||
|
||||
Print satu atau beberapa foto dari "[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)" (untuk ditempel tentunya) sebagai reminder anda apa hasil usaha yang anda akan dapatkan.
|
||||
Print satu atau beberapa foto dari "[future Googler](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)" (untuk ditempel tentunya) sebagai reminder anda apa hasil usaha yang anda akan dapatkan.
|
||||
|
||||
[](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)
|
||||
[](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)
|
||||
|
||||
## Jangan merasa anda kurang pintar
|
||||
- Para engineers/programmer di google adalah orang-orang pintar, tapi banyak dari mereka berpikir bahwa mereka tidak cukup pintar, walaupun mereka bekerja di Google.
|
||||
@ -539,12 +539,12 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
|
||||
- [ ] Description:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -606,14 +606,14 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -640,10 +640,10 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -669,7 +669,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -698,7 +698,6 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -1219,7 +1218,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- flow:
|
||||
1. Understand the problem and scope:
|
||||
- define the use cases, with interviewer's help
|
||||
@ -1591,7 +1590,6 @@ You're never really done.
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
|
1983
translations/README-ja.md
Normal file
1983
translations/README-ja.md
Normal file
File diff suppressed because it is too large
Load Diff
1992
translations/README-kh.md
Normal file
1992
translations/README-kh.md
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,12 @@
|
||||
# Universidade de Entrevista de Programação
|
||||
|
||||
> Originalmente eu criei isso como uma pequena lista to-do de tópicos de estudo para se tornar um engenheiro de software,
|
||||
> mas isso cresceu para a grande lista que você vê hoje. Após passar por esse plano de estudo, [Eu fui contratado
|
||||
> Originalmente eu criei isso como uma pequena lista to-do (a fazer) de tópicos de estudo para se tornar um engenheiro de software,
|
||||
> mas isso cresceu para este imenso acervo que você consulta hoje. Após passar por todo esse plano de estudo, [Eu fui contratado
|
||||
> como Engenheiro de Desenvolvimento de Software na Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
|
||||
> Você provavelmente não vai precisar estudar tanto quanto eu. De qualquer maneira, tudo que você precisa está aqui.
|
||||
>
|
||||
> Os itens listados aqui irão preparar você muito bem para uma entrevista em praticamente qualquer empresa de software,
|
||||
> incluindo as gigantes: Amazon, Facebook, Google ou Microsoft.
|
||||
> incluindo as gigantes como: Amazon, Facebook, Google ou Microsoft.
|
||||
>
|
||||
> *Boa sorte para todos vocês!*
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
- [Acompanhe o progresso da tradução aqui!](https://github.com/jwasham/coding-interview-university/pull/115)
|
||||
|
||||
**Tradutores**: [Marlon Aviz](https://github.com/avizmarlon) ([Contribuições](https://github.com/avizmarlon/google-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=avizmarlon)), [marceloogeda](https://github.com/marceloogeda) ([Contribuições](https://github.com/avizmarlon/google-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=marceloogeda)), [laris151](https://github.com/laris151) ([Contribuições](https://github.com/avizmarlon/google-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=laris151))
|
||||
**Tradutores**: [Marlon Aviz](https://github.com/avizmarlon) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=avizmarlon)), [marceloogeda](https://github.com/marceloogeda) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=marceloogeda)), [laris151](https://github.com/laris151) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=laris151))
|
||||
|
||||
Traduções:
|
||||
- [中文版本](translations/README-cn.md)
|
||||
@ -42,14 +42,14 @@ Traduções em progresso:
|
||||
|
||||
## O que é isso?
|
||||
|
||||
Esse é o meu plano de estudo mensal para ir de desenvolvedor web (autodidata, sem formação em Ciência da Computação) à engenheiro de software para uma grande empresa.
|
||||
Esse é o meu plano de estudo mensal para ir de desenvolvedor web (autodidata, sem formação em Ciência da Computação) à engenheiro de software em uma grande empresa.
|
||||
|
||||

|
||||

|
||||
|
||||
Essa longa lista foi extraída e expandida a partir das **anotações de treinamento da Google**, então essas são as coisas que você precisa saber.
|
||||
Eu adicionei alguns itens extras no final que podem aparecer na entrevista ou serem úteis para resolver um problema. Muitos itens são da obra “[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)” (Consiga aquele trabalho na Google) de Steve Yegge's e às vezes são expressados palavra-por-palavra nas anotações de treinamento da Google.
|
||||
|
||||
Isso é direcionado à **engenheiros de software novos** ou àqueles que estão migrando de desenvolvimento de software/web para engenharia de software (onde conhecimento de ciência da computação é necessário). Se você tem vários anos de experiência e está alegando muitos anos de experiência com engenharia de software, pode esperar por uma entrevista mais difícil.
|
||||
Isso é direcionado à **novos engenheiros de software**, ou àqueles que estão migrando de desenvolvimento de software/web para engenharia de software, onde conhecimento sobre ciência da computação é necessário. Se você tem vários anos de experiência e está alegando muitos anos de experiência com engenharia de software, pode esperar por uma entrevista mais difícil.
|
||||
|
||||
Se você tem vários anos de experiência com desenvolvimento de software/web, observe que grandes empresas como Google, Amazon, Facebook e Microsoft consideram engenharia de software como algo distinto de desenvolvimento de software/web e elas requerem conhecimento de ciência da computação.
|
||||
|
||||
@ -73,13 +73,13 @@ Se você quer ser um engenheiro de confiabilidade ou engenheiro de sistemas, est
|
||||
- [Conhecimento Prévio](#conhecimento-prévio)
|
||||
- [Complexidade Algorítmica / Big-O / Análise assintótica](#complexidade-algorítmica--big-o--análise-assintótica)
|
||||
- [Estrutura de Dados](#estrutura-de-dados)
|
||||
- [Arrays](#arrays)
|
||||
- [Listas Ligadas](#listas-ligadas)
|
||||
- [Stack](#stack)
|
||||
- [Queue (Fila)](#queue-fila)
|
||||
- [Tabela hash](#tabela-hash)
|
||||
- [Vetores (Arrays)](#arrays)
|
||||
- [Listas Ligadas (Linked List)](#listas-ligadas)
|
||||
- [Pilha (Stack)](#stack)
|
||||
- [Fila (Queue)](#queue-fila)
|
||||
- [Tabela hash (Hash Table)](#tabela-hash)
|
||||
- [Mais Conhecimento](#mais-conhecimento)
|
||||
- [Busca binária](#busca-binária)
|
||||
- [Busca binária ( Binary Search)](#busca-binária)
|
||||
- [Lógica binária](#lógica-binária)
|
||||
- [Árvores](#Árvores)
|
||||
- [Árvores - Anotações e Fundamentos](#Árvores---anotações-e-fundamentos)
|
||||
@ -88,17 +88,17 @@ Se você quer ser um engenheiro de confiabilidade ou engenheiro de sistemas, est
|
||||
- árvores de busca balanceadas (conceito geral, não detalhes)
|
||||
- transversais: pré-ordem, em-ordem (ordem simétrica), pós-ordem, busca em largura, busca em profundidade
|
||||
- [Ordenação](#ordenação)
|
||||
- seleção
|
||||
- inserção
|
||||
- heapsort
|
||||
- quicksort
|
||||
- ordenação por mistura (merge sort)
|
||||
- Seleção
|
||||
- Inserção
|
||||
- Heapsort
|
||||
- Quicksort
|
||||
- Merge sort
|
||||
- [Grafos](#grafos)
|
||||
- directed
|
||||
- undirected
|
||||
- matriz de adjacência
|
||||
- lista de adjacência
|
||||
- traversals: BFS, DFS
|
||||
- Diretos
|
||||
- Indiretos
|
||||
- Matriz de Adjacência
|
||||
- Lista de Adjacência
|
||||
- Traversals: BFS, DFS
|
||||
- [Ainda Mais Conhecimento](#ainda-mais-conhecimento)
|
||||
- [Recursão](#recursão)
|
||||
- [Programação Dinâmica](#programação-dinâmica)
|
||||
@ -113,7 +113,7 @@ Se você quer ser um engenheiro de confiabilidade ou engenheiro de sistemas, est
|
||||
- [Agendamento](#agendamento)
|
||||
- [Implementar rotinas de sistema](#implementar-rotinas-de-sistema)
|
||||
- [Busca de string e manipulações](#busca-de-string-e-manipulações)
|
||||
- [Tries (ou Árvore de Prefixos)](#tries-ou-Árvore-de-prefixos)
|
||||
- [Árvore de Prefixos (Tries)](#tries-ou-Árvore-de-prefixos)
|
||||
- [Números de Ponto Flutuantes ("Floating Point Numbers")](#números-de-ponto-flutuantes-floating-point-numbers)
|
||||
- [Unicode](#unicode)
|
||||
- [Extremidade (ordenação) (ou "endianness" em Inglês)](#extremidade-ordenação-ou-endianness-em-inglês)
|
||||
@ -178,13 +178,13 @@ Se você quer ser um engenheiro de confiabilidade ou engenheiro de sistemas, est
|
||||
## Por que usar?
|
||||
|
||||
Quando eu comecei esse projeto, eu não sabia diferenciar memória dinâmica de memória estática, não sabia notação Big-O, árvores, ou como percorrer um grafo. Se eu tivesse que escrever um algoritmo de ordenação, eu posso te dizer que ele não seria muito bom.
|
||||
Todas as estruturas de dados que eu já usei eram construídas dentro da linguagem, e eu não sabia como elas funcionavam por debaixo dos panos. Eu nunca tive que gerenciar memória a não ser que um processo que eu estava rodando desse um erro de "memória insuficiente", nesse caso eu teria que dar um jeito. Eu já usei alguns arrays multidimensionais na minha vida e milhares de arrays associativos, mas eu nunca criei estruturas de dados do zero.
|
||||
Todas as estruturas de dados que eu já usei eram construídas dentro da linguagem, e eu não sabia como elas funcionavam por debaixo dos panos. Eu nunca tive que gerenciar memória a não ser que um processo que eu estava rodando desse um erro de "memória insuficiente", nesse caso eu teria que dar um jeito. Eu já usei alguns vetores multidimensionais na minha vida e milhares de vetores associativos, mas eu nunca criei estruturas de dados do zero.
|
||||
|
||||
É um longo plano. Você vai levar meses. Se você já é familiarizado com muitas dessas coisas, você vai precisar de muito menos tempo.
|
||||
|
||||
## Como usar
|
||||
|
||||
Tudo abaixo é um esboço, e você deve abordar os itens em ordem de cima para baixo.
|
||||
**Tudo abaixo é um esboço**, e você deve abordar os itens em ordem de cima para baixo.
|
||||
|
||||
Eu estou usando a sintaxe de markdown especial do Github, incluindo listas de tarefas para verificar o progresso.
|
||||
|
||||
@ -316,7 +316,7 @@ Se você tem mais tempo (eu quero esse livro):
|
||||
Se você ler um desses, você deverá ter todo conhecimento de estrutura de dados e algoritmos que precisará para começar a resolver problemas de programação.
|
||||
**Você pode pular todas as aulas em vídeo nesse projeto**, a não ser que você queira uma revisão.
|
||||
|
||||
[Recursos adicionais específicos a cada linguagem aqui.](programming-language-resources.md)
|
||||
[Recursos adicionais específicos a cada linguagem aqui.](../programming-language-resources.md)
|
||||
|
||||
### C++
|
||||
|
||||
@ -393,9 +393,9 @@ OU:
|
||||
|
||||
## Antes de começar
|
||||
|
||||
Essa lista cresceu por longos meses, e sim, ela meio que saiu do controle.
|
||||
Essa lista cresceu por longos meses, e sim, ela meio que saiu do controle!
|
||||
|
||||
Aqui estão alguns erros que eu cometi para que você tenha uma experiência melhor.
|
||||
**Aqui estão alguns erros que eu cometi para que você tenha uma experiência melhor**.
|
||||
|
||||
### 1. Você não se lembrará de tudo
|
||||
|
||||
@ -467,9 +467,9 @@ Por que programar em todas essas linguagens?
|
||||
Talvez eu não tenha tempo para fazer tudo isso para cada tema, mas eu vou tentar.
|
||||
|
||||
Você pode ver meu código aqui:
|
||||
- [C] (https://github.com/jwasham/practice-c)
|
||||
- [C++] (https://github.com/jwasham/practice-cpp)
|
||||
- [Python] (https://github.com/jwasham/practice-python)
|
||||
- [C](https://github.com/jwasham/practice-c)
|
||||
- [C++](https://github.com/jwasham/practice-cpp)
|
||||
- [Python](https://github.com/jwasham/practice-python)
|
||||
|
||||
Você não precisa memorizar os detalhes intrínsecos de cada algoritmo.
|
||||
|
||||
@ -519,12 +519,12 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
|
||||
- [ ] Descrição:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s) (Arrays lineares e multidimensionais - vídeo)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html) (Arrays básicos - vídeo)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html) (Multidimensionais - vídeo)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4) (Arrays básicos - vídeo)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4) (Multidimensionais - vídeo)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays) (Arrays Dinâmicos - vídeo)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g) (Arrays Multidimensionais - vídeo)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html) (Arrays Multidimensionais - vídeo)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html) (Arrays Dinâmicos)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4) (Arrays Multidimensionais - vídeo)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4) (Arrays Dinâmicos)
|
||||
- [ ] Implementar um vetor (array mutável com redimensionamento automático):
|
||||
- [ ] Praticar programação usando arrays e ponteiros, e matemática de ponteiros para pular para um índice ao invés de usar indexação.
|
||||
- [ ] novo array de dados brutos com memória alocada
|
||||
@ -587,14 +587,14 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html) (Usando Stacks Último a Entrar Primeiro a Sair - vídeo)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4) (Usando Stacks Último a Entrar Primeiro a Sair - vídeo)
|
||||
- [ ] Não implementarei. Implementar com array é trivial.
|
||||
|
||||
- ### Queue (Fila)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html) (Usando queues FIFO(Primeiro a entrar, último a sair) - vídeo)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4) (Usando queues FIFO(Primeiro a entrar, último a sair) - vídeo)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer) (Buffer circular/Primeiro a entrar, último a sair)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html) (Queues com Prioridade - vídeo)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4) (Queues com Prioridade - vídeo)
|
||||
- [ ] Implementar usando lista ligada, com ponteiro de cauda (aponta para o último elemento de uma lista):
|
||||
- enqueue(valor) - adiciona "valor" na posição na cauda (final da lista)
|
||||
- dequeue() - retorna um valor e remove o elemento menos recentemente adicionado (início da lista))
|
||||
@ -621,10 +621,10 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) ((Avançado) Hashing perfeito - vídeo)
|
||||
|
||||
- [ ] Cursos Online:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html) (Compreendendo Funções Hash - vídeo)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html) (Usando Tabelas Hash - vídeo)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html) (Hashing de Suporte - vídeo)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html) (Tabelas Hash de Suporte de Linguagem - vídeo)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4) (Compreendendo Funções Hash - vídeo)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4) (Usando Tabelas Hash - vídeo)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4) (Hashing de Suporte - vídeo)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4) (Tabelas Hash de Suporte de Linguagem - vídeo)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables) (Fundamentos de Tabelas Hash - vídeo)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3) (Estruturas de Dados - vídeo)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem) (Problema da Lista Telefônica (vídeo) )
|
||||
@ -650,7 +650,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
|
||||
- busca binária usando recursividade
|
||||
|
||||
- ### Lógica binária
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) (Folha de consultas sobre Bits) - você deve conhecer várias das potências de 2 de (2^1 até 2^16 e 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) (Folha de consultas sobre Bits) - você deve conhecer várias das potências de 2 de (2^1 até 2^16 e 2^32)
|
||||
- [ ] Consiga um bom entendimento sobre manipulação de bits com: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture)) (palavras)
|
||||
- [ ] Boa introdução:
|
||||
@ -679,7 +679,6 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
|
||||
## Árvores
|
||||
|
||||
- ### Árvores - Anotações e Fundamentos
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees) (Série: Fundamentos de Árvores - vídeo)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees) (Série: Árvores - vídeo)
|
||||
- contrução básica de árvore
|
||||
- transversal
|
||||
@ -1598,7 +1597,6 @@ Esses tópicos provavelmente não aparecerão em uma entrevista, mas eu adicione
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) (Ataques Side-Channel)
|
||||
|
||||
- ### Coleta de lixo
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25) (Coleta de lixo - Java)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff) (Compiladores - vídeo)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI) (Coleta de lixo em Python - vídeo)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits) (Mergulhando Fundo em Java: Coleta de Lixo é Bom)
|
||||
|
2001
translations/README-ru.md
Normal file
2001
translations/README-ru.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@
|
||||
>
|
||||
> *ขอให้คุณโชคดี!*
|
||||
|
||||
การแปลภาษา:
|
||||
ภาษาอื่นๆ:
|
||||
- [中文版本](translations/README-cn.md)
|
||||
- กำลังดำเนินการแปลภาษา:
|
||||
- [Español](https://github.com/jwasham/coding-interview-university/issues/80)
|
||||
@ -30,9 +30,9 @@
|
||||
|
||||
นี่เป็นแผนการศึกษาหลายเดือนของผมจากนักพัฒนาเว็บไซต์ (ด้วยการศึกษาด้วยตัวเอง โดยไม่ได้จบวิทยาการคอมพิวเตอร์) เพื่อจะเป็นวิศวกรซอฟต์แวร์ในบริษัทขนาดใหญ่ที่หลายๆ คนต้องการเข้าทำงานด้วย
|
||||
|
||||

|
||||

|
||||
|
||||
บทความนี้สำหรับคนที่อยากเป็น **วิศวกรซอฟต์แวร์** หรือต้องการเปลี่ยนมาจากนักพัฒนาซอฟต์แวร์หรือนักพัฒนาเว็บไซด์มาเป็นวิศวกรซอฟต์แวร์ (ผู้ซึ่งมีความรู้ความเข้าใจลึกซึ่งในหลักการของวิทยาการคอมพิวเตอร์) ถ้าคุณมีประสบการณ์หลายปีและมั่นใจในประสบการณ์การเป็นวิศวกรซอฟต์แวร์ของคุณ จะได้เจอการสัมภาษณ์ที่ยากขึ้นแน่นอน
|
||||
บทความนี้สำหรับคนที่อยากเป็น **วิศวกรซอฟต์แวร์** หรือต้องการเปลี่ยนมาจากนักพัฒนาซอฟต์แวร์หรือนักพัฒนาเว็บไซด์มาเป็นวิศวกรซอฟต์แวร์ (ผู้ซึ่งมีความรู้ความเข้าใจลึกซึ้งในหลักการของวิทยาการคอมพิวเตอร์) ถ้าคุณมีประสบการณ์หลายปีและมั่นใจในประสบการณ์การเป็นวิศวกรซอฟต์แวร์ของคุณ จะได้เจอการสัมภาษณ์ที่ยากขึ้นแน่นอน
|
||||
|
||||
ถ้าคุณมีประสบการณ์การพัฒนาซอฟต์แวร์หรือเว็บไซต์มาหลายปี แต่ในบริษัทซอฟต์แวร์ขนาดใหญ่ของโลกอย่าง Google Amazon Facebook และ Microsoft มองการพัฒนาซอฟต์แวร์ของวิศวกรซอฟต์แวร์ที่ต่างกันออกไปจากการพัฒนาซอฟต์แวร์หรือเว็บไซต์โดยทั่วๆไป และบริษัทที่กล่าวมานี้ก็ต้องการความรู้ทางวิทยาการคอมพิวเตอร์ที่เข้มข้นอย่างมาก
|
||||
|
||||
@ -242,7 +242,7 @@ You need to be very comfortable in the language and be knowledgeable.
|
||||
|
||||
[See language resources here](programming-language-resources.md)
|
||||
|
||||
You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
|
||||
คุณอาจจะเห็นแหล่งเรียนรู้เกี่ยวกับภาษา C, C++ และ Python ข้างใต้นี้ เพราะเราก็ยังคงศึกษาเรียนรู้กันอยู่ตลอด และมีหนังสือที่เกี่ยวข้องด้านล่าง
|
||||
|
||||
## รายชื่อหนังสือ
|
||||
|
||||
@ -450,7 +450,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
|
||||
- [C++] (https://github.com/jwasham/practice-cpp)
|
||||
- [Python] (https://github.com/jwasham/practice-python)
|
||||
|
||||
You don't need to memorize the guts of every algorithm.
|
||||
คุณไม่จำเป็นต้องจำรายละเอียดทุกอย่างของทุกอัลกอริธึม
|
||||
|
||||
เขียนโค้ดลงกระดานหรือกระดาษ ไม่ใช่ในเครื่องคอมพิวเตอร์ ทดสอบโดยใช้ข้อมูลตัวอย่าง จากนั้นลองรันจริงๆ ในเครื่องคอมพิวเตอร์
|
||||
|
||||
@ -498,12 +498,12 @@ You don't need to memorize the guts of every algorithm.
|
||||
- [ ] Description:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -565,14 +565,14 @@ You don't need to memorize the guts of every algorithm.
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -599,10 +599,10 @@ You don't need to memorize the guts of every algorithm.
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -628,7 +628,7 @@ You don't need to memorize the guts of every algorithm.
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -657,7 +657,6 @@ You don't need to memorize the guts of every algorithm.
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -1320,17 +1319,17 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
|
||||
## Coding Question Practice
|
||||
|
||||
Now that you know all the computer science topics above, it's time to practice answering coding problems.
|
||||
ขณะนี้คุณมีความรู้เกี่ยวกับวิทยการคอมพิวเตอร์ทุกหัวข้อด้านบนแล้ว ก็ถึงเวลาฝึกซ้อมตอบคำถามเกี่ยวกับปัญหาด้านการโค้ดดิ้ง
|
||||
|
||||
**Coding question practice is not about memorizing answers to programming problems.**
|
||||
**การฝึกซ้อมนี้ ไม่เกี่ยวข้องกับการท่องจำตอบของโจทย์ด้านการเขียนโปรแกรม**
|
||||
|
||||
Why you need to practice doing programming problems:
|
||||
- problem recognition, and where the right data structures and algorithms fit in
|
||||
- gathering requirements for the problem
|
||||
- talking your way through the problem like you will in the interview
|
||||
- coding on a whiteboard or paper, not a computer
|
||||
- coming up with time and space complexity for your solutions
|
||||
- testing your solutions
|
||||
ทำไมคุณจึงต้องฝึกซ้อม:
|
||||
- เพื่อทดสอบความเข้าใจโจทย์ ว่า ควรใช้โครงสร้างช้อมูลใด และ อัลกอริธึมใด ที่เหมาะสมกับโจทย์
|
||||
- รวบรวมสิ่งที่โจทย์ต้องการ
|
||||
- พูดคุยเป็นภาษาของคุณ เฉกเช่นเดียวกับเมื่อคุณไปสัมภาษณ์
|
||||
- เขียนโค้ดบนกระดาน, กระดาษ ไม่ใช่ในคอมพิวเตอร์
|
||||
- ได้คำตอบออกมา พร้อมกับประสิทธิภาพของคำตอบของคุณ
|
||||
- ทดสอบคำตอบของคุณ
|
||||
|
||||
There is a great intro for methodical, communicative problem solving in an interview. You'll get this from the programming
|
||||
interview books, too, but I found this outstanding:
|
||||
@ -1455,12 +1454,12 @@ You're never really done.
|
||||
## Additional Books
|
||||
|
||||
- [ ] [The Unix Programming Environment](http://product.half.ebay.com/The-UNIX-Programming-Environment-by-Brian-W-Kernighan-and-Rob-Pike-1983-Other/54385&tg=info)
|
||||
- an oldie but a goodie
|
||||
- หนังสือเก่า แต่ยังเก๋า
|
||||
- [ ] [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
|
||||
- a modern option
|
||||
- [ ] [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
|
||||
- [ ] [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
|
||||
- a gentle introduction to design patterns
|
||||
- แนะนำ design patterns ตั้งแต่เริ่มต้น
|
||||
- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
|
||||
- aka the "Gang Of Four" book, or GOF
|
||||
- the canonical design patterns book
|
||||
@ -1568,7 +1567,6 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
@ -1770,7 +1768,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
|
||||
- see videos below
|
||||
|
||||
- ### การเรียนรู้ของเครื่อง (Machine Learning)
|
||||
- [ ] Why ML?
|
||||
- [ ] ทำไมต้อง ML?
|
||||
- [ ] [How Google Is Remaking Itself As A Machine Learning First Company](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
|
||||
- [ ] [Large-Scale Deep Learning for Intelligent Computer Systems (video)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
|
||||
- [ ] [Deep Learning and Understandability versus Software Engineering and Verification by Peter Norvig](https://www.youtube.com/watch?v=X769cyzBNVw)
|
||||
@ -1788,8 +1786,8 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
|
||||
- [Google/Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
|
||||
- [Self-Driving Car Engineer Nanodegree](https://www.udacity.com/drive)
|
||||
- [Metis Online Course ($99 for 2 months)](http://www.thisismetis.com/explore-data-science)
|
||||
- Resources:
|
||||
- Books:
|
||||
- แหล่งเรียนรู้:
|
||||
- หนังสือ:
|
||||
- [Python Machine Learning](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
|
||||
- [Data Science from Scratch: First Principles with Python](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X)
|
||||
- [Introduction to Machine Learning with Python](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/)
|
||||
|
1890
translations/README-tw.md
Normal file
1890
translations/README-tw.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
# Google Interview University
|
||||
# Coding Interview University
|
||||
|
||||
Original: [англійською](README.md)
|
||||
|
||||
@ -7,7 +7,7 @@ Original: [англійською](README.md)
|
||||
Це мій багатомісячний навчальний план для перетворення з веб-розробника (самоучки без ступеню з CS)
|
||||
на розробника програмного забезпечення у Google.
|
||||
|
||||

|
||||

|
||||
|
||||
Цей довгий список був видобутий і розширений з **тренувальних нотаток Google**, отже це речі, які ви повинні знати.
|
||||
Тут є додаткові пункти, які я додав знизу — вони можуть зустрітися в інтерв’ю або бути корисними у вирішенні завдань.
|
||||
@ -171,7 +171,7 @@ Original: [англійською](README.md)
|
||||
|
||||
`git checkout -b progress`
|
||||
|
||||
`git remote add jwasham https://github.com/jwasham/google-interview-university`
|
||||
`git remote add jwasham https://github.com/jwasham/coding-interview-university`
|
||||
|
||||
`git fetch --all`
|
||||
|
||||
@ -496,12 +496,12 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] Description:
|
||||
- [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim (video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Implement a vector (mutable array with automatic resizing):
|
||||
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
||||
- [ ] new raw data array with allocated memory
|
||||
@ -563,14 +563,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Will not implement. Implementing with array is trivial.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] [Priority Queues (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Implement using linked-list, with tail pointer:
|
||||
- enqueue(value) - adds value at position at tail
|
||||
- dequeue() - returns value and removes least recently added element (front)
|
||||
@ -597,10 +597,10 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Online Courses:
|
||||
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
@ -626,7 +626,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -655,7 +655,6 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
## Trees
|
||||
|
||||
- ### Trees - Notes & Background
|
||||
- [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- basic tree construction
|
||||
- traversal
|
||||
@ -1569,7 +1568,6 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
|
@ -33,7 +33,7 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
|
||||
|
||||
Đây là kế hoạch học tập trong nhiều tháng của tôi, để từ một nhà phát triển web (tự học, không có bằng cấp về Khoa Học Máy Tính - KHMT) trở thành một kỹ sư phần mềm ở Google.
|
||||
|
||||

|
||||

|
||||
|
||||
Danh sách dài này được trích và mở rộng từ **Ghi chú huấn luyện của Google**, vậy nên đây là những gì bạn cần biết.
|
||||
Một vài mục tôi thêm vào ở cuối danh sách có thể xuất hiện trong cuộc phỏng vấn hoặc hữu ích cho việc giải quyết các bài toán về lập trình. Nhiều mục đến từ bài viết [Lấy được việc ở Google (Get that job at Google)](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" của Steve Yegge.
|
||||
@ -197,7 +197,7 @@ Ok, bây giờ bạn có thể bắt đầu:
|
||||
- Fork repo này.
|
||||
- Clone bản fork của bạn về máy tính cá nhân.
|
||||
```
|
||||
git clone https://github.com/<your-username>/google-interview-university
|
||||
git clone https://github.com/<your-username>/coding-interview-university
|
||||
```
|
||||
- Chạy các dòng lệnh sau
|
||||
- Tạo một branch mới để đánh dấu tiến độ của bạn:
|
||||
@ -277,15 +277,15 @@ Bạn sẽ thấy vài tài liệu về C, C++ và Python bên dưới, vì tôi
|
||||
### Chuẩn bị phỏng vấn
|
||||
|
||||
|
||||
- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
|
||||
- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4nd Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
|
||||
- Có câu trả lời bằng C++ và Java
|
||||
- Được khuyến khích bởi các khóa hướng dẫn của Google.
|
||||
- Đây là một phần luyện tập tốt trước khi bắt đầu với quyển Cracking the Coding Interview
|
||||
- Không quá khó, phần lớn các bài toán có lẽ dễ hơn nhiều so với những gì bạn thường thấy trong một buổi phỏng vấn (dựa theo những gì tôi đọc được)
|
||||
- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
|
||||
- Trả lời bằng Java
|
||||
- Được khuyến nghị trên [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/)
|
||||
- Nếu bạn thấy mọi người trích dẫn "The Google Resume", đó là một cuốn sách được thay thế bởi "Cracking the Coding Interview".
|
||||
- Được khuyến nghị trên [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/)
|
||||
- Nếu bạn thấy mọi người trích dẫn "The Google Resume", đó là một cuốn sách được thay thế bởi "Cracking the Coding Interview".
|
||||
|
||||
Nếu bạn có nhiều thời gian hơn nữa:
|
||||
|
||||
@ -377,7 +377,7 @@ hoặc:
|
||||
- Nhiều câu chuyện thú vị từ kinh nghiệm của tác giả trong việc giải quyết các vấn đề thực tế và trong giới học thuật.
|
||||
- Code mẫu bằng C.
|
||||
- Nhược:
|
||||
- Cô đặc và có thể khó hiểu ngang với CLRS, và trong một số chủ đề, CLRS có thể là một tài liệu tốt hơn để tham khảo.
|
||||
- Cô đặc và có thể khó hiểu ngang với CLRS, và trong một số chủ đề, CLRS có thể là một tài liệu tốt hơn để tham khảo.
|
||||
- Các chương 7, 8, 9 có thể rất vất vả để theo được, vì một vài phần không được giải thích rõ, hoặc là yêu cầu nhiều não hơn những gì tôi có.
|
||||
- Đừng hiểu lầm: Tôi thích Skiena, cách dạy học và phong các của ông ấy, nhưng tôi có lẽ không đủ khả năng để tốt nghiệp ở Stony Brook (nơi Skiena giảng dạy).
|
||||
- Danh mục thuật toán:
|
||||
@ -402,7 +402,7 @@ hoặc:
|
||||
- Vài chương đầu trình bày những giải pháp thông minh để giải quyết các vấn đề lập trình (một số đã rất cũ, từ thời người ta còn sử dụng băng từ). Nhưng, đó chỉ là phần mở đầu. đây là một quyển sách về thiết kế và cấu trúc phần mềm, giống như Code Complete, nhưng ngắn hơn nhiều.
|
||||
|
||||
- ~~"Algorithms and Programming: Problems and Solutions" by Shen~~
|
||||
- Sách tạm được, nhưng sau khi làm việc với các bài toán trong vài trang, tôi thấy nhức đầu với ngôn ngữ Pascal, do-while loop, mảng bắt đầu với số 1 (thay vì 0 như Java, C, C++, ...), và một vài thông tin không rõ ràng.
|
||||
- Sách tạm được, nhưng sau khi làm việc với các bài toán trong vài trang, tôi thấy nhức đầu với ngôn ngữ Pascal, do-while loop, mảng bắt đầu với số 1 (thay vì 0 như Java, C, C++, ...), và một vài thông tin không rõ ràng.
|
||||
- Lẽ ra nên dành thời gian để giải toán từ các quyển sách khác hoặc làm toán lập trình online.
|
||||
|
||||
## Trước khi bắt đầu
|
||||
@ -484,13 +484,13 @@ Tôi có lẽ không đủ thời gian để thử hết tất cả các bước
|
||||
|
||||
Bạn có thể xem code của tôi ở các trang sau:
|
||||
|
||||
- [C] (https://github.com/jwasham/practice-c)
|
||||
- [C++] (https://github.com/jwasham/practice-cpp)
|
||||
- [Python] (https://github.com/jwasham/practice-python)
|
||||
- [C](https://github.com/jwasham/practice-c)
|
||||
- [C++](https://github.com/jwasham/practice-cpp)
|
||||
- [Python](https://github.com/jwasham/practice-python)
|
||||
|
||||
Bạn không cần phải ghi nhớ cặn kẽ từ giải thuật.
|
||||
|
||||
Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật tóan của bạn trên một máy tính.
|
||||
Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật toán của bạn trên một máy tính.
|
||||
|
||||
|
||||
## Kiến thức tiên quyết
|
||||
@ -531,16 +531,16 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
## Cấu trúc dữ liệu
|
||||
|
||||
- ### Arrays
|
||||
- Cấp phát mảng vector tự động tùy biến kích cỡ.
|
||||
- Cấp phát mảng vector tự động tùy biến kích cỡ.
|
||||
- [ ] Miêu tả, tên gốc được giữ nguyên kèm với bản dịch sang tiếng Việt:
|
||||
- [Arrays - Mảng (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
|
||||
- [UCBerkley CS61B - Linear and Multi-Dim Arrays - Mảng tuyến tính và mảng đa chiều(video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
|
||||
- [Basic Arrays - Mảng cơ bản (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
|
||||
- [Multi-dim - Đa chiều(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
|
||||
- [Basic Arrays - Mảng cơ bản (video)](https://archive.org/details/0102WhatYouShouldKnow/02_04-basicArrays.mp4)
|
||||
- [Multi-dim - Đa chiều(video)](https://archive.org/details/0102WhatYouShouldKnow/02_05-multidimensionalArrays.mp4)
|
||||
- [Dynamic Arrays - Mảng tùy biến (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
|
||||
- [Jagged Arrays - Mảng trong mảng (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
||||
- [Jagged Arrays - Mảng trong mảng (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
||||
- [Resizing arrays - Mảng có thể tùy biến kích thước (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
||||
- [Jagged Arrays - Mảng trong mảng (video)](https://archive.org/details/0102WhatYouShouldKnow/02_06-jaggedArrays.mp4)
|
||||
- [Resizing arrays - Mảng có thể tùy biến kích thước (video)](https://archive.org/details/0102WhatYouShouldKnow/03_01-resizableArrays.mp4)
|
||||
- [ ] Cấp phát vector (Mảng có thể thay đổi với khả năng tự điều chỉnh kích cỡ):
|
||||
- [ ] Tập sử dụng mảng và con trỏ, dùng phép toán con trỏ để nhảy tới một chỉ mục (index) thay vì sử dụng chỉ mục.
|
||||
- [ ] Tạo mảng mới với vùng nhớ được cấp phát sẵn
|
||||
@ -565,7 +565,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
- O(n) để thêm/xóa tại bất cứ đâu
|
||||
- [ ] Không gian
|
||||
- Liên tục trong bộ nhớ, giúp cải thiện hiệu suất
|
||||
- Không gian cần thiết = (Kích cở của mảng, thường >= n)* kích thước của 1 phần tử, cho dù là 2n, vẫn xem như O(n)
|
||||
- Không gian cần thiết = (Kích cỡ của mảng, thường >= n)* kích thước của 1 phần tử, cho dù là 2n, vẫn xem như O(n)
|
||||
|
||||
- ### Linked Lists
|
||||
- [ ] Miêu tả:
|
||||
@ -602,15 +602,15 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
|
||||
- ### Stack
|
||||
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
|
||||
- [ ] [Using Stacks Last-In First-Out - Sử dụng stack Vào-Cuối-Ra-Trước (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
|
||||
- [ ] [Using Stacks Last-In First-Out - Sử dụng stack Vào-Cuối-Ra-Trước (video)](https://archive.org/details/0102WhatYouShouldKnow/05_01-usingStacksForLast-inFirst-out.mp4)
|
||||
- [ ] Sẽ không cài đặt. Cài đặt với mảng là điều hiển nhiên.
|
||||
|
||||
- ### Queue
|
||||
- [ ] [Using Queues First-In First-Out - Sử dụng hàng đợi Vào-Trước-Ra-Trước(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
|
||||
- [ ] [Using Queues First-In First-Out - Sử dụng hàng đợi Vào-Trước-Ra-Trước(video)](https://archive.org/details/0102WhatYouShouldKnow/05_03-usingQueuesForFirst-inFirst-out.mp4)
|
||||
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
|
||||
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
- [ ] [Priority Queues - Hàng đợi ưu tiên (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
|
||||
- [ ] Cài đặt sử dụng danh sách liên kết, áp dụng con trỏ đuôi:
|
||||
- [ ] [Priority Queues - Hàng đợi ưu tiên (video)](https://archive.org/details/0102WhatYouShouldKnow/05_04-priorityQueuesAndDeques.mp4)
|
||||
- [ ] Cài đặt sử dụng danh sách liên kết, áp dụng con trỏ đuôi:
|
||||
- enqueue(value) - Thêm giá trị ở đuôi
|
||||
- dequeue() - Trả về giá trị của dữ liệu được thêm vào xa nhất (thông thường là dữ liệu đầu tiên trong danh sách)
|
||||
- empty()
|
||||
@ -620,7 +620,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
- empty()
|
||||
- full()
|
||||
- [ ] Chi phí:
|
||||
- Không cài đặt đúng việc sử dụng danh sách liên kết khi enqueue tại đầu và dequeue tại đuôi sẽ có chi phí là O(n) bởi vì bạn cần con trỏ next tới giá trị cuối cùng, khiến việc phải chạy qua toàn danh sách mỗi lần dequeue
|
||||
- Không cài đặt đúng việc sử dụng danh sách liên kết khi enqueue tại đầu và dequeue tại đuôi sẽ có chi phí là O(n) bởi vì bạn cần con trỏ next tới giá trị cuối cùng, khiến việc phải chạy qua toàn danh sách mỗi lần dequeue
|
||||
- enqueue: O(1) (Không đáng kể, danh sách liên kết và mảng [probing])
|
||||
- dequeue: O(1) (danh sách liên kết và mảng)
|
||||
- empty: O(1) (danh sách liên kết và mảng)
|
||||
@ -633,20 +633,18 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
|
||||
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
|
||||
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
|
||||
|
||||
- [ ] Các khóa học online:
|
||||
- [ ] [Understanding Hash Functions - Hiểu hàm băm (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
|
||||
- [ ] [Using Hash Tables - Sử dụng bảng băm (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
|
||||
- [ ] [Supporting Hashing - Hỗ trợ băm(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
|
||||
- [ ] [Language Support Hash Tables - Ngôn ngữ hỗ trợ bảng băm (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
|
||||
- [ ] [Understanding Hash Functions - Hiểu hàm băm (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
|
||||
- [ ] [Using Hash Tables - Sử dụng bảng băm (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
|
||||
- [ ] [Supporting Hashing - Hỗ trợ băm(video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
|
||||
- [ ] [Language Support Hash Tables - Ngôn ngữ hỗ trợ bảng băm (video)](https://archive.org/details/0102WhatYouShouldKnow/06_05-languageSupportForHashTables.mp4)
|
||||
- [ ] [Core Hash Tables - Cơ bản về bảng băm (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
|
||||
- [ ] [Data Structures - Cấu trúc dữ liệu (video)](https://www.coursera.org/learn/data-structures/home/week/3)
|
||||
- [ ] [Phone Book Problem - Vấn đề sổ điện thoại (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
|
||||
- [ ] Phân phối bảng băm:
|
||||
- [Instant Uploads And Storage Optimization In Dropbox - Tải nhanh và tối ưu lưu trữ trong Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
|
||||
- [Distributed Hash Tables - Phân phối bảng băm(video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
|
||||
|
||||
- [ ] Cài đặt với mảng sử dụng thăm dò tuyến tính:
|
||||
- [ ] Cài đặt với mảng sử dụng thăm dò tuyến tính:
|
||||
- hash(k, m) - m là kích thước của bảng băm
|
||||
- add(key, value) - nếu khóa đã tồn tại, cập nhật giá trị
|
||||
- exists(key)
|
||||
@ -664,7 +662,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
- Tìm kiếm nhị phân sử dụng đệ quy
|
||||
|
||||
- ### Toán tử trên bit
|
||||
- [ ] [Bits cheat sheet](/extras/cheat%20sheets/bits-cheat-cheet.pdf) - bạn nên thuộc lòng nhiều lũy thừa của 2 (từ 2^1 đến 2^16 và 2^32)
|
||||
- [ ] [Bits cheat sheet](/extras/cheat%20sheets/bits-cheat-sheet.pdf) - bạn nên thuộc lòng nhiều lũy thừa của 2 (từ 2^1 đến 2^16 và 2^32)
|
||||
- [ ] Hãy chuẩn bị một nền tảng tốt về các biến đổi bit với các toán tử: &, |, ^, ~, >>, <<
|
||||
- [ ] [words (thuật ngữ trong kiến trúc máy tính)](https://en.wikipedia.org/wiki/Word_(computer_architecture) )
|
||||
- [ ] Bài mở đầu:
|
||||
@ -694,7 +692,6 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
||||
## Cây
|
||||
|
||||
- ### Cây - Ghi chú và kiến thức nền
|
||||
- [ ] [Chuỗi bài giảng: Căn bản về cây](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
|
||||
- [ ] [Chuỗi bài giảng: Cây](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
|
||||
- Xây dựng cây cơ bản.
|
||||
- Duyệt cây.
|
||||
@ -1385,7 +1382,7 @@ Không có bảng trắng ở nhà? Cũng hợp lý chứ. Tôi có chút khác
|
||||
Phụ lục:
|
||||
|
||||
- [Toán học cho nhà lập trình hàng đầu (Mathematics for Topcoders)](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
|
||||
- [Lập trình linh hoạt - Từ cơ bản đến nâng cao (Dynamic Programming – From Novice to Advanced)](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
|
||||
- [Quy hoạch động - Từ cơ bản đến nâng cao (Dynamic Programming – From Novice to Advanced)](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
|
||||
- [Các tài liệu liên quan tới phỏng vấn của MIT (MIT Interview Materials)](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
|
||||
- [Các bài tập để lập trình tốt hơn đối với ngôn ngữ được lựa chọn (Exercises for getting better at a given language)](http://exercism.io/languages)
|
||||
|
||||
@ -1607,7 +1604,6 @@ Bạn không bao giờ thực sự học xong!
|
||||
|
||||
- ### Trình dọn rác
|
||||
> Trình dọn rác (garbage collection) là một tính năng của các ngôn ngữ lập trình cấp cao, trong đó hệ thông tự động thu hồi vùng nhớ của các data (biến, đối tượng) không còn được sử dụng nữa, và cấp phát chúng cho các data mới. Trước khi có tính năng này, lập trình viên phải quản lý vùng nhớ thủ công, tự xin cấp phát và tự giải phóng.
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
|
Loading…
x
Reference in New Issue
Block a user