Python Road Map ปี 2023 เพื่อพิชิตทุกสิ่ง
![](https://post.nghiatu.com/assets/images/m/max/724/1*ePk02dUy6MFl3KOWHgQe3Q.png)
Python สามารถทำอะไรก็ได้ ทั้งหมดรวมถึง Data Science, Machine Learning, Deep Learning, NLP, Image/Video Processing forทั้ง Detection and Segmentation, Games, Android, Web Apps , Desktop GUI , คุณเพียงแค่ตั้งชื่อมัน
ประเด็นคือถ้าคุณต้องการเรียนรู้ทั้งหมด นี่อาจเป็นเรื่องที่หนักใจเล็กน้อย ในตอนท้ายของบทความนี้ คุณจะเห็นว่าคุณเชี่ยวชาญในหัวข้อเหล่านั้นทั้งหมดได้อย่างไร
แผนงาน Python 2023:
![](https://post.nghiatu.com/assets/images/m/max/724/1*2lmaQ6YidowvE6rM6akoMw.png)
แผนที่ความคิดนี้สรุปไลบรารี่ทั้งหมด (และแนวคิดพื้นฐานเกี่ยวกับงูหลาม) ที่คุณสามารถเรียนรู้เพื่อเป็นผู้เชี่ยวชาญได้ทั้งหมด นี่ไม่ใช่การวิ่งระยะยาว คุณควรจะเชี่ยวชาญหัวข้อเหล่านั้นทั้งหมดได้ในระยะเวลาที่สั้นกว่าที่คุณคิด เนื่องจาก python จะดูแลโค้ดส่วนใหญ่ให้คุณ เนื่องจากการสนับสนุนไลบรารีจำนวนมาก
![](https://post.nghiatu.com/assets/images/m/max/724/1*eHX1giTt2CbFqobOL8-QWw.png)
1. เริ่มต้นด้วย Python Basics:
- เรียนรู้ทั้งหมดเกี่ยวกับตัวแปรและการจัดการสตริง นี่เป็นสิ่งสำคัญสำหรับหัวข้อใดๆ ที่ตามมาในภายหลัง
- ข้อความแสดงเงื่อนไขและวิธีการตัดสินใจของโปรแกรม
- วนซ้ำและเน้นที่ไวยากรณ์ขั้นสูงสำหรับลูป เช่นzipและenumerate สิ่งเหล่านี้มีประโยชน์อย่างยิ่งหากคุณต้องการเขียนโค้ดด้วยวิธี "Pythonic"
- คุณต้องมีโครงสร้างข้อมูลหลัก เช่นรายการและพจนานุกรมโครงสร้างที่สำคัญน้อยกว่าคือทูเพิลและเซ็ ต
- เรียนรู้ทั้งหมดเกี่ยวกับฟังก์ชันและวิธีคืนค่าจากฟังก์ชันเหล่านั้น ตรวจสอบให้แน่ใจว่าคุณเข้าใจขอบเขตข้อมูลและตัวแปรส่วนกลาง
- เรียนรู้ฟังก์ชันในตัวขั้นสูง เช่นList Comprehension, MapsและLambda Functions
- ข้อยกเว้นเป็นสิ่งสำคัญในการเขียนโค้ดที่ ปราศจากข้อขัดข้องมากที่สุดเท่าที่จะเป็นไปได้
- การจัดการไดเร็กทอรีซึ่งใช้เพื่อสร้างโครงสร้างไดเร็กทอรีสำหรับไฟล์โปรเจ็กต์ของคุณ และมีประโยชน์มากสำหรับ Tasks Automation, File Navigation ..เป็นต้น อ่านเกี่ยวกับมัน
ในโลกของซอฟต์แวร์สมัยใหม่ เราไม่สามารถเพิกเฉยต่อความสำคัญของการขยายรหัสที่บำรุงรักษาได้ง่าย
นี่คือสิ่งที่คุณจำเป็นต้องรู้:
- คลาส และวิธี การสร้างคลาสเมธอดตัวแปรคลาส และตัวเริ่มต้นคลาส
- Objectซึ่งไม่มีอะไรนอกจากคลาสในการเล่น
- มรดก
- ซุปเปอร์คีย์เวิร์ด
- ความหลากหลาย
- การห่อหุ้ม
- หากคุณต้องการก้าวไปอีกขั้น ให้ลองดูDesign Patterns
- สิ่งนี้ไม่เกี่ยวข้องกับ OOP จริงๆ แต่ตัวตกแต่งซึ่งเป็นเทคนิคเฉพาะของ Python จะมีประโยชน์มากเมื่อทำงานกับไลบรารี่ภายนอกเช่นUnittest ซึ่งเป็นที่นิยมมากสำหรับการทดสอบซอฟต์แวร์ของคุณ
รูปแบบไฟล์ต่อไปนี้จำเป็นต่อการทำงาน และ Python เป็นภาษาการเขียนโปรแกรมที่ดีที่สุดในการแก้ไข สคริปต์ และทำให้ทุกอย่างเป็นไปตามรูปแบบไฟล์เหล่านั้นโดยอัตโนมัติ
- .txt
- .csv
- .ไฟล์ PDF
- .json
- .zip
จำเป็นอย่างยิ่งที่การคำนวณทางคณิตศาสตร์ควรจะเร็ว และไพธอนชนิดมีชื่อเสียงว่าช้าเมื่อเทียบกับ C/C++
นี่ไม่เป็นความจริงทั้งหมด ใน Python เราใช้ไลบรารีชื่อNumpyเพื่อดำเนินการทางคณิตศาสตร์ที่ซับซ้อนเกือบทุกชนิด ไม่ว่าจะเป็นการคูณเมทริกซ์ ค้นหาอาร์เรย์สำหรับองค์ประกอบหรือค้นหาองค์ประกอบสูงสุด/ต่ำสุด
ห้องสมุดมีขนาดใหญ่มาก แต่นี่คือไฮไลท์บางประการเกี่ยวกับสิ่งที่คุณต้องเรียนรู้เพื่อเริ่มต้นใช้งาน:
- อาร์เรย์เดี่ยว
- อาร์เรย์หลายสลัว
- ฟังก์ชันการค้นหาจำนวนมาก
- ฟังก์ชั่นสูงสุด / นาที numpy
- ฟังก์ชั่นการเรียงลำดับจำนวนมาก
- การแปลง string_to_array และ vica ในทางกลับกัน
- แยก
- อาร์เรย์แบบสุ่ม
- การปรับรูปร่างอาร์เรย์
- การกลับอาร์เรย์
- เทคนิคการคูณอาร์เรย์
Pandasเป็นไลบรารีที่ต้องใช้งานเมื่อจัดการข้อมูลแบบตาราง (เช่น ไฟล์ excel, csv..etc)
ลองนึกภาพความสามารถในการทำให้ทุกสิ่งที่ excel สามารถทำได้โดยอัตโนมัติ และเพิ่มมันลงในโลกของ Python อันมหึมา .. นั่นคือสิ่งที่ห้องสมุดนี้พูดถึง นี่คือไฮไลท์บางส่วนที่คุณต้องเริ่มต้น:
- ดาต้าเฟรมของแพนด้า
- การอ่านไฟล์ csv
- ตัวกรองข้อมูล
- การจัดการคอลัมน์
- การจัดการแถว
- การเปลี่ยนชื่อองค์ประกอบ
- ชุด
- ฟังก์ชันการลงจุดภายใน
- การสร้างไฟล์ CSV
เป็นคำกล่าวทั่วไปที่จะบอกว่า Python สามารถทำซ้ำแอพรูปภาพ/วิดีโอทั้งหมดที่คุณเห็นได้ เนื่องจาก Python ที่รวมกับOpenCVเป็นสัตว์ประหลาดยักษ์เมื่อพูดถึงการจัดการไฟล์มีเดีย
นี่คือไฮไลท์บางประการเกี่ยวกับสิ่งที่จำเป็นในการเริ่มต้นด้วย:
- ทำความเข้าใจกับปริภูมิสี (RGB, HSV, LAB)
- การอ่าน/เขียนภาพ
- แสดงรูปภาพ
- ภาพไบนารี
- เทคนิคการวัดระดับ
- การจัดการรูปภาพ (หมุน, สเกล…)
- การแปลงอาร์เรย์เป็นรูปภาพและในทางกลับกัน
- การขยายตัวและการสึกกร่อน
- การตรวจจับรูปร่าง
- การวาดรูปร่าง
- การประมาณรูปร่าง
- การคำนวณพื้นที่รูปร่าง
- การกำบัง
สิ่งเดียวที่ฉันสามารถเพิ่มได้ที่นี่คือการติดตามวัตถุลองดูที่นี่
7. ส่วนติดต่อผู้ใช้ Python (UI):
คุณจะกำจัด "มุมมองโค้ด" นั้นและใช้อินเทอร์เฟซแบบโต้ตอบแทนได้อย่างไร นั่นคือสิ่งที่ซอฟต์แวร์ทั้งหมดมีเหมือนกันไม่ใช่หรือ
Python มีส่วนติดต่อผู้ใช้หลายรูปแบบ
- Command Line Interfaces ซึ่งเป็นไปตามชื่อที่แสดง โดยอิงจากหน้าต่างบรรทัดคำสั่ง ซึ่งคุณพิมพ์คำสั่งที่สคริปต์ไพธอนของคุณจะดำเนินการ
คุณสามารถใช้ ไลบรารี Argparseเพื่อสิ่งนั้น - Desktop GUI หรืออินเทอร์เฟซผู้ใช้แบบกราฟิก สิ่งนี้จะทำให้ซอฟต์แวร์ของคุณดูเหมือนซอฟต์แวร์อื่น ๆ ที่คุณดาวน์โหลดและติดตั้งด้วยปุ่มโต้ตอบ ช่องข้อความ รายการแบบเลื่อนลงและเมนู
คุณสามารถใช้PySimpleGUI หรือ Tkinter - สิ่งนี้จะสร้างส่วนต่อประสานผู้ใช้ในเบราว์เซอร์ของคุณ ข้อดีของ UI ประเภทนั้นคือคุณสามารถปรับใช้โครงการของคุณบนเว็บในภายหลังพร้อมกับอินเทอร์เฟซนั้น ไม่พบข้อได้เปรียบนี้ในArgparseหรือTkinter
การมีข้อมูล ไม่ว่าจะเป็นข้อมูลไพทอนภายในหรือข้อมูลตารางภายนอกจำเป็นต้องมีการแสดงภาพใช่ไหม
สอง libs ที่สำคัญที่สุดคือ:
- Matplotlib
- ซีบอร์น
- ฮิสโตแกรม
- กระจายพล็อต
- การก่อตัวของประวัติศาสตร์
- แปลงคู่
- ข้อมูลการระบายสี
- หลายแปลง
- แปลงสด
ตอนนี้คุณได้เรียนรู้การเขียนโค้ด Python มาบ้างแล้ว คุณจะตระหนักว่าการดำเนินการทีละคำสั่งนั้นไม่สามารถนำไปใช้ได้จริงในแอปพลิเคชันขนาดใหญ่ส่วนใหญ่ เช่นเดียวกับบางครั้งที่คุณต้องการให้ GUI ของคุณทำงานโดยไม่ขึ้นกับฟังก์ชันอื่นๆ ของไพธอน
และนี่คือมัลติเธรด
- การเริ่มต้นเธรด
- เข้าร่วม
- พูลเธรด
- สัญญาณ
10. Python งานอัตโนมัติ
การทำให้ "งานที่น่าเบื่อ" เป็นแบบอัตโนมัติ เช่น ไฟล์ Excel การบันทึกเว็บฟอร์มและ GUI สามารถทำได้โดยอัตโนมัติด้วย python คุณสามารถสร้างสคริปต์หลามเพื่อเล่นเกม Android/OS ที่คุณชื่นชอบและสะสมรางวัลรายวันทั้งหมดสำหรับคุณ!
ห้องสมุดต่อไปนี้มีชื่อเสียงที่สุดในด้านนี้:
- ซีลีเนียม
- ปิออโตกุย
- OpenCVสามารถพิสูจน์ได้ว่ามีประโยชน์มากเมื่อรวมเข้ากับสิ่งที่กล่าวมาข้างต้น
- การสกัดหน้าเว็บ XPATH เพื่อโต้ตอบโดยใช้ซีลีเนียม
- กรอกช่องข้อความ
- คลิก
- ค้นหาองค์ประกอบโดยใช้ xpath หรือใช้รูปภาพเทมเพลต
- การจัดการเมนูแบบเลื่อนลง
- จัดการการอัพโหลดไฟล์
- การเรียนรู้การจับคู่เทมเพลตใน OpenCV
![](https://post.nghiatu.com/assets/images/m/max/724/1*0nkOQmIF2tlSdMjmz2vPCA.png)
การเรียนรู้แบบมีผู้สอน การเรียนรู้แบบไม่มีผู้สอน การเรียนรู้แบบเสริมแรง หัวข้อที่น่าตื่นเต้นเหล่านี้สามารถเรียนรู้ได้ผ่านการเขียนโปรแกรมด้วยไพธอน เนื่องจากการเขียนโปรแกรมด้วยแอปพลิเคชันจริงจะเพิ่มอัตราการเรียนรู้ของคุณ x10 เท่า ลองพิจารณาเรียนรู้อัลกอริทึมและลองใช้งานใน Python ทันที
ห้องสมุดวิทยาศาสตร์ข้อมูลและแมชชีนเลิร์นนิงที่มีชื่อเสียงที่สุดสองแห่งคือ:
- เผ็ด
- sklearnซึ่งสร้างขึ้นจากscipy
- การเรียนรู้ภายใต้การบังคับบัญชา:
ก. ไร้เดียงสา Bayes
b. การถดถอยเชิงเส้น
ค. เอส.วี.เอ็ม - การเรียนรู้แบบไม่มีผู้สอน:
ก. K-mean การรวมกลุ่ม
b. พีซี
เอ ค. แอ
ลดีเอ ง. ที-SNE
การเรียนรู้ การเสริมแรง: Q-learning
ข. การเรียนรู้ทางพันธุกรรม
- ความแม่นยำ
- เมทริกซ์ความสับสน
- เส้นโค้ง AUC/ROC
- พับข้าม
![](https://post.nghiatu.com/assets/images/m/max/724/1*I_V_TY6BC_xgV5Wqq9C9jw.png)
หัวข้อนี้สร้างขึ้นจาก Python Machine Learning และใช้ Neural Networks เป็นหลัก นี่คือโดเมนทั้งหมดของความเชี่ยวชาญในขณะนี้
คุณต้องตรวจสอบTensor Flow, Keras และ Pytorch
เริ่มต้นด้วยKeras (สร้างขึ้นบนTensor flow ) จากนั้นคุณสามารถข้ามไปที่Pytorch
เนื่องจาก ฟังก์ชั่น Kerasนั้นจัดการได้ง่ายกว่าPytorch
นี่คืออัลกอริทึมแรกที่คุณต้องเริ่มต้นด้วย
- เครือข่ายประสาทเทียมระดับลึก (ANN) สมบูรณ์แบบสำหรับงานทำนายการถดถอย
- Convolutional Neural Networks (CNN) เหมาะสำหรับการจำแนกภาพ
- Generative Adversarial Networks (GAN) พื้นฐานของ Deep Fake และการสร้างข้อมูลปลอม
- ฟังก์ชั่นการสูญเสียและการย้อนกลับ
- ฟังก์ชั่นการเปิดใช้งาน
- การฝึกอบรม / การทดสอบความแม่นยำ / การสูญเสีย
- ปรับจูน
13. การออกแบบเว็บ Python:
ใช่ คุณสามารถออกแบบแบ็กเอนด์สำหรับหน้าเว็บของคุณด้วย Python ได้ จริงๆ แล้วไลบรารีอย่างFlaskนั้นเป็นมิตรกับผู้ใช้มากที่สุดในการเริ่มต้น พูดตามตรง การมีความรู้บางอย่างเกี่ยวกับ HTML/CSS เป็นอย่างน้อยจะเป็นประโยชน์อย่างยิ่ง เพื่อให้สามารถทดสอบว่าเกิดอะไรขึ้นผ่าน Font-End ของคุณ (ส่วนหน้าเป็นปุ่มและเมนูที่ฉูดฉาดทั้งหมดที่คุณเห็นบนหน้าเว็บ)
อย่างไรก็ตาม หากคุณสบายดีกับการเขียนหน้าจำลองขั้นสูงโดยใช้ฟังก์ชันภายในของ Flask มาเป็นแขกรับเชิญของฉันและเริ่มต้นได้เลย!
นี่คือสิ่งที่คุณต้องเริ่มต้นด้วย:
- เส้นทาง
- การนำทาง
- เทมเพลต
- อัปเดตองค์ประกอบของหน้าผ่าน Python
- การประชุม
- การรับรองความถูกต้อง
คุณควรตรวจสอบหลักสูตรนี้ อย่างแน่นอน นี่เป็นหลักสูตรเดียวบนอินเทอร์เน็ตที่ได้รับการอัปเดตทุกสัปดาห์พร้อมหัวข้อใหม่ เนื่องจากเป้าหมายที่นี่คือหลักสูตรนี้มีทุกสิ่งที่คุณต้องการใน Python คุณไม่จำเป็นต้องซื้อ 20 คอร์สเพื่อเชี่ยวชาญภาษาไพธอน
คุณสามารถขอให้ผู้สอนเพิ่มหัวข้อเกี่ยวกับ Python และเขาจะเพิ่มให้ภายในหนึ่งสัปดาห์ !! ไม่มีค่าใช้จ่ายเพิ่มเติม!
![](https://post.nghiatu.com/assets/images/m/max/724/1*ePk02dUy6MFl3KOWHgQe3Q.png)