Мен мұны бастапқыда бағдарламалық жасақтама инженері болу үшін оқу тақырыптарының қысқаша тізімі ретінде жасадым, бірақ ол бүгін көріп отырған үлкен тізімге дейін өсті. Осы оқу жоспарын орындағаннан кейін мен жұмысқа қабылдандым Amazon-да бағдарламалық жасақтаманы әзірлеу инженері ретінде! Мен сияқты көп оқудың қажеті жоқ шығар. Қалай болғанда да, сізге қажет нәрсенің бәрі осында.
Мен бірнеше ай бойы күніне 8-12 сағат оқыдым. Бұл менің оқиғам: [Google сұхбаты үшін неліктен мен 8 ай бойы толық уақытты оқыдым](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
Назар аударыңыз: Сізге мен сияқты көп оқудың қажеті жоқ. Мен көп уақытымды қажет емес нәрселерге жұмсадым. Бұл туралы қосымша ақпарат төменде. Мен сізге қымбат уақытыңызды жоғалтпай жетуге көмектесемін.
Мұнда келтірілген элементтер сізді кез келген бағдарламалық жасақтама компаниясында техникалық сұхбатқа жақсы дайындайды, алыптарды қоса алғанда: Amazon, Facebook, Google және Microsoft.
Men munı bastapqıda bağdarlamalıq jasaqtama ïnjeneri bolw üşin oqw taqırıptarınıñ qısqaşa tizimi retinde jasadım, 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 Amazon-da bağdarlamalıq jasaqtamanı äzirlew ïnjeneri retinde! Men sïyaqtı köp oqwdıñ qajeti joq şığar. Qalay bolğanda da, sizge qajet närseniñ bäri osında.
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)
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.
Munda keltirilgen élementter sizdi kez kelgen bağdarlamalıq jasaqtama kompanïyasında texnïkalıq suxbatqa jaqsı dayındaydı, alıptardı qosa alğanda: Amazon, Facebook, Google jäne Microsoft.
Сәттілік сізге!
<толығырақ>
- 中文版本
- Tiếng Việt - вьетнамша
- Español
- Português Brasileiro
- Польша
- 繁體中文
- Жапондық (日本語)
- Орыс
- Неміс
- Бахаса Индонезия
- ខ្មែរ - кхмер
- Өзбек
- Болгар
- বাংলা - Bangla
<tolığıraq>
- zhōng wén bǎn běn
- Tiếng Việt - vetnamşa
- Español
- Português Brasileiro
- Polşa
- fán tǐ zhōng wén
- Japondıq (rì běn yǔ)
- Orıs
- Nemis
- Baxasa Ïndonezïya
- ខ្មែរ - kxmer
- Özbek
- Bolgar
- bānlā - Bangla
Translations in progress:
Become a sponsor and support Coding Interview University!
Special thanks to:
Dev environments built for the cloud
Бұл менің ірі компанияда бағдарламалық жасақтама инженері болу үшін көп айлық оқу жоспарым.
Міндетті:
- Кодтау бойынша аз тәжірибе (айнымалылар, циклдар, әдістер/функциялар және т.б.)
- Сабыр
- Уақыт
Бұл веб-әзірлеуге емес, бағдарламалық қамтамасыз ету инженериясына арналған оқу жоспары екенін ескеріңіз. Google, Amazon сияқты ірі бағдарламалық қамтамасыз ету компаниялары, Facebook және Microsoft бағдарламалық жасақтаманы веб-әзірлеуден өзгеше деп санайды. Мысалы, Amazon бар Frontend инженерлері (FEE) және бағдарламалық жасақтаманы әзірлеу инженерлері (SDE). Бұл 2 бөлек рөл және сұхбат олар бірдей болмайды, өйткені әрқайсысының өз құзыреті бар. Бұл компаниялар үшін информатика білімі қажет бағдарламалық қамтамасыз етуді әзірлеу/инженерлік рөлдер.
- Бұл не?
- Неге оны пайдалану керек?
- [Қалай пайдалану керек](#қалай-пайдалану керек)
- [Өзіңізді жеткілікті ақылды емес деп санамаңыз](#сізді жеткілікті түрде ақылды-сезінбеңіз)
- Бейне ресурстары туралы ескертпе
- Бағдарламалау тілін таңдау
- [Дерек құрылымдары мен алгоритмдеріне арналған кітаптар](#деректер құрылымдары мен алгоритмдеріне арналған кітаптар)
- Интервьюге дайындық кітаптары
- Менің қателіктерімді жасамаңыз
- Жабықпен сіз көрмейсіз
- Күнделікті жоспар
- Сұрақтарды кодтау тәжірибесі
- Кодтау мәселелері
Bul meniñ iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolw üşin köp aylıq oqw josparım.
Mindetti:
- Kodtaw boyınşa az täjirïbe (aynımalılar, cïkldar, ädister/fwnkcïyalar jäne t.b.)
- Sabır
- Waqıt
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ı, Facebook jäne Microsoft bağdarlamalıq jasaqtamanı veb-äzirlewden özgeşe dep sanaydı. Mısalı, Amazon bar Frontend ïnjenerleri (FEE) jäne bağdarlamalıq jasaqtamanı äzirlew ïnjenerleri (SDE). Bul 2 bölek röl jäne suxbat olar birdey bolmaydı, öytkeni ärqaysısınıñ öz quzıreti bar. Bul kompanïyalar üşin ïnformatïka bilimi qajet bağdarlamalıq qamtamasız etwdi äzirlew/ïnjenerlik rölder.
- Bul ne?
- Nege onı paydalanw kerek?
- [Qalay paydalanw kerek](#qalay-paydalanw kerek)
- [Öziñizdi jetkilikti aqıldı emes dep sanamañız](#sizdi jetkilikti türde aqıldı-sezinbeñiz)
- Beyne reswrstarı twralı eskertpe
- Bağdarlamalaw tilin tañdaw
- [Derek qurılımdarı men algorïtmderine arnalğan kitaptar](#derekter qurılımdarı men algorïtmderine arnalğan kitaptar)
- Ïntervyuge dayındıq kitaptarı
- Meniñ qatelikterimdi jasamañız
- Jabıqpen siz körmeysiz
- Kündelikti jospar
- Suraqtardı kodtaw täjirïbesi
- Kodtaw mäseleleri
- Алгоритмдік күрделілік / Үлкен-О / Асимптотикалық талдау
- [Дерек құрылымдары](#деректер құрылымдары)
- Қосымша білім
- [Екілік іздеу](#екілік іздеу)
- [биттік операциялар](#биттік операциялар)
- Ағаштар
- Ағаштар - Жазбалар және фон
- Екілік іздеу ағаштары: BSTs
- Үйме / Басымдық кезек / Екілік үйме
- теңдестірілген іздеу ағаштары (детальдар емес, жалпы түсінік)
- өтулер: алдын ала тапсырыс, тапсырыс, кейінгі тапсырыс, BFS, DFS
- Сұрыптау
- таңдау
- кірістіру
- үйінді сұрыптау
- жылдам сұрыптау
- біріктіру сұрыптауы
- Графиктер
- бағыттады
- бағытталмаған
- көршілестік матрицасы
- іргелес тізім
- өтулер: BFS, DFS
- Одан да көп білім
- Рекурсия
- Динамикалық бағдарламалау
- Дизайн үлгілері
- Комбинаторика (n таңдау k) & Ықтималдық
- [NP, NP-Толық және жуықтау алгоритмдері](#np-np-толық-және жуықтау-алгоритмдері)
- [Компьютерлер бағдарламаны қалай өңдейді](#қалай-компьютерлер-бағдарламаны өңдейді)
- Кэштер
- Процестер мен ағындар
- Тестілеу
- Жолды іздеу және манипуляциялар
- [Әрекет](# тырысады)
- [Жылжымалы нүкте сандары](#жылжымалы нүкте сандары)
- Юникод
- Endianness
- Networking
- [Қорытынды шолу](#соңғы шолу)
- [Түйіндемеңізді жаңарту](#жаңарту-өз түйіндемеңіз)
- [Жұмыс табу](#жұмыс табу)
- Интервью процесі және жалпы сұхбатқа дайындық
- [Сұхбат қашан келетінін ойлаңыз](#сұхбат келгенде-ойланыңыз)
- [Сұхбат алушыға сұрақтарыңыз бар](#сұхбат алушыға-сұрақтарыңыз бар)
- [Жұмысқа қол жеткізгеннен кейін](#бір рет-жұмысқа-алғаннан кейін)
---------------- Осы тармақтың астындағылардың барлығы міндетті емес ----------------
- Algorïtmdik kürdelilik / Ülken-O / Asïmptotïkalıq taldaw
- [Derek qurılımdarı](#derekter qurılımdarı)
- Massïvter
- Baylanıstırılğan tizimder
- Stek
- Kezek
- Xéş kestesi
- Qosımşa bilim
- [Ekilik izdew](#ekilik izdew)
- [bïttik operacïyalar](#bïttik operacïyalar)
- Ağaştar
- Ağaştar - Jazbalar jäne fon
- Ekilik izdew ağaştarı: BSTs
- Üyme / Basımdıq kezek / Ekilik üyme
- teñdestirilgen izdew ağaştarı (detaldar emes, jalpı tüsinik)
- ötwler: aldın ala tapsırıs, tapsırıs, keyingi tapsırıs, BFS, DFS
- Surıptaw
- tañdaw
- kiristirw
- üyindi surıptaw
- jıldam surıptaw
- biriktirw surıptawı
- Grafïkter
- bağıttadı
- bağıttalmağan
- körşilestik matrïcası
- irgeles tizim
- ötwler: BFS, DFS
- Odan da köp bilim
- Rekwrsïya
- Dïnamïkalıq bağdarlamalaw
- Dïzayn ülgileri
- Kombïnatorïka (n tañdaw k) & Iqtïmaldıq
- [NP, NP-Tolıq jäne jwıqtaw algorïtmderi](#np-np-tolıq-jäne jwıqtaw-algorïtmderi)
- [Kompyuterler bağdarlamanı qalay öñdeydi](#qalay-kompyuterler-bağdarlamanı öñdeydi)
- Kéşter
- Procester men ağındar
- Testilew
- Joldı izdew jäne manïpwlyacïyalar
- [Äreket](# tırısadı)
- [Jıljımalı nükte sandarı](#jıljımalı nükte sandarı)
- Yunïkod
- Endianness
- Networking
- [Qorıtındı şolw](#soñğı şolw)
- [Tüyindemeñizdi jañartw](#jañartw-öz tüyindemeñiz)
- [Jumıs tabw](#jumıs tabw)
- Ïntervyu procesi jäne jalpı suxbatqa dayındıq
- [Suxbat qaşan keletinin oylañız](#suxbat kelgende-oylanıñız)
- [Suxbat alwşığa suraqtarıñız bar](#suxbat alwşığa-suraqtarıñız bar)
- [Jumısqa qol jetkizgennen keyin](#bir ret-jumısqa-alğannan keyin)
---------------- Osı tarmaqtıñ astındağılardıñ barlığı mindetti emes ----------------
- [Қосымша кітаптар](#қосымша кітаптар)
- [Жүйені жобалау, масштабтау, деректерді өңдеу](#жүйе дизайны-масштабтау-деректерді өңдеу) (4 жылдан астам тәжірибеңіз болса)
- Қосымша оқыту
- Құрастырушылар
- Emacs және vi(m)
- [Unix пәрмен жолы құралдары](#unix-командалық жол құралдары)
- Ақпарат теориясы
- Паритет және Хамминг коды
- Энтропия
- Криптография
- Сығу
- [Компьютер қауіпсіздігі](#компьютер қауіпсіздігі)
- [Қоқыс жинау](#қоқыс жинау)
- [Параллельді бағдарламалау](#параллельді бағдарламалау)
- Хабар алмасу, сериялау және кезекке қою жүйелері
- A*
- Fast Furier Transform
- Блум сүзгісі
- HyperLogLog
- Жергілікті-сезімтал хэштеу
- ван Эмде Боас ағаштары
- Толықтырылған деректер құрылымдары
- [Балансталған іздеу ағаштары](#балансталған іздеу ағаштары)
- AVL ағаштары
- Ағаштар
- қызыл/қара ағаштар
- 2-3 іздеу ағаштары
- 2-3-4 ағаш (2-4 ағаш)
- N-ары (Қ-ары, М-ары) ағаштары
- В-ағаштар
- k-D ағаштары
- [Тізімдерді өткізіп жіберу](#өткізу тізімдері)
- [Желі ағындары](#желі ағындары)
- Ажыратылған жиындар және одақтарды табу
- [Жылдам өңдеуге арналған математика](#жылдам өңдеуге арналған математика)
- Треап
- Сызықтық бағдарламалау
- Геометрия, дөңес корпус
- Дискретті математика
- [Кейбір тақырыптар бойынша қосымша мәліметтер](кейбір тақырыптар бойынша #қосымша-деталь)
- [Бейне сериясы](#бейне сериясы)
- Информатика курстары
- Қағаздар
- [Qosımşa kitaptar](#qosımşa kitaptar)
- [Jüyeni jobalaw, masştabtaw, derekterdi öñdew](#jüye dïzaynı-masştabtaw-derekterdi öñdew) (4 jıldan astam täjirïbeñiz bolsa)
- Qosımşa oqıtw
- Qurastırwşılar
- Emacs jäne vi(m)
- [Unix pärmen jolı quraldarı](#unix-komandalıq jol quraldarı)
- Aqparat teorïyası
- Parïtet jäne Xammïng kodı
- Éntropïya
- Krïptografïya
- Sığw
- [Kompyuter qawipsizdigi](#kompyuter qawipsizdigi)
- [Qoqıs jïnaw](#qoqıs jïnaw)
- [Paralleldi bağdarlamalaw](#paralleldi bağdarlamalaw)
- Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri
- A*
- Fast Furier Transform
- Blwm süzgisi
- HyperLogLog
- Jergilikti-sezimtal xéştew
- van Émde Boas ağaştarı
- Tolıqtırılğan derekter qurılımdarı
- [Balanstalğan izdew ağaştarı](#balanstalğan izdew ağaştarı)
- AVL ağaştarı
- Ağaştar
- qızıl/qara ağaştar
- 2-3 izdew ağaştarı
- 2-3-4 ağaş (2-4 ağaş)
- N-arı (Q-arı, M-arı) ağaştarı
- V-ağaştar
- k-D ağaştarı
- [Tizimderdi ötkizip jiberw](#ötkizw tizimderi)
- [Jeli ağındarı](#jeli ağındarı)
- Ajıratılğan jïındar jäne odaqtardı tabw
- [Jıldam öñdewge arnalğan matematïka](#jıldam öñdewge arnalğan matematïka)
- Treap
- Sızıqtıq bağdarlamalaw
- Geometrïya, döñes korpws
- Dïskretti matematïka
- [Keybir taqırıptar boyınşa qosımşa mälimetter](keybir taqırıptar boyınşa #qosımşa-detal)
- [Beyne serïyası](#beyne serïyası)
- Ïnformatïka kwrstarı
- Qağazdar
Егер сіз ірі компанияда бағдарламалық жасақтама инженері болып жұмыс істегіңіз келсе, бұл сізге білу керек нәрселер.
Егер сіз мен сияқты информатика бойынша ғылыми дәреже алуды жіберіп алсаңыз, бұл сізді қуып жетіп, өміріңіздің төрт жылын сақтайды.
Мен бұл жобаны бастаған кезде, мен үйіндіден стекті білмедім, Big-O ештеңе білмедім, ағаштар туралы ештеңе білмедім немесе қалай істеу керектігін білмедім. графикті айналып өту. Егер мен сұрыптау алгоритмін кодтауым керек болса, бұл қорқынышты болар еді деп айта аламын. Мен пайдаланған әрбір деректер құрылымы тілге салынған және мен олардың қалай жұмыс істейтінін білмедім мүлде капюшонның астында. Мен іске қосып жатқан процесс «шығын» бермейінше, жадты ешқашан басқаруға тура келмеді жад» қатесі пайда болды, содан кейін уақытша шешім табуым керек еді. Мен өмірімде бірнеше көп өлшемді массивтерді қолдандым және мыңдаған ассоциативті массивтер, бірақ мен ешқашан деректер құрылымдарын нөлден жасаған емеспін.
Бұл ұзақ жоспар. Бұл сізге айлар алуы мүмкін. Егер сіз мұның көп бөлігімен таныс болсаңыз, бұл сізге әлдеқайда аз уақыт алады.
Төмендегілердің бәрі контур, сондықтан элементтерді жоғарыдан төменге қарай ретімен шешу керек.
Мен GitHub-тың арнайы белгілеу дәмін, соның ішінде орындалу барысын бақылау үшін тапсырмалар тізімдерін пайдаланамын.
Бұл бетте жоғарғы жағындағы Код түймесін басыңыз, содан кейін «ZIP жүктеп алу» түймесін басыңыз. Файлды ашыңыз және мәтіндік файлдармен жұмыс істей аласыз.
Белгілеуді түсінетін код өңдегішінде ашық болсаңыз, барлығы жақсы пішімделгенін көресіз.
Мынадай элементтерді тексеру үшін жаңа тармақ жасаңыз, жақшаға x белгісін қойыңыз: [x]
- GitHub репосын ашыңыз:
https://github.com/jwasham/coding-interview-university
Fork түймесін басу арқылы.
Eger siz iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolıp jumıs istegiñiz kelse, bul sizge bilw kerek närseler.
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ı.
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. 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. Men paydalanğan ärbir derekter qurılımı tilge salınğan jäne men olardıñ qalay jumıs isteytinin bilmedim mülde kapyuşonnıñ astında. Men iske qosıp jatqan process «şığın» bermeyinşe, jadtı eşqaşan basqarwğa twra kelmedi 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 mıñdağan assocïatïvti massïvter, biraq men eşqaşan derekter qurılımdarın nölden jasağan emespin.
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ı.
Tömendegilerdiñ bäri kontwr, sondıqtan élementterdi joğarıdan tömenge qaray retimen şeşw kerek.
Men GitHub-tıñ arnayı belgilew dämin, sonıñ işinde orındalw barısın baqılaw üşin tapsırmalar tizimderin paydalanamın.
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.
Belgilewdi tüsinetin kod öñdegişinde aşıq bolsañız, barlığı jaqsı pişimdelgenin köresiz.
Mınaday élementterdi tekserw üşin jaña tarmaq jasañız, jaqşağa x belgisin qoyıñız: [x]
- GitHub reposın aşıñız:
https://github.com/jwasham/coding-interview-university
Fork tüymesin basw arqılı.
-
Жергілікті репоға клондау:
git clone [email protected]:<your_github_username>/coding-interview-university.git CD кодтау-сұхбат-университет git checkout -b прогресс git қашықтан jwasham қосу https://github.com/jwasham/coding-interview-university git fetch --барлығы
-
Өзгерістерді аяқтағаннан кейін барлық ұяшықтарды X белгісімен белгілеңіз:
git қосу. git commit -m «X белгіленген» git rebase jwasham/main git push --set-upstream бастапқы прогресті git push --force
- Табысты бағдарламалық жасақтама инженерлері ақылды, бірақ олардың көпшілігі жеткілікті ақылды емес деген сенімсіздікке ие.
- Келесі бейнелер осы сенімсіздікті жеңуге көмектесуі мүмкін:
Кейбір бейнелер Coursera немесе EdX сыныбына тіркелу арқылы ғана қолжетімді. Бұлар MOOC деп аталады. Кейде сабақтар сессияда болмайды, сондықтан сізге бірнеше ай күтуге тура келеді, сондықтан сізде кіру мүмкіндігі болмайды.
Онлайн курс ресурстарын тегін және әрқашан қолжетімді жалпыға қолжетімді көздермен алмастыру тамаша болар еді, мысалы, YouTube бейнелері (жақсырақ университет лекциялары), сондықтан сіз кез келген уақытта оларды оқи аласыз, белгілі бір онлайн курс сессияда болғанда ғана емес.
Сізге кодтау сұхбаттары үшін бағдарламалау тілін таңдау керек, бірақ сізге информатика ұғымдарын зерттеу үшін қолдануға болатын тілді табу қажет болады.
Тіл бірдей болғаны дұрыс, сондықтан сізге тек біреуін білу керек.
Мен оқу жоспарын жасаған кезде оның көп бөлігінде 2 тілді қолдандым: C және Python
- C: Өте төмен деңгей. Көрсеткіштермен және жадты бөлу/бөлумен жұмыс істеуге мүмкіндік береді, осылайша деректер құрылымдарын сезінесіз
және сүйектеріңіздегі алгоритмдер. Python немесе Java сияқты жоғары деңгейлі тілдерде олар сізден жасырылады. Күнделікті жұмыста бұл керемет,
бірақ сіз осы төмен деңгейлі деректер құрылымдарының қалай салынғанын үйреніп жатқанда, металға жақын сезіну өте жақсы.
- C барлық жерде бар. Сіз оқу кезінде мысалдарды кітаптардан, лекциялардан, бейнелерден, барлық жерде көресіз.
- The C бағдарламалау тілі, 2-том
- Jergilikti repoğa klondaw:
git clone [email protected]:<your_github_username>/coding-interview-university.git
CD kodtaw-suxbat-wnïversïtet
git checkout -b progress
git qaşıqtan jwasham qosw https://github.com/jwasham/coding-interview-university
git fetch --barlığı
- Özgeristerdi ayaqtağannan keyin barlıq uyaşıqtardı X belgisimen belgileñiz:
git qosw.
git commit -m «X belgilengen»
git rebase jwasham/main
git push --set-upstream bastapqı progresti
git push --force
- Tabıstı bağdarlamalıq jasaqtama ïnjenerleri aqıldı, biraq olardıñ köpşiligi jetkilikti aqıldı emes degen senimsizdikke ïe.
- Kelesi beyneler osı senimsizdikti jeñwge kömekteswi mümkin:
- Danışpan programmïst twralı mïf
- Jalğız jürw qawipti: texnologïyadağı körinbeytin qubıjıqtarmen küresw
Keybir beyneler Coursera nemese EdX sınıbına tirkelw arqılı ğana qoljetimdi. Bular MOOC dep ataladı. Keyde sabaqtar sessïyada bolmaydı, sondıqtan sizge birneşe ay kütwge twra keledi, sondıqtan sizde kirw mümkindigi bolmaydı.
Onlayn kwrs reswrstarın tegin jäne ärqaşan qoljetimdi jalpığa qoljetimdi közdermen almastırw tamaşa bolar edi, mısalı, YouTube beyneleri (jaqsıraq wnïversïtet lekcïyaları), sondıqtan siz kez kelgen waqıtta olardı oqï alasız, belgili bir onlayn kwrs sessïyada bolğanda ğana emes.
Sizge kodtaw suxbattarı üşin bağdarlamalaw tilin tañdaw kerek, biraq sizge ïnformatïka uğımdarın zerttew üşin qoldanwğa bolatın tildi tabw qajet boladı.
Til birdey bolğanı durıs, sondıqtan sizge tek birewin bilw kerek.
Men oqw josparın jasağan kezde onıñ köp böliginde 2 tildi qoldandım: C jäne Python
- 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 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, 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ı.
-
C barlıq jerde bar. Siz oqw kezinde mısaldardı kitaptardan, lekcïyalardan, beynelerden, barlıq jerde köresiz.
-
Бұл қысқа кітап, бірақ ол сізге Си тілін жақсы меңгеруге мүмкіндік береді және егер сіз оны аздап үйренсеңіз тез шеберлікке ие боласыз. Си түсіну бағдарламалар мен жадтың қалай жұмыс істейтінін түсінуге көмектеседі. - Кітаптың тереңіне барудың (тіпті оны аяқтаудың) қажеті жоқ. Си тілінде оқуға және жазуға ыңғайлы жерге жетіңіз. - Кітаптағы сұрақтарға жауаптар
- Python: Заманауи және өте мәнерлі, мен оны білдім, себебі бұл өте пайдалы және сұхбатта азырақ код жазуға мүмкіндік береді.
Бұл менің басымдылығым. Сіз өзіңізге ұнайтын нәрсені жасайсыз, әрине.
Бұл сізге қажет болмауы мүмкін, бірақ жаңа тілді үйренуге арналған бірнеше сайттар:
- Жаттығу
- Codewars
- Codility
- HackerEarth
- Sphere Online Judge (spoj)
- Codechef
- Код күштері
- Scaler тақырыптары
Сұхбаттың кодтау бөлігін орындау үшін өзіңізге ыңғайлы тілді пайдалануға болады, бірақ ірі компаниялар үшін бұл дұрыс таңдау:
- C++
- Java
- Python
Сіз оларды да пайдалана аласыз, бірақ алдымен оқып шығыңыз. Ескертулер болуы мүмкін:
- JavaScript
- Рубин
Сұхбат үшін тілді таңдау туралы жазған мақалам: Кодтау сұхбаты үшін бір тілді таңдаңыз. Бұл менің постыма негізделген түпнұсқа мақала: [Сұхбаттар үшін бағдарламалау тілін таңдау](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- жұмыс/)
Сіз тілде өте ыңғайлы және білімді болуыңыз керек.
- Bul qısqa kitap, biraq ol sizge Sï tilin jaqsı meñgerwge mümkindik beredi jäne eger siz onı azdap üyrenseñiz tez şeberlikke ïe bolasız. Sï tüsinw bağdarlamalar men jadtıñ qalay jumıs isteytinin tüsinwge kömektesedi.
- Kitaptıñ tereñine barwdıñ (tipti onı ayaqtawdıñ) qajeti joq. Sï tilinde oqwğa jäne jazwğa ıñğaylı jerge jetiñiz.
- Kitaptağı suraqtarğa jawaptar
- 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.
Bul meniñ basımdılığım. Siz öziñizge unaytın närseni jasaysız, ärïne.
Bul sizge qajet bolmawı mümkin, biraq jaña tildi üyrenwge arnalğan birneşe sayttar:
- Jattığw
- Codewars
- Codility
- HackerEarth
- Sphere Online Judge (spoj)
- Codechef
- Kod küşteri
- Scaler taqırıptarı
Suxbattıñ kodtaw böligin orındaw üşin öziñizge ıñğaylı tildi paydalanwğa boladı, biraq iri kompanïyalar üşin bul durıs tañdaw:
- C++
- Java
- Python
Siz olardı da paydalana alasız, biraq aldımen oqıp şığıñız. Eskertwler bolwı mümkin:
- JavaScript
- Rwbïn
Suxbat üşin tildi tañdaw twralı jazğan maqalam: Kodtaw suxbatı üşin bir tildi tañdañız. 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/)
Siz tilde öte ıñğaylı jäne bilimdi bolwıñız kerek.
Таңдау туралы толығырақ оқыңыз:
Тілге қатысты ресурстарды осы жерден қараңыз
Бұл кітап сіздің информатика ғылымының негізін қалады.
Сізге ыңғайлы тілде біреуін ғана таңдаңыз. Сіз көп оқумен және кодтаумен айналысатын боласыз.
- C тіліндегі алгоритмдер, 1-5 бөліктері (бума), 3-ші басылым
- Негіздер, деректер құрылымдары, сұрыптау, іздеу және графикалық алгоритмдер
- Python тіліндегі деректер құрылымдары мен алгоритмдері
- Гудрих, Тамассия, Голдвассер
- Маған бұл кітап ұнады. Ол барлығын және т.б. қамтыды.
- Питоникалық код
- менің жарқыраған кітабым туралы есеп: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
Сенің таңдауың:
- Гудрих, Тамассия, Голдвассер
- Седжвик пен Уэйн:
- Алгоритмдер
- Кітапты қамтитын тегін Coursera курсы (авторлар үйретеді!):
Tañdaw twralı tolığıraq oqıñız:
Tilge qatıstı reswrstardı osı jerden qarañız
Bul kitap sizdiñ ïnformatïka ğılımınıñ negizin qaladı.
Sizge ıñğaylı tilde birewin ğana tañdañız. Siz köp oqwmen jäne kodtawmen aynalısatın bolasız.
- C tilindegi algorïtmder, 1-5 bölikteri (bwma), 3-şi basılım
- Negizder, derekter qurılımdarı, surıptaw, izdew jäne grafïkalıq algorïtmder
- Python tilindegi derekter qurılımdarı men algorïtmderi
- Gwdrïx, Tamassïya, Goldvasser
- Mağan bul kitap unadı. Ol barlığın jäne t.b. qamtıdı.
- Pïtonïkalıq kod
- meniñ jarqırağan kitabım twralı esep: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
Seniñ tañdawıñ:
- Gwdrïx, Tamassïya, Goldvasser
- Java tilindegi derekter qurılımdarı men algorïtmderi
- Sedjvïk pen Wéyn:
- Algorïtmder
- Kitaptı qamtïtın tegin Coursera kwrsı (avtorlar üyretedi!):
- Algorithms I
- Algorïtmder II
Сенің таңдауың:
- Гудрих, Тамассия және тау
- Седжвик пен Уэйн
Сізге бұлардың жиынтығын сатып алудың қажеті жоқ. Шынымды айтсам, «кодтау сұхбатын бұзу» жеткілікті шығар, бірақ мен өзіме көбірек тәжірибе беру үшін көбірек сатып алдым. Бірақ мен әрқашан тым көп істеймін.
Мен бұл екеуін де сатып алдым. Олар маған көп тәжірибе берді.
- Ашық болған сұхбаттарды бағдарламалау: сұхбат арқылы жолыңызды кодтау, 4-ші басылым
- C++ және Java тілінде жауаптар
- Бұл кодтау сұхбатын бұзу үшін жақсы қыздыру
- Өте қиын емес. Көптеген мәселелер сұхбатта көретіннен оңай болуы мүмкін (мен оқығанымнан)
- Кодтау сұхбатын бұзу, 6-шы басылым
- Java тілінде жауаптар
Біреуін таңдаңыз:
-
Бағдарламалау сұхбаттарының элементтері (Java нұсқасы) Seniñ tañdawıñ:
-
Gwdrïx, Tamassïya jäne taw
-
C++ tilindegi derekter qurılımdarı men algorïtmderi, 2-şi basılım
-
Sedjvïk pen Wéyn
-
C++ tilindegi algorïtmder, 1-4 bölimder: negizderi, derekter qurılımı, surıptaw, izdew
Sizge bulardıñ jïıntığın satıp alwdıñ qajeti joq. Şınımdı aytsam, «kodtaw suxbatın buzw» jetkilikti şığar, 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.
Men bul ekewin de satıp aldım. Olar mağan köp täjirïbe berdi.
- Aşıq bolğan suxbattardı bağdarlamalaw: suxbat arqılı jolıñızdı kodtaw, 4-şi basılım
- C++ jäne Java tilinde jawaptar
- Bul kodtaw suxbatın buzw üşin jaqsı qızdırw
- Öte qïın emes. Köptegen mäseleler suxbatta köretinnen oñay bolwı mümkin (men oqığanımnan)
- Kodtaw suxbatın buzw, 6-şı basılım
- Java tilinde jawaptar
Birewin tañdañız:
Бұл тізім бірнеше ай бойы өсті және иә, ол бақылаудан шықты.
Сізге жақсырақ тәжірибе алу үшін мен бірнеше қателіктер жібердім. Ал сіз айлар уақытыңызды үнемдейсіз.
Мен бірнеше сағат бейнелерді көрдім және көптеген жазбалар алдым, ал бірнеше ай өткен соң есімде жоқ көп нәрсе болды. Мен 3 күн жүрдім Жазбаларым арқылы және флешкарталар жасау арқылы, мен қарап шығу үшін. Маған бұл білімнің бәрі қажет емес еді.
Менің қателіктерімді жібермеу үшін оқыңыз:
Мәселені шешу үшін мен шағын флэшкарталар сайтын жасадым, онда мен 2 түрдегі флэшкарталарды қоса аламын: жалпы және код. Әр картаның пішімі әртүрлі. Мен қай жерде болсам да, телефонда немесе планшетте қарап шығу үшін мобильді веб-сайт жасадым.
Өзіңізді тегін жасаңыз:
Флешкарталарымды пайдалануды ұсынбаймын. Олардың саны тым көп және олардың көпшілігі сізге қажет емес ұсақ-түйектер.
Бірақ мені тыңдағың келмесе, мынаны айтасың:
- Менің флэш карталарымның дерекқорым (1200 карта):
- Менің флэш карталарымның дерекқорым (экстремалды - 1800 карта):
- Kompanon jobası - Kitaptağı ärbir mäselege arnalğan ädistemeler men sınaq jağdayları
Bul tizim birneşe ay boyı östi jäne ïä, ol baqılawdan şıqtı.
Sizge jaqsıraq täjirïbe alw üşin men birneşe qatelikter jiberdim. Al siz aylar waqıtıñızdı ünemdeysiz.
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 Jazbalarım arqılı jäne fleşkartalar jasaw arqılı, men qarap şığw üşin. Mağan bul bilimniñ bäri qajet emes edi.
Meniñ qatelikterimdi jibermew üşin oqıñız:
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. Är kartanıñ pişimi ärtürli. Men qay jerde bolsam da, telefonda nemese planşette qarap şığw üşin mobïldi veb-sayt jasadım.
Öziñizdi tegin jasañız:
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.
Biraq meni tıñdağıñ kelmese, mınanı aytasıñ:
- Meniñ fléş kartalarımnıñ derekqorım (1200 karta):
- Meniñ fléş kartalarımnıñ derekqorım (ékstremaldı - 1800 karta):
Есіңізде болсын, мен шектен шығып кеттім және ассемблер тілі мен Python тривиасынан бастап машиналық оқыту мен статистикаға дейін барлығын қамтитын карталарым бар. Бұл талап етілетін нәрсе үшін тым көп.
Флешкарталар туралы ескертпе: Жауапты білетіндігіңізді бірінші рет танысаңыз, оны белгілі деп белгілемеңіз. Сіз көруіңіз керек сол картаны және оны шынымен білмей тұрып, оған бірнеше рет дұрыс жауап беріңіз. Қайталау бұл білімді тереңдетеді сіздің миыңыз.
Менің флэшкарта сайтымды пайдаланудың баламасы Anki, ол маған бірнеше рет ұсынылды. Ол есте сақтауға көмектесу үшін қайталау жүйесін пайдаланады. Бұл пайдаланушыға ыңғайлы, барлық платформаларда қол жетімді және бұлтты синхрондау жүйесі бар. Оның құны iOS жүйесінде $25, бірақ басқа платформаларда тегін.
Anki пішіміндегі флэшкарта дерекқорым: https://ankiweb.net/shared/info/25173560 (рахмет @xiewenya).
Кейбір студенттер бос орынмен пішімдеу мәселелерін атап өтті, оларды келесі әрекеттерді орындау арқылы шешуге болады: палубаны ашу, картаны өңдеу, карталарды басу, «стильдеу» радио түймешігін таңдау, «ақ кеңістік: pre;» мүшесін қосу. карта класына.
БҰЛ ӨТЕ МАҢЫЗДЫ.
Деректер құрылымдары мен алгоритмдерін үйрену кезінде сұхбат сұрақтарын кодтауды бастаңыз.
Сіз үйреніп жатқан нәрсені мәселелерді шешуге қолдануыңыз керек, әйтпесе ұмытып кетесіз. Мен бұл қателік жасадым.
Тақырыпты біліп болғаннан кейін және онымен өзіңізді біршама ыңғайлы сезінесіз, мысалы, байланысты тізімдер:
- [кодтау сұхбат кітаптарының] (#interview-prep-books) бірін ашыңыз (немесе төменде берілген кодтау мәселесіне арналған веб-сайттар)
- Байланыстырылған тізімдерге қатысты 2 немесе 3 сұрақ қойыңыз.
- Келесі оқу тақырыбына көшу.
- Кейінірек кері оралып, басқа 2 немесе 3 байланыстырылған тізім мәселесін орындаңыз.
- Мұны әрбір жаңа тақырыпты үйренген сайын орындаңыз.
Мәселелерді кейін емес, осының бәрін үйреніп жатқанда жасай беріңіз.
Сіз білім үшін емес, білімді қалай қолданасыз.
Бұл үшін төменде келтірілген көптеген ресурстар бар. Жалғастыру.
Қымбат уақытты алатын көптеген алаңдаушылықтар бар. Фокус пен шоғырлану қиын. Музыканы қосыңыз мәтінсіз және сіз өте жақсы назар аудара аласыз.
Бұл кең таралған технологиялар, бірақ осы зерттеу жоспарының бөлігі емес:
- SQL
- Javascript
- HTML, CSS және басқа интерфейстік технологиялар
Бұл курс көптеген тақырыптарды қамтиды. Олардың әрқайсысы сізге бірнеше күн немесе тіпті бір апта немесе одан да көп уақытты алады. Бұл сіздің кестеңізге байланысты.
Күн сайын тізімдегі келесі тақырыпты алыңыз, сол тақырып бойынша бірнеше бейнелерді қараңыз, содан кейін іске асыруды жазыңыз осы курс үшін таңдаған тілдегі деректер құрылымы немесе алгоритм. 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. Bul talap etiletin närse üşin tım köp.
Fleşkartalar twralı eskertpe: Jawaptı biletindigiñizdi birinşi ret tanısañız, onı belgili dep belgilemeñiz. Siz körwiñiz kerek 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 sizdiñ mïıñız.
Meniñ fléşkarta saytımdı paydalanwdıñ balaması Anki, ol mağan birneşe ret usınıldı. 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. Onıñ qunı iOS jüyesinde $25, biraq basqa platformalarda tegin.
Anki pişimindegi fléşkarta derekqorım: https://ankiweb.net/shared/info/25173560 (raxmet @xiewenya).
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.
BUL ÖTE MAÑIZDI.
Derekter qurılımdarı men algorïtmderin üyrenw kezinde suxbat suraqtarın kodtawdı bastañız.
Siz üyrenip jatqan närseni mäselelerdi şeşwge qoldanwıñız kerek, äytpese umıtıp ketesiz. Men bul qatelik jasadım.
Taqırıptı bilip bolğannan keyin jäne onımen öziñizdi birşama ıñğaylı sezinesiz, mısalı, baylanıstı tizimder:
- [kodtaw suxbat kitaptarınıñ] (#interview-prep-books) birin aşıñız (nemese tömende berilgen kodtaw mäselesine arnalğan veb-sayttar)
- Baylanıstırılğan tizimderge qatıstı 2 nemese 3 suraq qoyıñız.
- Kelesi oqw taqırıbına köşw.
- Keyinirek keri oralıp, basqa 2 nemese 3 baylanıstırılğan tizim mäselesin orındañız.
- Munı ärbir jaña taqırıptı üyrengen sayın orındañız.
Mäselelerdi keyin emes, osınıñ bärin üyrenip jatqanda jasay beriñiz.
Siz bilim üşin emes, bilimdi qalay qoldanasız.
Bul üşin tömende keltirilgen köptegen reswrstar bar. Jalğastırw.
Qımbat waqıttı alatın köptegen alañdawşılıqtar bar. Fokws pen şoğırlanw qïın. Mwzıkanı qosıñız mätinsiz jäne siz öte jaqsı nazar awdara alasız.
Bul keñ taralğan texnologïyalar, biraq osı zerttew josparınıñ böligi emes:
- SQL
- Javascript
- HTML, CSS jäne basqa ïnterfeystik texnologïyalar
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ı.
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 osı kwrs üşin tañdağan tildegi derekter qurılımı nemese algorïtm.
-
-
Бейнелер:
-
Онлайн курстар:
-
Сызықтық зондтау арқылы массивпен орындаңыз
- хэш(k, m) - m хэш кестесінің өлшемі
- қосу(кілт, мән) - кілт бұрыннан бар болса, мәнді жаңартыңыз
- бар (кілт)
- алу (кілт)
- жою (кілт)
-
-
Beyneler:
-
(Jetildirilgen) randomïzacïya: ämbebap jäne tamaşa xéştew (beyne)
-
Onlayn kwrstar:
-
taratılğan xéş kesteleri:
-
Dropbox jüyesinde jıldam jüktep salwlar jäne jadtı oñtaylandırw (beyne)
-
Sızıqtıq zondtaw arqılı massïvpen orındañız
-
xéş(k, m) - m xéş kestesiniñ ölşemi
-
qosw(kilt, män) - kilt burınnan bar bolsa, mändi jañartıñız
-
bar (kilt)
-
alw (kilt)
-
joyu (kilt)
-
- m бит және k хэштеу функциялары бар Блум сүзгісін ескере отырып, кірістіру және мүшелік сынағы O(k) болып табылады.
- Блум сүзгілері (бейне)
- Блум сүзгілері | Жаппай деректер жиынын өндіру | Стэнфорд университеті (бейне)
- Оқулық
- Блум сүзгісі қолданбасын қалай жазуға болады
-
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ı.
-
Blwm süzgileri | Jappay derekter jïının öndirw | Sténford wnïversïteti (beyne)
- Классикалық қағаздарды ұнатасыз ба?
- 1978: Тізбекті процестермен байланысу
- 2003: Google файлдық жүйесі
- 2012 жылы Колосспен ауыстырылды
- 2004: MapReduce: Үлкен кластерлерде оңайлатылған деректерді өңдеу
- негізінен Cloud Dataflow ауыстырылды ма?
- 2006: Bigtable: құрылымдық деректерге арналған таратылған сақтау жүйесі
- 2006: Біріктірілген таратылған жүйелерге арналған Chubby Lock қызметі
- 2007: Динамо: Amazon-ның жоғары қолжетімді кілттер дүкені
- Динамо қағазы NoSQL революциясын бастады
- 2007: Әрбір бағдарламашы жад туралы не білуі керек (өте ұзақ және автор кейбір бөлімдерді өткізіп жіберуді ұсынады)
- 2012: AddressSanitizer: жылдам мекенжай санитарлық тексерушісі:
- 2013: Spanner: Google-дың ғаламдық таралған дерекқоры:
- 2015: Google-дағы үздіксіз құбырлар
- 2015: Жаппай ауқымда жоғары қолжетімділік: Google-дың жарнамалар үшін деректер инфрақұрылымын құру
- 2015: Әзірлеушілер кодты қалай іздейді: жағдайды зерттеу
- Қосымша қағаздар: 1000 қағаз
- Klassïkalıq qağazdardı unatasız ba?
- 1978: Tizbekti procestermen baylanısw
- Go jüyesinde jüzege asırıldı
- 2003: Google fayldıq jüyesi
- 2012 jılı Kolosspen awıstırıldı
- 2004: MapReduce: Ülken klasterlerde oñaylatılğan derekterdi öñdew
- negizinen Cloud Dataflow awıstırıldı ma?
- 2006: Bigtable: qurılımdıq derekterge arnalğan taratılğan saqtaw jüyesi
- 2006: Biriktirilgen taratılğan jüyelerge arnalğan Chubby Lock qızmeti
- 2007: Dïnamo: Amazon-nıñ joğarı qoljetimdi kiltter dükeni
- Dïnamo qağazı NoSQL revolyucïyasın bastadı
- 2007: Ärbir bağdarlamaşı jad twralı ne bilwi kerek (öte uzaq jäne avtor keybir bölimderdi ötkizip jiberwdi usınadı)
- 2012: AddressSanitizer: jıldam mekenjay sanïtarlıq tekserwşisi:
- qağaz
- beyne
- 2013: Spanner: Google-dıñ ğalamdıq taralğan derekqorı:
- qağaz
- beyne
- 2015: Google-dağı üzdiksiz qubırlar
- 2015: Jappay awqımda joğarı qoljetimdilik: Google-dıñ jarnamalar üşin derekter ïnfraqurılımın qurw
- 2015: Äzirlewşiler kodtı qalay izdeydi: jağdaydı zerttew
- Qosımşa qağazdar: 1000 qağaz