Tôi có nên học python để phỏng vấn không

Ngôn ngữ lập trình tốt nhất cho các cuộc phỏng vấn nếu bạn đang theo đuổi vị trí kỹ sư phần mềm là gì?

Python3 [Hoặc nói chung là Python] Và tôi sẽ giải thích bên dưới

print['Hello World']

Là một kỹ sư phần mềm, tôi đã học một số ngôn ngữ lập trình ở các vị trí công việc khác nhau, tôi đã được phỏng vấn tại nhiều công ty lớn nhỏ khác nhau và tôi đã phỏng vấn nhiều ứng viên ở các trình độ và nền tảng khác nhau. Việc lựa chọn ngôn ngữ phỏng vấn chính xác không phải là vấn đề sống còn, nhưng nó giúp cuộc sống của bạn dễ dàng hơn nhiều trước và trong các cuộc phỏng vấn kỹ thuật. Vậy điều gì khiến Python3 trở thành ngôn ngữ phỏng vấn tốt nhất?

Nó rất dễ học

Python là một ngôn ngữ cấp cao và nó gần với tiếng Anh hơn so với các ngôn ngữ khác. Nó thân thiện đến mức một người không có kinh nghiệm lập trình trước đó có thể chọn nó và bắt đầu viết mã ngay từ ngày đầu tiên

Python là một ngôn ngữ động, nhưng được gõ mạnh. Nó không cần bạn khai báo một biến trước khi sử dụng nó, và bạn cũng không cần ghi chú rõ ràng kiểu. Đây là một lợi thế lớn trong các cuộc phỏng vấn giới hạn thời gian. Ví dụ:

d = {}
d['name'] = 'James'
d['age'] = 23
print[d]
0 xác định từ điển/bảng băm và khóa/giá trị có thể là bất kỳ loại nào. Ngoài ra có thể mở rộng thành từ điển lồng nhau nếu cần

d = {}
d['name'] = 'James'
d['age'] = 23
print[d]
Nó rất dễ đọc

Thụt đầu dòng.
Python yêu cầu thụt lề nghiêm ngặt để tạo thành các khối mã phù hợp, thay vì dấu ngoặc nhọn

d = {}
d['name'] = 'James'
d['age'] = 23
print[d]
1ở một số ngôn ngữ khác. Quy ước bắt buộc này giúp giảm bớt rất nhiều biểu tượng lộn xộn không cần thiết và bắt buộc mã phải tự tổ chức thành các khối trực quan, do đó làm cho mã dễ nhìn đối với cả người phỏng vấn và người được phỏng vấn.

def open_windows[windows]:
for w in windows:
w.open[]
def close_windows[windows]:
for w in windows:
w.close[]
Nó nổi tiếng

Điều quan trọng là sử dụng ngôn ngữ lập trình phổ biến mà người phỏng vấn biết. Một cuộc phỏng vấn công nghệ là tất cả về việc bạn giải thích logic mã hóa của mình cho người phỏng vấn, do đó, nó hiệu quả nhất khi cả hai bạn đều biết rõ về cùng một ngôn ngữ lập trình. Python là [một trong?] ngôn ngữ lập trình phổ biến nhất, vì vậy rất có khả năng người ở phía bên kia bàn biết nó. Cá nhân tôi cảm thấy mọi kỹ sư phần mềm đều sử dụng Python ở một mức độ nào đó, để thực hiện một số kịch bản trong khi làm việc hoặc chỉ để giải trí

http. //pypl. github. io/PYPL. htmlNó linh hoạt

Python có nhiều thư viện.
Các cuộc phỏng vấn được thực hiện ở mức độ trừu tượng nhất định, bỏ qua những chi tiết không thú vị. Với Python, bạn có thể bỏ qua nhiều chi tiết cấp thấp với các tiện ích trong thư viện tiêu chuẩn và tập trung sự chú ý vào chính vấn đề cốt lõi.

Python cũng là ngôn ngữ lập trình chính được sử dụng trong Machine Learning và Data Science, nhờ có thư viện hỗ trợ tuyệt vời. Kỹ sư phần mềm là một nghề nghiệp linh hoạt mà mọi người thường thay đổi sở thích và vị trí của họ trong suốt khóa học. Python có thể dễ dàng lấp đầy cây cầu vì tính linh hoạt của chính nó

Bản tóm tắt

