Dự án python đầy đủ ngăn xếp

Với mỗi dự án trong số 10 dự án python này, sẽ có một video hướng dẫn đầy đủ hướng dẫn bạn từng bước từ đầu đến cuối. Các dự án này đã được lựa chọn thủ công và bao gồm từ người mới bắt đầu đến trung cấp. Nếu bạn còn khá mới với python, tôi chắc chắn rằng bạn sẽ tìm thấy một dự án trong danh sách này khơi dậy sự tò mò của bạn

10 dự án Python mới bắt đầu

1. Dự án trò chơi phiêu lưu Python đơn giản

Đây là dự án python tốt nhất cho người mới bắt đầu. Tôi thích các trò chơi phiêu lưu và cốt truyện hay, đó chính xác là những gì trò chơi này mang lại. Thật không may, tôi cũng thích hình ảnh đẹp, đó là thứ mà bạn sẽ không nhận được từ trò chơi này. Nếu bạn thích hình ảnh và hành động hơn là câu chuyện và phiêu lưu, thì tôi khuyên bạn nên xem dự án Space Invaders bên dưới trong danh sách này

Trò chơi phiêu lưu dựa trên văn bản này cho đến nay là dự án python đơn giản nhất trong danh sách này. Nó rất giống với phiên bản Java của dự án này mà tôi đã đưa vào một bài viết khác; . Tuy nhiên, cái này cơ bản hơn một chút

Trò chơi này hướng dẫn người chơi xuyên suốt câu chuyện, cho phép người chơi đưa ra các quyết định cuối cùng dẫn đến các kết quả khác nhau trong trò chơi. Các đường dẫn quyết định này được chứa trong một hàm được gọi với một chuỗi đơn giản các câu lệnh if/elif/else. Nhiều dự án python này có khả năng tùy biến cao, đặc biệt là dự án này

Bạn sẽ tạo ra loại câu chuyện nào?

Khó khăn. 2/10
Tổng thời gian. 46 phút
Dòng mã. 375

https. //www. youtube. com/watch?v=_ELCMngbM0E&list=PL-51WBLyFTg0omnamUjL1TCVov7yDTRngKhông thể tải video vì JavaScript bị tắt. Trang web thương mại điện tử Django. Thiết lập & Mẫu. Phần 1 ( https. //www. youtube. com/watch?v=_ELCMngbM0E&list=PL-51WBLyFTg0omnamUjL1TCVov7yDTRng)

là xu hướng phổ biến nhất hiện nay. Không có gì ngạc nhiên khi có hàng tá các chương trình đào tạo trực tuyến và ngoại tuyến giúp hỗ trợ mọi lập trình viên trở thành Fullstack Developer  và thậm chí sau đó .

Trong bài viết này, tôi sẽ cung cấp hướng dẫn hướng dẫn những kỹ năng quan trọng nhất cần thiết để trở thành Nhà phát triển Web Full-Stack

Fullstack developer là gì?

Fullstack developer là sự tổng hợp từ kiến ​​thức, sự hiểu biết trực quan và sắc nét về cả front-end và back-end, cũng như nắm bắt các phương pháp hay nhất về khái niệm và khái niệm. Đương nhiên, các full stack developer đều có mã khả năng cho mọi thành phần của hệ thống, và họ sẽ làm mọi thứ một cách tốt nhất nếu họ thực sự giỏi. Điều này đòi hỏi một lượng lớn các kỹ năng cũng như kinh nghiệm

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

Full stack developer làm những gì?

Một Full-Stack Web Developer là người có thể làm công việc trên cả front-end và back-end của một ứng dụng. Front-end nói chung là phần mà người dùng có thể thấy và tương tác được, còn back-end là phần ứng dụng xử lý logic, cơ sở dữ liệu tương tác, chứng thực người dùng, cấu hình máy chủ, v.v.

Tuy nhiên, một lập trình viên full stack xử lý frontend sẽ không thể bằng một front-end chuyên gia được, điều này cũng tương tự với backend. Họ sẽ hiểu biết rộng về nhiều thành phần khác nhau, và cách tương tác giữa họ trong quá trình phát triển, và kết hợp họ lại với nhau thành một sản phẩm hoàn chỉnh

Là 1 Full-Stack Web Developer, không nhất thiết bạn phải làm tốt mọi công việc được giao từ front-end đến back-end, nhưng điều đó có nghĩa là bạn có thể làm công việc trên cả hai front-end và back-end

