Tingkatkan Permainan Temuduga Anda dengan Masalah Latihan
pengenalan
Kepada mereka yang tidak mengenali saya, saya seorang Jurutera Frontend dengan 10+ YOE yang turut mencipta BigDevSoon - SaaS (platform pembelajaran kod generasi seterusnya di mana anda belajar dengan membina bahan dari Hari 1.) 10k+ pengguna tidak lama lagi/ $1k MRR bulan ini.
Walaupun saya seronok membina UI moden dalam React, transformasi peranan "Frontend" selama ini memaksa saya berkali-kali untuk menjadi pembangun Full-Stack, mencipta BFF (Backend untuk Frontend), menganalisis dan berfikir dengan teliti banyak struktur data dan berfungsi dengan pangkalan data. Dengan cara lain, kami bukan lagi Pembangun "Tapak Web" dan untuk mengikuti perkembangan, kami perlu belajar dan menyesuaikan diri sepanjang masa.
Dalam masa pasaran yang sukar hari ini, saya mengambil masa lebih daripada sebulan untuk mendapatkan pekerjaan terbaru saya, anda boleh membaca tentang perjalanan ini di sini. Dengan mengisar temu bual seperti maraton dengan selalunya 10+ peringkat, saya memahami corak baharu dan cara kita perlu menyesuaikan diri dengan pekerjaan darat dengan lebih mudah.
Salah satu corak yang saya perhatikan ialah komunikasi dan kemahiran insaniah, mis. "Rakam video alu-aluan anda dan beritahu kami sesuatu tentang diri anda." atau 3x+ temu bual tingkah laku/budaya "Apakah yang anda akan lakukan dalam situasi x dan mengapa, terangkan." tetapi ia adalah topik untuk hari yang berbeza yang saya tidak akan bincangkan dalam siaran ini.
Hanya satu perkara yang akan saya nyatakan untuk perkara di atas dan ia patut dilakukan jika anda belum lagi "pengaruh", cuba merakam diri anda dan juga cuba melakukan ciri demo yang anda buat, projek sampingan atau perkenalkan diri anda dan kerjaya anda (cth. ringkaskan resume anda, pengalaman, projek masa lalu dalam maks. 3-5 minit). Anda akan mendengar ini dan mungkin mengetahui bahawa suara anda terlalu senyap atau anda terlalu menekankan di hadapan kamera. Ia adalah satu latihan yang baik untuk mengatasi ketakutan itu dan bayangkan melalui 9/10 peringkat dan gagal bercakap dengan CEO/TL/Pengurus hanya kerana anda tidak mengamalkannya. Sayang sekali.
Topik lain ialah masalah amalan yang terkenal tetapi percayalah, anda tidak perlu menguasai keseluruhan DSA termasuk perkara seperti algoritma Dijkstra atau pokok Merah-hitam (walaupun ia akan membantu untuk menghadiri temu duga seterusnya).
Apa yang diperlukan hanyalah sedikit penggilingan dan persediaan supaya anda tidak akan terperangkap dan dapat menyelesaikan "masalah kecil" ini yang banyak syarikat gunakan hari ini untuk menapis calon dan tidak membuang masa untuk temu duga yang panjang dengan melaburkan sumber mereka (cth. orang yang perlu menemu duga dan sebagainya)
Apa yang kurang daripada "Waterfall" Devs selepas kem/kursus permulaan ialah kemahiran menyelesaikan masalah, program ini sering membantu anda dan tidak membenarkan anda berfikir sendiri - tidak mengatakan ia salah tetapi untuk menjadi lebih baik. teknik yang berbeza diperlukan dan untuk temu duga yang berjaya di bawah tekanan, ia adalah satu perubahan besar untuk dapat dengan cepat menghasilkan penyelesaian kepada masalah yang anda akui 10 minit yang lalu dan penemuduga menjangkakan ia dapat diselesaikan dalam masa kurang daripada satu jam.
Mari kita ketahui lebih lanjut tentang perkara ini daripada salah satu contoh yang saya alami, dan kemudian saya akan berkongsi tabiat harian yang membantu saya dalam temu duga saya dan mengemukakan beberapa masalah amalan penyelesaian masalah yang berbaloi.
Masalah Palindrom
Jadi palindrom ialah nilai yang berbunyi sama dari ke belakang atau ke hadapan. Cth. kereta lumba ialah palindrom tetapi hello bukan palindrom kerana apabila anda membalikkan nilai itu ia akan menjadi olleh sebaliknya.
Saya sedang menelefon seorang perekrut dari salah satu syarikat yang saya mohon dan kami mengadakan perbincangan ringkas kerana ia merupakan salah satu peringkat pertama dalam syarikat itu. Dan kini BOOM, 10 minit terakhir temu duga "Hei, satu soalan terakhir, bolehkah anda menulis penyelesaian kod untuk masalah palindrom?" ... dan saya terperangkap sedikit.
Tetapi kami mendapat ini, melompat ke https://jsfiddle.net/ serta-merta dan menulis:
function isPalindrome(string) { return string.split('').reverse().join('') === string; }
Bangga dengan diri sendiri, tetapi perekrut berkata "Tolong jangan gunakan kaedah terbina dalam.".
Ok, tiada masalah sama sekali, kita kehabisan masa tidak lama lagi tetapi saya mendapat ini.
Luangkan sedikit masa untuk mencari penyelesaian yang bodoh, seperti ini:
function isPalindrome(string) { let isValid = true; for (let i = 0; i < string.length / 2; i++) { if (string[i] !== string[string.length - i - 1]) { isValid = false; } } return isValid; }
dan sudah tentu, perekrut mula bercakap tentang notasi Big O. Kami berbual lagi dan saya ditangkap, terkedu sekali lagi.
Katakan penyelesaian yang boleh diterima ialah seperti ini:
function isPalindrome(string) { const normalizedString = string .toLowerCase() // Convert to lowercase .replace(/[^a-z0-9]/g, ''); // Remove non-alphanumeric characters for (let i = 0; i < normalizedString.length / 2; i++) { if (normalizedString[i] !== normalizedString[normalizedString.length - i - 1]) { return false; } } return true; }
Kami melakukan 2 perkara di sini, pertama, kami menormalkan rentetan jadi untuk Seorang lelaki, pelan, terusan: Panama kami mendapat amanaplanacanalpanama dan kami berhenti daripada gelung lebih awal daripada sentiasa melelang melalui "nilai separuh melalui rentetan".
Ini hanya satu contoh tetapi mari kita pelajari apa yang salah berlaku.
- Kurang komunikasi, saya langsung tidak bertanya sama ada perekrut itu bermaksud pseudo-kod, mahu membuat jenis yang ketat seperti TypeScript, atau jika biola adalah pilihan yang betul.
- Saya tidak mengesahkan sama ada boleh menggunakan Google/ChatGPT (ia adalah perkara yang sangat mudah untuk diselesaikan tetapi saya hampir tiada masa dan selepas menulis satu baris, saya semakin terganggu).
- Saya menyatakan bahawa penyelesaian terakhir saya boleh diperbaiki tetapi kami tidak mempunyai masa untuk menuliskannya. Mungkin ia adalah soalan temu bual yang pelik untuk menangkap saya pada akhirnya tetapi dengan bertanya soalan yang betul seperti "Bolehkah saya menggunakan kaedah terbina dalam, sekiranya saya menggunakan gelung untuknya, sekiranya saya menulis pseudo-kod atau penyelesaian yang berfungsi, bolehkah saya google /ChatGPT?" Pasti akan menjimatkan banyak masa saya.
Pengajaran yang dipelajari, saya mula menggiling leetcode. Sentiasa 1+ masalah setiap hari tetapi kebanyakannya memilih daripada kesukaran Mudah/Sederhana dan cuba menumpukan pada masalah yang "adalah sifat manusia" kerana perekrut biasanya menggunakan ini, mis. Masa Terbaik untuk Membeli dan Menjual Saham Saya telah diberikan sebagai tugas di salah satu syarikat seterusnya yang saya mohon dan menyelesaikannya. Saya suka bertanya kepada ChatGPT tentang syarikat yang saya mohon dan mengesyorkan masalah amalan yang mungkin berkaitan, malah menambah beberapa mesej daripada perekrut sebagai konteks tambahan. (Ya, anda boleh bertanya kepada mereka melalui e-mel apa yang diharapkan semasa temu duga jika mereka tidak menerangkannya dengan baik).
Selepas beberapa lama anda akan mula melihat corak, masalah Tatasusunan, Masalah rentetan, menyambung kepingan dan menjadi lebih baik kerana kaedah yang anda gunakan untuk menyelesaikan masalah ini boleh dikongsi walaupun jika kes ujian berbeza atau sifat masalah adalah berbeza sama sekali.
Masalah yang patut diperiksa
Ketika kami menambah lebih banyak ciri pada platform kami, saya akan melakukan palam yang tidak tahu malu ke hadapan dengan Masalah Amalan di BigDevSoon, 41 daripadanya sekarang, cuba untuk memastikan perkara mudah (KISS) dan menyusun masalah yang paling berkaitan + beberapa lagi untuk memanaskan badan (Tahap mudah).
Saya menyenaraikan 10 daripadanya di bawah yang saya rasa berbaloi untuk diselesaikan.
1. Palindrom
2. Cari Maks
3. Masa Terbaik untuk Membeli dan Menjual Saham
4. Bekas dengan Kebanyakan Air
5. Kira Vovel
6. Anagram Kumpulan
7. Mampatan Tali
8. Subset
9. Top N Perkataan Kerap
10. Cari Semua Pendua dalam Tatasusunan
Ringkasan
Dan itu sahaja! Terdapat banyak perkara untuk dipelajari daripada masalah amalan ini, setiap satu cara yang menyeronokkan untuk mengaktifkan otak anda.
Sudah menjadi matlamat saya sejak sekian lama untuk menyebarkan pendekatan pembelajaran berasaskan projek melalui komuniti dan menyediakan dan menjalankan BigDevSoon, sebuah aplikasi yang telah kami usahakan selama 3 tahun yang lalu. Ia satu pencapaian yang hebat untuk kami.
Pastikan codin' BESAR! ?♂️
Atas ialah kandungan terperinci Tingkatkan Permainan Temuduga Anda dengan Masalah Latihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.
