Rumah > hujung hadapan web > tutorial js > Tingkatkan Permainan Temuduga Anda dengan Masalah Latihan

Tingkatkan Permainan Temuduga Anda dengan Masalah Latihan

WBOY
Lepaskan: 2024-08-21 06:18:02
asal
1084 orang telah melayarinya

Level Up Your Interview Game with Practice Problems

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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.

  1. 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.
  2. 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).
  3. 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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan