JavaRush /Blog Java /Random-VI /Nghỉ giải lao #49. Ví dụ về mã mà mọi nhà phát triển nên ...

Nghỉ giải lao #49. Ví dụ về mã mà mọi nhà phát triển nên xem. Làm thế nào để chuẩn bị cho một cuộc phỏng vấn

Xuất bản trong nhóm

Ví dụ về mã mà mọi nhà phát triển nên xem

Nguồn: Medium Đôi khi rảnh rỗi, tôi lang thang quanh kho GitHub. Khi tôi bắt đầu học các chương trình, công cụ hoặc tiện ích mới, tôi cố gắng xem chúng hoạt động như thế nào. Để làm điều này, tôi xem xét mã của họ: nó giúp hiểu cách mọi thứ hoạt động, có những mô-đun và phần phụ thuộc bên ngoài nào. Đắm chìm trong công nghệ mang lại những cảm giác đáng kinh ngạc và cho phép bạn có được kiến ​​​​thức mới. Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 1Trong bài viết của mình, tôi muốn chia sẻ những ví dụ mã ấn tượng nhất mà tôi đã gặp khi dạo quanh các kho lưu trữ.

Chương trình điều khiển Apollo 11

Apollo 11 là tàu vũ trụ đưa con người lên mặt trăng. Máy tính điều khiển trên máy bay (AGC) điều khiển hoạt động bay chỉ với 4 kilobyte bộ nhớ vật lý. Phần mềm AGC, được viết bằng hợp ngữ, được lưu trữ trong bộ nhớ chỉ đọc đặc biệt (bộ nhớ dây). Cách đây vài năm, bản scan của mã nguồn này đã được đăng tải trên Internet . Sau đó, ai đó đã viết một số mô-đun vào tệp văn bản và tải chúng lên kho GitHub . Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 2Đội ngũ kỹ thuật của Apollo 11 đã làm việc chăm chỉ để đạt được kết quả đáng kinh ngạc này. Họ đã viết rất nhiều dòng mã bằng ngôn ngữ hợp ngữ, mặc dù việc lập trình vào những năm 1960 khó khăn hơn nhiều so với hiện nay. Vào thời điểm đó, các ngôn ngữ lập trình có mức độ trừu tượng thấp hơn. Ngoài ra, do phần cứng tiêu thụ ít năng lượng nên các nhà phát triển phải viết mã có độ tối ưu hóa cao.

Đấu trường Quake III

Quake III Arena là trò chơi điện tử bắn súng góc nhìn thứ nhất được tạo bởi id Software. Trò chơi xuất hiện vào những năm 1990, khi ngành công nghiệp game 3D mới bắt đầu. Game engine id Tech 3 đã được sử dụng để phát triển nó. Như trong trường hợp của chương trình mặt trăng Apollo 11, do hạn chế về tài nguyên phần cứng nên mã kết xuất đồ họa đã được tối ưu hóa rất nhiều. Nhiều phép tính trong lập trình trò chơi yêu cầu khái niệm chuẩn hóa vectơ, đòi hỏi phải tính căn bậc hai nghịch đảo. Vì các nhà phát triển cần chọn thuật toán hiệu quả nhất cho đồ họa máy tính, Quake III Arena đã áp dụng một cách tiếp cận thông minh để nhanh chóng tính toán căn bậc hai nghịch đảo bằng cách sử dụng phép tính cấp độ bit. Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 3Mức độ tối ưu hóa trong một số mã mà bạn thấy và trên thực tế là trong tất cả các mã được sử dụng để tạo trò chơi vào những năm 1990, đơn giản là đáng kinh ngạc. Ngày nay, các nhà phát triển trò chơi điện tử thường không tính toán ở cấp độ này vì nhiều chức năng được thực hiện ở cấp độ công cụ trò chơi.

Bộ sưu tập trình biên dịch GNU

Ngôn ngữ lập trình C có thể gọi là cha đẻ của lập trình hiện đại vì nó rất gần với phần cứng nhưng đồng thời mang lại mức độ trừu tượng tốt mà con người có thể hiểu được. Trình biên dịch GNU C là một trình biên dịch được khởi động. Nghĩa là, nó được viết bằng C sử dụng khái niệm giải nén trình biên dịch. Trong mã Bộ sưu tập trình biên dịch GNU trên GitHub, tôi đã tìm thấy tệp nguồn C dài nhất tôi từng thấy (có thể có các tệp dài hơn, nhưng đây là tệp tôi tìm thấy).Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 4

crom