Khi bạn đang chuẩn bị cho các cuộc phỏng vấn, việc sử dụng Python để thực hành mã hóa sẽ giúp tạo mẫu nhanh và hiểu thuật toán ở mức độ cao

Trong một cuộc phỏng vấn, mã Python của bạn sẽ ngắn gọn và rõ ràng, giúp bạn tiết kiệm rất nhiều thao tác gõ ngón tay và quan trọng hơn, tiết kiệm cho bạn rất nhiều năng lực trí tuệ quý giá

Hy vọng rằng bây giờ bạn đã bị thuyết phục để sử dụng Python3 cho các cuộc phỏng vấn của mình. Chúc may mắn

Hoặc la chưa?

Vậy lý do không sử dụng các ngôn ngữ khác cho cuộc phỏng vấn công nghệ/mã là gì?

Trong bối cảnh của một cuộc phỏng vấn công nghệ, các ngôn ngữ khác có thể có một vị trí thích hợp cho các vị trí chuyên biệt. Tuy nhiên, đối với một cuộc phỏng vấn chung, Python3 luôn thắng

Tôi tình cờ biết một số ngôn ngữ lập trình phổ biến nhất và đã sử dụng một số ngôn ngữ này cho các cuộc phỏng vấn công nghệ của mình trước đây. Có lẽ tôi có thể chia sẻ một số ý kiến ​​​​và kinh nghiệm của mình

Những ứng viên tốt nhất mà tôi từng phỏng vấn đều đã sử dụng Python 3. Tôi không nghĩ phiên bản Python quan trọng ở đây, nhưng tôi nghĩ mình sẽ chính xác. Vì vậy, hãy nói về lý do tại sao tôi nghĩ Python là ngôn ngữ tốt nhất để sử dụng trong các cuộc phỏng vấn viết mã [nếu bạn đã quen thuộc với nó]

từ chối trách nhiệm. trước khi mọi người cho rằng tôi chỉ là một fanboy của Python, tôi muốn làm rõ rằng đó không phải là ngôn ngữ mà tôi lựa chọn và đó không phải là thứ tôi sử dụng thường xuyên. Tôi có thể viết các tập lệnh cơ bản bằng Python và sẽ không khó để tôi nhanh chóng học lại. Nhưng tôi thậm chí sẽ không đặt mình gần trại Python dựa trên kỹ năng và kinh nghiệm của mình. Vì vậy, hy vọng, điều đó chứng tỏ tôi không thiên vị ở đây

Indentation > hệ thống dấu ngoặc nhọn

Là người phỏng vấn, tôi không thể nói bất cứ điều gì trong cuộc phỏng vấn trực tiếp giúp ích cho ứng viên, nếu không họ sẽ bị chấm điểm vì nhận xét của tôi. Vì vậy, hãy tưởng tượng tôi đau đớn như thế nào khi chứng kiến ​​mọi người dành vài phút để sửa một dấu ngoặc nhọn bị thiếu

Nghe có vẻ ngu ngốc khi đề xuất dấu ngoặc là một vấn đề lớn. Nhưng khi phỏng vấn, mọi người có xu hướng mắc nhiều lỗi hơn do áp lực thời gian và biết ai đó đang xem họ viết mã. Bộ não của chúng ta tập trung vào câu hỏi phỏng vấn và không tiếp thu các vấn đề cú pháp đơn giản ngay lập tức. Viết mã chậm không phải là một lựa chọn để đạt điểm cao nhất vì các công ty muốn có giải pháp nhanh và chính xác. Khi mọi người vội vàng, các vấn đề nhỏ như thiếu dấu ngoặc sẽ trở nên khó phát hiện hơn. Tôi đã từng chứng kiến ​​ai đó dành 10 phút vật lộn với vấn đề mắc cài. Dựa trên nhận xét từ những người phỏng vấn khác, tôi cũng không phải là người duy nhất

Nếu bạn không tin, tôi đã bao gồm một số đoạn mã cơ bản bên dưới để minh họa cách các dấu ngoặc có thể gây nhầm lẫn khi viết mã dưới áp lực. Cũng cần lưu ý rằng khối mã có xu hướng phức tạp hơn và dài hơn nhiều trong các cuộc phỏng vấn, điều này khiến cho việc phát hiện các dấu ngoặc bị thiếu thậm chí còn khó hơn

# 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] {
					...	
				}
			}
                 }
           }
      }
}

Bạn có nhận thấy có quá nhiều dấu ngoặc trong mã JavaScript không?

