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ì?

    Matthew Freire

    Matthew Freire

    4 tháng 1 năm 2021  7 phút

cô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]

  1. Thiết kế cơ sở dữ liệu [quan trọng nhất]
  2. Xác thực và ủy quyền
  3. Luồng dữ liệu [biểu mẫu → dạng xem → cơ sở dữ liệu → và ngược lại]
  4. Cách cấu hình tệp tĩnh và tệp phương tiện phù hợp với Django
  5. triển khai
  6. Tìm kiếm
  7. Đáng nói. Để thoải mái thì hãy không thoải mái

Kỹ năng nổi bật

  1. Tích hợp với API của bên thứ 3
  2. docker
  3. Xây dựng API [e. gDRF]
  4. Tích hợp với các giao diện người dùng [React, Vue, v.v. ]
  5. Xếp hàng tác vụ [Cần tây, Django-Q, v.v. ]

Vậy hãy bắt đầu

Thiết kế cơ sở dữ liệu

Dữ 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ền

Hồ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ệu

Bạ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.

  • get_context_data
  • get_form_class
  • get_form_kwargs
  • get_success_url
  • form_valid
  • form_invalid
  • bưu kiện

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ện

Mộ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

  1. hít một hơi
  2. Suy ngẫm về vấn đề của bạn
  3. Làm một vài nghiên cứu
  4. Đừng căng thẳng quá nhiều

kỹ năng thưởng

Mỗ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 frontend

Cá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ó

docker

Docker 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 API

Xâ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ận

Nhữ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.

Chủ Đề