Nếu bạn muốn trở thành một Full-Stack Web Developer hoặc có dự định bắt đầu công việc Full-Stack Web Developer thì dưới đây là danh sách tham khảo những điều dân IT nên học

1. HTML/CSS

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

Hầu như mọi chương trình dạy trực tuyến hay ngoại tuyến về Full-Stack Web Developer, đều dạy cho bạn bắt đầu với HTML và CSS bởi vì chúng là nền tảng của web. HTML cho phép bạn thêm nội dung vào một trang web và CSS cho phép bạn tạo phong cách riêng cho nội dung của bạn

Các chủ đề dưới đây liên quan đến HTML / CSS thường xuất hiện trong các cuộc phỏng vấn và liên quan trực tiếp đến công việc thực tế khi bạn đi làm

  • Định nghĩa HTML
  • Có thể giải thích CSS Box Model
  • Lợi ích của tiến trình tiền xử lý CSS (bạn không nhất thiết phải hiểu cách sử dụng nó ở mức độ sâu, nhưng bạn phải hiểu chúng là gì và chúng giúp ích gì cho nhà phát triển)
  • CSS Media Queries nhắm mục tiêu vào các thiết bị khác nhau và cung cấp các CSS tương ứng
  • Bootstrap (một khung hỗ trợ thiết kế và bố trí nội dung trên một trang. Trong khi nhiều chương trình trực tuyến hay các trường học chỉ tập trung vào việc dạy Bootstrap, trong khi thực tế điều quan trọng hơn là phải có kiến ​​thức sâu về CSS cơ bản hơn là tìm hiểu các tính năng và phương pháp Bootstrap .

    2. JavaScript

Ngôn ngữ JavaScript đang ngày càng trở nên phổ biến hơn qua các năm. Các thư viện, khung và công cụ mới liên tục được phát hành. Dựa trên khảo sát của Stack Overflow Developer, JavaScript là ngôn ngữ phổ biến nhất trong cả Full-Stack, Front-end và Back-end

Đây là ngôn ngữ duy nhất chạy tự nhiên trong trình duyệt và cũng có thể tăng gấp đôi hiệu suất so với ngôn ngữ máy chủ (như bạn sẽ thấy bên dưới nút. js). Dưới đây là một số chủ đề bạn cần hiểu nếu muốn trở thành Full-Stack Developer

  • Hiểu cách làm việc với DOM, biết JSON là gì và làm thế nào để ứng dụng nó
  • Các tính năng ngôn ngữ quan trọng như. thành phần chức năng, kế thừa nguyên mẫu, bao đóng, ủy quyền sự kiện, phạm vi, chức năng cấp cao
  • Điều khiển bất đồng bộ, hứa hẹn hoặc async/await và gọi lại
  • Cách cấu trúc mã của bạn đúng chuẩn và mô-đun hóa các phần của nó, những phần thứ hai như webpack, browserify hoặc các công cụ xây dựng như gulp chắc chắn sẽ hữu ích cho bạn
  • Biết cách sử dụng ít nhất một framework phổ biến (nhiều chương trình chỉ tập trung chủ yếu vào công việc giảng dạy cho bạn một thư viện hoặc 1 framework như React hay AngularJS, nhưng trong thực tế, hiểu biết sâu hơn về ngôn ngữ JavaScript không phụ thuộc) . Một khi bạn đã hiểu biết tốt về JavaScript, việc tiếp cận các framework không còn quá khó khăn
  • Mặc dù một số ý kiến ​​cho rằng bạn nên hạn chế sử dụng hoặc không sử dụng mã jQuery. Tuy nhiên, không thể phủ nhận mã jQuery vẫn tồn tại trong hầu hết các ứng dụng và hiểu biết về nó chắc chắn sẽ hữu ích cho bạn
  • Một số ý kiến ​​về các khung thử nghiệm và tại sao chúng lại quan trọng (một số thậm chí có thể cho rằng chủ đề này nên là tùy chọn)
  • Tìm hiểu về một số tính năng mới quan trọng của ES6

    3. Ngôn ngữ Back-End

Một khi bạn thấy mình nắm bắt tốt về HTML / CSS và JavaScript, bạn sẽ muốn chuyển sang ngôn ngữ back-end sẽ xử lý những thứ như hoạt động của cơ sở dữ liệu, xác thực người dùng và ứng dụng logic.

Tất cả các chương trình đào tạo trực tuyến và bootcamp thường tập trung vào một công cụ back-end ngôn ngữ có thể, trong khi thực tế không có vấn đề gì khi bạn học nhiều hơn 1 ngôn ngữ miễn phí là bạn hiểu những gì đang xảy ra.

Bạn sẽ nhận được những phản ứng khác nhau khi hỏi ai đó back-end ngôn ngữ nào là tốt nhất để học. Vì vậy dưới đây tôi đã liệt kê một vài biến kết hợp phổ biến. Một lưu ý quan trọng. cho dù bạn quyết định học ngôn ngữ gì, thì điều quan trọng là phải gắn bó với nó và học hỏi mọi thứ về nó trong khả năng của bạn

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

  • Nút. js. Đây là một lựa chọn tuyệt vời bởi vì Node. js chính nó chỉ là một môi trường JavaScript có nghĩa là bạn không cần phải học một ngôn ngữ mới. Đây là một lý do tại sao nhiều chương trình trực tuyến và bootcamp chọn dạy Node. js. Framework phổ biến nhất mà bạn có thể tìm hiểu để hỗ trợ bạn trong việc phát triển các ứng dụng web là Express
  • Php. không phải bàn cãi nhiều, Php vẫn đang được lập trình viên tại Việt Nam cũng như các công ty CNTT tại VN sử dụng nhiều trong các nhà sản xuất lớn. Nổi tiếng nhất và dễ học nhất là Laravel
  • hồng ngọc. Một số framework phổ biến để phát triển trong Ruby là Rails và Sinatra. Rất nhiều chương trình dạy Ruby as a ngôn ngữ back-end đầu tiên
  • Trăn. Một số framework phổ biến để phát triển trong Python là Django và Flask.
  • Java. Ngôn ngữ Java không còn được dạy nhiều trong thời gian gần đây khi đào tạo phát triển Full-Stack Web Development  nhưng một số công ty đã sử dụng lại Java như một phần của họ và nó vẫn là một ngôn ngữ lập trình rất cần thiết (xem hình .

    4. Cơ sở dữ liệu và lưu trữ web

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

Khi học để xây dựng các ứng dụng web, trong một số trường hợp có thể bạn sẽ muốn lưu trữ dữ liệu ở một nơi nào đó và sẽ sử dụng nó sau này. Bạn cần giữ chặt các chủ đề sau đây liên quan đến cơ sở dữ liệu và lưu trữ

  • Hiểu được các lợi ích của dữ liệu quan hệ, ví dụ. mysql
  • Tìm hiểu về cơ sở dữ liệu NoSQL, ví dụ. MongoDB
  • Hiểu được điều gì là tốt hơn trong những tình huống khó chịu nhất
  • Biết cách kết nối cơ sở dữ liệu với back-end ngôn ngữ mà bạn đã chọn (ví dụ:. Nút. js + MongoDB)
  • Hiểu được lợi ích của các kho dữ liệu trong bộ nhớ như Redis hoặc memcached
  • Bộ lưu trữ web để lưu phiên lưu trữ, cookie và dữ liệu được lưu trong bộ nhớ cache trong trình duyệt
  • Cơ sở dữ liệu nhân rộng, ACID và ORM (tất cả các tùy chọn).

    5. HTTP và REST

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

HTTP là một giao thức ứng dụng phi văn bản trên Internet – nó cho phép máy khách giao tiếp với máy chủ  (ví dụ. Mã JavaScript của bạn có thể yêu cầu AJAX cho một số mã back-end mà bạn đã chạy trên một máy chủ sẽ xảy ra thông qua HTTP). Một số chủ đề quan trọng bạn nên tìm hiểu được liệt kê dưới đây

  • REST is what and at sao lại quan trọng trong giao thức HTTP và các ứng dụng web
  • Các phương pháp hay nhất để thiết kế API RESTful. POST / GET request
  • Học cách sử dụng Chrome DevTools có thể cực kỳ hữu ích
  • Giấy chứng nhận SSL là gì?
  • HTTP2 và SPDY (tùy chọn). WebSockets, Web Worker và Service Worker (tất cả các tùy chọn).

    6. Cấu hình ứng dụng web cấu trúc

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

Một khi bạn nghĩ rằng mình đã nắm bắt được HTML/CSS, JavaScript, lập trình back-end, cơ sở dữ liệu và HTTP/REST, tiếp theo sẽ là phần khó khăn hơn. Tại thời điểm này, nếu bạn muốn tạo ra một ứng dụng web phức tạp, bạn cần biết cách cấu trúc mã của bạn, cách tách các tệp tin, cách lưu trữ các tệp tin lớn, cách sắp xếp dữ liệu trong cơ sở.

Có những phương pháp hay nhất mà bạn có thể đọc trực tuyến, nhưng cách tốt nhất để thực hiện nghiên cứu về cấu trúc ứng dụng là tự nhiên làm cho một ứng dụng lớn có chứa một số bộ phận chuyển động – hoặc thậm chí tốt hơn là làm việc với một ứng dụng.

Đó là lý do tại sao những người có 7 năm kinh nghiệm có thể làm tốt hơn những người có 2 năm kinh nghiệm, mặc dù họ không nhất thiết phải biết CSS hoặc JavaScript nhưng qua quá trình làm việc tích lũy kinh nghiệm họ có thể làm việc với tất cả . Dưới đây là một số điều bạn có thể đọc để giúp bạn hiểu cách kiến ​​trúc các ứng dụng web của bạn đạt hiệu quả

  • Tìm hiểu về các nền tảng thông tin ứng dụng như một dịch vụ, ví dụ. Heroku và AWS. Heroku cho phép bạn dễ dàng tải mã của mình lên và chạy ứng dụng với cấu hình thấp hoặc bảo trì máy chủ và AWS cung cấp hàng chục sản phẩm và dịch vụ lưu trữ, xử lý video, cân bằng tải và nhiều hơn thế nữa
  • Tối ưu hóa cho các ứng dụng và trình duyệt hiện đại
  • Một số ý kiến ​​về cấu trúc ứng dụng web cần có bao gồm
  • Thiết kế các ứng dụng web của Microsoft
  • MVC
  • Mặc dù điều quan trọng nhất là bạn nên cố gắng làm dự án với mọi người, hãy xem xét cơ sở mã của các dự án phổ biến trên GitHub và tìm hiểu ngày càng nhiều điều tốt từ các nhà phát triển cấp cao.

    7. Git

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

Git là một hệ thống kiểm tra phiên bản cho phép các nhà phát triển làm việc trên một nhóm để theo dõi tất cả các thay đổi đang được thực hiện trên codebase. Điều quan trọng là cần một vài người hiểu biết cơ bản liên quan đến Git để bạn hiểu cách nhận mã mới nhất mà bạn đã bỏ lỡ, cập nhật các phần của mã, sửa lỗi và thay đổi mã của người khác mà không vi . Bạn chắc chắn nên học nghĩa đằng sau Git và “chơi” với nó nhiều hơn

  • Danh sách một số lệnh Git phổ biến mà bạn có thể sử dụng
  • Hướng dẫn sử dụng Git và Github cho người mới bắt đầu

    8. Thuật toán cơ bản và cấu trúc dữ liệu

Dự án python đầy đủ ngăn xếp
Dự án python đầy đủ ngăn xếp

Topic này tập trung vào 2 quan điểm phân cực trong giới lập trình. Có một số nhà phát triển cho rằng không nên tập trung nhiều vào các chủ đề khoa học máy tính như duyệt cây, sắp xếp, phân tích thuật toán, thao tác ma trận, v.v. trong quá trình phát triển web

Trong khi bên cạnh những công ty yêu cầu ứng viên có bằng khoa học máy tính hoặc tương đương, thì cũng có rất nhiều công ty sẽ tuyển dụng những người không có bằng cấp kỹ thuật này nếu họ có thể chứng minh rằng họ biết.

Tuy nhiên, để trở thành một nhà phát triển fullstack cao cấp, chúng ta cần ít nhất là nắm bắt các thuật toán cơ bản và cấu trúc dữ liệu, công việc sẽ giảm thiểu mã rác hoặc tăng hiệu suất hệ thống. Vì vậy, đây là một số điều bạn chắc chắn nên học

  • Cấu trúc bảng băm dữ liệu và cố gắng hiểu chúng ở mức độ chuyên sâu. Cấu trúc dữ liệu này nằm bên dưới các đối tượng trong JavaScript (từ điển trong Python và hàm băm trong Ruby).
  • Hiểu về sơ đồ cây và đồ thị có thể có lợi như hiểu cấu trúc dữ liệu
  • Hiểu được các kiến ​​thức cơ bản của phân tích Big-O, để bạn không làm những điều dị thường như tạo ra một vòng lặp 3 lần không cần thiết
  • Biết khi sử dụng một đối tượng với một mảng và hiểu được sự cân bằng
  • Tìm hiểu tại sao bộ nhớ đệm lại quan trọng như vậy khi làm việc với một lượng lớn dữ liệu. Cũng tìm hiểu được những ưu nhược điểm của bộ nhớ trong vs bộ nhớ ngoài