Loại động = mã ít hơn = mã nhanh hơn

Khi nói đến việc viết mã nhanh, ngôn ngữ được nhập tĩnh sẽ khó hoàn thành bằng ngôn ngữ được nhập động. Những việc cơ bản như khai báo một hàm hoặc biến sẽ được thực hiện nhanh hơn trong Python so với một ngôn ngữ như Java

Dưới đây là sự so sánh giữa việc khai báo một hàm nhận một mảng số nguyên 2D và trả về cùng loại trong Python và Java, tương ứng

# Python

def myFun[arr]:

// Java

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

Nhà phát triển Python đã bắt đầu triển khai chức năng vào thời điểm nhà phát triển Java gõ từ "tĩnh". Vâng, đây chỉ là một dòng mã, nhưng mã Python luôn ngắn hơn với cùng một cách tiếp cận. Một vài ký tự ở đây và không có nhiều âm thanh. Nhưng khi có hàng chục hoặc hàng trăm dòng mã, tất cả sẽ cộng lại vì nó giúp nhà phát triển có nhiều thời gian hơn để gỡ lỗi mã thay vì gõ mọi thứ ra

Mã dài hơn cũng có nghĩa là nhiều khả năng xảy ra lỗi hơn. Ví dụ: mọi người mắc lỗi với kiểu dữ liệu của hàm hoặc quên gõ từ khóa "static" khi khai báo hàm. Với các ngôn ngữ được gõ động, đơn giản là bạn không còn những lo lắng này. Thậm chí so với một ngôn ngữ gõ động khác như JavaScript, tôi phải thừa nhận mã Python viết nhanh hơn rất nhiều vì nó yêu cầu ít ký tự hơn để triển khai cùng một logic

"Các ngôn ngữ gõ tĩnh cũng có lợi thế. "Tôi nghe bạn nói. Đó là sự thật 100%, và tôi đồng ý. Cá nhân tôi đã đi từ cực kỳ phản đối ngôn ngữ gõ tĩnh khi bắt đầu sự nghiệp của mình để bắt đầu mọi dự án đơn lẻ hiện đang sử dụng TypeScript. Trừ khi tôi kết hợp một thứ gì đó với nhau một cách nhanh chóng, TypeScript luôn nhận được phiếu bầu của tôi. Các loại đi kèm với sự an toàn và đảm bảo, và IDE có thể tận dụng nó để cung cấp tính năng tự động hoàn thành tốt hơn, nó có thể phát hiện ra các vấn đề mà ngôn ngữ nhập động không thể làm được và còn nhiều lợi ích khác. Nhưng khi mã ngắn đánh bại mã tốt trong một cuộc phỏng vấn, các ngôn ngữ được gõ động sẽ thắng thế. Giống như nhiều nơi, tại Karat, chúng tôi chú trọng nhiều hơn vào các giải pháp hiệu quả hơn là mã đẹp mắt

Một số ngôn ngữ tốt hơn để thực hiện các câu hỏi thuật toán

Có lẽ bởi vì tôi là một nhà phát triển JavaScript, nên đây là một điểm đau đáng kể hơn. Đối với các ngôn ngữ khác, điều này có thể không liên quan. Tuy nhiên, với tư cách là một nhà phát triển JavaScript, tôi nhận thấy việc thiếu các hàm tiện dụng hữu ích khiến các giải pháp thuật toán mã hóa trở nên khó khăn hơn đáng kể

Để chứng minh thêm quan điểm của tôi, đây là so sánh giữa Python và JavaScript để tìm giao điểm giữa hai mảng. Không chỉ mã Python ngắn hơn; . Tất cả điều này thêm ma sát vào quá trình phỏng vấn

# Python

def intersection[a, b]:
    return list[set[a].intersection[b]]

________số 8

Tôi có thể tìm thấy một giao lộ như thế này trong một cuộc phỏng vấn khi viết mã bằng JavaScript không? . Lựa chọn đầu tiên của tôi là triển khai giải pháp bằng cách sử dụng vòng lặp

d = {}
d['name'] = 'James'
d['age'] = 23
print[d]
2 vì tôi quen thuộc hơn với nó. Trong các cuộc phỏng vấn, sự quen thuộc là vua. Nhưng cách triển khai này không viết nhanh hơn và có thể gây ra các lỗi không cần thiết so với cách tiếp cận Python. Nó cũng kém hơn về độ phức tạp thời gian

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

	a.forEach[elem => {
		if [b.contains[elem]] {
			arr.push[elem];
		}
	}

	const arr;
}

