Bisakah python digunakan untuk wawancara koding?

Kandidat terbaik yang pernah saya wawancarai semuanya menggunakan Python 3. Saya tidak berpikir versi Python penting di sini, tapi saya pikir saya akan akurat. Jadi mari kita bicara tentang mengapa menurut saya Python adalah bahasa terbaik untuk digunakan dalam wawancara pengkodean (jika Anda sudah terbiasa dengannya)

Penafian. sebelum orang menganggap saya hanya seorang fanboy Python, saya ingin mengklarifikasi bahwa itu bukan bahasa pilihan saya, dan itu bukan sesuatu yang saya gunakan secara teratur. Saya dapat menulis skrip dasar dengan Python, dan tidak akan sulit bagi saya untuk mempelajarinya kembali dengan cepat. Tapi saya tidak akan menempatkan diri saya bahkan dekat dengan kamp Python berdasarkan keterampilan dan pengalaman saya. Jadi mudah-mudahan, itu membuktikan bahwa saya tidak bias di sini

Lekukan > sistem kurung kurawal

Sebagai pewawancara, saya tidak bisa mengatakan apa pun selama wawancara yang secara langsung membantu kandidat, atau mereka akan dinilai karena komentar saya. Jadi bayangkan betapa menyakitkan bagi saya melihat orang menghabiskan beberapa menit mencoba memperbaiki braket keriting yang hilang

Mungkin terdengar bodoh untuk menyarankan tanda kurung adalah masalah besar. Namun saat wawancara, orang cenderung membuat lebih banyak kesalahan karena tekanan waktu dan mengetahui seseorang memperhatikan kode mereka. Otak kita fokus pada pertanyaan wawancara dan tidak langsung mengambil masalah sintaksis sederhana. Pengkodean secara perlahan bukanlah pilihan untuk mendapatkan nilai terbaik karena perusahaan menginginkan solusi yang cepat dan akurat. Saat orang terburu-buru, masalah kecil seperti tanda kurung yang hilang menjadi lebih sulit dikenali. Saya pernah melihat seseorang menghabiskan 10 menit berjuang dengan masalah bracketing. Berdasarkan komentar dari pewawancara lain, saya juga bukan satu-satunya

Jika Anda tidak yakin, saya telah menyertakan beberapa cuplikan kode dasar di bawah ini untuk mengilustrasikan bagaimana tanda kurung dapat membingungkan saat membuat kode di bawah tekanan. Perlu juga dicatat bahwa blok kode cenderung lebih kompleks dan lebih lama dalam wawancara, yang membuat tanda kurung yang hilang menjadi lebih sulit.

# Python

def helloWorld:
	for i in range(len(some)):
		for j in range(len(random)):
			if falseCondition:
				for k in range(len(random)):
					...

// JavaScript

function helloWorld() {
	for (const i in some) {
		for (const j in random) {
			if (falseCondition) {
				for (const k in loop) {
					...	
				}
			}
                 }
           }
      }
}
_

Apakah Anda memperhatikan bahwa ada terlalu banyak braket dalam kode JavaScript?

Tipe dinamis = kode lebih sedikit = kode lebih cepat

Dalam hal menulis kode dengan cepat, sulit untuk bahasa yang diketik secara statis untuk diselesaikan dengan bahasa yang diketik secara dinamis. Hal-hal mendasar seperti mendeklarasikan fungsi atau variabel lebih cepat dilakukan dengan Python daripada dalam bahasa seperti Java

Berikut ini adalah perbandingan antara mendeklarasikan fungsi yang mengambil array integer 2D dan mengembalikan tipe yang sama masing-masing di Python dan Java

# Python

def myFun(arr):

// Java

