diff --git a/README-tr.md b/README-tr.md index 93100ea..05c84dc 100644 --- a/README-tr.md +++ b/README-tr.md @@ -223,75 +223,75 @@ Bazı kurslar aktif olmayabilirler, bir kaç ay beklemeniz gerekebilir, erişimi Üniversite derslerini kullanmayı severim. -## Interview Process & General Interview Prep +## Mülakat Süreci & Genel Mülakat Hazırlığı -- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4) +- [ ] [ABC: Daima Kodlayın](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4) - [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1) -- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/) -- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs) -- [ ] Cracking The Coding Interview Set 1: +- [ ] [Programlama Mülakatlarında Efektif Beyaz Tahta Kullanımı](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/) +- [ ] [Teknolojik Yardımı Arındırma](https://www.youtube.com/watch?v=N233T0epWTs) +- [ ] Kodlama Mülakatını Çatlatmak Set 1: - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ) - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ) -- [ ] How to Get a Job at the Big 4: +- [ ] Büyük 4'lü de bir iş nasıl alınır: - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8) -- [ ] Prep Course: - - [ ] [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed): - - Learn how to make yourself ready for software engineer interviews from a former Google interviewer. - - [ ] [Python for Data Structures, Algorithms, and Interviews! (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/): - - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more. +- [ ] Hazırlık Kursu: + - [ ] [Salınmış Yazılım Mühendisliği Mülakatı (ücretli kurs)](https://www.udemy.com/software-engineer-interview-unleashed): + - Google mülakatçısı tarafından kendinizi yazılım mühendisliği mülakatı için nasıl hazırlayacağınızı öğrenin. + - [ ] [Veri Yapıları, Algoritmalar, ve Mülakatlar için Python! (ücretli kurs)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/): + - Python merkezli mülakat hazırlık kursu, veri yapıları, algoritmalar, sahte mülakatlar ve daha fazlasını içerir. -## Pick One Language for the Interview +## Mülakat İçin Bir Dil Seçin -You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices: +Mülakatın kodlama bölümü için rahat hissettiğiniz bir dili kullanabilirsiniz, ancak büyük şirketler için, aşağıdakiler sağlam seçeneklerdir: - C++ - Java - Python -You could also use these, but read around first. There may be caveats: +Ayrıca bunları da kullanabilirsin, ancak önce okuyun. Bazı uyarılar olabilir: - JavaScript - Ruby -You need to be very comfortable in the language and be knowledgeable. +Bir dilde çok rahat ve bilgili olmanız gerekmektedir. -Read more about choices: +Seçenekler hakkında daha fazlasını okuyun: - http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/ - http://blog.codingforinterviews.com/best-programming-language-jobs/ -[See language resources here](programming-language-resources.md) +[Dil kaynaklarına buradan göz atın](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. +Aşağıda C, C++ ve Python öğreniminin dahil olduğunu göreceksiniz, çünkü ben öğreniyorum. Alta bakarsanız bir kaç kitap dahil edilmiştir. -## Book List +## Kitap Listesi -This is a shorter list than what I used. This is abbreviated to save you time. +Kendi kullandığım kısa bir liste. Zamandan tasarruf etmenizi sağlayacaktır. -### Interview Prep +### Mülakat Hazırlığı - [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html) - - answers in C++ and Java - - this is a good warm-up for Cracking the Coding Interview - - not too difficult, most problems may be easier than what you'll see in an interview (from what I've read) + - C++ ve Java dillerinde cevaplar + - Cracking the Coding Interview kitabı için iyi bir ısınma + - çok zor değil, çoğu problem bir mülakatta göreceğinizden daha kolay (benim okuduğum kadarıyla) - [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) - - answers in Java + - Java dilinde cevaplar -If you have tons of extra time: +Eğer tonlarca ekstra vaktiniz varsa: - [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) - [ ] Elements of Programming Interviews (Java version) - - [book](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) + - [kitap](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) - [Companion Project - Method Stub and Test Cases for Every Problem in the Book](https://github.com/gardncl/elements-of-programming-interviews) -### Computer Architecture +### Bilgisayar Mimarisi -If short on time: +Zamanınız kısaysa: - [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038) - - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief. - - The author invented HLA, so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like. - - These chapters are worth the read to give you a nice foundation: + - Kitap 2004 yılında yayınlanmış, ve bazı şeyler geçerliliğini kaybetmiş, ama bilgisayarı anlamak için muhteşem bir kaynaktır. + - Yazar HLA'yı icat etmiş, bu nedenle HLA ile bahsedilen örneklere biraz kuşkuyla yaklaşın. Yaygın olarak kullanılmaz, ancak assembly'nin nasıl göründüğüne dair iyi içerikler barındırır. + - Bu bölümlerin okunması size güzel bir temel verecektir: - Chapter 2 - Numeric Representation - Chapter 3 - Binary Arithmetic and Bit Operations - Chapter 4 - Floating-Point Representation @@ -302,164 +302,162 @@ If short on time: - Chapter 10 - Instruction Set Architecture - Chapter 11 - Memory Architecture and Organization -If you have more time (I want this book): +Eğer daha fazla vaktiniz varsa (Bu kitabı istiyorum): - [ ] [Computer Architecture, Fifth Edition: A Quantitative Approach](https://www.amazon.com/dp/012383872X/) - - For a richer, more up-to-date (2011), but longer treatment + - Daha zengin, daha güncel (2011), ancak daha uzun süreli -### Language Specific +### Spesifik Dil -**You need to choose a language for the interview (see above).** Here are my recommendations by language. I don't have resources for all languages. I welcome additions. +**Mülakat için bir dil seçmeniz gerekir (alta bakın).** Dile göre önerilerim burada. Her dil için bir kaynağım yok. İlaveler hoş olur. -If you read though one of these, you should have all the data structures and algorithms knowledge you'll need to start doing coding problems. -**You can skip all the video lectures in this project**, unless you'd like a review. +Eğer bunlardan birini okursan, kodlama problemlerini yapmaya başlamanız için gereken tüm veri yapılarına ve algoritma bilgisine sahip olmanız gerekir. +**Bu projedeki bütün video derslerini atlayabilirsiniz**, inceleme yapmak istemiyorsanız. -[Additional language-specific resources here.](programming-language-resources.md) +[Spesifik dillere özgü ek kaynaklar burada.](programming-language-resources.md) ### C++ -I haven't read these two, but they are highly rated and written by Sedgewick. He's awesome. +Henüz bu ikisini okumadım, ancak Sedgewick tararından yüksek derecelendirilmiş ve yazılmıştır. O mükemmel biri. - [ ] [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/) - [ ] [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/) -If you have a better recommendation for C++, please let me know. Looking for a comprehensive resource. +C++ için daha iyi bir tavsiyeniz varsa, beni bilgilendirin. Kapsamlı bir kaynak arıyorum. ### Java - [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/) - - videos with book content (and Sedgewick!): + - kitap içeriğiyle birlikte videolar (ve 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) -OR: +YA DA: - [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/) - - by Goodrich, Tamassia, Goldwasser - - used as optional text for CS intro course at UC Berkeley - - see my book report on the Python version below. This book covers the same topics. + - Goodrich, Tamassia, Goldwasser tarafından + - UC Berkeley'de bilgisayar bilimleri tanıtımı için isteğe bağlı metin olarak kullanılır + - aşağıda Python versiyonuyla ilgili kitap raporuma bak. Bu kitap aynı konuları kapsıyor. ### Python - [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/) - - by Goodrich, Tamassia, Goldwasser - - I loved this book. It covered everything and more. - - Pythonic code - - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/ + - Goodrich, Tamassia, Goldwasser tarafından + - Bu kitabı seviyorum. Her şeyi ve daha fazlasını kapsıyor. + - Pythonic kod + - parlayan kitap raporum: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/ -### Optional Books +### Opsiyonel Kitaplar -**Some people recommend these, but I think it's going overboard, unless you have many years of software engineering experience and expect a much harder interview:** +**Bazı insanlar bunları önerdi, ancak biraz fazla, uzun yıllar yazılım mühendisliği tecrübeniz yoksa ve daha zorlu bir mülakat bekliyorsanız:** - [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena) - - As a review and problem recognition - - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview. - - This book has 2 parts: - - class textbook on data structures and algorithms - - pros: - - is a good review as any algorithms textbook would be - - nice stories from his experiences solving problems in industry and academia - - code examples in C - - cons: - - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects - - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have - - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material. - - algorithm catalog: - - this is the real reason you buy this book. - - about to get to this part. Will update here once I've made my way through it. - - Can rent it on kindle - - Answers: - - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) - - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) + - Bir gözden geçirme ve problem tanıma + - Algoritma kataloğu kısmı, bir röportajda bulacağınız zorlukların çok ötesinde bir şey. + - Bu kitap 2 bölüme sahip: + - veri yapıları ve algoritmaları üzerine birinci sınıf ders kitabı + - artılar: + - herhangi bir algoritma kitabı kadar iyi bir inceleme + - endüstri ve akademik alanlardaki sorunları çözme deneyimlerinden güzel hikayeler + - C dilinde kod örnekleri + - eksiler: + - CLRS kadar yoğun ya da geçilemez olabilir, ve bazı durumlarda, CLRS bazı konularda daha iyi bir alternatif olabilir + - bölüm 7, 8, 9'u takip etmek acı verici olabilir, çünkü bazı şeyler iyi açıklanmamış ya da benim sahip olduğumdan daha fazla beyin gerektiriyor olabilir + - beni yanlış anlamayın: Skiena'yı, öğretme stilini ve davranış biçimlerini severim, ancak Stony Brook materyali olmayabilirim. + - algoritma kataloğu: + - bu kitabı satın almak için gerçek neden budur. + - bu kısma geçmek üzereyim. Burası daha sonra güncellenecek. + - Kindle üzerinden kiralanabilir + - Cevaplar: + - [Çözümler](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) + - [Çözümler](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata) - [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844) - - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently. - - aka CLR, sometimes CLRS, because Stein was late to the game + - **Önemli:** Bu kitabı okumak sadece sınırlı bir değere sahip. Bu kitap, algoritmalar ve veri yapılarının mükemmel bir incelemesidir, ancak size nasıl iyi kod yazılacağını öğretmez. İyi bir çözümü verimli bir şekilde kodlayabilmelisiniz. + - aka CLR, bazen CLRS, çünkü Stein oyuna geç katılmıştı - [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) - - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but - that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. + - İlk birkaç bölüm programlama sorunlarına akıllıca çözümler sunar (bazı çok eski veri tiplerini kullanır) ama + bu sadece bir tanıtım. Code Complete'e benzeyen, ancak daha kısa, program tasarım ve mimarisi üzerine bir rehberdir. - ~~"Algorithms and Programming: Problems and Solutions" by Shen~~ - - A fine book, but after working through problems on several pages I got frustrated with the Pascal, do while loops, 1-indexed arrays, and unclear post-condition satisfaction results. - - Would rather spend time on coding problems from another book or online coding problems. + - Hoş bir kitap, ancak birkaç sayfada sorunlarla uğraştıktan sonra Pascal ile hayal kırıklığına uğradım, do while döngüleri, 1 indexli diziler, ve belirsiz durum sonrası memnuniyet sonuçlarını içerir. + - Başka bir kitaptan veya çevrimiçi kodlama problemleriyle vaktimi harcamayı tercih ederim. +## Başlamadan Önce -## Before you Get Started +Bu liste birkaç ayda büyüdü, ve evet, biraz elden çıktı. -This list grew over many months, and yes, it kind of got out of hand. +Yaptığım hatalar şunlardır; böylece daha iyi bir tecrübeye sahip olacaksınız. -Here are some mistakes I made so you'll have a better experience. +### 1. Hepsini Hatırlamayacaksın -### 1. You Won't Remember it All +Saatlerce videolar izledim ve bol bol notlar aldım ancak aylar sonra hatırlamadığım çok şey olduu. 3 günümü notlar karıştırarak ve +flashcardlar yaparak inceleyebildim. -I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going -through my notes and making flashcards so I could review. - -Read please so you won't make my mistakes: +Lütfen okuyun, benim hatalarımı yapmayın: [Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/) -### 2. Use Flashcards +### 2. Flashcard Kullanın -To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code. -Each card has different formatting. +Problemi çözmek için, genel ve kod olmak üzere 2 tür flashcard ekleyebildiğim küçük bir flashcard sitesi hazırladım. +Her kart farklı bir formata sahip. -I made a mobile-first website so I could review on my phone and tablet, wherever I am. +Nerede olursam olayım, telefonumdan ve tabletimden inceleyebilmek için bir mobil web sitesi hazırladım. -Make your own for free: +Kendinizinkini ücretsiz olarak yapın: - [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards) -- [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db): -- [My flash cards database (new - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham-extreme.db): +- [Benim flashcard veritabanım (eski - 1200 kart)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db): +- [Benim flashcard veritabanım (yeni - 1800 kart)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham-extreme.db): -Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics. It's way too much for what's required. +Kartlarla ilgili biraz aşırıya kaçtım, benim kartlarım Assembly dilinden Python'a, makine öğrenmesinden istatistiğe kadar bir çok şeyi kapsar. Gerekli olandan çok daha fazlasına sahip. -**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the -same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in -your brain. +**Flashcardlarla ilgili not:** İlk defa cevabı bildiğinizi fark ederseniz, bildiğiniz gibi işaretlemeyin. Aynı kartı görmeniz ve +gerçekten bilmeden önce birkaç kez doğru cevaplamanız gerekir. Tekrarlama bu bilgiyi beyninizde derinleştirecektir. -An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times. It uses a repetition system to help you remember. -It's user-friendly, available on all platforms and has a cloud sync system. It costs $25 on iOS but is free on other platforms. +Kullandığım flashcard siteme bir alternatif [Anki](http://ankisrs.net/), bana defalarca tavsiye edildi. Unutulmaması için bir tekrarlama sistemi kullanır. +Kullanıcı dostu, tüm platformlarda kullanılabilir ve bir bulut senkronizasyon sistemi vardır. iOS'da 25$, diğer platformlarda ücretsiz. -My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)) +Benim flashcard veritabanımın Anki formatı: https://ankiweb.net/shared/info/25173560 (teşekkürler, [@xiewenya](https://github.com/xiewenya)) -### 3. Review, review, review +### 3. İnceleme, inceleme, inceleme -I keep a set of cheat sheets on ASCII, OSI stack, Big-O notations, and more. I study them when I have some spare time. +ASCII, OSI stack, Big-O notasyonu, ve daha fazlası üzerinde bir dizi kopya kağıdı tutarım. Boş zamanlarım olduğunda bunlara çalışırım. -Take a break from programming problems for a half hour and go through your flashcards. +Yarım saat için programlama problemlerine ara verin ve flashcard'larınıza geçin. -### 4. Focus +### 4. Odaklanma -There are a lot of distractions that can take up valuable time. Focus and concentration are hard. +Değerli zamanınızı alabilecek bir çok dikkat dağıtıcı şey vardır. Odaklanma ve konsantrasyon zordur. -## What you won't see covered +## Neyi görmeyeceksiniz -These are prevalent technologies but not part of this study plan: +Bunlar yaygın teknolojilerdir ancak bu çalışma planının bir parçası değildir: - SQL - Javascript -- HTML, CSS, and other front-end technologies +- HTML, CSS, ve diğer front-end teknolojileri -## The Daily Plan +## Günlük Plan -Some subjects take one day, and some will take multiple days. Some are just learning with nothing to implement. +Bazı konular bir gün alır, ve bazıları birkaç gün sürer. Bazıları sadece öğrenilir, kullanılmaz. -Each day I take one subject from the list below, watch videos about that subject, and write an implementation in: +Her gün aşağıdaki listeden bir konu alıyorum, bu konuyla ilgili videolar izliyorum, ve implemente ediyorum: - C - using structs and functions that take a struct * and something else as args. -- C++ - without using built-in types -- C++ - using built-in types, like STL's std::list for a linked list -- Python - using built-in types (to keep practicing Python) -- and write tests to ensure I'm doing it right, sometimes just using simple assert() statements -- You may do Java or something else, this is just my thing. +- C++ - yerleşik türleri kullanmadan +- C++ - yerleşik türleri kullanarak, bağlı liste için STL'in std::list gibi +- Python - yerleşik türleri kullanarak (Python'la ilgili pratiğe devam etmek için) +- doğru yaptığımdan emin olmak için testler yazarım, bazen sadece assert() deyimleri kullanırım +- Java ya da başka bir şey yapabilirsin, bu sadece benim yaptıklarım. -You don't need all these. You need only [one language for the interview](#pick-one-language-for-the-interview). +Bunların hepsine ihtiyacın yok. Sadece [mülakat için bir dil](#pick-one-language-for-the-interview) ihtiyacın var. -Why code in all of these? -- Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember) +Neden bunların hepsinde kod var? +- Ben bıkana kadar, pratik, pratik, pratik, ve sorunsuzca yapılabilir(bazılarının bir çok köşe durumu var ve hatırlanması için defter tutma ayrıntıları var) - Work within the raw constraints (allocating/freeing memory without help of garbage collection (except Python)) - Make use of built-in types so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production)