Python và Django có đủ để kiếm việc làm không
Các khái niệm quan trọng nhất bạn nên biết để có được công việc với tư cách là nhà phát triển Django là gì? Show
Matthew Freire Matthew Freire4 tháng 1 năm 2021 • 7 phútcông việc Cho những người mới bắt đầu Các khái niệm quan trọng nhất bạn nên biết để có được công việc với tư cách là nhà phát triển Django là gì? Nếu bạn thích xem video thay vì đọc, bạn có thể xem video tại đây Học một khuôn khổ là một thách thức. Bạn phải làm quen với cách mọi thứ hoạt động, vị trí của mọi thứ và cách tận dụng tối đa các công cụ được cung cấp cho bạn. Django cũng không ngoại lệ. Đó là một cơ sở mã khá lớn, với rất nhiều công cụ và chức năng. Học mọi thứ Django cung cấp có thể mất nhiều thời gian. Rất may, hầu hết thời gian bạn thực sự có thể đạt được mục tiêu của mình mà không cần phải học mọi thứ cần biết về Django Trong bài đăng này, tôi sẽ giải thích các khái niệm quan trọng nhất mà bạn nên biết để có được công việc với tư cách là nhà phát triển Django Điều đáng nói là danh sách này hoàn toàn là ý kiến của riêng tôi. Nó là kết quả của việc làm việc với tư cách là một nhà phát triển Django chuyên nghiệp trong ba năm qua Nếu bạn thích định dạng video hơn, bạn có thể xem phiên bản video của hướng dẫn này tại đây TLDR;Đây là những khái niệm bạn cần hiểu (theo thứ tự quan trọng)
Kỹ năng nổi bật
Vậy hãy bắt đầu Thiết kế cơ sở dữ liệuDữ liệu là phần quan trọng nhất của bất kỳ ứng dụng web nào. Cách dữ liệu đó được lưu trữ, truy xuất và sử dụng là rất quan trọng vì phần còn lại của dự án phụ thuộc vào nó. Do đó, thiết lập cơ sở dữ liệu là một trong những bước đầu tiên khi bắt đầu một dự án Django mới Bạn sẽ liên tục sử dụng Mô hình của Django để thiết kế lược đồ cơ sở dữ liệu. Bởi vì lược đồ có tác động lớn đến phần còn lại của dự án, điều quan trọng là bạn phải đảm bảo rằng bạn đã thiết kế lược đồ một cách chính xác. Bạn sẽ cần phải rất thoải mái với Mô hình của Django để nâng cao kỹ năng thiết kế cơ sở dữ liệu. Điều này sẽ yêu cầu bạn hiểu tất cả các loại quan hệ bảng khác nhau, chẳng hạn như Khóa ngoại, OneToOneFields và ManyToManyFields. Hiểu biết tốt về thiết kế cơ sở dữ liệu là nền tảng để hiểu rõ về Django Xác thực và ủy quyềnHồi mới học Django bỏ bê phần này lâu quá. Đây lẽ ra phải là phần tôi dành nhiều thời gian nhất để học. Hầu như tất cả các ứng dụng web bạn sẽ xây dựng sẽ yêu cầu một số hình thức xác thực Bước đầu tiên là hiểu sự khác biệt giữa xác thực và ủy quyền là. Tôi khuyên bạn nên bắt đầu bằng cách tìm hiểu xác thực tích hợp do Django cung cấp. Mô-đun auth của Django chứa rất nhiều dạng xem và biểu mẫu tạo nên logic xác thực. Xem qua mã đó và hiểu chức năng của từng biểu mẫu và chế độ xem sẽ cho bạn điểm khởi đầu tốt về cách thức hoạt động bên dưới mui xe. Trong khi tìm hiểu xác thực tích hợp, bạn cũng nên tìm hiểu các loại xác thực khác nhau, chẳng hạn như xác thực phiên và mã thông báo. Nếu bạn hiểu rõ về những điều này thì bạn có thể muốn xem xác thực JWT Nếu bạn hiểu rõ về xác thực thì bạn sẽ muốn bắt đầu xem qua các gói được sử dụng phổ biến nhất, chẳng hạn như Django AllAuth. Rất có thể bạn sẽ sử dụng các gói của bên thứ ba để xử lý xác thực vì nó rất lặp đi lặp lại. Vì vậy, hãy bắt đầu làm quen với các gói có sẵn và những gì có thể là tốt nhất cho trường hợp sử dụng của bạn Luồng dữ liệuBạn có thể đã nghe nói về từ viết tắt CRUD (Tạo Xóa Truy xuất Cập nhật). Từ viết tắt này đại diện cho các loại hành động được thực hiện trong ứng dụng web. Sử dụng CRUD, bạn có thể thiết kế chế độ xem của mình để tập trung vào việc cho phép thực hiện một hoặc nhiều hành động này Lấy ví dụ hành động Tạo. Để triển khai hành động này, bạn sẽ cần triển khai biểu mẫu lấy dữ liệu và tạo tài nguyên (thường thông qua mô hình Django). Chế độ xem dựa trên lớp của Django rất tốt trong việc giảm thiểu số lượng mã được viết trong chế độ xem CRUD, nhưng chúng cũng trừu tượng hóa rất nhiều logic. Tôi thực sự khuyên bạn nên xem qua mã nguồn của tất cả các chế độ xem dựa trên lớp chung của Django (CBV) và hiểu chức năng của từng phương thức, thứ tự thực thi của các phương thức đó và cuối cùng là hiểu cách các chế độ xem đó xử lý logic của CRUD cho bạn Django của FormView đặc biệt có rất nhiều phương pháp có thể được truy cập. Đây là một số phương pháp phổ biến bạn sẽ muốn hiểu.
Một phần của việc hiểu luồng dữ liệu là hiểu cách dữ liệu di chuyển giữa người dùng và cơ sở dữ liệu. Điều này có nghĩa là hiểu cách dữ liệu được truy xuất từ cơ sở dữ liệu, được chuyển vào dạng xem và được hiển thị trong mẫu. Tương tự như vậy theo cách khác - hiểu dữ liệu được chuyển vào một biểu mẫu, được gửi tới dạng xem và được lưu trữ trong cơ sở dữ liệu Cấu hình tệp tĩnh và phương tiệnMột trong những khái niệm khó khăn hơn là tệp tĩnh và tệp phương tiện. Điều này là do thiết lập khác nhau tùy thuộc vào việc bạn đang phát triển hay sản xuất tại địa phương. Hiểu sự khác biệt giữa hai là quan trọng. Tôi cũng khuyên bạn nên tìm hiểu về giao thức S3 và lý do tại sao việc lưu trữ tệp của bạn trên một máy chủ riêng bằng dịch vụ như Digital Ocean Spaces lại thuận lợi Hiểu các tệp tĩnh và tệp phương tiện cũng sẽ giúp bạn hiểu kiến trúc triển khai của một ứng dụng web hiện đại triển khaiĐây là một trong những phần quan trọng nhất của phát triển web. Ngày nay, có nhiều dịch vụ bạn có thể sử dụng để triển khai dự án Django của mình, nhưng điều quan trọng cần hiểu là các nguyên tắc cơ bản về cách máy chủ Django được vận hành trong sản xuất. Một thiết lập truyền thống sẽ liên quan đến việc thiết lập thủ công gunicorn và nginx trên máy chủ. Một cách tiếp cận hiện đại hơn là sử dụng Docker và triển khai bộ chứa docker Trên thực tế, tôi muốn nói rằng bạn càng biết nhiều về triển khai một dự án Django thì nó càng có vẻ tốt hơn đối với các nhà tuyển dụng tiềm năng. Tìm kiếmĐôi khi bạn đang làm việc, bạn có thể không biết câu trả lời trong đầu. Và điều đó ổn. Chúng tôi không phải máy tính. Chúng ta không nên ghi nhớ mọi thứ. Nhưng những gì bạn sẽ cần phải giỏi là nghiên cứu. Điều tôi học được là các nhà phát triển có kinh nghiệm chỉ cần nhớ nơi cần tìm và nội dung cần tìm khi họ gặp lỗi hoặc sự cố mà họ chưa từng gặp phải trước đây. Thật không may, cách duy nhất để cải thiện điều này là tiếp tục xây dựng các dự án. Càng làm nhiều dự án, bạn càng có nhiều cơ hội đối mặt với thử thách mới và học hỏi điều gì đó mới Để thoải mái thì hãy không thoải máiĐiều này có vẻ như là một trong những điều sáo rỗng để nói, nhưng đó là sự thật - có thái độ đúng đắn là rất quan trọng. Đôi khi công việc của bạn yêu cầu bạn phải làm những việc bạn không muốn hoặc sửa những lỗi mà bạn không mong đợi Bạn cần trở nên thoải mái khi làm việc trong những tình huống không thoải mái Bạn càng làm tốt điều này, bạn càng trở nên có giá trị. Điều quan trọng là tiếp cận vấn đề với thái độ đúng đắn
kỹ năng thưởngMỗi vai trò đều khác nhau, vì vậy rất khó để cung cấp một danh sách kỹ năng chung cho tất cả. Nhưng theo kinh nghiệm của tôi, đây là điều có thể khiến bạn khác biệt với các nhà phát triển Django khác Tích hợp với API của bên thứ 3Đây có lẽ là kỹ năng bị đánh giá thấp nhất - theo ý kiến của tôi Một trong những thử thách khó khăn nhất mà tôi gặp phải khi xây dựng JustDjango là kiến trúc của mô hình thanh toán cho trang web. Tôi muốn có một quy trình thanh toán được tùy chỉnh hoàn toàn và điều này yêu cầu tôi phải xây dựng nhiều chức năng tích hợp với Stripe Sọc chỉ là một ví dụ. Nếu bạn có thể tích hợp với các API như GitHub, Slack, Twitter và nhiều API khác, bạn đang cho thấy rằng bạn hiểu gần như tất cả các khía cạnh cơ bản của Django Ngày nay có toàn bộ doanh nghiệp được xây dựng dựa trên API của các công ty khác. Vì vậy, kỹ năng này là một kỹ năng quan trọng đối với tôi và tôi nghĩ rằng rất nhiều công ty khác tận dụng API Tích hợp với frontendCác giao diện người dùng ngày nay bị chi phối bởi các thư viện JavaScript. Hầu hết các ứng dụng đang tách riêng phần giao diện người dùng và phần phụ trợ, điều đó có nghĩa là nếu bạn muốn được coi là nhà phát triển full-stack, bạn sẽ cần phát triển một số kiến thức chuyên môn về JavaScript React và Vue là hai đề xuất của tôi. Tôi thích React cho các dự án lớn hơn nhưng điều đó tùy thuộc vào sở thích của bạn. Tôi nghĩ rằng mọi người đều đồng ý rằng React khó học hơn Vue, vì vậy điều đó làm cho React trở thành một kỹ năng ấn tượng hơn để có dockerDocker là một công cụ tuyệt vời để tạo môi trường nhất quán giữa các thành viên trong nhóm. Nếu bạn đang tham gia một nhóm lớn, rất có thể bạn sẽ làm việc với Docker nên việc phát triển kỹ năng này trước sẽ giúp cuộc sống của bạn dễ dàng hơn Docker cũng được sử dụng rộng rãi để triển khai. Có rất nhiều hướng dẫn chỉ ra cách cập cảng một dự án Django và nó khá dễ hiểu. Tôi nghĩ đây là một kỹ năng bạn có thể dễ dàng tận dụng. Điều đó đang được nói rằng tôi sẽ không cố gắng trở thành một chuyên gia về Docker. Các nguyên tắc cơ bản là quá đủ để bạn vượt qua Xây dựng APIXây dựng API với Django rất phổ biến. Phổ biến đến mức tôi có thể nói rằng hầu hết các dự án Django đều bắt đầu hoặc được chuyển đổi thành API còn lại. Điều đó đang được nói rằng điều này phụ thuộc vào dự án bạn sẽ thực hiện Django Rest Framework cho đến nay là dự án được sử dụng nhiều nhất để xây dựng API. Có toàn bộ hệ sinh thái các gói tích hợp với DRF cho các chức năng khác nhau Bước này chắc chắn là một quá trình học tập đầy thử thách và tôi khuyên bạn nên thực hiện chậm nếu bạn đang gặp khó khăn. Hiểu cốt lõi của Django quan trọng hơn nhiều trước khi đi sâu vào DRF Có thể nói rằng khả năng xây dựng API là một tài sản lớn trong danh sách các kỹ năng của bạn Xếp hàng tác vụĐây chắc chắn là kỹ năng phụ thuộc vào dự án nhiều nhất. Một số dự án không có nhu cầu về các tác vụ không đồng bộ. Đó cũng là một kỹ năng rất khó để thành thạo. Rất nhiều nhà phát triển đã chia sẻ kiến thức của họ về các tác vụ không đồng bộ vì nó liên tục đưa ra một loạt thách thức và khó khăn mới để giải quyết Tôi sẽ coi kỹ năng này là cả một lĩnh vực chuyên sâu Phần kết luậnNhững gì bạn sẽ tìm thấy trong các gạch đầu dòng này là chúng không phải là duy nhất đối với Django. Những kỹ năng này áp dụng để trở thành bất kỳ loại nhà phát triển nào. Sự khác biệt là vì Django là một framework, nên bạn phải hiểu các khái niệm này và có thể áp dụng chúng theo cách mà Django đã thiết kế để áp dụng chúng. Các khái niệm như khung thông báo của Django, tín hiệu, trình quản lý mô hình và tùy chỉnh quản trị viên Django không phải là ưu tiên cần hiểu. Đây là những công cụ nhỏ hơn giúp bạn hiểu sâu hơn về Django, nhưng chúng không cần thiết Nếu bạn dự định nhận công việc với tư cách là nhà phát triển Django vào năm 2021, hãy đảm bảo rằng bạn hiểu các khái niệm được đề cập trong bài đăng này. Nếu bạn muốn nổi bật so với những người khác trong thị trường việc làm, hãy cải thiện kỹ năng của bạn trong các lĩnh vực khác như phát triển giao diện người dùng và xây dựng API Điều quan trọng là phải liên tục học hỏi và cập nhật những gì đang xảy ra trong thế giới Django. Đọc các bài đăng trên blog và bản tin, nghe podcast và chú ý đến những gì người khác đang làm để bạn nhận thức được các xu hướng và mô hình trong ngành Django có được yêu cầu trên Python không?Đương nhiên, nhu cầu đối với Nhà phát triển Django và Nhà phát triển Python (có kỹ năng Django) vẫn ở mức cao nhất mọi thời đại . Các công ty tìm kiếm những ứng viên đã được đào tạo thực tế về Django và nắm vững Python. Họ thường nghiêng về những ứng viên thành thạo Django, AngularJS và Spark/Big Data.
Python và Django đã đủ chưa?Chắc chắn rồi. Django là một framework phổ biến và ngày càng trở nên phổ biến khi ngày càng có nhiều nhà phát triển phụ trợ nhận ra rằng Python mạnh hơn và dễ làm việc hơn nhiều so với PHP. Phải mất một nửa thời gian để phát triển trong Django và Python so với.
Tôi có thể xin việc nếu tôi chỉ học Python không?Nếu đủ cố gắng, bạn có thể nhận được công việc Python tại công ty mà mình mong muốn . Cũng lưu ý rằng một số kiến thức về khoa học dữ liệu, máy học, dữ liệu lớn và trí tuệ nhân tạo có thể có lợi cho cuộc phỏng vấn và cho chính công việc.
Tôi có thể xin việc tại Google với tư cách là nhà phát triển Django không?Một nhà khoa học máy tính hoặc một người nào đó thông thạo các phương pháp lập trình và giải quyết vấn đề có thể nhận được việc làm tại Google . Django -- và sự thành thạo của bạn trong đó -- có nghĩa là gần như không có gì trừ khi bạn nộp đơn tại một nơi làm việc dành riêng cho Django. |