Để đảm bảo đây không phải là sự cố chỉ ảnh hưởng một phần đến các nhà phát triển JavaScript, tôi đã nghiên cứu trực tuyến và tìm thấy câu hỏi này trên stackoverflow, vì vậy có vẻ như GoLang cũng gặp sự cố tương tự

Sự kết luận

Bây giờ, bạn có nên bỏ mọi thứ và học Python cho tất cả các cuộc phỏng vấn trong tương lai không? . Mọi người có thể giỏi bất kỳ ngôn ngữ nào mà họ dành thời gian để thành thạo. Điều tốt hơn nên làm là thực hành với nhiều câu hỏi viết mã kiểu phỏng vấn hơn và tìm ra giải pháp nhanh hơn. Tìm giải pháp đơn giản nhất sẽ giúp bạn tiết kiệm thời gian hơn là chuyển sang Python và gõ ít mã hơn. Tốt nhất là bạn nên chọn thứ gì đó quen thuộc và thoải mái hơn là tối thiểu hóa những lợi ích mà tôi đã giải thích ở trên trong những môi trường nhạy cảm về thời gian. Tuy nhiên, đối với những người đã sử dụng nhiều ngôn ngữ mà Python đã có sẵn trong hộp công cụ của họ, tôi thực sự khuyên bạn nên sử dụng nó cho các cuộc phỏng vấn trừ khi công việc yêu cầu một ngôn ngữ cụ thể

Một số ứng viên hỏi tôi tại sao tôi lại trở thành một kỹ sư phỏng vấn. Nghe có vẻ sáo rỗng, nhưng tôi thích thú khi thấy những người khác nhau tiếp cận những câu hỏi phỏng vấn giống nhau từ những góc độ khác nhau và đưa ra những giải pháp độc đáo. Hơn nữa, tôi thường học được điều gì đó từ những ứng viên mà tôi đã phỏng vấn. Dù bạn có tin hay không thì tùy, một cuộc phỏng vấn tôi mới thực hiện đã truyền cảm hứng cho bài đăng trên blog này. Nếu đây có vẻ là điều bạn quan tâm, bạn có thể đăng ký trở thành kỹ sư phỏng vấn bằng liên kết này [nếu bạn đến từ Hoa Kỳ] hoặc liên kết này [từ bất kỳ quốc gia nào khác]

Bạn có nên học Python cho các cuộc phỏng vấn viết mã không?

Một số ngôn ngữ chỉ phù hợp hơn cho các cuộc phỏng vấn - các ngôn ngữ cấp cao hơn như Python hoặc Java cung cấp các chức năng thư viện và cấu trúc dữ liệu tiêu chuẩn cho phép bạn dịch giải pháp sang mã dễ dàng hơn. Theo kinh nghiệm phỏng vấn của tôi, hầu hết các ứng viên chọn Python hoặc Java .

Python có dễ dàng hơn cho các cuộc phỏng vấn viết mã không?

Có, nói chung, Python rất hữu ích để biết và sử dụng cho các cuộc phỏng vấn mã hóa . Một trong những điểm mạnh to lớn của Python so với các ngôn ngữ khác, ít nhất là trong không gian phỏng vấn mã hóa, là khá dễ dàng để mô phỏng nhanh một thuật toán cho một câu hỏi.

Python có tốt cho cuộc phỏng vấn kỹ thuật không?

Tôi tuyệt đối tránh các ngôn ngữ cấp thấp hơn như C hoặc Go, đơn giản vì chúng thiếu các chức năng thư viện và cấu trúc dữ liệu tiêu chuẩn. Cá nhân tôi, Python là sự lựa chọn trên thực tế của tôi để mã hóa các thuật toán trong các cuộc phỏng vấn . Nó ngắn gọn và có một thư viện hàm và cấu trúc dữ liệu khổng lồ.

Làm thế nào để học Python cho cuộc phỏng vấn?

Để vượt qua cuộc phỏng vấn nhà phát triển Python, bạn cần làm theo các bước sau .
Xem lại Cấu trúc dữ liệu và thuật toán nếu bạn chưa xem. .
Biết cách viết mã trên bảng trắng hoặc giấy. .
Thể hiện các dự án sở thích của bạn. .
Có hiểu biết cơ bản về công nghệ front-end là rất quan trọng [HTML5, CSS3, JavaScript]

Chủ Đề