public static int[][] myFun(int[][] arr) {

Pengembang Python sudah mulai mengimplementasikan fungsi pada saat pengembang Java mengetikkan kata "statis". Ya, ini hanya satu baris kode, tetapi kode Python selalu lebih pendek dengan pendekatan yang sama. Beberapa karakter di sana-sini tidak terdengar banyak. Tetapi ketika ada puluhan atau ratusan baris kode, semuanya bertambah karena memberi pengembang lebih banyak waktu untuk men-debug kode daripada mengetik sesuatu.

Kode yang lebih panjang juga berarti lebih besar kemungkinan terjadinya kesalahan. Misalnya, orang membuat kesalahan dengan tipe data fungsi atau lupa mengetikkan kata kunci "statis" saat mendeklarasikan fungsi. Dengan bahasa yang diketik secara dinamis, Anda tidak memiliki masalah ini. Bahkan dibandingkan dengan bahasa lain yang diketik secara dinamis seperti JavaScript, saya harus mengakui bahwa kode Python jauh lebih cepat untuk ditulis karena membutuhkan lebih sedikit karakter untuk mengimplementasikan logika yang sama.

"Bahasa yang diketik secara statis juga memiliki keuntungan. "Saya mendengar Anda berkata. Itu 100% benar, dan saya setuju. Secara pribadi, saya beralih dari sangat menentang bahasa yang diketik secara statis pada awal karir saya menjadi memulai setiap proyek sekarang menggunakan TypeScript. Kecuali saya menggabungkan sesuatu dengan cepat, TypeScript mendapatkan suara saya setiap saat. Jenis datang dengan keamanan dan jaminan, dan IDE dapat memanfaatkannya untuk memberikan pelengkapan otomatis yang lebih baik, ia dapat menangkap masalah yang tidak dapat dilakukan oleh bahasa yang diketik secara dinamis, dan banyak lagi keuntungan lainnya. Tetapi ketika kode yang lebih pendek mengalahkan kode yang bagus dalam sebuah wawancara, bahasa yang diketik secara dinamis menang telak. Seperti banyak tempat, di Karat, kami lebih menekankan pada solusi yang berfungsi daripada kode yang terlihat bagus

Beberapa bahasa lebih baik untuk mengimplementasikan pertanyaan algoritmik

Mungkin karena saya seorang pengembang JavaScript, jadi ini adalah masalah yang lebih signifikan. Untuk bahasa lain, ini mungkin tidak relevan. Namun, sebagai pengembang JavaScript, saya menemukan kurangnya fungsi util yang berguna membuat solusi algoritme pengkodean menjadi lebih sulit

Untuk mendemonstrasikan poin saya lebih lanjut, berikut adalah perbandingan antara Python dan JavaScript untuk menemukan persimpangan antara dua larik. Bukan hanya karena kode Python lebih pendek; . Semua ini menambah gesekan pada proses wawancara

# Python

def intersection(a, b):
    return list(set(a).intersection(b))
_

// JavaScript

function getIntersection(a, b) {
    const set1 = new Set(a);
    const set2 = new Set(b);

    const intersection = [...set1].filter(
        element => set2.has(element)
    );

    return intersection;
}

Apakah saya akan menemukan persimpangan seperti ini dalam sebuah wawancara saat membuat kode dalam JavaScript? . Pilihan pertama saya adalah mengimplementasikan solusi menggunakan forEach() loop karena saya lebih mengenalnya. Dalam wawancara, keakraban adalah raja. Tetapi implementasi ini tidak lebih cepat untuk ditulis dan dapat menimbulkan bug yang tidak perlu daripada pendekatan Python. Ini juga lebih rendah dalam hal kompleksitas waktu

function getIntersection(a,b) {
	const arr = [];

	a.forEach(elem => {
		if (b.contains(elem)) {
			arr.push(elem);
		}
	}

	const arr;
}
_

Untuk memastikan ini bukan masalah yang hanya memengaruhi sebagian pengembang JavaScript, saya melakukan riset online dan menemukan pertanyaan ini di stackoverflow, jadi sepertinya GoLang memiliki masalah serupa

Kesimpulan

Sekarang, haruskah Anda meninggalkan semuanya dan mempelajari Python untuk semua wawancara mendatang? . Orang bisa mahir dalam bahasa apa pun yang mereka habiskan untuk dikuasai. Hal yang lebih baik untuk dilakukan adalah berlatih dengan lebih banyak pertanyaan pengkodean gaya wawancara dan menemukan solusi lebih cepat. Menemukan solusi paling mudah akan menghemat lebih banyak waktu daripada beralih ke Python dan mengetik lebih sedikit kode. Seringkali yang terbaik adalah menggunakan sesuatu yang lebih akrab dan nyaman daripada meminimalkan manfaat yang saya jelaskan di atas dalam lingkungan yang sensitif terhadap waktu. Namun, bagi orang-orang yang sudah menggunakan banyak bahasa di mana Python sudah ada di kotak alat mereka, saya sangat menyarankan untuk menggunakannya untuk wawancara kecuali jika pekerjaan tersebut memerlukan bahasa tertentu.

Beberapa kandidat bertanya kepada saya mengapa saya menjadi insinyur wawancara. Itu selalu terdengar seperti klise, tetapi saya senang melihat orang yang berbeda mendekati pertanyaan wawancara yang sama dari sudut yang berbeda dan menghasilkan solusi unik. Selain itu, saya sering belajar sesuatu dari kandidat yang saya wawancarai. Percaya atau tidak, sebuah wawancara yang baru-baru ini saya lakukan menginspirasi posting blog ini. Jika ini terdengar seperti sesuatu yang Anda minati, Anda dapat melamar untuk menjadi insinyur wawancara menggunakan tautan ini (jika Anda berasal dari AS) atau tautan ini (dari negara lain mana pun)

Bagaimana cara saya berlatih Python untuk wawancara koding?

Wawancara Coding Python. Kiat & Praktik Terbaik .
Gunakan enumerate() untuk mengulangi indeks dan nilai
Debug kode bermasalah dengan breakpoint()
Format string secara efektif dengan f-string
Urutkan daftar dengan argumen khusus
Gunakan generator alih-alih pemahaman daftar untuk menghemat memori

Haruskah saya mewawancarai dengan Python atau Java?

Haruskah saya mewawancarai dengan Python atau Java? . jika Anda mewawancarai untuk peran Ilmuwan Data maka Python . Tetapi jika Anda mencari pekerjaan sebagai insinyur perangkat lunak maka Java pasti lebih baik.

Bisakah saya menggunakan Python dalam wawancara pengkodean di India?

Pelatih wawancara formal dari Google memastikan bahwa Python baik-baik saja , dan sering kali membantu menyampaikan pemahaman dasar dengan lebih cepat dalam sebuah wawancara. Tetap berpegang pada satu platform latihan wawancara dan kerjakan soal secara menyeluruh.