Các trình duyệt phổ biến như Google Chrome, Microsoft Edge và Opera đều dựa trên dự án Chrome nguồn mở. Dự án này có hai phần phụ thuộc chính: công cụ Blink (một nhánh của thư viện WebCore từ nhóm Webkit) và công cụ JavaScript V8 do nhóm dự án Chrome phát triển. Tất nhiên, mã của Chrome khá rộng và chứa nhiều mô-đun của bên thứ ba như gRPCSkia . Nhưng các nhà phát triển Chrome đã cố gắng cấu trúc tất cả các thành phần này một cách hoàn hảo. Cơ sở mã tách biệt khéo léo logic chức năng bên trong khỏi logic giao diện người dùng. Điều này đảm bảo hỗ trợ tốt cho toàn bộ dự án. Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 5Ngoài ra, mã dự án còn chứa mã nguồn của ứng dụng Chrome Android và iOS. Việc cấu trúc các ứng dụng đa nền tảng có khả năng mở rộng cao có thể là một thách thức. Tuy nhiên, Chrome có khả năng phân tách mã thực sự ấn tượng trên Linux, Windows và Mac.

Gitk

Ngày nay, mọi nhóm đều sử dụng Git để quản lý các phiên bản mã. Hệ thống kiểm soát phiên bản này được phát triển bởi Linus Torvalds (người tạo ra nhân hệ điều hành GNU/Linux). Cơ sở mã Git bao gồm mã nguồn Gitk. Gitk là một ứng dụng GUI cung cấp điều hướng trực quan thông qua các cam kết. Để xem hai lần xác nhận khác nhau như thế nào, bạn có thể sử dụng lệnh sau:
$ git diff <commit hash> <commit hash>
Nhưng vì Gitk là một công cụ trực quan nên chúng ta có thể thấy sự khác biệt nhanh hơn nhiều với nó. Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 6Tất cả mã nguồn Gitk đều phù hợp với một tệp . Mã được viết bằng ngôn ngữ kịch bản lệnh Tcl bằng bộ công cụ Tk UI, một phần mở rộng Tcl. Việc thu gọn toàn bộ ứng dụng GUI vào một tệp là một nhiệm vụ khó khăn.

Làm thế nào một nhà phát triển có thể chuẩn bị cho một cuộc phỏng vấn?

Nguồn: Hackernoon Tôi nhớ cuộc phỏng vấn đầu tiên của mình. Tôi vừa hoàn thành chương trình học của mình và đang nộp đơn xin thực tập tại một công ty tài chính ở Madrid. Tôi rất lo lắng vì không biết cuộc phỏng vấn sẽ diễn ra như thế nào và tôi cũng không biết xu hướng phát triển phần mềm hiện nay. Đó là sau lễ Phục sinh, tôi mới 21 tuổi và sẽ thú vị hơn nếu được dành thời gian với bạn bè trên bãi biển. Nhưng thay vì vui vẻ, tôi lại phải chuẩn bị cho một cuộc phỏng vấn. Nghỉ giải lao #49.  Ví dụ về mã mà mọi nhà phát triển nên xem.  Cách chuẩn bị cho cuộc phỏng vấn - 7Bước đầu tiên trước mỗi cuộc phỏng vấn là tìm hiểu nhau. Họ hỏi bạn tên, địa chỉ, chuyên môn, v.v. Sau đó, bạn sẽ trải qua một cuộc phỏng vấn cá nhân, có thể là trực tiếp hoặc qua liên kết video. Trong mọi trường hợp, cuộc phỏng vấn này sẽ kiểm tra kinh nghiệm, kiến ​​thức và kỹ năng của bạn đối với vị trí bạn đang ứng tuyển. Sau đó, bạn có thể sẽ được yêu cầu viết mã để chứng minh khả năng giải quyết các vấn đề hoặc vấn đề của mình. Ngoài ra, bạn có thể mong đợi một cuộc phỏng vấn với người quản lý dự án hoặc giám đốc công ty. Điều này phụ thuộc vào vị trí bạn đang ứng tuyển. Quá trình phỏng vấn có thể mất nhiều thời gian. Vì vậy, bạn cần phải kiên nhẫn và giữ bình tĩnh. Tôi đã chuẩn bị một số lời khuyên và thủ thuật cho bạn về vấn đề này.

Nghiên cứu vị trí để đảm bảo nó phù hợp với bạn.

Đôi khi khi chúng ta đang tìm việc, chúng ta chỉ đến phỏng vấn mà không xem hết thông tin về vị trí đó. Tốt hơn hết bạn nên làm rõ trước danh sách trách nhiệm và lịch trình làm việc của mình. Đồng thời kiểm tra xem công ty và vị trí có phù hợp với yêu cầu của bạn không

