├── .github └── workflows │ └── links_checker.yml ├── .gitignore ├── LICENSE.txt ├── README.md ├── extras └── cheat sheets │ ├── C Reference Card (ANSI) 2.2.pdf │ ├── Coding Interview Python Language Essentials.pdf │ ├── Cpp_reference.pdf │ ├── Java Fundamentals Cheatsheet.pdf │ ├── STL Quick Reference 1.29.pdf │ ├── big-o-cheatsheet.pdf │ ├── bits-cheat-sheet.pdf │ ├── git-cheat-sheet-education.pdf │ ├── python-cheat-sheet-v1.pdf │ └── system-design.pdf ├── programming-language-resources.md └── translations ├── README-af.md ├── README-ar.md ├── README-bg.md ├── README-bn.md ├── README-cn.md ├── README-de.md ├── README-el.md ├── README-es.md ├── README-fa.md ├── README-fr.md ├── README-he.md ├── README-hi.md ├── README-id.md ├── README-it.md ├── README-ja.md ├── README-kh.md ├── README-kk.md ├── README-ko.md ├── README-mr.md ├── README-nl.md ├── README-pl.md ├── README-ptbr.md ├── README-ru.md ├── README-th.md ├── README-tr.md ├── README-tw.md ├── README-uk.md ├── README-ur.md ├── README-uz.md ├── README-vi.md └── how-to.md /.github/workflows/links_checker.yml: -------------------------------------------------------------------------------- 1 | name: Links Checker 2 | 3 | on: 4 | ## Allow triggering this workflow manually via GitHub CLI/web 5 | workflow_dispatch: 6 | 7 | ## Run this workflow automatically every month 8 | schedule: 9 | - cron: '0 0 1 * *' 10 | 11 | jobs: 12 | link_checker: 13 | name: Check links and create automated issue if needed 14 | runs-on: ubuntu-latest 15 | env: 16 | REPORT_FILE: links-report 17 | steps: 18 | ## Check out code using Git 19 | - uses: actions/checkout@v3 20 | 21 | - name: Check all links at README.md but skips translations files 22 | id: lychee 23 | uses: lycheeverse/lychee-action@v1.4.1 24 | with: 25 | output: ${{ env.REPORT_FILE }} 26 | format: markdown 27 | ## Do not fail this step on broken links 28 | fail: false 29 | ## Allow pages replying with 200 (Ok), 204 (No Content), 30 | ## 206 (Partial Content) in at most 20 seconds with HTML content. 31 | ## max-concurrency was 20, getting network errors 32 | args: >- 33 | --verbose 34 | --accept 200,204,206 35 | --headers "accept=text/html" 36 | --timeout 20 37 | --max-concurrency 3 38 | --no-progress 39 | README.md 40 | env: 41 | ## Avoid rate limiting when checking github.com links 42 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 43 | 44 | - name: Lychee's exit code 45 | ## https://github.com/lycheeverse/lychee#exit-codes 46 | run: echo Lychee exit with ${{ steps.lychee.outputs.exit_code }} 47 | 48 | - name: Find the last report issue open 49 | uses: micalevisk/last-issue-action@v1.2 50 | id: last_issue 51 | with: 52 | state: open 53 | labels: | 54 | report 55 | automated issue 56 | env: 57 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 58 | 59 | - name: Create issue from report file 60 | if: ${{ steps.last_issue.outputs.has_found == 'false' }} 61 | uses: peter-evans/create-issue-from-file@v4 62 | with: 63 | title: Link checker report 64 | content-filepath: ${{ env.REPORT_FILE }} 65 | issue-number: ${{ steps.last_issue.outputs.issue_number }} 66 | labels: | 67 | report 68 | automated issue 69 | 70 | - name: Update last report open issue created 71 | if: ${{ steps.last_issue.outputs.has_found == 'true' }} 72 | uses: peter-evans/create-issue-from-file@v4 73 | with: 74 | title: Link checker report 75 | content-filepath: ${{ env.REPORT_FILE }} 76 | issue-number: ${{ steps.last_issue.outputs.issue_number }} 77 | labels: | 78 | report 79 | automated issue 80 | 81 | - name: Close last report open issue 82 | if: ${{ steps.lychee.outputs.exit_code == 0 }} 83 | uses: peter-evans/close-issue@v2 84 | with: 85 | issue-number: ${{ steps.last_issue.outputs.issue_number }} 86 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | personal-9894.md 4 | 5 | # Targets Windows & Unix temporary files 6 | ~$* 7 | *~ 8 | 9 | # OS generated files # 10 | ###################### 11 | .DS_Store 12 | .DS_Store? 13 | ._* 14 | .Spotlight-V100 15 | .Trashes 16 | ehthumbs.db 17 | Thumbs.db 18 | 19 | # Sublime Files 20 | .sublime -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Attribution-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-ShareAlike 4.0 International Public 58 | License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-ShareAlike 4.0 International Public License ("Public 63 | License"). To the extent this Public License may be interpreted as a 64 | contract, You are granted the Licensed Rights in consideration of Your 65 | acceptance of these terms and conditions, and the Licensor grants You 66 | such rights in consideration of benefits the Licensor receives from 67 | making the Licensed Material available under these terms and 68 | conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. Share means to provide material to the public by any means or 126 | process that requires permission under the Licensed Rights, such 127 | as reproduction, public display, public performance, distribution, 128 | dissemination, communication, or importation, and to make material 129 | available to the public including in ways that members of the 130 | public may access the material from a place and at a time 131 | individually chosen by them. 132 | 133 | l. Sui Generis Database Rights means rights other than copyright 134 | resulting from Directive 96/9/EC of the European Parliament and of 135 | the Council of 11 March 1996 on the legal protection of databases, 136 | as amended and/or succeeded, as well as other essentially 137 | equivalent rights anywhere in the world. 138 | 139 | m. You means the individual or entity exercising the Licensed Rights 140 | under this Public License. Your has a corresponding meaning. 141 | 142 | 143 | Section 2 -- Scope. 144 | 145 | a. License grant. 146 | 147 | 1. Subject to the terms and conditions of this Public License, 148 | the Licensor hereby grants You a worldwide, royalty-free, 149 | non-sublicensable, non-exclusive, irrevocable license to 150 | exercise the Licensed Rights in the Licensed Material to: 151 | 152 | a. reproduce and Share the Licensed Material, in whole or 153 | in part; and 154 | 155 | b. produce, reproduce, and Share Adapted Material. 156 | 157 | 2. Exceptions and Limitations. For the avoidance of doubt, where 158 | Exceptions and Limitations apply to Your use, this Public 159 | License does not apply, and You do not need to comply with 160 | its terms and conditions. 161 | 162 | 3. Term. The term of this Public License is specified in Section 163 | 6(a). 164 | 165 | 4. Media and formats; technical modifications allowed. The 166 | Licensor authorizes You to exercise the Licensed Rights in 167 | all media and formats whether now known or hereafter created, 168 | and to make technical modifications necessary to do so. The 169 | Licensor waives and/or agrees not to assert any right or 170 | authority to forbid You from making technical modifications 171 | necessary to exercise the Licensed Rights, including 172 | technical modifications necessary to circumvent Effective 173 | Technological Measures. For purposes of this Public License, 174 | simply making modifications authorized by this Section 2(a) 175 | (4) never produces Adapted Material. 176 | 177 | 5. Downstream recipients. 178 | 179 | a. Offer from the Licensor -- Licensed Material. Every 180 | recipient of the Licensed Material automatically 181 | receives an offer from the Licensor to exercise the 182 | Licensed Rights under the terms and conditions of this 183 | Public License. 184 | 185 | b. Additional offer from the Licensor -- Adapted Material. 186 | Every recipient of Adapted Material from You 187 | automatically receives an offer from the Licensor to 188 | exercise the Licensed Rights in the Adapted Material 189 | under the conditions of the Adapter's License You apply. 190 | 191 | c. No downstream restrictions. You may not offer or impose 192 | any additional or different terms or conditions on, or 193 | apply any Effective Technological Measures to, the 194 | Licensed Material if doing so restricts exercise of the 195 | Licensed Rights by any recipient of the Licensed 196 | Material. 197 | 198 | 6. No endorsement. Nothing in this Public License constitutes or 199 | may be construed as permission to assert or imply that You 200 | are, or that Your use of the Licensed Material is, connected 201 | with, or sponsored, endorsed, or granted official status by, 202 | the Licensor or others designated to receive attribution as 203 | provided in Section 3(a)(1)(A)(i). 204 | 205 | b. Other rights. 206 | 207 | 1. Moral rights, such as the right of integrity, are not 208 | licensed under this Public License, nor are publicity, 209 | privacy, and/or other similar personality rights; however, to 210 | the extent possible, the Licensor waives and/or agrees not to 211 | assert any such rights held by the Licensor to the limited 212 | extent necessary to allow You to exercise the Licensed 213 | Rights, but not otherwise. 214 | 215 | 2. Patent and trademark rights are not licensed under this 216 | Public License. 217 | 218 | 3. To the extent possible, the Licensor waives any right to 219 | collect royalties from You for the exercise of the Licensed 220 | Rights, whether directly or through a collecting society 221 | under any voluntary or waivable statutory or compulsory 222 | licensing scheme. In all other cases the Licensor expressly 223 | reserves any right to collect such royalties. 224 | 225 | 226 | Section 3 -- License Conditions. 227 | 228 | Your exercise of the Licensed Rights is expressly made subject to the 229 | following conditions. 230 | 231 | a. Attribution. 232 | 233 | 1. If You Share the Licensed Material (including in modified 234 | form), You must: 235 | 236 | a. retain the following if it is supplied by the Licensor 237 | with the Licensed Material: 238 | 239 | i. identification of the creator(s) of the Licensed 240 | Material and any others designated to receive 241 | attribution, in any reasonable manner requested by 242 | the Licensor (including by pseudonym if 243 | designated); 244 | 245 | ii. a copyright notice; 246 | 247 | iii. a notice that refers to this Public License; 248 | 249 | iv. a notice that refers to the disclaimer of 250 | warranties; 251 | 252 | v. a URI or hyperlink to the Licensed Material to the 253 | extent reasonably practicable; 254 | 255 | b. indicate if You modified the Licensed Material and 256 | retain an indication of any previous modifications; and 257 | 258 | c. indicate the Licensed Material is licensed under this 259 | Public License, and include the text of, or the URI or 260 | hyperlink to, this Public License. 261 | 262 | 2. You may satisfy the conditions in Section 3(a)(1) in any 263 | reasonable manner based on the medium, means, and context in 264 | which You Share the Licensed Material. For example, it may be 265 | reasonable to satisfy the conditions by providing a URI or 266 | hyperlink to a resource that includes the required 267 | information. 268 | 269 | 3. If requested by the Licensor, You must remove any of the 270 | information required by Section 3(a)(1)(A) to the extent 271 | reasonably practicable. 272 | 273 | b. ShareAlike. 274 | 275 | In addition to the conditions in Section 3(a), if You Share 276 | Adapted Material You produce, the following conditions also apply. 277 | 278 | 1. The Adapter's License You apply must be a Creative Commons 279 | license with the same License Elements, this version or 280 | later, or a BY-SA Compatible License. 281 | 282 | 2. You must include the text of, or the URI or hyperlink to, the 283 | Adapter's License You apply. You may satisfy this condition 284 | in any reasonable manner based on the medium, means, and 285 | context in which You Share Adapted Material. 286 | 287 | 3. You may not offer or impose any additional or different terms 288 | or conditions on, or apply any Effective Technological 289 | Measures to, Adapted Material that restrict exercise of the 290 | rights granted under the Adapter's License You apply. 291 | 292 | 293 | Section 4 -- Sui Generis Database Rights. 294 | 295 | Where the Licensed Rights include Sui Generis Database Rights that 296 | apply to Your use of the Licensed Material: 297 | 298 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 299 | to extract, reuse, reproduce, and Share all or a substantial 300 | portion of the contents of the database; 301 | 302 | b. if You include all or a substantial portion of the database 303 | contents in a database in which You have Sui Generis Database 304 | Rights, then the database in which You have Sui Generis Database 305 | Rights (but not its individual contents) is Adapted Material, 306 | 307 | including for purposes of Section 3(b); and 308 | c. You must comply with the conditions in Section 3(a) if You Share 309 | all or a substantial portion of the contents of the database. 310 | 311 | For the avoidance of doubt, this Section 4 supplements and does not 312 | replace Your obligations under this Public License where the Licensed 313 | Rights include other Copyright and Similar Rights. 314 | 315 | 316 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 317 | 318 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 319 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 320 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 321 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 322 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 323 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 324 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 325 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 326 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 327 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 328 | 329 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 330 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 331 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 332 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 333 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 334 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 335 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 336 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 337 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 338 | 339 | c. The disclaimer of warranties and limitation of liability provided 340 | above shall be interpreted in a manner that, to the extent 341 | possible, most closely approximates an absolute disclaimer and 342 | waiver of all liability. 343 | 344 | 345 | Section 6 -- Term and Termination. 346 | 347 | a. This Public License applies for the term of the Copyright and 348 | Similar Rights licensed here. However, if You fail to comply with 349 | this Public License, then Your rights under this Public License 350 | terminate automatically. 351 | 352 | b. Where Your right to use the Licensed Material has terminated under 353 | Section 6(a), it reinstates: 354 | 355 | 1. automatically as of the date the violation is cured, provided 356 | it is cured within 30 days of Your discovery of the 357 | violation; or 358 | 359 | 2. upon express reinstatement by the Licensor. 360 | 361 | For the avoidance of doubt, this Section 6(b) does not affect any 362 | right the Licensor may have to seek remedies for Your violations 363 | of this Public License. 364 | 365 | c. For the avoidance of doubt, the Licensor may also offer the 366 | Licensed Material under separate terms or conditions or stop 367 | distributing the Licensed Material at any time; however, doing so 368 | will not terminate this Public License. 369 | 370 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 371 | License. 372 | 373 | 374 | Section 7 -- Other Terms and Conditions. 375 | 376 | a. The Licensor shall not be bound by any additional or different 377 | terms or conditions communicated by You unless expressly agreed. 378 | 379 | b. Any arrangements, understandings, or agreements regarding the 380 | Licensed Material not stated herein are separate from and 381 | independent of the terms and conditions of this Public License. 382 | 383 | 384 | Section 8 -- Interpretation. 385 | 386 | a. For the avoidance of doubt, this Public License does not, and 387 | shall not be interpreted to, reduce, limit, restrict, or impose 388 | conditions on any use of the Licensed Material that could lawfully 389 | be made without permission under this Public License. 390 | 391 | b. To the extent possible, if any provision of this Public License is 392 | deemed unenforceable, it shall be automatically reformed to the 393 | minimum extent necessary to make it enforceable. If the provision 394 | cannot be reformed, it shall be severed from this Public License 395 | without affecting the enforceability of the remaining terms and 396 | conditions. 397 | 398 | c. No term or condition of this Public License will be waived and no 399 | failure to comply consented to unless expressly agreed to by the 400 | Licensor. 401 | 402 | d. Nothing in this Public License constitutes or may be interpreted 403 | as a limitation upon, or waiver of, any privileges and immunities 404 | that apply to the Licensor or You, including from the legal 405 | processes of any jurisdiction or authority. 406 | 407 | 408 | ======================================================================= 409 | 410 | Creative Commons is not a party to its public 411 | licenses. Notwithstanding, Creative Commons may elect to apply one of 412 | its public licenses to material it publishes and in those instances 413 | will be considered the “Licensor.” The text of the Creative Commons 414 | public licenses is dedicated to the public domain under the CC0 Public 415 | Domain Dedication. Except for the limited purpose of indicating that 416 | material is shared under a Creative Commons public license or as 417 | otherwise permitted by the Creative Commons policies published at 418 | creativecommons.org/policies, Creative Commons does not authorize the 419 | use of the trademark "Creative Commons" or any other trademark or logo 420 | of Creative Commons without its prior written consent including, 421 | without limitation, in connection with any unauthorized modifications 422 | to any of its public licenses or any other arrangements, 423 | understandings, or agreements concerning use of licensed material. For 424 | the avoidance of doubt, this paragraph does not form part of the 425 | public licenses. 426 | 427 | Creative Commons may be contacted at creativecommons.org. -------------------------------------------------------------------------------- /extras/cheat sheets/C Reference Card (ANSI) 2.2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/C Reference Card (ANSI) 2.2.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/Coding Interview Python Language Essentials.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/Coding Interview Python Language Essentials.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/Cpp_reference.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/Cpp_reference.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/Java Fundamentals Cheatsheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/Java Fundamentals Cheatsheet.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/STL Quick Reference 1.29.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/STL Quick Reference 1.29.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/big-o-cheatsheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/big-o-cheatsheet.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/bits-cheat-sheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/bits-cheat-sheet.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/git-cheat-sheet-education.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/git-cheat-sheet-education.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/python-cheat-sheet-v1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/python-cheat-sheet-v1.pdf -------------------------------------------------------------------------------- /extras/cheat sheets/system-design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jwasham/coding-interview-university/717298bf219a30d7fb0671285c5f057b1bb74b27/extras/cheat sheets/system-design.pdf -------------------------------------------------------------------------------- /programming-language-resources.md: -------------------------------------------------------------------------------- 1 | ## Programming Language Resources 2 | 3 | - C 4 | - [ANSI C Cheat Sheet]() 5 | - [K&R C book (ANSI C)](https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628) 6 | - [Make, Clang (video)](https://www.youtube.com/watch?v=U3zCxnj2w8M) 7 | - [Top C Programming Interview Questions](https://www.interviewbit.com/c-interview-questions) 8 | - GDB: 9 | - [Harvard CS50 - GDB (video)](https://www.youtube.com/watch?v=USPvePv1uzE) 10 | - [Harvard CS50 - GDB (video)](https://www.youtube.com/watch?v=y5JmQItfFck) 11 | - [Valgrind (video)](https://www.youtube.com/watch?v=fvTsFjDuag8) 12 | - [Let us C](https://books.google.co.in/books/about/Let_Us_C.html?id=7HrjAAAACAAJ) 13 | - [Complete C programming for beginners](https://youtu.be/KJgsSFOSQv0) 14 | - [Learn C in Detail](https://www.scaler.com/topics/c/) 15 | 16 | - C++ 17 | - [C++ Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/Cpp_reference.pdf) 18 | - [STL Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/STL%20Quick%20Reference%201.29.pdf) 19 | - [basics](https://www.tutorialspoint.com/cplusplus/cpp_basic_syntax.htm) 20 | - [pointers](https://www.cprogramming.com/tutorial/lesson6.html) 21 | - [class and object](https://www.cprogramming.com/tutorial/lesson12.html) 22 | - [functions](https://www.cprogramming.com/tutorial/lesson4.html) 23 | - [references](https://www.geeksforgeeks.org/references-in-c/) 24 | - [templates](https://www.cprogramming.com/tutorial/templates.html) 25 | - [compilation](https://www.youtube.com/watch?v=ZTu0kf-7h08) 26 | - [scope & linkage](https://www.learncpp.com/cpp-tutorial/scope-duration-and-linkage-summary/) 27 | - [namespaces](https://www.tutorialspoint.com/cplusplus/cpp_namespaces.htm) 28 | - [OOP](https://www.geeksforgeeks.org/object-oriented-programming-in-cpp/) 29 | - [STL](https://www.hackerearth.com/practice/notes/standard-template-library/) 30 | - [functors](http://www.cprogramming.com/tutorial/functors-function-objects-in-c++.html) 31 | - [C++ at Google (video)](https://www.youtube.com/watch?v=NOCElcMcFik) 32 | - [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) 33 | - Google uses clang-format (there is a command line "style" argument: -style=google) 34 | - [Efficiency with Algorithms, Performance with Data Structures (video)](https://youtu.be/fHNmRkzxHWs) 35 | - [Review of C++ concepts (video)](https://www.youtube.com/watch?v=Rub-JsjMhWY) 36 | - [Let us C++](https://books.google.co.in/books/about/Let_Us_C++.html?id=6HrjAAAACAAJ) 37 | - [C++ Primer](https://books.google.co.in/books/about/C++_Primer.html?id=J1HMLyxqJfgC&redir_esc=y) 38 | - [C++ Tutorial for Beginners](https://www.youtube.com/watch?v=vLnPwxZdW4Y) 39 | - [C++ Interview Questions](https://www.interviewbit.com/cpp-interview-questions) 40 | - Python 41 | - [Python Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/python-cheat-sheet-v1.pdf) 42 | - [Python in One Video](https://www.youtube.com/watch?v=N4mEzFDjqtA) 43 | - [Series on 3.4 (video)](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_) 44 | - [Statistics for Hackers (video)](https://www.youtube.com/watch?v=Iq9DzN6mvYA) 45 | - [Faster Python (video)](https://www.youtube.com/watch?v=JDSGVvMwNM8) 46 | - [CPython Walk (video)](https://www.youtube.com/watch?v=LhadeL7_EIU&list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S&index=6) 47 | - [10 Tips for Pythonic Code (video)](https://www.youtube.com/watch?v=_O23jIXsshs) 48 | - [Beyond PEP 8 -- Best practices for beautiful intelligible code (video)](https://www.youtube.com/watch?v=wf-BqAjZb8M) 49 | - [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) 50 | - [Coding Interview Essentials](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/Coding%20Interview%20Python%20Language%20Essentials.pdf) 51 | - [Data Structures And Algorithms in Python](https://www.youtube.com/watch?v=kQDxmjfkIKY) 52 | - [Python Programming Tutorial](https://www.scaler.com/topics/python/) 53 | - [Python Interview Questions](https://www.interviewbit.com/python-interview-questions) 54 | - [Python Guide for Beginners](https://wiingy.com/learn/python/python-tutorial/) 55 | - Java 56 | - [Stanford CS106A - Programming Methodology (video)](https://see.stanford.edu/Course/CS106A) 57 | - [Java Cheat Sheet](https://www.interviewbit.com/java-cheat-sheet) 58 | - [Introduction To Programming In Java](http://introcs.cs.princeton.edu/java/home/) 59 | - [Algorithms 4th Ed - Algorithm Book In Java](http://algs4.cs.princeton.edu/home/) 60 | - [Effective Java 3rd Edition](https://www.amazon.com/Effective-Java-Joshua-Bloch-ebook/dp/B078H61SCH) 61 | - [Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer](https://www.youtube.com/watch?v=RBSGKlAvoiM&t=1744s) 62 | - [Top Java Interview Questions and Answers](https://www.interviewbit.com/java-interview-questions) 63 | - [Data Structures in Java](https://www.youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ) 64 | - Go 65 | - [The Go programming Language](https://golang.org/) 66 | - [The Go programming Language (book)](http://www.gopl.io/) 67 | - [A Tour of Go](https://tour.golang.org/) 68 | - [Effective Go](https://golang.org/doc/effective_go.html) 69 | - [Go Wiki](https://golang.org/wiki) 70 | - [Go at Google: Language Design in the Service of Software Engineering](https://talks.golang.org/2012/splash.article) 71 | - [Go Proverbs](http://go-proverbs.github.io/) 72 | - [Go Proverbs - Rob Pike (video)](https://www.youtube.com/watch?v=PAAkCSZUG1c) 73 | - [Gophercises - Free course on Coding Exercises in Go](https://gophercises.com) 74 | - HTML 75 | - [HTML Cheat Sheet](https://www.interviewbit.com/html-cheat-sheet) 76 | - [Quick HTML Tutorial for Beginners](https://www.youtube.com/playlist?list=PLr6-GrHUlVf_ZNmuQSXdS197Oyr1L9sPB) 77 | - [HTML Crash Course for Beginners (1 hr)](https://www.youtube.com/watch?v=UB1O30fR-EE) 78 | - [Learn HTML in Detail](https://www.scaler.com/topics/html/) 79 | - [Basic HTML and HTML5](https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/) 80 | - [W3 Schools](https://www.w3schools.com/html/) 81 | - [Html Interview Questions](https://www.interviewbit.com/html-interview-questions) 82 | - CSS 83 | - [Quick CSS Tutorial for Beginners](https://www.youtube.com/playlist?list=PLr6-GrHUlVf8JIgLcu3sHigvQjTw_aC9C) 84 | - [CSS Crash Course for absolute Beginners](https://www.youtube.com/watch?v=yfoY53QXEnI) 85 | - [Basic CSS](https://www.freecodecamp.org/learn/responsive-web-design/basic-css/) 86 | - [W3 Schools](https://www.w3schools.com/css/) 87 | - [Top 30+ CSS Interview Questions](https://www.interviewbit.com/css-interview-questions) 88 | - Javascript 89 | - [JavaScript Cheat Sheet](https://www.interviewbit.com/javascript-cheat-sheet) 90 | - [Learn Javascript in 12 minutes](https://www.youtube.com/watch?v=Ukg_U3CnJWI) 91 | - [Javascript Beginner Tutorials](https://www.youtube.com/playlist?list=PL41lfR-6DnOrwYi5d824q9-Y6z3JdSgQa) 92 | - [Javascript Algorithms and Data Structures](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/) 93 | - [Javascript Algorithms With Explanations](https://github.com/trekhleb/javascript-algorithms) 94 | - [Javascript Tutorial - Learn From Scratch](https://www.scaler.com/topics/javascript/) 95 | - [Javascript Interview Questions and Answers](https://www.interviewbit.com/javascript-interview-questions) 96 | - Rust 97 | - [The Rust Programming Language](https://doc.rust-lang.org/book/title-page.html) 98 | - [Rust by Example](https://doc.rust-lang.org/stable/rust-by-example/) 99 | - [Rust Tutorial by Doug Milford from Lambda Valley](https://www.youtube.com/playlist?list=PLLqEtX6ql2EyPAZ1M2_C0GgVd4A-_L4_5) 100 | - [Introduction - Easy Rust](https://www.youtube.com/playlist?list=PLLqEtX6ql2EyPAZ1M2_C0GgVd4A-_L4_5) 101 | - [Rust overview](https://learning-rust.github.io/docs/index.html) 102 | - [A Gentle Introduction to Rust](https://stevedonovan.github.io/rust-gentle-intro/readme.html) 103 | 104 | - Ruby 105 | 106 | - [The Ruby Programming Language](https://book4you.org/book/1219034/7c9a4b) 107 | - [Polished Ruby Programming](https://book4you.org/book/16678106/f61159) 108 | - [Ruby Fu](https://rubyfu.net/) 109 | - [Ruby Koans](http://rubykoans.com/) 110 | 111 | - Other Language 2 112 | - etc 113 | -------------------------------------------------------------------------------- /translations/README-el.md: -------------------------------------------------------------------------------- 1 | #Coding Interview University 2 | 3 | >Επίσημη έκδοση: [Αγγλικά](https://github.com/jwasham/coding-interview-university/blob/master/README.md) 4 | 5 | ## Τι είναι 6 | 7 | Είναi το πλάνο διαβάσματός μου για να γίνω από web developer (αυτοδίδακτος, χωρίς πτυχίο στην Επιστήμη των Υπολογιστών), μηχανικός λογισμικού για μία μεγάλη εταιρία. 8 | 9 | ![Coding at the whiteboard - from HBO's Silicon Valley](https://dng5l3qzreal6.cloudfront.net/2016/Aug/coding_board_small-1470866369118.jpg) 10 | 11 | Αυτό το έργο προορίζεται για νέους μηχανικούς λογισμικού ή για αυτούς που μεταβαίνουν από την ανάπτυξη λογισμικού/ιστοσελίδων στην τεχνολογία λογισμικού(εκεί που η γνώση για την επιστήμη των υπολογιστών ειναι προαπαιτούμενο). Αν έχεις αρκετά χρόνια εμπειρίας και αξιώνεις πολλά χρόνια εμπερίας στην τεχνολογία λογισμικού, πρέπει να περιμένεις μία δυσκολότερη συνέντευξη. 12 | 13 | Εάν έχεις αρκετά χρόνια εμπειρίας στην ανάπτυξη λογισμικού/ιστοσελίδων, σημείωσε ότι οι μεγάλες εταιρίες λογισμικού όπως οι Google, Amazon, Facebook και Microsoft βλέπουν την τεχνολογία λογισμικού ως ενα διαφορετικό κομμάτι από την ανάπτυξη λογισμικού/ιστοσελίδων, και απαιτούν γνώσεις πάνω στην επιστήμη υπολογιστών. 14 | 15 | Εάν θέλεις να είσαι ένας αξιόπιστος μηχανικός ή μηχανικός συστημάτων, διάβασε περισσότερο απο την προεραιτική λίστα(δίκτυα, ασφάλεια). 16 | 17 | --- 18 | # Πίνακας περιεχομένων 19 | 20 | - [Τι είναι](#Tι-είναι) 21 | - [Γιατί να το χρησιμοποιήσεις](#Γιατί-να-το-χρησιμοποιήσεις) 22 | - [Πώς να το χρησιμοποιήσεις](#Πώς-να-το-χρησιμοποιήσεις) 23 | - [Μη νιώθεις ανίκανος](#Μη-νιώθεις-ανίκανος) 24 | - [Σχετικά με τα βίντεο](#Σχετικά-με-τα-βίντεο) 25 | - [Διαδικασία Συνέντευξης & Γενική προετοιμασία συνέντευξης](#Διαδικασία-Συνέντευξης--Γενική-προετοιμασία-συνέντευξης) 26 | - [Διάλεξε μία γλώσσα για τη συνέντευξη](#Διάλεξε-μία-γλώσσα-για-τη-συνέντευξη) 27 | - [Λίστα βιβλίων](#Λίστα-βιβλίων) 28 | - [Πριν αρχίσεις](#Πριν-αρχίσεις) 29 | - [Τι δε θα δεις να καλύπτετε](#Τι-δε-θα-δεις-να-καλύπτετε) 30 | - [Προαπαιτούμενη γνώση](#Προαπαιτούμενη-γνώση) 31 | - [Το καθημερινό πλάνο](#Το-καθημερινό-πλάνο) 32 | - [Αλγοριθμική πολυπλοκότητα / Big-O / Ασυμπτωτική ανάλυση](#Αλγοριθμική-πολυπλοκότητα--Big-O--Ασυμπτωτική-ανάλυση) 33 | - [Data Structures](#data-structures) 34 | - [Arrays](#arrays) 35 | - [Linked Lists](#linked-lists) 36 | - [Stack](#stack) 37 | - [Queue](#queue) 38 | - [Hash table](#hash-table) 39 | - [More Knowledge](#more-knowledge) 40 | - [Binary search](#binary-search) 41 | - [Bitwise operations](#bitwise-operations) 42 | - [Trees](#trees) 43 | - [Trees - Notes & Background](#trees---notes--background) 44 | - [Binary search trees: BSTs](#binary-search-trees-bsts) 45 | - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap) 46 | - balanced search trees (general concept, not details) 47 | - traversals: preorder, inorder, postorder, BFS, DFS 48 | - [Sorting](#sorting) 49 | - selection 50 | - insertion 51 | - heapsort 52 | - quicksort 53 | - merge sort 54 | - [Graphs](#graphs) 55 | - directed 56 | - undirected 57 | - adjacency matrix 58 | - adjacency list 59 | - traversals: BFS, DFS 60 | - [Even More Knowledge](#even-more-knowledge) 61 | - [Recursion](#recursion) 62 | - [Dynamic Programming](#dynamic-programming) 63 | - [Object-Oriented Programming](#object-oriented-programming) 64 | - [Design Patterns](#design-patterns) 65 | - [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability) 66 | - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms) 67 | - [Caches](#caches) 68 | - [Processes and Threads](#processes-and-threads) 69 | - [Papers](#papers) 70 | - [Testing](#testing) 71 | - [Scheduling](#scheduling) 72 | - [Implement system routines](#implement-system-routines) 73 | - [String searching & manipulations](#string-searching--manipulations) 74 | - [Tries](#tries) 75 | - [Floating Point Numbers](#floating-point-numbers) 76 | - [Unicode](#unicode) 77 | - [Endianness](#endianness) 78 | - [Networking](#networking) 79 | - [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience) 80 | - [Final Review](#final-review) 81 | - [Coding Question Practice](#coding-question-practice) 82 | - [Coding exercises/challenges](#coding-exerciseschallenges) 83 | - [Once you're closer to the interview](#once-youre-closer-to-the-interview) 84 | - [Your Resume](#your-resume) 85 | - [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes) 86 | - [Have questions for the interviewer](#have-questions-for-the-interviewer) 87 | - [Once You've Got The Job](#once-youve-got-the-job) 88 | 89 | ---------------- Everything below this point is optional ---------------- 90 | 91 | - [Additional Books](#additional-books) 92 | - [Additional Learning](#additional-learning) 93 | - [Compilers](#compilers) 94 | - [Emacs and vi(m)](#emacs-and-vim) 95 | - [Unix command line tools](#unix-command-line-tools) 96 | - [Information theory](#information-theory) 97 | - [Parity & Hamming Code](#parity--hamming-code) 98 | - [Entropy](#entropy) 99 | - [Cryptography](#cryptography) 100 | - [Compression](#compression) 101 | - [Computer Security](#computer-security) 102 | - [Garbage collection](#garbage-collection) 103 | - [Parallel Programming](#parallel-programming) 104 | - [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems) 105 | - [A*](#a) 106 | - [Fast Fourier Transform](#fast-fourier-transform) 107 | - [Bloom Filter](#bloom-filter) 108 | - [HyperLogLog](#hyperloglog) 109 | - [Locality-Sensitive Hashing](#locality-sensitive-hashing) 110 | - [van Emde Boas Trees](#van-emde-boas-trees) 111 | - [Augmented Data Structures](#augmented-data-structures) 112 | - [N-ary (K-ary, M-ary) trees](#n-ary-k-ary-m-ary-trees) 113 | - [Balanced search trees](#balanced-search-trees) 114 | - AVL trees 115 | - Splay trees 116 | - Red/black trees 117 | - 2-3 search trees 118 | - 2-3-4 Trees (aka 2-4 trees) 119 | - N-ary (K-ary, M-ary) trees 120 | - B-Trees 121 | - [k-D Trees](#k-d-trees) 122 | - [Skip lists](#skip-lists) 123 | - [Network Flows](#network-flows) 124 | - [Disjoint Sets & Union Find](#disjoint-sets--union-find) 125 | - [Math for Fast Processing](#math-for-fast-processing) 126 | - [Treap](#treap) 127 | - [Linear Programming](#linear-programming) 128 | - [Geometry, Convex hull](#geometry-convex-hull) 129 | - [Discrete math](#discrete-math) 130 | - [Machine Learning](#machine-learning) 131 | - [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) 132 | - [Video Series](#video-series) 133 | - [Computer Science Courses](#computer-science-courses) 134 | 135 | --- 136 | 137 | ## Γιατί να το χρησιμοποιήσεις 138 | 139 | Όταν άρχισα αυτό το πρότζεκτ, δεν ήξερα τη διαφορά μίας στοίβας από μία ουρά, δεν ήξερα τίποτα σχετικά με τον συμβολισμό Big-Ο, τίποτα σχετικά με τα δέντρα ή πως να διασχίσω ένα δέντρο. Εάν έπρεπε να γράψω σε κώδικα έναν αλγόριθμο ταξινόμησης, μπορώ να σου πω ότι δεν θα ήταν πολύ καλός. Κάθε δομή δεδομένων που είχα χρησιμοποιήσει ήταν πακέτο της γλώσσας, και δεν ήξερα καθόλου πως δούλευαν "κάτω από το καπό". Ποτέ δεν είχα να διαχειριστώ τη μνήμη εκτός εάν μία διεργασία που έτρεχα, μου επέστρεφε ένα σφάλμα του τύπου: "out of memory", και μετά έπρεπε να βρώ μία λύση. Έχω χρησιμοποιήσει μερικούς πολυδιάστατους πίνακες στη ζωή μου και χιλιάδες συναφείς πίνακες, αλλά δεν είχα δημιουργήσει δομές δεδομένων από το 0. 140 | 141 | Είναι ένα μακροπρόθεσμο πλάνο. Μπορεί να σου πάρει μήνες. Εάν είσαι οικείος με πολλά από αυτά ήδη, θα σου πάρει πολύ λιγότερο χρόνο. 142 | 143 | ## Πώς να το χρησιμοποιήσεις 144 | 145 | Οτιδήποτε παρακάτω είναι μία συνοπτική περιγραφή, και πρέπει να τα καταλάβεις από την αρχή μέχρι το τέλος. 146 | 147 | Χρησιμοποιώ τη χαρακτηρηστική markdown γλώσσα του Github, σεμπεριλαμβανομένων και των tasks lists για να ελέγχω την εξέλιξη του πρότζεκτ. 148 | 149 | **Δημιούργησε ένα καινούργιο branch [x]** 150 | 151 | 152 | Κάνε fork το branch και ακολούθησε τις παρακάτω εντολές 153 | 154 | `git checkout -b progress` 155 | 156 | `git remote add jwasham https://github.com/jwasham/coding-interview-university` 157 | 158 | `git fetch --all` 159 | 160 | Μάρκαρε όλα τα κουτιά με X αφού ολοκληρώσεις τις αλλαγές 161 | 162 | `git add . ` 163 | 164 | `git commit -m "Marked x" ` 165 | 166 | `git rebase jwasham/master ` 167 | 168 | `git push --force ` 169 | 170 | [Περισσότερα σχετικά με την Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown) 171 | 172 | ## Μη νιώθεις ανίκανος 173 | - Οι επιτυχυμένοι μηχανικοί λογισμικού είναι έξυπνοι, αλλά πολλοί έχουν την ανασφάλεια ότι δεν είναι αρκετά έξυπνοι. 174 | - [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ) 175 | - [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY) 176 | 177 | ## Σχετικά με τα βίντεο 178 | 179 | Μερικά βίντεο είναι διαθέσιμα μόνο κάνοντας εγγραφή σε μία Coursera, EdX, or Lynda.com τάξη. Αυτές καλούνται MOOCs. 180 | Μερικές φορές οι τάξεις δεν είναι διαθέσιμες, έτσι πρέπει να περιμένεις 1-2 μήνες, έτσι ώστε να αποκτήσεις πρόσβαση. Τα μαθήματα του Lynada.com δεν είναι δωρεάν. 181 | 182 | Θα εκτιμούσα τη βοήθεια σου να προσθέσεις δωρεάν και πάντοτε-διαθέσιμες ανοικτές πηγές, όπως βίντεο από το Youtube να συνοδεύσουν τα online μαθήματα βίντεο. 183 | Μου αρέσει να χρησιμοποιώ πανεπιστημιακές διαλέξεις. 184 | 185 | ## Διαδικασία Συνέντευξης & Γενική προετοιμασία συνέντευξης 186 | 187 | - [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4) 188 | - [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1) 189 | - [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs) 190 | - [ ] Cracking The Coding Interview Set 1: 191 | - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ) 192 | - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ) 193 | - [ ] How to Get a Job at the Big 4: 194 | - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8) 195 | 196 | - [ ] Μαθήματα προετοιμασίας: 197 | - [ ] [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed): 198 | - Learn how to make yourself ready for software engineer interviews from a former Google interviewer. 199 | - [ ] [Python for Data Structures, Algorithms, and Interviews! (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/): 200 | - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more. 201 | 202 | ## Διάλεξε μία γλώσσα για τη συνέντευξη 203 | 204 | Μπορείς να χρησιμοποιήσεις μία γλώσσα με την οποία είσαι άνετος για να κάνεις το προγραμματιστικό κομμάτι της συνέντευξης, αλλά για τις μεγάλες εταιρίες, υπάρχουν ατόφιες επιλογές: 205 | 206 | - C++ 207 | - Java 208 | - Python 209 | 210 | Μπορείς, επίσης, να χρησιμοποιήσεις αυτές, αλλά διάβασε γύρω από αυτό πρώτα. Μπορεί να υπάρχουν προειδοποιήσεις: 211 | 212 | - Javascript 213 | - Ruby 214 | 215 | Πρέπει να είσαι πολύ εξοικιωμένος με τη γλώσσα και γνώστης. 216 | 217 | Διάβασε περισσότερα σχετικά με τις παραπάνω επιλογές: 218 | - http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/ 219 | - http://blog.codingforinterviews.com/best-programming-language-jobs/ 220 | 221 | [Βρες πόρους για τη γλώσσα εδώ](programming-language-resources.md) 222 | 223 | Θα δείς λίγη γνώση σχετικά με τις C, C++ και Python να περιέχεται παρακάτω, επείδη μαθαίνω. Υπάρχουν μερικά εμπλεκόμενα βιβλία, δες το κάτω μέρος. 224 | 225 | ## Λίστα βιβλίων 226 | 227 | - [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html) 228 | - απαντήσεις στην C++ και στην Java 229 | - αυτό είναι ένα καλό ζέσταμα για να είσαι άριστος/η στο Coding Interview 230 | - όχι τόσο δύσκολο, τα περισσότερα προβλήματα ίσως είναι ευκολότερα από ότι θα δείς στην συνέντευξη (από αυτά που έχω διαβάσει) 231 | - [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) 232 | - απαντήσεις στην Java 233 | 234 | Εάν έχεις αρκετό ελεύθερο χρόνο: 235 | 236 | - [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) 237 | - [ ] [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) 238 | 239 | ### Αρχιτεκτονική Υπολογιστών 240 | 241 | Αν έχεις λίγο χρόνο: 242 | 243 | - [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038) 244 | - Το βιβλίο δημοσιεύτηκε το 2004, και είναι λίγο απαρχεωμένο, αλλά είναι ένας υπέροχος πόρος για να κατανοήσεις έναν υπολογιστή εν συντομία. 245 | - Ο συγγραφέας εφηύρε το HLA, έτσι μην παίρνεις τις αναφορές του και παραδείγματά του για το HLA, τοις μετρητοίς. 246 | - Αυτά τα κεφάλαια αξίζουν το διάβασμα για να σου δώσουν ισχυρά θεμέλια: 247 | - Chapter 2 - Numeric Representation 248 | - Chapter 3 - Binary Arithmetic and Bit Operations 249 | - Chapter 4 - Floating-Point Representation 250 | - Chapter 5 - Character Representation 251 | - Chapter 6 - Memory Organization and Access 252 | - Chapter 7 - Composite Data Types and Memory Objects 253 | - Chapter 9 - CPU Architecture 254 | - Chapter 10 - Instruction Set Architecture 255 | - Chapter 11 - Memory Architecture and Organization 256 | 257 | Αν έχεις αρκετό χρόνο (Το θέλω αυτό το βιβλίο): 258 | 259 | - [ ] [Computer Architecture, Fifth Edition: A Quantitative Approach](https://www.amazon.com/dp/012383872X/) 260 | - Για μία πλουσιότερη, περισσότερο ενημερωμένη (2011), αλλά εκτενέστερη αντιμετώπιση 261 | 262 | ### Συγκεκριμένη γλώσσα 263 | 264 | **Θα πρέπει να επιλέξεις μία γλώσσα για τη συνέντευξη (δες παραπάνω).** Εδώ είναι οι προτάσεις μου ανά γλώσσα. Δεν έχω τους πόρους για όλες τις γλώσσες. Καλοδεχούμενες οι προσθήκες. 265 | 266 | Εάν διαβάσεις μία από αυτές, θα πρέπει να έχεις όλη την γνώση σχετικά με δομές δεδομένων και αλγόριθμους που θα χρειαστείς για να αρχίσεις να λύνεις προβλήματα προγραμματισμού. 267 | **Μπορείς να παραλείψεις όλες τα βίντεο-διαλέξεις που περιέχονται σε αυτό το πρότζεκτ**, εκτός εάν θέλεις να κάνεις μία ανασκόπηση. 268 | 269 | [Επιπρόσθετοι πόροι που αφορούν συγκεκριμένες γλώσσες εδώ.](programming-language-resources.md) 270 | 271 | ### C++ 272 | 273 | Δεν έχω διαβάσει αυτά τα δύο, αλλά έχουν λάβει υψηλές αξιολογήσεις και έχουν γραφτεί από τον Sedgewick. Είναι φοβερός. 274 | 275 | - [ ] [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/) 276 | - [ ] [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/) 277 | 278 | Εάν έχεις μία καλύτερη πρόταση για τη C++, παρακαλώ ενημέρωσέ με. Ψάχνοντας για έναν περιεκτικό πόρο. 279 | 280 | ### Java 281 | 282 | - [ ] [Αλγόριθμοι σε Java(Sedgewick)](http://www.skroutz.gr/books/142957.%CE%91%CE%BB%CE%B3%CF%8C%CF%81%CE%B9%CE%B8%CE%BC%CE%BF%CE%B9-%CF%83%CE%B5-Java.html) 283 | - Διδάσκεται στο Τμήμα Πληροφορικής του Οικονομικού Πανεπιστημίου Αθηνών 284 | - βιντεο με το περιεχόμενο του βιβλίου (and Sedgewick!): 285 | - [Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2) 286 | - [Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd) 287 | 288 | Ή: 289 | 290 | - [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/) 291 | - by Goodrich, Tamassia, Goldwasser 292 | - used as optional text for CS intro course at UC Berkeley 293 | - see my book report on the Python version below. This book covers the same topics. 294 | 295 | ### Python 296 | 297 | - [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/) 298 | - by Goodrich, Tamassia, Goldwasser 299 | - I loved this book. It covered everything and more. 300 | - Pythonic code 301 | - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/ 302 | 303 | 304 | ### Προαιρετικά Βιβλία 305 | 306 | **Ορισμένοι συστήνουν αυτά, αλλά το παρακάνουν, εκτός εάν έχεις πολλά χρόνια εμπειρίας και περιμένεις μία δυσκολότερη συνέντευξη:** 307 | 308 | - [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena) 309 | - As a review and problem recognition 310 | - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview. 311 | - This book has 2 parts: 312 | - class textbook on data structures and algorithms 313 | - pros: 314 | - is a good review as any algorithms textbook would be 315 | - nice stories from his experiences solving problems in industry and academia 316 | - code examples in C 317 | - cons: 318 | - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects 319 | - 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 320 | - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material. 321 | - algorithm catalog: 322 | - this is the real reason you buy this book. 323 | - about to get to this part. Will update here once I've made my way through it. 324 | - Can rent it on kindle 325 | - Half.com is a great resource for textbooks at good prices. 326 | - Answers: 327 | - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) 328 | - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) 329 | - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata) 330 | 331 | - [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844) 332 | - **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. 333 | - Half.com is a great resource for textbooks at good prices. 334 | - aka CLR, sometimes CLRS, because Stein was late to the game 335 | 336 | - [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) 337 | - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but 338 | that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. 339 | 340 | - ~~"Algorithms and Programming: Problems and Solutions" by Shen~~ 341 | - 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. 342 | - Would rather spend time on coding problems from another book or online coding problems. 343 | 344 | ## Πριν αρχίσεις 345 | 346 | Αυτή η λίστα αυξήθηκε με την περίοδο πολλών μηνών, και ναι, βρίσκεται εκτός ελέγχου. 347 | 348 | Εδώ βρίσκονται κάποια λάθη που έκανα για να έχεις μία καλύτερη εμπειρία. 349 | 350 | ### 1. Δε θα το θυμάσαι καθόλου 351 | 352 | Είδα αρκετές ώρες βίντεο και πήρα άφθονες σημειώσεις, κα μήνες μετά υπήρχαν πολλά τα οποία δεν θυμόμουν. Ξόδεψα 3 μέρες εξετάζοντας λεπτομερώς τις σημειώσεις μου και έκανα καρτέλες για να μπορούσα να τις αξιολογήσω. 353 | 354 | Σε παρακαλώ διάβασε τα για να μην κανεις τα ίδια λάθη με τα δικά μου: 355 | 356 | [Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/) 357 | 358 | ### 2. Χρησιμοποιήσε κάρτες σημειώσεων 359 | 360 | Να λύνεις το πρόβλημα, Εγώ έκανα μία μικρή ιστοσελίδα με κάρτες σημειώσεων 2 τύπων: γενικές και κώδικα. Κάθε μία κάρτα έχει διαφορετικό φορμάτ. 361 | 362 | Έκανα ένα mobile-first website για να μπορούσα να τις αξιολογήσω στο κινητό μου και στο tablet μου, όπου κι αν είμαι. 363 | 364 | Φτιάξε το δικό σου δωρεάν: 365 | 366 | - [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards) 367 | - [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db): 368 | - [My flash cards database (new - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham-extreme.db): 369 | 370 | Θυμήσου ότι ξεπέρασα τα όρια και είχα κάρτες που κάλυπταν τα πάντα, από assembly και Python trivia έως και μηχανική μάθηση και στατιστική. Ήταν κάπως υπερβολικό από αυτό που χρειαζόταν. 371 | 372 | **Σημείωσε στα flashcards:** Τον πρώτο καιρό θα αναγνωρίζεις ότι γνωρίζεις την απάντηση, μην την μαρκάρεις ως γνωστή. Έχεις να δεις την ίδια κάρτα και να την απαντήσεις αρκετές φορές σωστά πριν την κατανοήσεις πλήρως. Η επανάληψις είναι μήτηρ πάσης μαθήσεως!-Πλάτωνας. 373 | 374 | Η εναλλακτική είναι να χρησιμοποιήσεις το δικό μου flashcard site: [Anki](http://ankisrs.net/), το οποίο έχει προταθεί σε εμένα αρκετές φορές. Χρησιμοποιεί ένα επαναληπτικό σύστημα για να σε βοηθήσει να θυμηθείς. 375 | Είναι φιλικό προς τον χρήστη, διαθέσιμο σε όλες τις πλατφόρμες και διαθέτει συγχρονισμό με το cloud. Κοστίζει 25$ για iOS αλλά είναι δωρεάν στις άλλες πλατφόρμες. 376 | 377 | Η flashcard βάση δεδομένων μου σε φορμάτ Anki: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)) 378 | 379 | ### 3. Αναθεώρησε, αναθεώρησε, αναθεώρησε 380 | 381 | Διατηρώ το σετ μου απο σκονάκια σε ASCII, στοίβα OSI, σχηματισμούς Big-O, και άλλα. Τα μελετώ όταν έχω λίγο χρόνο. 382 | 383 | Κάνε ένα διάλειμμα από τα προβλήματα προγραμματισμού για μισή ώρα και δούλεψε με τα flashcards. 384 | 385 | ### 4. Συγκεντρώσου 386 | 387 | Υπάρχουν πολλοί αντιπερισπασμοί που μπορούν να κοστίσουν πολύτιμο χρόνο. Η συγκέντρωση είναι ένα αρκετά δύσκολο κομμάτι. 388 | 389 | ## Τι δε θα δεις να καλύπτετε 390 | 391 | Υπάρχουν επικρατέστερες τεχνολογίες αλλά δεν είναι κομμάτι αυτού του πλάνου διαβάσματος: 392 | 393 | - SQL 394 | - Javascript 395 | - HTML, CSS, και άλλες front-end τεχνολογίες 396 | 397 | ## Το καθημερινό πλάνο 398 | 399 | Μερικά θέματα παίρνουν μία ολόκληρη μέρα, και μερικά θα κοστίσουν μερικές μέρες. Μερικά είναι μόνο γνώση χωρίς να χρειαστεί να υλοποιήσεις οτιδήποτε. 400 | 401 | Κάθε μέρα παίρνω ένα θέμα από την παρακάτω λίστα, βλέπω βίντεο για το συγκεκριμένο θέμα, και γρράφω μία υλοποίηση σε: 402 | - C - χρησιμοποιώντας structs και functions που παίρνουν struct * και κάτι άλλο σαν ορίσματα. 403 | - C++ - χωρίς να χρησιμοποιώ built-in τύπους 404 | - C++ - χρησιμοποιώντας built-in τύπους, όπως τα std::list της STL για μία συνδεδεμένη λίστα 405 | - Python - χρησιμοποιώντας built-in τύπους (για να εξασκούμε στην Python) 406 | - και γράφω tests για να σιγουρευτώ ότι το κάνω καλά, μερικές φορές χρησιμοποιώντας μόνο assert() δηλώσεις 407 | - Μπορεί να κάνεις Java ή κάτι άλλο, αυτό είναι μόνο αυτό που κάνω. 408 | 409 | Δεν χρειάζεσαι όλα αυτά. Χρειάζεσαι μόνο [μία γλώσσα για τη συνέντευξη](#Διάλεξε-μία-γλώσσα-για-τη-συνέντευξη). 410 | 411 | Γιατί γράφω κώδικα σε όλα αυτά; 412 | - Εξάσκηση, εξάσκηση, εξάσκηση, μέχρι να γίνω άρρωστος από αυτό, και να μπορώ να το κάνω χωρίς κανένα πρόβλημα (μερικά έχουν πολλές ακραίες περιπτώσεις και και τήρηση των λεπτομερειών του βιβλίου να θυμηθείς) 413 | - Δουλέυω με τα εμπόδια (allocating/freeing memory χωρίς την βοήθεια του garbage collection (εκτός της Python)) 414 | - Κάνω χρήση των built-in τύπων έτσι έχω λίγη εμπειρία στη χρήση built-in εργαλείων για χρήση στον πραγματικό κόσμο (δεν πάω να γράψω τη δικιά μου υλοποίηση για τη συνδεδεμένη λίστα στην παραγωγή) 415 | 416 | Μπορεί να μην έχω χρόνο να τα κάνω αυτά για όλα τα θέματα, αλλά θα προσπαθήσω. 417 | 418 | Μπορείς να δεις τον κώδικα μου εδώ: 419 | - [C] (https://github.com/jwasham/practice-c) 420 | - [C++] (https://github.com/jwasham/practice-cpp) 421 | - [Python] (https://github.com/jwasham/practice-python) 422 | 423 | Δε χρειάζεται να απομνημονεύσεις κάθε κομμάτι ενός αλγόριθμου. 424 | 425 | Γράψε κώδικα σε ένα πίνακα ή σε ένα χαρτί, όχι σε υπολογιστή. Τέσταρε τον με μερικές απλές εισόδους. Μετά τέσταρε τον και σε έναν υπολογιστή. 426 | 427 | ## Προαπαιτούμενη γνώση 428 | 429 | - [ ] **Μάθε C** (καλή τύχη με αυτό... :disappointed: ) 430 | - Η C είναι παντού. Θα δείς παραδείγματα σε βιβλία, διαλέξεις, βίντεο, *ΠΑΝΤΟΥ* όσο θα διαβάζεις. 431 | - [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628) 432 | - Είναι ένα σύντομο βιβλίο, αλλά θα σου δώσει ένα χεράκι στην γλώσσα C και εάν την εξασκείς λίγο 433 | θα την καταλάβεις γρήγορα. Το να καταλάβεις τη C θα σε βοηθήσει να καταλάβεις πως δουλεύουν τα προγράμματα και η μνήμη. 434 | - [απαντήσεις και ερωτήσεις από έναν Έλληνα](https://github.com/lekkas/c-algorithms) 435 | 436 | - [ ] **How computers process a program:** 437 | - [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA) 438 | - [ ] [Machine Code Instructions (video)](https://www.youtube.com/watch?v=Mv2XQgpbTNE) 439 | 440 | ## Αλγοριθμική πολυπλοκότητα / Big-O / Ασυμπτωτική ανάλυση 441 | - τίποτα προς υλοποίηση 442 | - [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4) 443 | - [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU) 444 | - [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN) 445 | - [ ] Skiena: 446 | - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b) 447 | - [slides](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf) 448 | - [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/) 449 | - [ ] [Orders of Growth (video)](https://class.coursera.org/algorithmicthink1-004/lecture/59) 450 | - [ ] [Asymptotics (video)](https://class.coursera.org/algorithmicthink1-004/lecture/61) 451 | - [ ] [UC Berkeley Big O (video)](https://youtu.be/VIS4YDpuP98) 452 | - [ ] [UC Berkeley Big Omega (video)](https://youtu.be/ca3e7UVmeUc) 453 | - [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN) 454 | - [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63) 455 | - [ ] TopCoder (includes recurrence relations and master theorem): 456 | - [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/) 457 | - [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/) 458 | - [ ] [Cheat sheet](http://bigocheatsheet.com/) 459 | - [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv) 460 | 461 | 462 | Εάν μερικές διαλέξεις είναι πολύ μαθηματικές, μπορείς να μεταβείς προς τα κάτω και να παρακολουθήσεις μερικά βίντεο σχετικά με τα διακριτά μαθηματικά για να πάρεις όλες τις γνώσεις που απαιτούνται. 463 | 464 | ## Δομές Δεδομένων 465 | 466 | - ### Πίνακες 467 | - Υλοποίησε μία λίστα, η οποία αλλάζει αυτόματα μέγεθος. 468 | - [ ] Περιγραφή: 469 | - [Πίνακες(EN) (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays) 470 | - [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s) 471 | - [Basic Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html) 472 | - [Multi-dim (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html) 473 | - [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays) 474 | - [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g) 475 | - [Jagged Arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html) 476 | - [Resizing arrays (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html) 477 | - [ ] Υλοποίησε μία συλλογή (ευμετάβλητο πίνακα με αυτόματη αλλαγή μεγέθους): 478 | - [ ] Κάνε πρακτική σε κώδικα χρησιμοποιώντας πίνακες και δείκτες, και pointer math για να πας σε ένα δείκτη από το να χρησιμοποιήσεις ευρετηρίαση. 479 | - [ ] new raw data array with allocated memory 480 | - can allocate int array under the hood, just not use its features 481 | - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128 482 | - [ ] size() - αριθμός των στοιχείων 483 | - [ ] capacity() - αριθμός στοιχείων που μπορεί να περιέχει 484 | - [ ] is_empty() 485 | - [ ] at(index) - επιστρέφει που υπάρχει στη θέση index, *εκρύγνειται* αν ο δείκτης είναι εκτός συνόρων του πίνακα 486 | - [ ] push(item) 487 | - [ ] insert(index, item) - εισάγει ένα σημείο στη θέση index, μετακινεί την τιμή του index και σύρει όλα τα στοιχεία στα δεξιά 488 | - [ ] prepend(item) - εισάγει το αντικείμενο στην αρχή της συλλογής(insert(0,item)) 489 | - [ ] pop() - αφαιρεί από το τέλος, επιστρέφει την τιμή 490 | - [ ] delete(index) - διγράφη το στοιχείο στη θέση index, σύρει όλα τα στοιχεία στα αριστερά 491 | - [ ] remove(item) - ψάχνει για την τιμή και διαγράφει το δείκτη που την έχει (ακόμα και αν είναι σε περισσότερες από 1 θέσεις) 492 | - [ ] find(item) - ψάχνει για την τιμή και επιστρέφει τον πρώτο δείκτη με αυτή την τιμή, -1 έαν δε βρεθεί 493 | - [ ] resize(new_capacity) // private function 494 | - όταν φτάνεις στη χωρητικώτητα, άλλαξε το μέγεθος του πίνακα κατά το διπλάσιο 495 | - όταν αφαιρείς ένα στοιχείο, εάν το μέγεθος είναι 1/4 της χωρητικότητας, άλλαξε το μέγεθος κατά το μισό 496 | - [ ] Χρόνος 497 | - O(1) για πρόσθεση/αφαίρεση στο τέλος (απελευθέρωση των δεσμευμένων θέσεων για περισσότερο χώρο) 498 | - O(n) για πρόσθεση/αφαίρεση αλλού 499 | - [ ] Χώρος 500 | - συνεχόμενος στη μνήμη, έτσι η μικρή απόσταση βοηθάει στην απόδοση 501 | - απαιτούμενος χώρος = (χωρητικότητα πίνακα, η οποία είναι >= n) * μέγεθος του στοιχείου, αλλά ακόμα και αν είναι 2n => O(n) 502 | 503 | - ### Συνδεδεμένες λίστες 504 | - [ ] Περιγραφή: 505 | - [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists) 506 | - [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5) 507 | - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c) 508 | - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) 509 | - not the whole video, just portions about Node struct and memory allocation. 510 | - [ ] Linked List vs Arrays: 511 | - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays) 512 | - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/QUaUd/in-the-real-world-lists-vs-arrays) 513 | - [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo) 514 | - [ ] Gotcha: you need pointer to pointer knowledge: 515 | (for when you pass a pointer to a function that may change the address where that pointer points) 516 | This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness. 517 | - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html) 518 | - [ ] υλοποίηση (Το έκανα με δείκτη ουράς και χωρίς): 519 | 520 | # untill here 521 | 522 | - [ ] size() - returns number of data elements in list 523 | - [ ] empty() - bool returns true if empty 524 | - [ ] value_at(index) - returns the value of the nth item (starting at 0 for first) 525 | - [ ] push_front(value) - adds an item to the front of the list 526 | - [ ] pop_front() - remove front item and return its value 527 | - [ ] push_back(value) - adds an item at the end 528 | - [ ] pop_back() - removes end item and returns its value 529 | - [ ] front() - get value of front item 530 | - [ ] back() - get value of end item 531 | - [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index 532 | - [ ] erase(index) - removes node at given index 533 | - [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list 534 | - [ ] reverse() - reverses the list 535 | - [ ] remove_value(value) - removes the first item in the list with this value 536 | - [ ] Doubly-linked List 537 | - [Description (video)](https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists) 538 | - No need to implement 539 | 540 | - ### Stack 541 | - [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks) 542 | - [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html) 543 | - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU) 544 | - [ ] Will not implement. Implementing with array is trivial. 545 | 546 | - ### Queue 547 | - [ ] [Using Queues First-In First-Out(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html) 548 | - [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue) 549 | - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer) 550 | - [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html) 551 | - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ) 552 | - [ ] Implement using linked-list, with tail pointer: 553 | - enqueue(value) - adds value at position at tail 554 | - dequeue() - returns value and removes least recently added element (front) 555 | - empty() 556 | - [ ] Implement using fixed-sized array: 557 | - enqueue(value) - adds item at end of available storage 558 | - dequeue() - returns value and removes least recently added element 559 | - empty() 560 | - full() 561 | - [ ] Cost: 562 | - a bad implementation using linked list where you enqueue at head and dequeue at tail would be O(n) 563 | because you'd need the next to last element, causing a full traversal each dequeue 564 | - enqueue: O(1) (amortized, linked list and array [probing]) 565 | - dequeue: O(1) (linked list and array) 566 | - empty: O(1) (linked list and array) 567 | 568 | - ### Hash table 569 | - [ ] Videos: 570 | - [ ] [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8) 571 | - [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 572 | - [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 573 | - [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68) 574 | - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) 575 | - [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) 576 | - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8) 577 | 578 | - [ ] Online Courses: 579 | - [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html) 580 | - [ ] [Using Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html) 581 | - [ ] [Supporting Hashing (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html) 582 | - [ ] [Language Support Hash Tables (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html) 583 | - [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables) 584 | - [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3) 585 | - [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem) 586 | - [ ] distributed hash tables: 587 | - [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox) 588 | - [Distributed Hash Tables (video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables) 589 | 590 | - [ ] implement with array using linear probing 591 | - hash(k, m) - m is size of hash table 592 | - add(key, value) - if key already exists, update value 593 | - exists(key) 594 | - get(key) 595 | - remove(key) 596 | 597 | ## More Knowledge 598 | 599 | - ### Binary search 600 | - [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno) 601 | - [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search) 602 | - [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/) 603 | - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4) 604 | - [ ] Implement: 605 | - binary search (on sorted array of integers) 606 | - binary search using recursion 607 | 608 | - ### Bitwise operations 609 | - [ ] [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) 610 | - [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, << 611 | - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture)) 612 | - [ ] Good intro: 613 | [Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I) 614 | - [ ] [C Programming Tutorial 2-10: Bitwise Operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0) 615 | - [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation) 616 | - [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation) 617 | - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html) 618 | - [ ] [The Bit Twiddler](http://bits.stephan-brumme.com/) 619 | - [ ] [The Bit Twiddler Interactive](http://bits.stephan-brumme.com/interactive.html) 620 | - [ ] 2s and 1s complement 621 | - [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4) 622 | - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement) 623 | - [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement) 624 | - [ ] count set bits 625 | - [4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc) 626 | - [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan) 627 | - [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer) 628 | - [ ] round to next power of 2: 629 | - [Round Up To Next Power Of Two](http://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html) 630 | - [ ] swap values: 631 | - [Swap](http://bits.stephan-brumme.com/swap.html) 632 | - [ ] absolute value: 633 | - [Absolute Integer](http://bits.stephan-brumme.com/absInteger.html) 634 | 635 | ## Trees 636 | 637 | - ### Trees - Notes & Background 638 | - [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees) 639 | - [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees) 640 | - basic tree construction 641 | - traversal 642 | - manipulation algorithms 643 | - BFS (breadth-first search) 644 | - [MIT (video)](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13) 645 | - level order (BFS, using queue) 646 | time complexity: O(n) 647 | space complexity: best: O(1), worst: O(n/2)=O(n) 648 | - DFS (depth-first search) 649 | - [MIT (video)](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14) 650 | - notes: 651 | time complexity: O(n) 652 | space complexity: 653 | best: O(log n) - avg. height of tree 654 | worst: O(n) 655 | - inorder (DFS: left, self, right) 656 | - postorder (DFS: left, right, self) 657 | - preorder (DFS: self, left, right) 658 | - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE) 659 | - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c) 660 | - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b) 661 | -------------------------------------------------------------------------------- /translations/README-kk.md: -------------------------------------------------------------------------------- 1 | # Кодтау сұхбат университеті 2 | 3 | > Мен мұны бастапқыда бағдарламалық жасақтама инженері болу үшін оқу тақырыптарының қысқаша тізімі ретінде жасадым, 4 | > бірақ ол бүгін көріп отырған үлкен тізімге дейін өсті. Осы оқу жоспарын орындағаннан кейін [мен жұмысқа қабылдандым 5 | > Amazon-да бағдарламалық жасақтаманы әзірлеу инженері ретінде](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! 6 | > Мен сияқты көп оқудың қажеті жоқ шығар. Қалай болғанда да, сізге қажет нәрсенің бәрі осында. 7 | > 8 | > Мен бірнеше ай бойы күніне 8-12 сағат оқыдым. Бұл менің оқиғам: [Google сұхбаты үшін неліктен мен 8 ай бойы толық уақытты оқыдым](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13) 9 | > 10 | > **Назар аударыңыз:** Сізге мен сияқты көп оқудың қажеті жоқ. Мен көп уақытымды қажет емес нәрселерге жұмсадым. Бұл туралы қосымша ақпарат төменде. Мен сізге қымбат уақытыңызды жоғалтпай жетуге көмектесемін. 11 | > 12 | > Мұнда келтірілген элементтер сізді кез келген бағдарламалық жасақтама компаниясында техникалық сұхбатқа жақсы дайындайды, 13 | > алыптарды қоса алғанда: Amazon, Facebook, Google және Microsoft. 14 | # Kodtaw suxbat wnïversïteti 15 | 16 | > Men munı bastapqıda bağdarlamalıq jasaqtama ïnjeneri bolw üşin oqw taqırıptarınıñ qısqaşa tizimi retinde jasadım, 17 | > biraq ol bügin körip otırğan ülken tizimge deyin östi. Osı oqw josparın orındağannan keyin [men jumısqa qabıldandım 18 | > Amazon-da bağdarlamalıq jasaqtamanı äzirlew ïnjeneri retinde](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! 19 | > Men sïyaqtı köp oqwdıñ qajeti joq şığar. Qalay bolğanda da, sizge qajet närseniñ bäri osında. 20 | > 21 | > Men birneşe ay boyı künine 8-12 sağat oqıdım. Bul meniñ oqïğam: [Google suxbatı üşin nelikten men 8 ay boyı tolıq waqıttı oqıdım](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13) 22 | > 23 | > **Nazar awdarıñız:** Sizge men sïyaqtı köp oqwdıñ qajeti joq. Men köp waqıtımdı qajet emes närselerge jumsadım. Bul twralı qosımşa aqparat tömende. Men sizge qımbat waqıtıñızdı joğaltpay jetwge kömektesemin. 24 | > 25 | > Munda keltirilgen élementter sizdi kez kelgen bağdarlamalıq jasaqtama kompanïyasında texnïkalıq suxbatqa jaqsı dayındaydı, 26 | > alıptardı qosa alğanda: Amazon, Facebook, Google jäne Microsoft. 27 | 28 | 29 | > 30 | > *Сәттілік сізге!* 31 | 32 | <толығырақ> 33 | Аудармалар: 34 | 35 | - [中文版本](аудармалар/README-cn.md) 36 | - [Tiếng Việt - вьетнамша](аудармалар/README-vi.md) 37 | - [Español](аудармалар/README-es.md) 38 | - [Português Brasileiro](аудармалар/README-ptbr.md) 39 | - [Польша](аудармалар/README-pl.md) 40 | - [繁體中文](аудармалар/README-tw.md) 41 | - [Жапондық (日本語)](аудармалар/README-ja.md) 42 | - [Орыс](аудармалар/README-ru.md) 43 | - [Неміс](аудармалар/README-de.md) 44 | - [Бахаса Индонезия](аудармалар/README-id.md) 45 | - [ខ្មែរ - кхмер](аудармалар/README-kh.md) 46 | - [Өзбек](аудармалар/README-uz.md) 47 | - [Болгар](аудармалар/README-bg.md) 48 | - [বাংলা - Bangla](translations/README-bn.md) 49 | 50 | 51 | > 52 | > *Sättilik sizge!* 53 | 54 | 55 | Awdarmalar: 56 | 57 | - [zhōng wén bǎn běn](awdarmalar/README-cn.md) 58 | - [Tiếng Việt - vetnamşa](awdarmalar/README-vi.md) 59 | - [Español](awdarmalar/README-es.md) 60 | - [Português Brasileiro](awdarmalar/README-ptbr.md) 61 | - [Polşa](awdarmalar/README-pl.md) 62 | - [fán tǐ zhōng wén](awdarmalar/README-tw.md) 63 | - [Japondıq (rì běn yǔ)](awdarmalar/README-ja.md) 64 | - [Orıs](awdarmalar/README-ru.md) 65 | - [Nemis](awdarmalar/README-de.md) 66 | - [Baxasa Ïndonezïya](awdarmalar/README-id.md) 67 | - [ខ្មែរ - kxmer](awdarmalar/README-kh.md) 68 | - [Özbek](awdarmalar/README-uz.md) 69 | - [Bolgar](awdarmalar/README-bg.md) 70 | - [bānlā - Bangla](translations/README-bn.md) 71 | 72 | 73 | 74 |
75 | Translations in progress: 76 | 77 | - [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81) 78 | - [עברית](https://github.com/jwasham/coding-interview-university/issues/82) 79 | - [Arabic](https://github.com/jwasham/coding-interview-university/issues/98) 80 | - [Turkish](https://github.com/jwasham/coding-interview-university/issues/90) 81 | - [French](https://github.com/jwasham/coding-interview-university/issues/89) 82 | - [Українська](https://github.com/jwasham/coding-interview-university/issues/106) 83 | - [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118) 84 | - [Telugu](https://github.com/jwasham/coding-interview-university/issues/117) 85 | - [Urdu](https://github.com/jwasham/coding-interview-university/issues/519) 86 | - [Thai](https://github.com/jwasham/coding-interview-university/issues/156) 87 | - [Greek](https://github.com/jwasham/coding-interview-university/issues/166) 88 | - [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239) 89 | - [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186) 90 | - [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164) 91 | 92 |
93 | 94 | 95 | ## Бұл не? 96 | 97 | ![Тақтадағы кодтау - HBO арнасының Силикон алқабынан](https://d3j2pkmjtin6ou.cloudfront.net/coding-at-the-whiteboard-silicon-valley.png) 98 | 99 | Бұл менің ірі компанияда бағдарламалық жасақтама инженері болу үшін көп айлық оқу жоспарым. 100 | 101 | **Міндетті:** 102 | * Кодтау бойынша аз тәжірибе (айнымалылар, циклдар, әдістер/функциялар және т.б.) 103 | * Сабыр 104 | * Уақыт 105 | 106 | Бұл веб-әзірлеуге емес, **бағдарламалық қамтамасыз ету инженериясына** арналған оқу жоспары екенін ескеріңіз. Google, Amazon сияқты ірі бағдарламалық қамтамасыз ету компаниялары, 107 | Facebook және Microsoft бағдарламалық жасақтаманы веб-әзірлеуден өзгеше деп санайды. Мысалы, Amazon бар 108 | Frontend инженерлері (FEE) және бағдарламалық жасақтаманы әзірлеу инженерлері (SDE). Бұл 2 бөлек рөл және сұхбат 109 | олар бірдей болмайды, өйткені әрқайсысының өз құзыреті бар. Бұл компаниялар үшін информатика білімі қажет 110 | бағдарламалық қамтамасыз етуді әзірлеу/инженерлік рөлдер. 111 | 112 | --- 113 | 114 | ## Мазмұны 115 | 116 | ### Оқу жоспары 117 | 118 | - [Бұл не?](#не-ол) 119 | - [Неге оны пайдалану керек?](#why-use-it) 120 | - [Қалай пайдалану керек](#қалай-пайдалану керек) 121 | - [Өзіңізді жеткілікті ақылды емес деп санамаңыз](#сізді жеткілікті түрде ақылды-сезінбеңіз) 122 | - [Бейне ресурстары туралы ескертпе](#a-note-about-video-resources) 123 | - [Бағдарламалау тілін таңдау](#choose-a-programming-language) 124 | - [Дерек құрылымдары мен алгоритмдеріне арналған кітаптар](#деректер құрылымдары мен алгоритмдеріне арналған кітаптар) 125 | - [Интервьюге дайындық кітаптары](#interview-prep-books) 126 | - [Менің қателіктерімді жасамаңыз](#қателіктерімді-жасамаңыз) 127 | - [Жабықпен сіз көрмейсіз](#сіз-көрмейтін-қамтылған) 128 | - [Күнделікті жоспар](#күнделікті-жоспар) 129 | - [Сұрақтарды кодтау тәжірибесі](#coding-question-practice) 130 | - [Кодтау мәселелері](#coding-problems) 131 | ## Bul ne? 132 | 133 | ![Taqtadağı kodtaw - HBO arnasınıñ Sïlïkon alqabınan](https://d3j2pkmjtin6ou.cloudfront.net/coding-at-the-whiteboard-silicon-valley.png) 134 | 135 | Bul meniñ iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolw üşin köp aylıq oqw josparım. 136 | 137 | **Mindetti:** 138 | * Kodtaw boyınşa az täjirïbe (aynımalılar, cïkldar, ädister/fwnkcïyalar jäne t.b.) 139 | * Sabır 140 | * Waqıt 141 | 142 | Bul veb-äzirlewge emes, **bağdarlamalıq qamtamasız etw ïnjenerïyasına** arnalğan oqw josparı ekenin eskeriñiz. Google, Amazon sïyaqtı iri bağdarlamalıq qamtamasız etw kompanïyaları, 143 | Facebook jäne Microsoft bağdarlamalıq jasaqtamanı veb-äzirlewden özgeşe dep sanaydı. Mısalı, Amazon bar 144 | Frontend ïnjenerleri (FEE) jäne bağdarlamalıq jasaqtamanı äzirlew ïnjenerleri (SDE). Bul 2 bölek röl jäne suxbat 145 | olar birdey bolmaydı, öytkeni ärqaysısınıñ öz quzıreti bar. Bul kompanïyalar üşin ïnformatïka bilimi qajet 146 | bağdarlamalıq qamtamasız etwdi äzirlew/ïnjenerlik rölder. 147 | 148 | --- 149 | 150 | ## Mazmunı 151 | 152 | ### Oqw josparı 153 | 154 | - [Bul ne?](#ne-ol) 155 | - [Nege onı paydalanw kerek?](#why-use-it) 156 | - [Qalay paydalanw kerek](#qalay-paydalanw kerek) 157 | - [Öziñizdi jetkilikti aqıldı emes dep sanamañız](#sizdi jetkilikti türde aqıldı-sezinbeñiz) 158 | - [Beyne reswrstarı twralı eskertpe](#a-note-about-video-resources) 159 | - [Bağdarlamalaw tilin tañdaw](#choose-a-programming-language) 160 | - [Derek qurılımdarı men algorïtmderine arnalğan kitaptar](#derekter qurılımdarı men algorïtmderine arnalğan kitaptar) 161 | - [Ïntervyuge dayındıq kitaptarı](#interview-prep-books) 162 | - [Meniñ qatelikterimdi jasamañız](#qatelikterimdi-jasamañız) 163 | - [Jabıqpen siz körmeysiz](#siz-körmeytin-qamtılğan) 164 | - [Kündelikti jospar](#kündelikti-jospar) 165 | - [Suraqtardı kodtaw täjirïbesi](#coding-question-practice) 166 | - [Kodtaw mäseleleri](#coding-problems) 167 | 168 | ### Оқу тақырыптары 169 | 170 | - [Алгоритмдік күрделілік / Үлкен-О / Асимптотикалық талдау](#алгоритмдік-күрделілік--үлкен-о--ассимптотикалық-анализ) 171 | - [Дерек құрылымдары](#деректер құрылымдары) 172 | - [Массивтер](#массив) 173 | - [Байланыстырылған тізімдер](#linked-lists) 174 | - [Стек](#стек) 175 | - [Кезек](#кезек) 176 | - [Хэш кестесі](#хэш-кесте) 177 | - [Қосымша білім](#көп-білім) 178 | - [Екілік іздеу](#екілік іздеу) 179 | - [биттік операциялар](#биттік операциялар) 180 | - [Ағаштар](#ағаштар) 181 | - [Ағаштар - Жазбалар және фон](#ағаштар---жазбалар--фон) 182 | - [Екілік іздеу ағаштары: BSTs](#binary-search-trees-bsts) 183 | - [Үйме / Басымдық кезек / Екілік үйме](#үйме--басымдылық-кезегі--екілік-үйме) 184 | - теңдестірілген іздеу ағаштары (детальдар емес, жалпы түсінік) 185 | - өтулер: алдын ала тапсырыс, тапсырыс, кейінгі тапсырыс, BFS, DFS 186 | - [Сұрыптау](#сұрыптау) 187 | - таңдау 188 | - кірістіру 189 | - үйінді сұрыптау 190 | - жылдам сұрыптау 191 | - біріктіру сұрыптауы 192 | - [Графиктер](#график) 193 | - бағыттады 194 | - бағытталмаған 195 | - көршілестік матрицасы 196 | - іргелес тізім 197 | - өтулер: BFS, DFS 198 | - [Одан да көп білім](#ven-more-bilgi) 199 | - [Рекурсия](#рекурсия) 200 | - [Динамикалық бағдарламалау](#динамикалық-бағдарламалау) 201 | - [Дизайн үлгілері](#design-patterns) 202 | - [Комбинаторика (n таңдау k) & Ықтималдық](#комбинаторика-n-таңдау-k--ықтималдық) 203 | - [NP, NP-Толық және жуықтау алгоритмдері](#np-np-толық-және жуықтау-алгоритмдері) 204 | - [Компьютерлер бағдарламаны қалай өңдейді](#қалай-компьютерлер-бағдарламаны өңдейді) 205 | - [Кэштер](#кэштер) 206 | - [Процестер мен ағындар](#processes-and-threads) 207 | - [Тестілеу](#тестілеу) 208 | - [Жолды іздеу және манипуляциялар](#string-searching--манипуляциялар) 209 | - [Әрекет](# тырысады) 210 | - [Жылжымалы нүкте сандары](#жылжымалы нүкте сандары) 211 | - [Юникод](#уникод) 212 | - [Endianness](#endianness) 213 | - [Networking](#networking) 214 | - [Қорытынды шолу](#соңғы шолу) 215 | 216 | ### Жұмысқа орналасу 217 | 218 | - [Түйіндемеңізді жаңарту](#жаңарту-өз түйіндемеңіз) 219 | - [Жұмыс табу](#жұмыс табу) 220 | - [Интервью процесі және жалпы сұхбатқа дайындық](#interview-process--жалпы-интервью-дайындық) 221 | - [Сұхбат қашан келетінін ойлаңыз](#сұхбат келгенде-ойланыңыз) 222 | - [Сұхбат алушыға сұрақтарыңыз бар](#сұхбат алушыға-сұрақтарыңыз бар) 223 | - [Жұмысқа қол жеткізгеннен кейін](#бір рет-жұмысқа-алғаннан кейін) 224 | 225 | **---------------- Осы тармақтың астындағылардың барлығы міндетті емес ----------------** 226 | ### Oqw taqırıptarı 227 | 228 | - [Algorïtmdik kürdelilik / Ülken-O / Asïmptotïkalıq taldaw](#algorïtmdik-kürdelilik--ülken-o--assïmptotïkalıq-analïz) 229 | - [Derek qurılımdarı](#derekter qurılımdarı) 230 | - [Massïvter](#massïv) 231 | - [Baylanıstırılğan tizimder](#linked-lists) 232 | - [Stek](#stek) 233 | - [Kezek](#kezek) 234 | - [Xéş kestesi](#xéş-keste) 235 | - [Qosımşa bilim](#köp-bilim) 236 | - [Ekilik izdew](#ekilik izdew) 237 | - [bïttik operacïyalar](#bïttik operacïyalar) 238 | - [Ağaştar](#ağaştar) 239 | - [Ağaştar - Jazbalar jäne fon](#ağaştar---jazbalar--fon) 240 | - [Ekilik izdew ağaştarı: BSTs](#binary-search-trees-bsts) 241 | - [Üyme / Basımdıq kezek / Ekilik üyme](#üyme--basımdılıq-kezegi--ekilik-üyme) 242 | - teñdestirilgen izdew ağaştarı (detaldar emes, jalpı tüsinik) 243 | - ötwler: aldın ala tapsırıs, tapsırıs, keyingi tapsırıs, BFS, DFS 244 | - [Surıptaw](#surıptaw) 245 | - tañdaw 246 | - kiristirw 247 | - üyindi surıptaw 248 | - jıldam surıptaw 249 | - biriktirw surıptawı 250 | - [Grafïkter](#grafïk) 251 | - bağıttadı 252 | - bağıttalmağan 253 | - körşilestik matrïcası 254 | - irgeles tizim 255 | - ötwler: BFS, DFS 256 | - [Odan da köp bilim](#ven-more-bilgi) 257 | - [Rekwrsïya](#rekwrsïya) 258 | - [Dïnamïkalıq bağdarlamalaw](#dïnamïkalıq-bağdarlamalaw) 259 | - [Dïzayn ülgileri](#design-patterns) 260 | - [Kombïnatorïka (n tañdaw k) & Iqtïmaldıq](#kombïnatorïka-n-tañdaw-k--ıqtïmaldıq) 261 | - [NP, NP-Tolıq jäne jwıqtaw algorïtmderi](#np-np-tolıq-jäne jwıqtaw-algorïtmderi) 262 | - [Kompyuterler bağdarlamanı qalay öñdeydi](#qalay-kompyuterler-bağdarlamanı öñdeydi) 263 | - [Kéşter](#kéşter) 264 | - [Procester men ağındar](#processes-and-threads) 265 | - [Testilew](#testilew) 266 | - [Joldı izdew jäne manïpwlyacïyalar](#string-searching--manïpwlyacïyalar) 267 | - [Äreket](# tırısadı) 268 | - [Jıljımalı nükte sandarı](#jıljımalı nükte sandarı) 269 | - [Yunïkod](#wnïkod) 270 | - [Endianness](#endianness) 271 | - [Networking](#networking) 272 | - [Qorıtındı şolw](#soñğı şolw) 273 | 274 | ### Jumısqa ornalasw 275 | 276 | - [Tüyindemeñizdi jañartw](#jañartw-öz tüyindemeñiz) 277 | - [Jumıs tabw](#jumıs tabw) 278 | - [Ïntervyu procesi jäne jalpı suxbatqa dayındıq](#interview-process--jalpı-ïntervyu-dayındıq) 279 | - [Suxbat qaşan keletinin oylañız](#suxbat kelgende-oylanıñız) 280 | - [Suxbat alwşığa suraqtarıñız bar](#suxbat alwşığa-suraqtarıñız bar) 281 | - [Jumısqa qol jetkizgennen keyin](#bir ret-jumısqa-alğannan keyin) 282 | 283 | **---------------- Osı tarmaqtıñ astındağılardıñ barlığı mindetti emes ----------------** 284 | 285 | ### Қосымша қосымша тақырыптар мен ресурстар 286 | 287 | - [Қосымша кітаптар](#қосымша кітаптар) 288 | - [Жүйені жобалау, масштабтау, деректерді өңдеу](#жүйе дизайны-масштабтау-деректерді өңдеу) (4 жылдан астам тәжірибеңіз болса) 289 | - [Қосымша оқыту](#қосымша-оқыту) 290 | - [Құрастырушылар](#компиляторлар) 291 | - [Emacs және vi(m)](#emacs-and-vim) 292 | - [Unix пәрмен жолы құралдары](#unix-командалық жол құралдары) 293 | - [Ақпарат теориясы](#ақпарат-теория-бейнелер) 294 | - [Паритет және Хамминг коды](#parity--hamming-code-videos) 295 | - [Энтропия](#энтропия) 296 | - [Криптография](#криптография) 297 | - [Сығу](#қысу) 298 | - [Компьютер қауіпсіздігі](#компьютер қауіпсіздігі) 299 | - [Қоқыс жинау](#қоқыс жинау) 300 | - [Параллельді бағдарламалау](#параллельді бағдарламалау) 301 | - [Хабар алмасу, сериялау және кезекке қою жүйелері](#хабарлама-серияландыру-және-кезектеу-жүйелері) 302 | - [A*](#a) 303 | - [Fast Furier Transform](#fast-fourier-transform) 304 | - [Блум сүзгісі](#блум-сүзгісі) 305 | - [HyperLogLog](#hyperloglog) 306 | - [Жергілікті-сезімтал хэштеу](#жергілікті-сезімтал-хэшинг) 307 | - [ван Эмде Боас ағаштары](#ван-емде-боас-ағаштар) 308 | - [Толықтырылған деректер құрылымдары](#augmented-data-structures) 309 | - [Балансталған іздеу ағаштары](#балансталған іздеу ағаштары) 310 | - AVL ағаштары 311 | - Ағаштар 312 | - қызыл/қара ағаштар 313 | - 2-3 іздеу ағаштары 314 | - 2-3-4 ағаш (2-4 ағаш) 315 | - N-ары (Қ-ары, М-ары) ағаштары 316 | - В-ағаштар 317 | - [k-D ағаштары](#k-d-ағаштар) 318 | - [Тізімдерді өткізіп жіберу](#өткізу тізімдері) 319 | - [Желі ағындары](#желі ағындары) 320 | - [Ажыратылған жиындар және одақтарды табу](#disjoint-жинақтар--одақ-табу) 321 | - [Жылдам өңдеуге арналған математика](#жылдам өңдеуге арналған математика) 322 | - [Треап](#treap) 323 | - [Сызықтық бағдарламалау](#linear-бағдарламалау-бейнелер) 324 | - [Геометрия, дөңес корпус](#геометрия-дөңес-корпус-бейнелері) 325 | - [Дискретті математика](#дискретті-математика) 326 | - [Кейбір тақырыптар бойынша қосымша мәліметтер](кейбір тақырыптар бойынша #қосымша-деталь) 327 | - [Бейне сериясы](#бейне сериясы) 328 | - [Информатика курстары](#компьютер-ғылым-курстары) 329 | - [Қағаздар](#қағаз) 330 | ### Qosımşa qosımşa taqırıptar men reswrstar 331 | 332 | - [Qosımşa kitaptar](#qosımşa kitaptar) 333 | - [Jüyeni jobalaw, masştabtaw, derekterdi öñdew](#jüye dïzaynı-masştabtaw-derekterdi öñdew) (4 jıldan astam täjirïbeñiz bolsa) 334 | - [Qosımşa oqıtw](#qosımşa-oqıtw) 335 | - [Qurastırwşılar](#kompïlyatorlar) 336 | - [Emacs jäne vi(m)](#emacs-and-vim) 337 | - [Unix pärmen jolı quraldarı](#unix-komandalıq jol quraldarı) 338 | - [Aqparat teorïyası](#aqparat-teorïya-beyneler) 339 | - [Parïtet jäne Xammïng kodı](#parity--hamming-code-videos) 340 | - [Éntropïya](#éntropïya) 341 | - [Krïptografïya](#krïptografïya) 342 | - [Sığw](#qısw) 343 | - [Kompyuter qawipsizdigi](#kompyuter qawipsizdigi) 344 | - [Qoqıs jïnaw](#qoqıs jïnaw) 345 | - [Paralleldi bağdarlamalaw](#paralleldi bağdarlamalaw) 346 | - [Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri](#xabarlama-serïyalandırw-jäne-kezektew-jüyeleri) 347 | - [A*](#a) 348 | - [Fast Furier Transform](#fast-fourier-transform) 349 | - [Blwm süzgisi](#blwm-süzgisi) 350 | - [HyperLogLog](#hyperloglog) 351 | - [Jergilikti-sezimtal xéştew](#jergilikti-sezimtal-xéşïng) 352 | - [van Émde Boas ağaştarı](#van-emde-boas-ağaştar) 353 | - [Tolıqtırılğan derekter qurılımdarı](#augmented-data-structures) 354 | - [Balanstalğan izdew ağaştarı](#balanstalğan izdew ağaştarı) 355 | - AVL ağaştarı 356 | - Ağaştar 357 | - qızıl/qara ağaştar 358 | - 2-3 izdew ağaştarı 359 | - 2-3-4 ağaş (2-4 ağaş) 360 | - N-arı (Q-arı, M-arı) ağaştarı 361 | - V-ağaştar 362 | - [k-D ağaştarı](#k-d-ağaştar) 363 | - [Tizimderdi ötkizip jiberw](#ötkizw tizimderi) 364 | - [Jeli ağındarı](#jeli ağındarı) 365 | - [Ajıratılğan jïındar jäne odaqtardı tabw](#disjoint-jïnaqtar--odaq-tabw) 366 | - [Jıldam öñdewge arnalğan matematïka](#jıldam öñdewge arnalğan matematïka) 367 | - [Treap](#treap) 368 | - [Sızıqtıq bağdarlamalaw](#linear-bağdarlamalaw-beyneler) 369 | - [Geometrïya, döñes korpws](#geometrïya-döñes-korpws-beyneleri) 370 | - [Dïskretti matematïka](#dïskretti-matematïka) 371 | - [Keybir taqırıptar boyınşa qosımşa mälimetter](keybir taqırıptar boyınşa #qosımşa-detal) 372 | - [Beyne serïyası](#beyne serïyası) 373 | - [Ïnformatïka kwrstarı](#kompyuter-ğılım-kwrstarı) 374 | - [Qağazdar](#qağaz) 375 | 376 | ## Оны не үшін қолдану керек? 377 | 378 | Егер сіз ірі компанияда бағдарламалық жасақтама инженері болып жұмыс істегіңіз келсе, бұл сізге білу керек нәрселер. 379 | 380 | Егер сіз мен сияқты информатика бойынша ғылыми дәреже алуды жіберіп алсаңыз, бұл сізді қуып жетіп, өміріңіздің төрт жылын сақтайды. 381 | 382 | Мен бұл жобаны бастаған кезде, мен үйіндіден стекті білмедім, Big-O ештеңе білмедім, ағаштар туралы ештеңе білмедім немесе қалай істеу керектігін білмедім. 383 | графикті айналып өту. Егер мен сұрыптау алгоритмін кодтауым керек болса, бұл қорқынышты болар еді деп айта аламын. 384 | Мен пайдаланған әрбір деректер құрылымы тілге салынған және мен олардың қалай жұмыс істейтінін білмедім 385 | мүлде капюшонның астында. Мен іске қосып жатқан процесс «шығын» бермейінше, жадты ешқашан басқаруға тура келмеді 386 | жад» қатесі пайда болды, содан кейін уақытша шешім табуым керек еді. Мен өмірімде бірнеше көп өлшемді массивтерді қолдандым және 387 | мыңдаған ассоциативті массивтер, бірақ мен ешқашан деректер құрылымдарын нөлден жасаған емеспін. 388 | 389 | Бұл ұзақ жоспар. Бұл сізге айлар алуы мүмкін. Егер сіз мұның көп бөлігімен таныс болсаңыз, бұл сізге әлдеқайда аз уақыт алады. 390 | 391 | ## Оны қалай пайдалануға болады 392 | 393 | Төмендегілердің бәрі контур, сондықтан элементтерді жоғарыдан төменге қарай ретімен шешу керек. 394 | 395 | Мен GitHub-тың арнайы белгілеу дәмін, соның ішінде орындалу барысын бақылау үшін тапсырмалар тізімдерін пайдаланамын. 396 | - [GitHub-flavored markdown туралы толығырақ](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown) 397 | 398 | ### Егер сіз git қолданбасын пайдаланғыңыз келмесе 399 | 400 | Бұл бетте жоғарғы жағындағы Код түймесін басыңыз, содан кейін «ZIP жүктеп алу» түймесін басыңыз. Файлды ашыңыз және мәтіндік файлдармен жұмыс істей аласыз. 401 | 402 | Белгілеуді түсінетін код өңдегішінде ашық болсаңыз, барлығы жақсы пішімделгенін көресіз. 403 | 404 | ![Репоны zip файлы ретінде қалай жүктеп алуға болады](https://d3j2pkmjtin6ou.cloudfront.net/how-to-download-as-zip.png) 405 | 406 | ### Егер сіз gitпен ыңғайлы болсаңыз 407 | 408 | Мынадай элементтерді тексеру үшін жаңа тармақ жасаңыз, жақшаға x белгісін қойыңыз: [x] 409 | 410 | 1. ***GitHub репосын ашыңыз:*** `https://github.com/jwasham/coding-interview-university` Fork түймесін басу арқылы. 411 | ## Onı ne üşin qoldanw kerek? 412 | 413 | Eger siz iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolıp jumıs istegiñiz kelse, bul sizge bilw kerek närseler. 414 | 415 | Eger siz men sïyaqtı ïnformatïka boyınşa ğılımï däreje alwdı jiberip alsañız, bul sizdi qwıp jetip, ömiriñizdiñ tört jılın saqtaydı. 416 | 417 | Men bul jobanı bastağan kezde, men üyindiden stekti bilmedim, Big-O eşteñe bilmedim, ağaştar twralı eşteñe bilmedim nemese qalay istew kerektigin bilmedim. 418 | grafïkti aynalıp ötw. Eger men surıptaw algorïtmin kodtawım kerek bolsa, bul qorqınıştı bolar edi dep ayta alamın. 419 | Men paydalanğan ärbir derekter qurılımı tilge salınğan jäne men olardıñ qalay jumıs isteytinin bilmedim 420 | mülde kapyuşonnıñ astında. Men iske qosıp jatqan process «şığın» bermeyinşe, jadtı eşqaşan basqarwğa twra kelmedi 421 | jad» qatesi payda boldı, sodan keyin waqıtşa şeşim tabwım kerek edi. Men ömirimde birneşe köp ölşemdi massïvterdi qoldandım jäne 422 | mıñdağan assocïatïvti massïvter, biraq men eşqaşan derekter qurılımdarın nölden jasağan emespin. 423 | 424 | Bul uzaq jospar. Bul sizge aylar alwı mümkin. Eger siz munıñ köp böligimen tanıs bolsañız, bul sizge äldeqayda az waqıt aladı. 425 | 426 | ## Onı qalay paydalanwğa boladı 427 | 428 | Tömendegilerdiñ bäri kontwr, sondıqtan élementterdi joğarıdan tömenge qaray retimen şeşw kerek. 429 | 430 | Men GitHub-tıñ arnayı belgilew dämin, sonıñ işinde orındalw barısın baqılaw üşin tapsırmalar tizimderin paydalanamın. 431 | - [GitHub-flavored markdown twralı tolığıraq](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown) 432 | 433 | ### Eger siz git qoldanbasın paydalanğıñız kelmese 434 | 435 | Bul bette joğarğı jağındağı Kod tüymesin basıñız, sodan keyin «ZIP jüktep alw» tüymesin basıñız. Fayldı aşıñız jäne mätindik fayldarmen jumıs istey alasız. 436 | 437 | Belgilewdi tüsinetin kod öñdegişinde aşıq bolsañız, barlığı jaqsı pişimdelgenin köresiz. 438 | 439 | ![Reponı zip faylı retinde qalay jüktep alwğa boladı](https://d3j2pkmjtin6ou.cloudfront.net/how-to-download-as-zip.png) 440 | 441 | ### Eger siz gitpen ıñğaylı bolsañız 442 | 443 | Mınaday élementterdi tekserw üşin jaña tarmaq jasañız, jaqşağa x belgisin qoyıñız: [x] 444 | 445 | 1. ***GitHub reposın aşıñız:*** `https://github.com/jwasham/coding-interview-university` Fork tüymesin basw arqılı. 446 | 447 | 448 | ![GitHub репосын ашыңыз](https://d3j2pkmjtin6ou.cloudfront.net/fork-button.png) 449 | 450 | 1. Жергілікті репоға клондау: 451 | 452 | ``` 453 | git clone git@github.com:/coding-interview-university.git 454 | CD кодтау-сұхбат-университет 455 | git checkout -b прогресс 456 | git қашықтан jwasham қосу https://github.com/jwasham/coding-interview-university 457 | git fetch --барлығы 458 | ``` 459 | 460 | 1. Өзгерістерді аяқтағаннан кейін барлық ұяшықтарды X белгісімен белгілеңіз: 461 | 462 | ``` 463 | git қосу. 464 | git commit -m «X белгіленген» 465 | git rebase jwasham/main 466 | git push --set-upstream бастапқы прогресті 467 | git push --force 468 | ``` 469 | 470 | ## Өзіңді жеткілікті ақылды емес деп санама 471 | 472 | - Табысты бағдарламалық жасақтама инженерлері ақылды, бірақ олардың көпшілігі жеткілікті ақылды емес деген сенімсіздікке ие. 473 | - Келесі бейнелер осы сенімсіздікті жеңуге көмектесуі мүмкін: 474 | - [Данышпан программист туралы миф](https://www.youtube.com/watch?v=0SARbwvhupQ) 475 | - [Жалғыз жүру қауіпті: технологиядағы көрінбейтін құбыжықтармен күресу](https://www.youtube.com/watch?v=1i8ylq4j_EY) 476 | 477 | ## Бейне ресурстар туралы ескертпе 478 | 479 | Кейбір бейнелер Coursera немесе EdX сыныбына тіркелу арқылы ғана қолжетімді. Бұлар MOOC деп аталады. 480 | Кейде сабақтар сессияда болмайды, сондықтан сізге бірнеше ай күтуге тура келеді, сондықтан сізде кіру мүмкіндігі болмайды. 481 | 482 | Онлайн курс ресурстарын тегін және әрқашан қолжетімді жалпыға қолжетімді көздермен алмастыру тамаша болар еді, 483 | мысалы, YouTube бейнелері (жақсырақ университет лекциялары), сондықтан сіз кез келген уақытта оларды оқи аласыз, 484 | белгілі бір онлайн курс сессияда болғанда ғана емес. 485 | 486 | ## Бағдарламалау тілін таңдаңыз 487 | 488 | Сізге кодтау сұхбаттары үшін бағдарламалау тілін таңдау керек, 489 | бірақ сізге информатика ұғымдарын зерттеу үшін қолдануға болатын тілді табу қажет болады. 490 | 491 | Тіл бірдей болғаны дұрыс, сондықтан сізге тек біреуін білу керек. 492 | 493 | ### Осы оқу жоспары үшін 494 | 495 | Мен оқу жоспарын жасаған кезде оның көп бөлігінде 2 тілді қолдандым: C және Python 496 | 497 | * C: Өте төмен деңгей. Көрсеткіштермен және жадты бөлу/бөлумен жұмыс істеуге мүмкіндік береді, осылайша деректер құрылымдарын сезінесіз 498 | және сүйектеріңіздегі алгоритмдер. Python немесе Java сияқты жоғары деңгейлі тілдерде олар сізден жасырылады. Күнделікті жұмыста бұл керемет, 499 | бірақ сіз осы төмен деңгейлі деректер құрылымдарының қалай салынғанын үйреніп жатқанда, металға жақын сезіну өте жақсы. 500 | - C барлық жерде бар. Сіз оқу кезінде мысалдарды кітаптардан, лекциялардан, бейнелерден, *барлық жерде* көресіз. 501 | - [The C бағдарламалау тілі, 2-том](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628) 502 | ![GitHub reposın aşıñız](https://d3j2pkmjtin6ou.cloudfront.net/fork-button.png) 503 | 504 | 1. Jergilikti repoğa klondaw: 505 | 506 | ``` 507 | git clone git@github.com:/coding-interview-university.git 508 | CD kodtaw-suxbat-wnïversïtet 509 | git checkout -b progress 510 | git qaşıqtan jwasham qosw https://github.com/jwasham/coding-interview-university 511 | git fetch --barlığı 512 | ``` 513 | 514 | 1. Özgeristerdi ayaqtağannan keyin barlıq uyaşıqtardı X belgisimen belgileñiz: 515 | 516 | ``` 517 | git qosw. 518 | git commit -m «X belgilengen» 519 | git rebase jwasham/main 520 | git push --set-upstream bastapqı progresti 521 | git push --force 522 | ``` 523 | 524 | ## Öziñdi jetkilikti aqıldı emes dep sanama 525 | 526 | - Tabıstı bağdarlamalıq jasaqtama ïnjenerleri aqıldı, biraq olardıñ köpşiligi jetkilikti aqıldı emes degen senimsizdikke ïe. 527 | - Kelesi beyneler osı senimsizdikti jeñwge kömekteswi mümkin: 528 | - [Danışpan programmïst twralı mïf](https://www.youtube.com/watch?v=0SARbwvhupQ) 529 | - [Jalğız jürw qawipti: texnologïyadağı körinbeytin qubıjıqtarmen küresw](https://www.youtube.com/watch?v=1i8ylq4j_EY) 530 | 531 | ## Beyne reswrstar twralı eskertpe 532 | 533 | Keybir beyneler Coursera nemese EdX sınıbına tirkelw arqılı ğana qoljetimdi. Bular MOOC dep ataladı. 534 | Keyde sabaqtar sessïyada bolmaydı, sondıqtan sizge birneşe ay kütwge twra keledi, sondıqtan sizde kirw mümkindigi bolmaydı. 535 | 536 | Onlayn kwrs reswrstarın tegin jäne ärqaşan qoljetimdi jalpığa qoljetimdi közdermen almastırw tamaşa bolar edi, 537 | mısalı, YouTube beyneleri (jaqsıraq wnïversïtet lekcïyaları), sondıqtan siz kez kelgen waqıtta olardı oqï alasız, 538 | belgili bir onlayn kwrs sessïyada bolğanda ğana emes. 539 | 540 | ## Bağdarlamalaw tilin tañdañız 541 | 542 | Sizge kodtaw suxbattarı üşin bağdarlamalaw tilin tañdaw kerek, 543 | biraq sizge ïnformatïka uğımdarın zerttew üşin qoldanwğa bolatın tildi tabw qajet boladı. 544 | 545 | Til birdey bolğanı durıs, sondıqtan sizge tek birewin bilw kerek. 546 | 547 | ### Osı oqw josparı üşin 548 | 549 | Men oqw josparın jasağan kezde onıñ köp böliginde 2 tildi qoldandım: C jäne Python 550 | 551 | * C: Öte tömen deñgey. Körsetkiştermen jäne jadtı bölw/bölwmen jumıs istewge mümkindik beredi, osılayşa derekter qurılımdarın sezinesiz 552 | jäne süyekteriñizdegi algorïtmder. Python nemese Java sïyaqtı joğarı deñgeyli tilderde olar sizden jasırıladı. Kündelikti jumısta bul keremet, 553 | biraq siz osı tömen deñgeyli derekter qurılımdarınıñ qalay salınğanın üyrenip jatqanda, metalğa jaqın sezinw öte jaqsı. 554 | - C barlıq jerde bar. Siz oqw kezinde mısaldardı kitaptardan, lekcïyalardan, beynelerden, *barlıq jerde* köresiz. 555 | - [The C bağdarlamalaw tili, 2-tom](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628) 556 | 557 | - Бұл қысқа кітап, бірақ ол сізге Си тілін жақсы меңгеруге мүмкіндік береді және егер сіз оны аздап үйренсеңіз 558 | тез шеберлікке ие боласыз. Си түсіну бағдарламалар мен жадтың қалай жұмыс істейтінін түсінуге көмектеседі. 559 | - Кітаптың тереңіне барудың (тіпті оны аяқтаудың) қажеті жоқ. Си тілінде оқуға және жазуға ыңғайлы жерге жетіңіз. 560 | - [Кітаптағы сұрақтарға жауаптар](https://github.com/lekkas/c-algorithms) 561 | * Python: Заманауи және өте мәнерлі, мен оны білдім, себебі бұл өте пайдалы және сұхбатта азырақ код жазуға мүмкіндік береді. 562 | 563 | Бұл менің басымдылығым. Сіз өзіңізге ұнайтын нәрсені жасайсыз, әрине. 564 | 565 | Бұл сізге қажет болмауы мүмкін, бірақ жаңа тілді үйренуге арналған бірнеше сайттар: 566 | - [Жаттығу](https://exercism.org/tracks) 567 | - [Codewars](http://www.codewars.com) 568 | - [Codility](https://codility.com/programmers/) 569 | - [HackerEarth](https://www.hackerearth.com/) 570 | - [Sphere Online Judge (spoj)](http://www.spoj.com/) 571 | - [Codechef](https://www.codechef.com/) 572 | - [Код күштері](https://codeforces.com/) 573 | - [Scaler тақырыптары](https://www.scaler.com/topics/) 574 | 575 | ### Кодтау сұхбаты үшін 576 | 577 | Сұхбаттың кодтау бөлігін орындау үшін өзіңізге ыңғайлы тілді пайдалануға болады, бірақ ірі компаниялар үшін бұл дұрыс таңдау: 578 | 579 | - C++ 580 | - Java 581 | - Python 582 | 583 | Сіз оларды да пайдалана аласыз, бірақ алдымен оқып шығыңыз. Ескертулер болуы мүмкін: 584 | 585 | - JavaScript 586 | - Рубин 587 | 588 | Сұхбат үшін тілді таңдау туралы жазған мақалам: 589 | [Кодтау сұхбаты үшін бір тілді таңдаңыз](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/). 590 | Бұл менің постыма негізделген түпнұсқа мақала: [Сұхбаттар үшін бағдарламалау тілін таңдау](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- жұмыс/) 591 | 592 | Сіз тілде өте ыңғайлы және білімді болуыңыз керек. 593 | - Bul qısqa kitap, biraq ol sizge Sï tilin jaqsı meñgerwge mümkindik beredi jäne eger siz onı azdap üyrenseñiz 594 | tez şeberlikke ïe bolasız. Sï tüsinw bağdarlamalar men jadtıñ qalay jumıs isteytinin tüsinwge kömektesedi. 595 | - Kitaptıñ tereñine barwdıñ (tipti onı ayaqtawdıñ) qajeti joq. Sï tilinde oqwğa jäne jazwğa ıñğaylı jerge jetiñiz. 596 | - [Kitaptağı suraqtarğa jawaptar](https://github.com/lekkas/c-algorithms) 597 | * Python: Zamanawï jäne öte mänerli, men onı bildim, sebebi bul öte paydalı jäne suxbatta azıraq kod jazwğa mümkindik beredi. 598 | 599 | Bul meniñ basımdılığım. Siz öziñizge unaytın närseni jasaysız, ärïne. 600 | 601 | Bul sizge qajet bolmawı mümkin, biraq jaña tildi üyrenwge arnalğan birneşe sayttar: 602 | - [Jattığw](https://exercism.org/tracks) 603 | - [Codewars](http://www.codewars.com) 604 | - [Codility](https://codility.com/programmers/) 605 | - [HackerEarth](https://www.hackerearth.com/) 606 | - [Sphere Online Judge (spoj)](http://www.spoj.com/) 607 | - [Codechef](https://www.codechef.com/) 608 | - [Kod küşteri](https://codeforces.com/) 609 | - [Scaler taqırıptarı](https://www.scaler.com/topics/) 610 | 611 | ### Kodtaw suxbatı üşin 612 | 613 | Suxbattıñ kodtaw böligin orındaw üşin öziñizge ıñğaylı tildi paydalanwğa boladı, biraq iri kompanïyalar üşin bul durıs tañdaw: 614 | 615 | - C++ 616 | - Java 617 | - Python 618 | 619 | Siz olardı da paydalana alasız, biraq aldımen oqıp şığıñız. Eskertwler bolwı mümkin: 620 | 621 | - JavaScript 622 | - Rwbïn 623 | 624 | Suxbat üşin tildi tañdaw twralı jazğan maqalam: 625 | [Kodtaw suxbatı üşin bir tildi tañdañız](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/). 626 | Bul meniñ postıma negizdelgen tüpnusqa maqala: [Suxbattar üşin bağdarlamalaw tilin tañdaw](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- jumıs/) 627 | 628 | Siz tilde öte ıñğaylı jäne bilimdi bolwıñız kerek. 629 | 630 | 631 | Таңдау туралы толығырақ оқыңыз: 632 | - [Кодтау сұхбаты үшін дұрыс тілді таңдаңыз](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/) 633 | 634 | [Тілге қатысты ресурстарды осы жерден қараңыз](programming-language-resources.md) 635 | 636 | ## Деректер құрылымдары мен алгоритмдерге арналған кітаптар 637 | 638 | Бұл кітап сіздің информатика ғылымының негізін қалады. 639 | 640 | Сізге ыңғайлы тілде біреуін ғана таңдаңыз. Сіз көп оқумен және кодтаумен айналысатын боласыз. 641 | 642 | ### C 643 | 644 | - [C тіліндегі алгоритмдер, 1-5 бөліктері (бума), 3-ші басылым](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080) 645 | - Негіздер, деректер құрылымдары, сұрыптау, іздеу және графикалық алгоритмдер 646 | 647 | ### Python 648 | 649 | - [Python тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/) 650 | - Гудрих, Тамассия, Голдвассер 651 | - Маған бұл кітап ұнады. Ол барлығын және т.б. қамтыды. 652 | - Питоникалық код 653 | - менің жарқыраған кітабым туралы есеп: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/ 654 | 655 | ### Java 656 | 657 | Сенің таңдауың: 658 | 659 | - Гудрих, Тамассия, Голдвассер 660 | - [Java тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/) 661 | - Седжвик пен Уэйн: 662 | - [Алгоритмдер](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/) 663 | - Кітапты қамтитын тегін Coursera курсы (авторлар үйретеді!): 664 | - [Algorithms I](https://www.coursera.org/learn/algorithms-part1) 665 | - [Алгоритмдер II](https://www.coursera.org/learn/algorithms-part2) 666 | 667 | ### C++ 668 | Tañdaw twralı tolığıraq oqıñız: 669 | - [Kodtaw suxbatı üşin durıs tildi tañdañız](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/) 670 | 671 | [Tilge qatıstı reswrstardı osı jerden qarañız](programming-language-resources.md) 672 | 673 | ## Derekter qurılımdarı men algorïtmderge arnalğan kitaptar 674 | 675 | Bul kitap sizdiñ ïnformatïka ğılımınıñ negizin qaladı. 676 | 677 | Sizge ıñğaylı tilde birewin ğana tañdañız. Siz köp oqwmen jäne kodtawmen aynalısatın bolasız. 678 | 679 | ### C 680 | 681 | - [C tilindegi algorïtmder, 1-5 bölikteri (bwma), 3-şi basılım](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080) 682 | - Negizder, derekter qurılımdarı, surıptaw, izdew jäne grafïkalıq algorïtmder 683 | 684 | ### Python 685 | 686 | - [Python tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/) 687 | - Gwdrïx, Tamassïya, Goldvasser 688 | - Mağan bul kitap unadı. Ol barlığın jäne t.b. qamtıdı. 689 | - Pïtonïkalıq kod 690 | - meniñ jarqırağan kitabım twralı esep: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/ 691 | 692 | ### Java 693 | 694 | Seniñ tañdawıñ: 695 | 696 | - Gwdrïx, Tamassïya, Goldvasser 697 | - [Java tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/) 698 | - Sedjvïk pen Wéyn: 699 | - [Algorïtmder](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/) 700 | - Kitaptı qamtïtın tegin Coursera kwrsı (avtorlar üyretedi!): 701 | - [Algorithms I](https://www.coursera.org/learn/algorithms-part1) 702 | - [Algorïtmder II](https://www.coursera.org/learn/algorithms-part2) 703 | 704 | ### C++ 705 | 706 | Сенің таңдауың: 707 | 708 | - Гудрих, Тамассия және тау 709 | - [C++ тіліндегі деректер құрылымдары мен алгоритмдері, 2-ші басылым](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275) 710 | - Седжвик пен Уэйн 711 | - [C++ тіліндегі алгоритмдер, 1-4 бөлімдер: негіздері, деректер құрылымы, сұрыптау, іздеу](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/) 712 | - [C++ тіліндегі алгоритмдер 5-бөлім: Графикалық алгоритмдер](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/) 713 | 714 | ## Сұхбатқа дайындық кітаптары 715 | 716 | Сізге бұлардың жиынтығын сатып алудың қажеті жоқ. Шынымды айтсам, «кодтау сұхбатын бұзу» жеткілікті шығар, 717 | бірақ мен өзіме көбірек тәжірибе беру үшін көбірек сатып алдым. Бірақ мен әрқашан тым көп істеймін. 718 | 719 | Мен бұл екеуін де сатып алдым. Олар маған көп тәжірибе берді. 720 | 721 | - [Ашық болған сұхбаттарды бағдарламалау: сұхбат арқылы жолыңызды кодтау, 4-ші басылым](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/) 722 | - C++ және Java тілінде жауаптар 723 | - Бұл кодтау сұхбатын бұзу үшін жақсы қыздыру 724 | - Өте қиын емес. Көптеген мәселелер сұхбатта көретіннен оңай болуы мүмкін (мен оқығанымнан) 725 | - [Кодтау сұхбатын бұзу, 6-шы басылым](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) 726 | - Java тілінде жауаптар 727 | 728 | ### Егер сізде қосымша уақыт болса: 729 | 730 | Біреуін таңдаңыз: 731 | 732 | - [Бағдарламалау сұхбаттарының элементтері (C++ нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) 733 | - [Python тіліндегі сұхбаттарды бағдарламалау элементтері](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/) 734 | - [Бағдарламалау сұхбаттарының элементтері (Java нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) 735 | Seniñ tañdawıñ: 736 | 737 | - Gwdrïx, Tamassïya jäne taw 738 | - [C++ tilindegi derekter qurılımdarı men algorïtmderi, 2-şi basılım](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275) 739 | - Sedjvïk pen Wéyn 740 | - [C++ tilindegi algorïtmder, 1-4 bölimder: negizderi, derekter qurılımı, surıptaw, izdew](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/) 741 | - [C++ tilindegi algorïtmder 5-bölim: Grafïkalıq algorïtmder](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/) 742 | 743 | ## Suxbatqa dayındıq kitaptarı 744 | 745 | Sizge bulardıñ jïıntığın satıp alwdıñ qajeti joq. Şınımdı aytsam, «kodtaw suxbatın buzw» jetkilikti şığar, 746 | biraq men özime köbirek täjirïbe berw üşin köbirek satıp aldım. Biraq men ärqaşan tım köp isteymin. 747 | 748 | Men bul ekewin de satıp aldım. Olar mağan köp täjirïbe berdi. 749 | 750 | - [Aşıq bolğan suxbattardı bağdarlamalaw: suxbat arqılı jolıñızdı kodtaw, 4-şi basılım](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/) 751 | - C++ jäne Java tilinde jawaptar 752 | - Bul kodtaw suxbatın buzw üşin jaqsı qızdırw 753 | - Öte qïın emes. Köptegen mäseleler suxbatta köretinnen oñay bolwı mümkin (men oqığanımnan) 754 | - [Kodtaw suxbatın buzw, 6-şı basılım](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) 755 | - Java tilinde jawaptar 756 | 757 | ### Eger sizde qosımşa waqıt bolsa: 758 | 759 | Birewin tañdañız: 760 | 761 | - [Bağdarlamalaw suxbattarınıñ élementteri (C++ nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) 762 | - [Python tilindegi suxbattardı bağdarlamalaw élementteri](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/) 763 | - [Bağdarlamalaw suxbattarınıñ élementteri (Java nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) 764 | 765 | - [Компаньон жобасы - Кітаптағы әрбір мәселеге арналған әдістемелер мен сынақ жағдайлары](https://github.com/gardncl/elements-of-programming-interviews) 766 | 767 | ## Менің қателіктерімді жасама 768 | 769 | Бұл тізім бірнеше ай бойы өсті және иә, ол бақылаудан шықты. 770 | 771 | Сізге жақсырақ тәжірибе алу үшін мен бірнеше қателіктер жібердім. Ал сіз айлар уақытыңызды үнемдейсіз. 772 | 773 | ### 1. Сіз мұның бәрін есте сақтамайсыз 774 | 775 | Мен бірнеше сағат бейнелерді көрдім және көптеген жазбалар алдым, ал бірнеше ай өткен соң есімде жоқ көп нәрсе болды. Мен 3 күн жүрдім 776 | Жазбаларым арқылы және флешкарталар жасау арқылы, мен қарап шығу үшін. Маған бұл білімнің бәрі қажет емес еді. 777 | 778 | Менің қателіктерімді жібермеу үшін оқыңыз: 779 | 780 | [Информатика білімін сақтау](https://startupnextdoor.com/retaining-computer-science-knowledge/). 781 | 782 | ### 2. Flashcards пайдаланыңыз 783 | 784 | Мәселені шешу үшін мен шағын флэшкарталар сайтын жасадым, онда мен 2 түрдегі флэшкарталарды қоса аламын: жалпы және код. 785 | Әр картаның пішімі әртүрлі. Мен қай жерде болсам да, телефонда немесе планшетте қарап шығу үшін мобильді веб-сайт жасадым. 786 | 787 | Өзіңізді тегін жасаңыз: 788 | 789 | - [Flashcards сайтының репосы](https://github.com/jwasham/computer-science-flash-cards) 790 | 791 | **Флешкарталарымды пайдалануды ұсынбаймын.** Олардың саны тым көп және олардың көпшілігі сізге қажет емес ұсақ-түйектер. 792 | 793 | Бірақ мені тыңдағың келмесе, мынаны айтасың: 794 | - [Менің флэш карталарымның дерекқорым (1200 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db): 795 | - [Менің флэш карталарымның дерекқорым (экстремалды - 1800 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db): 796 | - [Kompanon jobası - Kitaptağı ärbir mäselege arnalğan ädistemeler men sınaq jağdayları](https://github.com/gardncl/elements-of-programming-interviews) 797 | 798 | ## Meniñ qatelikterimdi jasama 799 | 800 | Bul tizim birneşe ay boyı östi jäne ïä, ol baqılawdan şıqtı. 801 | 802 | Sizge jaqsıraq täjirïbe alw üşin men birneşe qatelikter jiberdim. Al siz aylar waqıtıñızdı ünemdeysiz. 803 | 804 | ### 1. Siz munıñ bärin este saqtamaysız 805 | 806 | Men birneşe sağat beynelerdi kördim jäne köptegen jazbalar aldım, al birneşe ay ötken soñ esimde joq köp närse boldı. Men 3 kün jürdim 807 | Jazbalarım arqılı jäne fleşkartalar jasaw arqılı, men qarap şığw üşin. Mağan bul bilimniñ bäri qajet emes edi. 808 | 809 | Meniñ qatelikterimdi jibermew üşin oqıñız: 810 | 811 | [Ïnformatïka bilimin saqtaw](https://startupnextdoor.com/retaining-computer-science-knowledge/). 812 | 813 | ### 2. Flashcards paydalanıñız 814 | 815 | Mäseleni şeşw üşin men şağın fléşkartalar saytın jasadım, onda men 2 türdegi fléşkartalardı qosa alamın: jalpı jäne kod. 816 | Är kartanıñ pişimi ärtürli. Men qay jerde bolsam da, telefonda nemese planşette qarap şığw üşin mobïldi veb-sayt jasadım. 817 | 818 | Öziñizdi tegin jasañız: 819 | 820 | - [Flashcards saytınıñ reposı](https://github.com/jwasham/computer-science-flash-cards) 821 | 822 | **Fleşkartalarımdı paydalanwdı usınbaymın.** Olardıñ sanı tım köp jäne olardıñ köpşiligi sizge qajet emes usaq-tüyekter. 823 | 824 | Biraq meni tıñdağıñ kelmese, mınanı aytasıñ: 825 | - [Meniñ fléş kartalarımnıñ derekqorım (1200 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db): 826 | - [Meniñ fléş kartalarımnıñ derekqorım (ékstremaldı - 1800 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db): 827 | 828 | Есіңізде болсын, мен шектен шығып кеттім және ассемблер тілі мен Python тривиасынан бастап машиналық оқыту мен статистикаға дейін барлығын қамтитын карталарым бар. 829 | Бұл талап етілетін нәрсе үшін тым көп. 830 | 831 | **Флешкарталар туралы ескертпе:** Жауапты білетіндігіңізді бірінші рет танысаңыз, оны белгілі деп белгілемеңіз. Сіз көруіңіз керек 832 | сол картаны және оны шынымен білмей тұрып, оған бірнеше рет дұрыс жауап беріңіз. Қайталау бұл білімді тереңдетеді 833 | сіздің миыңыз. 834 | 835 | Менің флэшкарта сайтымды пайдаланудың баламасы [Anki](http://ankisrs.net/), ол маған бірнеше рет ұсынылды. 836 | Ол есте сақтауға көмектесу үшін қайталау жүйесін пайдаланады. Бұл пайдаланушыға ыңғайлы, барлық платформаларда қол жетімді және бұлтты синхрондау жүйесі бар. 837 | Оның құны iOS жүйесінде $25, бірақ басқа платформаларда тегін. 838 | 839 | Anki пішіміндегі флэшкарта дерекқорым: https://ankiweb.net/shared/info/25173560 (рахмет [@xiewenya](https://github.com/xiewenya)). 840 | 841 | Кейбір студенттер бос орынмен пішімдеу мәселелерін атап өтті, оларды келесі әрекеттерді орындау арқылы шешуге болады: палубаны ашу, картаны өңдеу, карталарды басу, «стильдеу» радио түймешігін таңдау, «ақ кеңістік: pre;» мүшесін қосу. карта класына. 842 | 843 | ### 3. Оқу барысында сұхбат сұрақтарын кодтаңыз 844 | 845 | БҰЛ ӨТЕ МАҢЫЗДЫ. 846 | 847 | Деректер құрылымдары мен алгоритмдерін үйрену кезінде сұхбат сұрақтарын кодтауды бастаңыз. 848 | 849 | Сіз үйреніп жатқан нәрсені мәселелерді шешуге қолдануыңыз керек, әйтпесе ұмытып кетесіз. Мен бұл қателік жасадым. 850 | 851 | Тақырыпты біліп болғаннан кейін және онымен өзіңізді біршама ыңғайлы сезінесіз, мысалы, **байланысты тізімдер**: 852 | 1. [кодтау сұхбат кітаптарының] (#interview-prep-books) бірін ашыңыз (немесе төменде берілген кодтау мәселесіне арналған веб-сайттар) 853 | 1. Байланыстырылған тізімдерге қатысты 2 немесе 3 сұрақ қойыңыз. 854 | 1. Келесі оқу тақырыбына көшу. 855 | 1. Кейінірек кері оралып, басқа 2 немесе 3 байланыстырылған тізім мәселесін орындаңыз. 856 | 1. Мұны әрбір жаңа тақырыпты үйренген сайын орындаңыз. 857 | 858 | **Мәселелерді кейін емес, осының бәрін үйреніп жатқанда жасай беріңіз.** 859 | 860 | Сіз білім үшін емес, білімді қалай қолданасыз. 861 | 862 | Бұл үшін төменде келтірілген көптеген ресурстар бар. Жалғастыру. 863 | 864 | ### 4. Фокус 865 | 866 | Қымбат уақытты алатын көптеген алаңдаушылықтар бар. Фокус пен шоғырлану қиын. Музыканы қосыңыз 867 | мәтінсіз және сіз өте жақсы назар аудара аласыз. 868 | 869 | ## Нені көрмейсіз 870 | 871 | Бұл кең таралған технологиялар, бірақ осы зерттеу жоспарының бөлігі емес: 872 | 873 | - SQL 874 | - Javascript 875 | - HTML, CSS және басқа интерфейстік технологиялар 876 | 877 | ## Күнделікті жоспар 878 | 879 | Бұл курс көптеген тақырыптарды қамтиды. Олардың әрқайсысы сізге бірнеше күн немесе тіпті бір апта немесе одан да көп уақытты алады. Бұл сіздің кестеңізге байланысты. 880 | 881 | Күн сайын тізімдегі келесі тақырыпты алыңыз, сол тақырып бойынша бірнеше бейнелерді қараңыз, содан кейін іске асыруды жазыңыз 882 | осы курс үшін таңдаған тілдегі деректер құрылымы немесе алгоритм. 883 | Esiñizde bolsın, men şekten şığıp kettim jäne assembler tili men Python trïvïasınan bastap maşïnalıq oqıtw men statïstïkağa deyin barlığın qamtïtın kartalarım bar. 884 | Bul talap etiletin närse üşin tım köp. 885 | 886 | **Fleşkartalar twralı eskertpe:** Jawaptı biletindigiñizdi birinşi ret tanısañız, onı belgili dep belgilemeñiz. Siz körwiñiz kerek 887 | sol kartanı jäne onı şınımen bilmey turıp, oğan birneşe ret durıs jawap beriñiz. Qaytalaw bul bilimdi tereñdetedi 888 | sizdiñ mïıñız. 889 | 890 | Meniñ fléşkarta saytımdı paydalanwdıñ balaması [Anki](http://ankisrs.net/), ol mağan birneşe ret usınıldı. 891 | Ol este saqtawğa kömektesw üşin qaytalaw jüyesin paydalanadı. Bul paydalanwşığa ıñğaylı, barlıq platformalarda qol jetimdi jäne bulttı sïnxrondaw jüyesi bar. 892 | Onıñ qunı iOS jüyesinde $25, biraq basqa platformalarda tegin. 893 | 894 | Anki pişimindegi fléşkarta derekqorım: https://ankiweb.net/shared/info/25173560 (raxmet [@xiewenya](https://github.com/xiewenya)). 895 | 896 | Keybir stwdentter bos orınmen pişimdew mäselelerin atap ötti, olardı kelesi äreketterdi orındaw arqılı şeşwge boladı: palwbanı aşw, kartanı öñdew, kartalardı basw, «stïldew» radïo tüymeşigin tañdaw, «aq keñistik: pre;» müşesin qosw. karta klasına. 897 | 898 | ### 3. Oqw barısında suxbat suraqtarın kodtañız 899 | 900 | BUL ÖTE MAÑIZDI. 901 | 902 | Derekter qurılımdarı men algorïtmderin üyrenw kezinde suxbat suraqtarın kodtawdı bastañız. 903 | 904 | Siz üyrenip jatqan närseni mäselelerdi şeşwge qoldanwıñız kerek, äytpese umıtıp ketesiz. Men bul qatelik jasadım. 905 | 906 | Taqırıptı bilip bolğannan keyin jäne onımen öziñizdi birşama ıñğaylı sezinesiz, mısalı, **baylanıstı tizimder**: 907 | 1. [kodtaw suxbat kitaptarınıñ] (#interview-prep-books) birin aşıñız (nemese tömende berilgen kodtaw mäselesine arnalğan veb-sayttar) 908 | 1. Baylanıstırılğan tizimderge qatıstı 2 nemese 3 suraq qoyıñız. 909 | 1. Kelesi oqw taqırıbına köşw. 910 | 1. Keyinirek keri oralıp, basqa 2 nemese 3 baylanıstırılğan tizim mäselesin orındañız. 911 | 1. Munı ärbir jaña taqırıptı üyrengen sayın orındañız. 912 | 913 | **Mäselelerdi keyin emes, osınıñ bärin üyrenip jatqanda jasay beriñiz.** 914 | 915 | Siz bilim üşin emes, bilimdi qalay qoldanasız. 916 | 917 | Bul üşin tömende keltirilgen köptegen reswrstar bar. Jalğastırw. 918 | 919 | ### 4. Fokws 920 | 921 | Qımbat waqıttı alatın köptegen alañdawşılıqtar bar. Fokws pen şoğırlanw qïın. Mwzıkanı qosıñız 922 | mätinsiz jäne siz öte jaqsı nazar awdara alasız. 923 | 924 | ## Neni körmeysiz 925 | 926 | Bul keñ taralğan texnologïyalar, biraq osı zerttew josparınıñ böligi emes: 927 | 928 | - SQL 929 | - Javascript 930 | - HTML, CSS jäne basqa ïnterfeystik texnologïyalar 931 | 932 | ## Kündelikti jospar 933 | 934 | Bul kwrs köptegen taqırıptardı qamtïdı. Olardıñ ärqaysısı sizge birneşe kün nemese tipti bir apta nemese odan da köp waqıttı aladı. Bul sizdiñ kesteñizge baylanıstı. 935 | 936 | Kün sayın tizimdegi kelesi taqırıptı alıñız, sol taqırıp boyınşa birneşe beynelerdi qarañız, sodan keyin iske asırwdı jazıñız 937 | osı kwrs üşin tañdağan tildegi derekter qurılımı nemese algorïtm. 938 | 939 | - ### Хэш кестесі 940 | - [ ] Бейнелер: 941 | - [ ] [Тізбекпен хэштеу (бейне)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8) 942 | - [ ] [Кестені еселеу, Карп-Рабин (бейне)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 943 | - [ ] [Ашық адрестеу, криптографиялық хэштеу (бейне)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 944 | - [ ] [PyCon 2010: Құдіретті сөздік (бейне)](https://www.youtube.com/watch?v=C4Kc8xzcA68) 945 | - [ ] [PyCon 2017: The Dictionary Even Mightier (бейне)](https://www.youtube.com/watch?v=66P5FMkWoVU) 946 | - [ ] [(Жетілдірілген) рандомизация: әмбебап және тамаша хэштеу (бейне)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) 947 | - [ ] [(Жетілдірілген) Керемет хэштеу (бейне)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) 948 | 949 | - [ ] Онлайн курстар: 950 | - [ ] [Негізгі хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP) 951 | - [ ] [Дерек құрылымдары (бейне)](https://www.coursera.org/learn/data-structures/home/week/4) 952 | - [ ] [Телефон кітапшасының мәселесі (бейне)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP) 953 | - [ ] таратылған хэш кестелері: 954 | - [Dropbox жүйесінде жылдам жүктеп салулар және жадты оңтайландыру (бейне)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb) 955 | - [Таратылған хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H) 956 | 957 | - [ ] Сызықтық зондтау арқылы массивпен орындаңыз 958 | - хэш(k, m) - m хэш кестесінің өлшемі 959 | - қосу(кілт, мән) - кілт бұрыннан бар болса, мәнді жаңартыңыз 960 | - бар (кілт) 961 | - алу (кілт) 962 | - жою (кілт) 963 | - ### Xéş kestesi 964 | - [ ] Beyneler: 965 | - [ ] [Tizbekpen xéştew (beyne)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8) 966 | - [ ] [Kesteni eselew, Karp-Rabïn (beyne)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 967 | - [ ] [Aşıq adrestew, krïptografïyalıq xéştew (beyne)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) 968 | - [ ] [PyCon 2010: Qudiretti sözdik (beyne)](https://www.youtube.com/watch?v=C4Kc8xzcA68) 969 | - [ ] [PyCon 2017: The Dictionary Even Mightier (beyne)](https://www.youtube.com/watch?v=66P5FMkWoVU) 970 | - [ ] [(Jetildirilgen) randomïzacïya: ämbebap jäne tamaşa xéştew (beyne)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) 971 | - [ ] [(Jetildirilgen) Keremet xéştew (beyne)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) 972 | 973 | - [ ] Onlayn kwrstar: 974 | - [ ] [Negizgi xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP) 975 | - [ ] [Derek qurılımdarı (beyne)](https://www.coursera.org/learn/data-structures/home/week/4) 976 | - [ ] [Telefon kitapşasınıñ mäselesi (beyne)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP) 977 | - [ ] taratılğan xéş kesteleri: 978 | - [Dropbox jüyesinde jıldam jüktep salwlar jäne jadtı oñtaylandırw (beyne)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb) 979 | - [Taratılğan xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H) 980 | 981 | - [ ] Sızıqtıq zondtaw arqılı massïvpen orındañız 982 | - xéş(k, m) - m xéş kestesiniñ ölşemi 983 | - qosw(kilt, män) - kilt burınnan bar bolsa, mändi jañartıñız 984 | - bar (kilt) 985 | - alw (kilt) 986 | - joyu (kilt) 987 | 988 | - ### Хабар алмасу, сериялау және кезекке қою жүйелері 989 | - [Үнемдеу](https://thrift.apache.org/) 990 | - [Оқулық](http://thrift-tutorial.readthedocs.io/en/latest/intro.html) 991 | - [Протокол буферлері](https://developers.google.com/protocol-buffers/) 992 | - [Оқулықтар](https://developers.google.com/protocol-buffers/docs/tutorials) 993 | - [gRPC](http://www.grpc.io/) 994 | - [Java әзірлеушілеріне арналған gRPC 101 (бейне)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1) 995 | - [Redis](http://redis.io/) 996 | - [Оқулық](http://try.redis.io/) 997 | - [Amazon SQS (кезек)](https://aws.amazon.com/sqs/) 998 | - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/) 999 | - [RabbitMQ](https://www.rabbitmq.com/) 1000 | - [Бастау](https://www.rabbitmq.com/getstarted.html) 1001 | - [Сельдерей](http://www.celeryproject.org/) 1002 | - [Сельдереймен алғашқы қадамдар](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html) 1003 | - [ZeroMQ](http://zeromq.org/) 1004 | - [Кіріспе - Нұсқаулықты оқу](http://zeromq.org/intro:read-the-manual) 1005 | - [ActiveMQ](http://activemq.apache.org/) 1006 | - [Кафка](http://kafka.apache.org/documentation.html#introduction) 1007 | - [MessagePack](http://msgpack.org/index.html) 1008 | - [Avro](https://avro.apache.org/) 1009 | 1010 | - ### A* 1011 | - [Іздеу алгоритмі](https://en.wikipedia.org/wiki/A*_search_algorithm) 1012 | - [A* Жолды табу (E01: алгоритмді түсіндіру) (бейне)](https://www.youtube.com/watch?v=-L-WgKMFuhE) 1013 | 1014 | - ### Жылдам Фурье түрлендіруі 1015 | - [Фурье түрлендіруіне арналған интерактивті нұсқаулық](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/) 1016 | - [Фурье түрлендіруі дегеніміз не? Ол не үшін қолданылады?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/) 1017 | - [Фурье түрлендіруі дегеніміз не? (бейне)](https://www.youtube.com/watch?v=Xxut2PN-V8Q) 1018 | - [Бөліңіз және жеңіңіз: FFT (бейне)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4) 1019 | - [ФФТ-ны түсіну](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/) 1020 | 1021 | - ### Блум сүзгісі 1022 | - m бит және k хэштеу функциялары бар Блум сүзгісін ескере отырып, кірістіру және мүшелік сынағы O(k) болып табылады. 1023 | - [Блум сүзгілері (бейне)](https://www.youtube.com/watch?v=-SuTGoFYjZs) 1024 | - [Блум сүзгілері | Жаппай деректер жиынын өндіру | Стэнфорд университеті (бейне)](https://www.youtube.com/watch?v=qBTdukbzc78) 1025 | - [Оқулық](http://billmill.org/bloomfilter-tutorial/) 1026 | - [Блум сүзгісі қолданбасын қалай жазуға болады](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/) 1027 | - ### Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri 1028 | - [Ünemdew](https://thrift.apache.org/) 1029 | - [Oqwlıq](http://thrift-tutorial.readthedocs.io/en/latest/intro.html) 1030 | - [Protokol bwferleri](https://developers.google.com/protocol-buffers/) 1031 | - [Oqwlıqtar](https://developers.google.com/protocol-buffers/docs/tutorials) 1032 | - [gRPC](http://www.grpc.io/) 1033 | - [Java äzirlewşilerine arnalğan gRPC 101 (beyne)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1) 1034 | - [Redis](http://redis.io/) 1035 | - [Oqwlıq](http://try.redis.io/) 1036 | - [Amazon SQS (kezek)](https://aws.amazon.com/sqs/) 1037 | - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/) 1038 | - [RabbitMQ](https://www.rabbitmq.com/) 1039 | - [Bastaw](https://www.rabbitmq.com/getstarted.html) 1040 | - [Selderey](http://www.celeryproject.org/) 1041 | - [Seldereymen alğaşqı qadamdar](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html) 1042 | - [ZeroMQ](http://zeromq.org/) 1043 | - [Kirispe - Nusqawlıqtı oqw](http://zeromq.org/intro:read-the-manual) 1044 | - [ActiveMQ](http://activemq.apache.org/) 1045 | - [Kafka](http://kafka.apache.org/documentation.html#introduction) 1046 | - [MessagePack](http://msgpack.org/index.html) 1047 | - [Avro](https://avro.apache.org/) 1048 | 1049 | - ### A* 1050 | - [Izdew algorïtmi](https://en.wikipedia.org/wiki/A*_search_algorithm) 1051 | - [A* Joldı tabw (E01: algorïtmdi tüsindirw) (beyne)](https://www.youtube.com/watch?v=-L-WgKMFuhE) 1052 | 1053 | - ### Jıldam Fwre türlendirwi 1054 | - [Fwre türlendirwine arnalğan ïnteraktïvti nusqawlıq](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/) 1055 | - [Fwre türlendirwi degenimiz ne? Ol ne üşin qoldanıladı?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/) 1056 | - [Fwre türlendirwi degenimiz ne? (beyne)](https://www.youtube.com/watch?v=Xxut2PN-V8Q) 1057 | - [Böliñiz jäne jeñiñiz: FFT (beyne)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4) 1058 | - [FFT-nı tüsinw](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/) 1059 | 1060 | - ### Blwm süzgisi 1061 | - m bït jäne k xéştew fwnkcïyaları bar Blwm süzgisin eskere otırıp, kiristirw jäne müşelik sınağı O(k) bolıp tabıladı. 1062 | - [Blwm süzgileri (beyne)](https://www.youtube.com/watch?v=-SuTGoFYjZs) 1063 | - [Blwm süzgileri | Jappay derekter jïının öndirw | Sténford wnïversïteti (beyne)](https://www.youtube.com/watch?v=qBTdukbzc78) 1064 | - [Oqwlıq](http://billmill.org/bloomfilter-tutorial/) 1065 | - [Blwm süzgisi qoldanbasın qalay jazwğa boladı](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/) 1066 | 1067 | - [Сарада Херкенің графикалық теориясы (67 бейне)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd) 1068 | 1069 | ## Информатика курстары 1070 | 1071 | - [Онлайн CS курстары каталогы](https://github.com/open-source-society/computer-science) 1072 | - [CS курстарының каталогы (көптеген онлайн дәрістер бар)](https://github.com/prakhar1989/awesome-courses) 1073 | 1074 | ## Алгоритмдерді енгізу 1075 | 1076 | - [Принстон университетінің бірнеше алгоритмдерді енгізуі](https://algs4.cs.princeton.edu/code) 1077 | 1078 | 1079 | ## Қағаздар 1080 | 1081 | - [Классикалық қағаздарды ұнатасыз ба?](https://www.cs.cmu.edu/~crary/819-f09/) 1082 | - [1978: Тізбекті процестермен байланысу](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf) 1083 | - [Go жүйесінде жүзеге асырылды](https://godoc.org/github.com/thomas11/csp) 1084 | - [2003: Google файлдық жүйесі](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf) 1085 | - 2012 жылы Колосспен ауыстырылды 1086 | - [2004: MapReduce: Үлкен кластерлерде оңайлатылған деректерді өңдеу]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf) 1087 | - негізінен Cloud Dataflow ауыстырылды ма? 1088 | - [2006: Bigtable: құрылымдық деректерге арналған таратылған сақтау жүйесі](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf) 1089 | - [2006: Біріктірілген таратылған жүйелерге арналған Chubby Lock қызметі](https://research.google.com/archive/chubby-osdi06.pdf) 1090 | - [2007: Динамо: Amazon-ның жоғары қолжетімді кілттер дүкені](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf) 1091 | - Динамо қағазы NoSQL революциясын бастады 1092 | - [2007: Әрбір бағдарламашы жад туралы не білуі керек (өте ұзақ және автор кейбір бөлімдерді өткізіп жіберуді ұсынады)](https://www.akkadia.org/drepper/cpumemory.pdf) 1093 | - 2012: AddressSanitizer: жылдам мекенжай санитарлық тексерушісі: 1094 | - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf) 1095 | - [бейне](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany) 1096 | - 2013: Spanner: Google-дың ғаламдық таралған дерекқоры: 1097 | - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) 1098 | - [бейне](https://www.usenix.org/node/170855) 1099 | - [2015: Google-дағы үздіксіз құбырлар](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf) 1100 | - [2015: Жаппай ауқымда жоғары қолжетімділік: Google-дың жарнамалар үшін деректер инфрақұрылымын құру](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf) 1101 | - [2015: Әзірлеушілер кодты қалай іздейді: жағдайды зерттеу](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) 1102 | - Қосымша қағаздар: [1000 қағаз](https://github.com/0voice/computer_expert_paper) 1103 | 1104 | ## ЛИЦЕНЗИЯ 1105 | 1106 | [CC-BY-SA-4.0](./LICENSE.txt) 1107 | - [Sarada Xerkeniñ grafïkalıq teorïyası (67 beyne)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd) 1108 | 1109 | ## Ïnformatïka kwrstarı 1110 | 1111 | - [Onlayn CS kwrstarı katalogı](https://github.com/open-source-society/computer-science) 1112 | - [CS kwrstarınıñ katalogı (köptegen onlayn därister bar)](https://github.com/prakhar1989/awesome-courses) 1113 | 1114 | ## Algorïtmderdi engizw 1115 | 1116 | - [Prïnston wnïversïtetiniñ birneşe algorïtmderdi engizwi](https://algs4.cs.princeton.edu/code) 1117 | 1118 | 1119 | ## Qağazdar 1120 | 1121 | - [Klassïkalıq qağazdardı unatasız ba?](https://www.cs.cmu.edu/~crary/819-f09/) 1122 | - [1978: Tizbekti procestermen baylanısw](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf) 1123 | - [Go jüyesinde jüzege asırıldı](https://godoc.org/github.com/thomas11/csp) 1124 | - [2003: Google fayldıq jüyesi](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf) 1125 | - 2012 jılı Kolosspen awıstırıldı 1126 | - [2004: MapReduce: Ülken klasterlerde oñaylatılğan derekterdi öñdew]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf) 1127 | - negizinen Cloud Dataflow awıstırıldı ma? 1128 | - [2006: Bigtable: qurılımdıq derekterge arnalğan taratılğan saqtaw jüyesi](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf) 1129 | - [2006: Biriktirilgen taratılğan jüyelerge arnalğan Chubby Lock qızmeti](https://research.google.com/archive/chubby-osdi06.pdf) 1130 | - [2007: Dïnamo: Amazon-nıñ joğarı qoljetimdi kiltter dükeni](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf) 1131 | - Dïnamo qağazı NoSQL revolyucïyasın bastadı 1132 | - [2007: Ärbir bağdarlamaşı jad twralı ne bilwi kerek (öte uzaq jäne avtor keybir bölimderdi ötkizip jiberwdi usınadı)](https://www.akkadia.org/drepper/cpumemory.pdf) 1133 | - 2012: AddressSanitizer: jıldam mekenjay sanïtarlıq tekserwşisi: 1134 | - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf) 1135 | - [beyne](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany) 1136 | - 2013: Spanner: Google-dıñ ğalamdıq taralğan derekqorı: 1137 | - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) 1138 | - [beyne](https://www.usenix.org/node/170855) 1139 | - [2015: Google-dağı üzdiksiz qubırlar](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf) 1140 | - [2015: Jappay awqımda joğarı qoljetimdilik: Google-dıñ jarnamalar üşin derekter ïnfraqurılımın qurw](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf) 1141 | - [2015: Äzirlewşiler kodtı qalay izdeydi: jağdaydı zerttew](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) 1142 | - Qosımşa qağazdar: [1000 qağaz](https://github.com/0voice/computer_expert_paper) 1143 | 1144 | ## LÏCENZÏYa 1145 | 1146 | [CC-BY-SA-4.0](./LICENSE.txt) 1147 | -------------------------------------------------------------------------------- /translations/how-to.md: -------------------------------------------------------------------------------- 1 | Please put new translation README files here. 2 | 3 | I'll migrate the existing translations when they are ready. 4 | 5 | To start a new translation, please: 6 | 7 | 1. Make an issue (for collaboration with other translators) 8 | 2. Make a pull request to collaborate and commit to. 9 | 3. Let me know when it's ready to pull. 10 | 11 | Thank you! 12 | --------------------------------------------------------------------------------