From 8898205818211bc3b87ff14a1f333e718c63c23a Mon Sep 17 00:00:00 2001 From: Hello World Date: Sun, 2 Sep 2018 16:49:16 +0700 Subject: [PATCH 1/9] =?UTF-8?q?Fix=20l=E1=BB=97i=20tr=C3=AAn=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix chính tả - Fix các phần bị lỗi co phần nội dung (Arrays, Queue) - Sửa Lập trình linh hoạt (Dynamic Programming) thành Quy hoạch động --- translations/README-vi.md | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/translations/README-vi.md b/translations/README-vi.md index ce185d2..5585363 100644 --- a/translations/README-vi.md +++ b/translations/README-vi.md @@ -284,8 +284,8 @@ Bạn sẽ thấy vài tài liệu về C, C++ và Python bên dưới, vì tôi - 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,7 +531,7 @@ 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) @@ -541,7 +541,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy - [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) - - [ ] Cấp phát vector (Mảng có thể thay đổi với khả năng tự điều chỉnh kích cỡ): + - [ ] 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 - Có thể triển khai mảng số nguyên một cách nhanh chóng, nhưng không sử dụng các tính năng sẵn có @@ -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ả: @@ -610,7 +610,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy - [ ] [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: + - [ ] 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,7 +633,6 @@ 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) @@ -645,8 +644,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy - [ ] 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) @@ -1385,7 +1383,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) From fbe4818f31c48b1909673f3e336753f1af28f100 Mon Sep 17 00:00:00 2001 From: Mateusz Witkowski Date: Sun, 23 Sep 2018 23:16:30 +0200 Subject: [PATCH 2/9] fixed broken links from TopCoder --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e517987..2801292 100644 --- a/README.md +++ b/README.md @@ -508,8 +508,8 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN) - [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63) - [ ] TopCoder (includes recurrence relations and master theorem): - - [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/) - - [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/) + - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/) + - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/) - [ ] [Cheat sheet](http://bigocheatsheet.com/) @@ -648,7 +648,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - ### Binary search - [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno) - [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search) - - [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/) + - [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/) - [ ] Implement: - binary search (on sorted array of integers) - binary search using recursion @@ -1147,7 +1147,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries) - [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie) - [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure) - - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/) + - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/competitive-programming/tutorials/using-tries/) - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU) - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) @@ -1234,7 +1234,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/) - [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc) - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0) - - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/) + - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/competitive-programming/tutorials/the-importance-of-algorithms/) - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html) - [ ] [Scale at Facebook (2009)](https://www.infoq.com/presentations/Scale-at-Facebook) - [ ] [Scale at Facebook (2012), "Building for a Billion Users" (video)](https://www.youtube.com/watch?v=oodS71YtkGU) @@ -1375,8 +1375,8 @@ I added the pen in the photo for scale. If you use a pen, you'll wish you could Supplemental: -- [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/) -- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/) +- [Mathematics for Topcoders](https://www.topcoder.com/community/competitive-programming/tutorials/mathematics-for-topcoders/) +- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/competitive-programming/tutorials/dynamic-programming-from-novice-to-advanced/) - [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php) - [Exercises for getting better at a given language](http://exercism.io/languages) @@ -1394,8 +1394,8 @@ See [Book List above](#book-list) Once you've learned your brains out, put those brains to work. Take coding challenges every day, as many as you can. -- [ ] [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/) +- [ ] [How to Find a Solution](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/) +- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/) Coding Interview Question Videos: - [IDeserve (88 videos)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI) @@ -1717,7 +1717,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo - [ ] [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871) - [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5) - [ ] [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) - - [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/) + - [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/competitive-programming/tutorials/an-introduction-to-binary-search-and-red-black-trees/) - [ ] **2-3 search trees** - In practice: From 7e8ee7663eaed82fa0c5c857333e94638453efb6 Mon Sep 17 00:00:00 2001 From: mfurga Date: Mon, 24 Sep 2018 09:39:02 +0200 Subject: [PATCH 3/9] Fixed broken link to queue data structure --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e517987..6ecb4c9 100644 --- a/README.md +++ b/README.md @@ -596,7 +596,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - ### 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) - - [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue) + - [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq) - [ ] [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) - [ ] Implement using linked-list, with tail pointer: From a263e218e857475aedcf6ee0b5f2ea2175d799f3 Mon Sep 17 00:00:00 2001 From: Akshat Agarwal Date: Mon, 1 Oct 2018 17:07:28 +0530 Subject: [PATCH 4/9] Adding Challenge sites --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f1f75b..fbc6a15 100644 --- a/README.md +++ b/README.md @@ -1413,6 +1413,7 @@ Challenge sites: - [Geeks for Geeks](http://www.geeksforgeeks.org/) - [InterviewBit](https://www.interviewbit.com/invite/icjf) - [Sphere Online Judge (spoj)](http://www.spoj.com/) +- [Codechef](https://www.codechef.com/) Challenge repos: - [Interactive Coding Interview Challenges in Python](https://github.com/donnemartin/interactive-coding-challenges) From 0ed7edf3c5e7c3ae0ca14b80f39b63c264f7a0d9 Mon Sep 17 00:00:00 2001 From: Sangseok Doe Date: Fri, 5 Oct 2018 15:28:20 -0400 Subject: [PATCH 5/9] Retranslated Korean with the updated statement(changed 'Google Interview University' to 'Coding Interview University') --- translations/README-ko.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/translations/README-ko.md b/translations/README-ko.md index 20d741b..5a91bde 100644 --- a/translations/README-ko.md +++ b/translations/README-ko.md @@ -1,12 +1,12 @@ -# 구글 인터뷰 대학(Google Interview University) +# 코딩 인터뷰 대학(Coding Interview University) > 나는 원래 이것을 소프트웨어 엔지니어가 되기 위한 짧은 연구 목록으로 만들었다. > 그러나 지금 당신이 볼수 있듯이 이 목록은 매우 커졌다. 이 목록을 숙지 한 후, > [나는 아마존에 소프트웨어 엔지니어로 채용됐다](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! -> 를 보면 당신은 아마 내가 한 것처럼 많이 공부할 필요는 없을 것이다. 어쨌든 당신이 필요로 하는 모든 것은 여기에 있다. +> 당신은 아마 내가 한 것처럼 많이 공부할 필요는 없을 것이다. 어쨌든 당신이 필요로 하는 모든 것은 여기에 있다. > -> 여기에 나열된 목록들은 거의 모든 소프트웨어 회사의 인터뷰를 준비하는데에 도움이 될것이다. -> 아마존, 페이스북, 구글, 마이크로소프트 같은 거대 기업을 포함. +> 여기에 나열된 목록들은 아마존, 페이스북, 구글, 마이크로소프트 같은 거대 기업을 포함한 거의 모든 소프트웨어 회사의 인터뷰를 준비하는데에 도움이 될것이다. +> > > *행운을 빈다!* @@ -26,9 +26,9 @@ - [브라질 포르투갈어](https://github.com/jwasham/google-interview-university/issues/113) - [한국어](https://github.com/jwasham/google-interview-university/issues/118) -## 구글 인터뷰 대학이란? +## 코딩 인터뷰 대학이란? -구글 인터뷰 대학은 웹 개발자(컴퓨터공학 학위 없이 독학한)에서 구글의 소프트웨어 엔지니어가 되기 위한 나의 몇 달 간의 공부 계획이다. +코딩 인터뷰 대학은 웹 개발자(컴퓨터공학 학위 없이 독학)에서 구글의 소프트웨어 엔지니어가 되기 위한 나의 몇 달 간의 공부 계획이다. ![Coding at the whiteboard - from HBO's Silicon Valley](https://dng5l3qzreal6.cloudfront.net/2016/Aug/coding_board_small-1470866369118.jpg) @@ -46,7 +46,7 @@ ## Table of Contents -- [구글 인터뷰 대학이란?](#구글-인터뷰-대학이란) +- [코딩 인터뷰 대학이란?](#코딩-인터뷰-대학이란) - [Why use it?](#why-use-it) - [How to use it?](#how-to-use-it) - [구글 분위기 내기](#구글-분위기-내기) From 95b5f49ab12605b355c60948ef800166a9952f90 Mon Sep 17 00:00:00 2001 From: Daniel Larner Date: Sun, 7 Oct 2018 18:37:26 -0400 Subject: [PATCH 6/9] adds video on CPU processing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e517987..8a51334 100644 --- a/README.md +++ b/README.md @@ -487,6 +487,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - [answers to questions](https://github.com/lekkas/c-algorithms) - [ ] **How computers process a program:** + - [ ] [How CPU executes a program](https://www.youtube.com/watch?v=XM4lGflQFvA) - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA) - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU) - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60) From e523bf0793fa1ade89017530e0aad13e46ab2d85 Mon Sep 17 00:00:00 2001 From: Shireesha Bongarala Date: Sat, 20 Oct 2018 10:55:34 +0530 Subject: [PATCH 7/9] Fix broken links for Sedgewick and Wayne algorithms lectures. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 93472cb..c85f9ec 100644 --- a/README.md +++ b/README.md @@ -331,9 +331,9 @@ If you have a better recommendation for C++, please let me know. Looking for a c ### Java - [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/) - - videos with book content (and Sedgewick!): - - [Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2) - - [Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd) + - videos with book content (and Sedgewick!) on coursera: + - [Algorithms I](https://www.coursera.org/learn/algorithms-part1) + - [Algorithms II](https://www.coursera.org/learn/algorithms-part2) OR: From 02bcfcb67a0659a9634357312490ebdbe8f7749f Mon Sep 17 00:00:00 2001 From: Roman Mysan Date: Sat, 20 Oct 2018 20:31:02 +0200 Subject: [PATCH 8/9] Update README.md --- README.md | 86 ++++++++++++++++++++----------------------------------- 1 file changed, 31 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index e517987..d7a0eb6 100644 --- a/README.md +++ b/README.md @@ -779,18 +779,18 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - For heapsort, see Heap data structure above. Heap sort is great, but not stable. -- [ ] [Sedgewick - Mergesort (5 videos)](https://www.youtube.com/watch?v=4nKwesx_c8E&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9) - - [ ] [1. Mergesort](https://www.youtube.com/watch?v=4nKwesx_c8E&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9&index=1) - - [ ] [2. Bottom up Mergesort](https://www.youtube.com/watch?v=HGOIGUYjeyk&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9&index=2) - - [ ] [3. Sorting Complexity](https://www.youtube.com/watch?v=WvU_mIWo0Ac&index=3&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9) - - [ ] [4. Comparators](https://www.youtube.com/watch?v=7MvC1kmBza0&index=4&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9) - - [ ] [5. Stability](https://www.youtube.com/watch?v=XD_5iINB5GI&index=5&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9) +- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3) + - [ ] [1. Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort) + - [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort) + - [ ] [3. Sorting Complexity](https://www.coursera.org/learn/algorithms-part1/lecture/xAltF/sorting-complexity) + - [ ] [4. Comparators](https://www.coursera.org/learn/algorithms-part1/lecture/9FYhS/comparators) + - [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability) -- [ ] [Sedgewick - Quicksort (4 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) - - [ ] [1. Quicksort](https://www.youtube.com/watch?v=5M5A7qPWk84&index=1&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) - - [ ] [2. Selection](https://www.youtube.com/watch?v=CgVYfSyct_M&index=2&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) - - [ ] [3. Duplicate Keys](https://www.youtube.com/watch?v=WBFzOYJ5ybM&index=3&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) - - [ ] [4. System Sorts](https://www.youtube.com/watch?v=rejpZ2htBjE&index=4&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) +- [ ] [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3) + - [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort) + - [ ] [2. Selection](https://www.coursera.org/learn/algorithms-part1/lecture/UQxFT/selection) + - [ ] [3. Duplicate Keys](https://www.coursera.org/learn/algorithms-part1/lecture/XvjPd/duplicate-keys) + - [ ] [4. System Sorts](https://www.coursera.org/learn/algorithms-part1/lecture/QBNZ7/system-sorts) - [ ] UC Berkeley: - [ ] [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I) @@ -822,13 +822,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - For heapsort, see Heap data structure above. - [ ] Not required, but I recommended them: - - [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53) - - [ ] [1. Strings in Java](https://www.youtube.com/watch?v=zRzU-FWsjNU&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=6) - - [ ] [2. Key Indexed Counting](https://www.youtube.com/watch?v=CtgKYmXs62w&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=5) - - [ ] [3. Least Significant Digit First String Radix Sort](https://www.youtube.com/watch?v=2pGVq_BwPKs&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=4) - - [ ] [4. Most Significant Digit First String Radix Sort](https://www.youtube.com/watch?v=M3cYNY90R6c&index=3&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53) - - [ ] [5. 3 Way Radix Quicksort](https://www.youtube.com/watch?v=YVl58kfE6i8&index=2&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53) - - [ ] [6. Suffix Arrays](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=1) + - [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3) + - [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java) + - [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting) + - [ ] [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort) + - [ ] [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort) + - [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/learn/algorithms-part2/lecture/crkd5/3-way-radix-quicksort) + - [ ] [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays) - [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort) - [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38) - [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) @@ -1122,13 +1122,13 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - can you implement them? - ### String searching & manipulations - - [ ] [Sedgewick - Suffix Arrays (video)](https://www.youtube.com/watch?v=HKPrVm5FWvg) - - [ ] [Sedgewick - Substring Search (videos)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5) - - [ ] [1. Introduction to Substring Search](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5) - - [ ] [2. Brute-Force Substring Search](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4) - - [ ] [3. Knuth-Morris Pratt](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66) - - [ ] [4. Boyer-Moore](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2) - - [ ] [5. Rabin-Karp](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66) + - [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays) + - [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4) + - [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search) + - [ ] [2. Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search) + - [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt) + - [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore) + - [ ] [5. Rabin-Karp](https://www.coursera.org/learn/algorithms-part2/lecture/3KiqT/rabin-karp) - [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text) If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) @@ -1137,10 +1137,10 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits to track the path. - I read through code, but will not implement. - - [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1) + - [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4) + - [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries) + - [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries) + - [ ] [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations) - [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries) - [ ] Short course videos: - [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries) @@ -1320,32 +1320,8 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22) - [ ] Series of 2-5 minutes short subject videos - Michael Sambol (18 videos): - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ) -- [ ] [Sedgewick Videos - Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=2&view=50&sort=dd) - - [ ] [01. Union-Find](https://www.youtube.com/watch?v=8mYfZeHtdNc&list=PLe-ggMe31CTexoNYnMhbHaWhQ0dvcy43t) - - [ ] [02. Analysis of Algorithms](https://www.youtube.com/watch?v=ZN-nFW0mEpg&list=PLe-ggMe31CTf0_bkOhh7sa5uqeppp3Sr0) - - [ ] [03. Stacks and Queues](https://www.youtube.com/watch?v=TIC1gappbP8&list=PLe-ggMe31CTe-9jhnj3P_3mmrCh0A7iHh) - - [ ] [04. Elementary Sorts](https://www.youtube.com/watch?v=CD2AL6VO0ak&list=PLe-ggMe31CTe_5WhGV0F--7CK8MoRUqBd) - - [ ] [05. Mergesort](https://www.youtube.com/watch?v=4nKwesx_c8E&list=PLe-ggMe31CTeunC6GZHFBmQx7EKtjbGf9) - - [ ] [06. Quicksort](https://www.youtube.com/watch?v=5M5A7qPWk84&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) - - [ ] [07. Priority Queues](https://www.youtube.com/watch?v=G9TMe0KC0w0&list=PLe-ggMe31CTducy9LDiGVkdSv0NfiRwn5) - - [ ] [08. Elementary Symbol Tables](https://www.youtube.com/watch?v=up_nlilw3ac&list=PLe-ggMe31CTc3a8nKRDxFZZrWrBvkc9SG) - - [ ] [09. Balanced Search Trees](https://www.youtube.com/watch?v=qC1BLLPK_5w&list=PLe-ggMe31CTf7jHH_mFT50kayjCEA6Rhu) - - [ ] [10. Geometric Applications of BST](https://www.youtube.com/watch?v=Wl30aGAp6TY&list=PLe-ggMe31CTdBsRIw0hXln0hilRs-DqAx) - - [ ] [11. Hash Tables](https://www.youtube.com/watch?v=QA8fJGO-i9o&list=PLe-ggMe31CTcKxIRGqqThMts2eHtSrf11) -- [ ] [Sedgewick Videos - Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?flow=list&shelf_id=3&view=50) - - [ ] [01. Undirected Graphs](https://www.youtube.com/watch?v=GmVhD-mmMBg&list=PLe-ggMe31CTc0zDzANxl4I2MhMoRVlbRM) - - [ ] [02. Directed Graphs](https://www.youtube.com/watch?v=_z-JsVaUS40&list=PLe-ggMe31CTcEwaU8a1P1Gd95A77HV85K) - - [ ] [03. Minimum Spanning Trees](https://www.youtube.com/watch?v=t8fNk9tfVYY&list=PLe-ggMe31CTceUZxDesGfHGLE7kcSafqj) - - [ ] [04. Shortest Paths](https://www.youtube.com/watch?v=HoGSiB7tSeI&list=PLe-ggMe31CTePpG3jbeOTsnGUGZDKxgZD) - - [ ] [05. Maximum Flow](https://www.youtube.com/watch?v=rYIKlFstBqE&list=PLe-ggMe31CTduQ68XQ-sVj32wYJIspTma) - - [ ] [06. Radix Sorts](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53) - - [ ] [07. Tries](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [08. Substring Search](https://www.youtube.com/watch?v=QzI0p6zDjK4&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66) - - [ ] [09. Regular Expressions](https://www.youtube.com/watch?v=TQWNQsJSPnk&list=PLe-ggMe31CTetTlJWouM42fyttyKPgSDh) - - [ ] [10. Data Compression](https://www.youtube.com/watch?v=at9tjpxcBh8&list=PLe-ggMe31CTciifRRo6yY0Yt0mzgIXXVZ) - - [ ] [11. Reductions](https://www.youtube.com/watch?v=Ow5x-ooMGv8&list=PLe-ggMe31CTe_yliW5vc3yO-dj1LSSDyF) - - [ ] [12. Linear Programming](https://www.youtube.com/watch?v=rWhcLyiLZLA&list=PLe-ggMe31CTdy6dKzMgkWFuTTN1H8B-E1) - - [ ] [13. Intractability](https://www.youtube.com/watch?v=6qcaaDp4cdQ&list=PLe-ggMe31CTcZCjluBHw53e_ek2k9Kn-S) +- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1) +- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2) --- From 9f9179d6c7329320d99c3a2c496842efd4b3616a Mon Sep 17 00:00:00 2001 From: Roman Mysan Date: Sun, 21 Oct 2018 12:37:30 +0200 Subject: [PATCH 9/9] Update programming-language-resources.md added book to java section --- programming-language-resources.md | 1 + 1 file changed, 1 insertion(+) diff --git a/programming-language-resources.md b/programming-language-resources.md index ffdffe7..222486d 100644 --- a/programming-language-resources.md +++ b/programming-language-resources.md @@ -48,6 +48,7 @@ - [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) - Go - [The Go programming Language](https://golang.org/) - [The Go programming Language (book)](http://www.gopl.io/)