Hãy cố gắng cập nhật các xu hướng nghề nghiệp của bạn.

Một sai lầm lớn là không chạy theo xu hướng và công nghệ mới trong công việc của bạn. Bạn có thể là nhà phát triển hoặc người quản lý dự án, bạn có cách làm việc riêng trong vai trò hiện tại và công nghệ giống nhau cho tất cả các dự án của mình. Nhưng hãy cố gắng dành chút thời gian mỗi ngày để học hỏi những công nghệ mới nhé. Điều này rất quan trọng trong sự nghiệp của chúng tôi. Bạn cần luôn cập nhật các khuôn khổ mới, phương pháp mới, v.v. Điều này sẽ tạo ra sự khác biệt lớn trong cuộc phỏng vấn của bạn.

Trong cuộc phỏng vấn trực tiếp hoặc cuộc gọi điện video: cố gắng trông ổn và thư giãn

Ngoại hình của bạn cũng quan trọng như thiết kế ứng dụng của bạn. Bạn có thể có một phần phụ trợ hoàn hảo, nhưng nếu ứng dụng của bạn có giao diện người dùng kém, bạn sẽ gặp khó khăn khi bán sản phẩm của mình. Điều này cũng đúng với ngoại hình của bạn: tại một cuộc phỏng vấn, bạn nên trông, nếu không trang trọng thì ít nhất cũng tươm tất. Điều này sẽ thể hiện sự sẵn sàng của bạn để tuân theo các quy tắc của công ty. Tôi biết một số người ở đây sẽ nghĩ: “Này, tôi là thiên tài, tại sao tôi phải quan tâm đến ngoại hình của mình?” Chà, nếu bạn là một thiên tài và có vẻ ngoài ưa nhìn thì chắc chắn bạn sẽ tạo được ấn tượng!

Hãy dành thời gian của bạn

Trước cuộc phỏng vấn, bạn cần chuẩn bị, nghiên cứu các chủ đề, thực hành thuật toán và giải quyết vấn đề cũng như chuẩn bị bài phát biểu. Một số quá trình này kéo dài và mất thời gian. Vì vậy hãy chắc chắn rằng bạn có lợi thế ở đây.

Luyện tập

Nó phụ thuộc vào kinh nghiệm của bạn, nhưng lời khuyên của tôi ở đây là nếu bạn phải viết mã trong một cuộc phỏng vấn, hãy viết nó một cách chính xác. Để làm được điều này, bạn cần học cách dọn dẹp và xem lại mã. Điều này sẽ giúp bạn tổ chức lại hoặc cải thiện một số chức năng của nó.

Thể hiện kinh nghiệm của bạn trong một cuộc phỏng vấn trực tiếp hoặc bằng mã

Hãy cố gắng thể hiện kinh nghiệm. Cuộc phỏng vấn là nơi hoàn hảo để giải thích cho người phỏng vấn lý do tại sao công ty nên tuyển dụng bạn. Trước cuộc phỏng vấn, hãy làm quen với các khái niệm, phương pháp lập trình cơ bản và các phương pháp hay nhất.

Ngủ đủ giấc một ngày trước cuộc phỏng vấn của bạn.

Cố gắng ngủ đủ giấc. Điều này sẽ giúp bạn tập trung vào ngày hôm sau. Nếu bạn không biết câu trả lời cho bất kỳ câu hỏi phỏng vấn nào, xin đừng nói dối - hãy thành thật mà nói, điều đó sẽ giúp tránh được nhiều rắc rối trong tương lai. Và điều này sẽ giúp bạn nhìn thấy được điểm yếu của mình mà bạn cần cải thiện.

Hãy tin vào câu trả lời của bạn

Đừng nghi ngờ chính mình. Không bao giờ.

Trong cuộc phỏng vấn, bạn phải thể hiện sự an toàn và tự tin cho mọi người.

Nếu bạn không có kỹ năng này, có lẽ bạn cần phải rèn luyện nó. Sự tự tin là khi bạn trả lời: “Tôi không biết câu trả lời nhưng tôi có thể tra cứu và trả lời sau”. Tùy chọn trả lời này thể hiện sự an toàn và tự tin.

Phân tích cuộc phỏng vấn

Mỗi cuộc phỏng vấn đều khác nhau, nhưng tất cả đều có chung một số đặc điểm. Vì vậy, sau cuộc phỏng vấn, bạn nên suy ngẫm xem điều gì đã diễn ra tốt hay xấu đối với bạn. Một cuộc phỏng vấn là thời điểm tốt để nhìn lại bản thân bạn từ bên ngoài, điểm mạnh và điểm yếu của bạn.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION