นักพัฒนาซอฟต์แวร์อาวุโสที่มีความสามารถทางเทคนิคสามารถทำการศึกษาเพื่อปรับปรุงอย่างต่อเนื่อง [ปิด]


15

สมมติว่าคุณเขียนโปรแกรมมานานกว่า 10 ปีแล้ว คุณรู้หลายภาษามีไม่กี่คนที่มีรายละเอียดมาก คุณได้ออกแบบสถาปัตยกรรมสำหรับโซลูชันทำงานและส่งมอบโครงการขนาดใหญ่ คุณได้ศึกษารูปแบบวิธีปฏิบัติที่ดีที่สุดแนวทางการเข้ารหัสที่มีประสิทธิภาพการทดสอบหน่วยการทำเธรดหลายเธรดและอื่น ๆ

แล้วคุณค่อย ๆ พัฒนาความรู้สึกที่หนังสือส่วนใหญ่ที่คุณอ่านให้ข้อมูลที่มีค่าน้อยลงและน้อยลงต่อข้อความ 100 หน้า ดังนั้นพวกเขาจึงเริ่มให้ผลตอบแทนลดลง คุณยังคงเรียนรู้ แต่คุณจะไม่พัฒนาอีกต่อไปเมื่อก้าวกระโดด

ทำไมการเรียนรู้จึงมีประสิทธิผลน้อยลงเมื่อเทียบกับเมื่อก่อน

ย้อนกลับไปก่อนหน้านี้มันเคยเปลี่ยนวิธีคิดของคุณสอนสิ่งใหม่ ๆ และขยายขอบเขตอันไกลโพ้นของคุณซึ่งต่อมาได้ปรับปรุงทั้งอาชีพปัจจุบันของคุณหรืออนุญาตให้คิดค้น / จัดการ / สร้างสิ่งใหม่ เหตุใดจึงไม่เป็นเช่นนั้นอีกต่อไป?


9
ต่อคำถามที่พบบ่อยคำถามเกี่ยวกับสิ่งที่คุณควรจะทำอย่างไรต่อไป (โครงการหนังสือเทคโนโลยีหรือภาษา) จะปิดหัวข้อ ฉันเข้าใจมุมมองของคุณ แต่คุณไม่สามารถรู้ทุกสิ่งที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์ ปัญหาของคุณคือคุณเบื่อหน่ายอาจจะตกอยู่ในสติปัญญา สิ่งที่เป็นแรงบันดาลใจให้คุณออกไปจากร่องนั้นขึ้นอยู่กับคุณมากและอาจจะเป็นสิ่งที่แตกต่างอย่างสิ้นเชิงสำหรับคนอื่น แต่นี่คือคำตอบ: ได้รับการออกจากเขตความสะดวกสบายของคุณ เรียนรู้เกี่ยวกับระบบสมองกลกราฟหรือสิ่งที่คุณสนใจ
แม็กเคเล็บ

2
ฉันไม่เห็นคำถามนี้ จำกัด ว่า OP ควรทำอย่างไรต่อไป มันค่อนข้างเกี่ยวกับวิธีการทั่วไปที่ผู้เชี่ยวชาญมีให้เพื่อศึกษาต่อ บางทีมันอาจจะเป็นประโยคที่ดีกว่า แต่ก็ไม่ได้อ่านว่า " ฉันควรทำอย่างไรต่อไป" สำหรับฉัน
แฟรงค์

3
ฉันก็ไม่รู้เหมือนกันว่าคำถามเหล่านี้ไม่ใช่คำถามในปัจจุบัน จริง ๆ แล้วมันยากที่จะหาการสนทนาที่น่าสนใจที่นี่เมื่อเร็ว ๆ นี้ ตกลง, w / e, เพียงแค่ล็อคหัวข้อ ...
Coder

2
ฉันเชื่อว่าคำถามสามารถแก้ไขได้เพื่อเปิดใหม่ เท่าที่ผมสามารถบอกได้ว่าปัญหาที่นำเสนอ "ผลตอบแทนลดลง ... การศึกษารูปแบบการปฏิบัติที่ดีที่สุดแนวทางการเขียนโปรแกรมที่มีประสิทธิภาพ, การทดสอบหน่วยแบบมัลติเธรด ..." เป็นธรรมในหัวข้อสำหรับโปรแกรมเมอร์
ริ้น

2
คุณจะได้รับความเข้าใจที่ลึกซึ้งขึ้นในเรื่องเมื่อคุณพยายามสอนให้คนอื่น
JeffO

คำตอบ:


23

อย่างแรกแม้จะมีวิธีการตั้งคำถามของคุณ แต่ก็ไม่มีที่สิ้นสุดสำหรับการศึกษาใด ๆ โดยเฉพาะอย่างยิ่งไม่ใช่ในสาขาของเราที่สิ่งใหม่ ๆ ปรากฏขึ้นเร็วกว่าที่คุณสามารถอ่านเกี่ยวกับพวกเขาได้ ที่ถูกกล่าวว่าเมื่อคุณต้องการที่จะปรับปรุงมีหมวดหมู่ดังต่อไปนี้ที่ฉันจะพิจารณา เพื่อประโยชน์สูงสุด / ROI คุณควรเลือกบางอย่างจากจุดอ่อนที่สุดของหลักสูตร

ความรู้พื้นฐาน

แม้จะรู้ภาษาการเขียนโปรแกรมและมีประสบการณ์ในการใช้งานแล้ว แต่มักจะมีพื้นที่ (โดยเฉพาะการเรียนรู้ด้วยตนเอง) ซึ่งเป็นปัญหาพื้นฐานที่ไม่สมบูรณ์ คิดเกี่ยวกับสิ่งต่าง ๆ เช่นโครงสร้างข้อมูลอัลกอริทึมกลยุทธ์การแคชฟังก์ชันแฮช ...

โปรดทราบว่าสิ่งนี้ยังรวมถึงรากฐานของภาษาการเขียนโปรแกรม - ทุกอย่างตั้งแต่คอมไพเลอร์เทคนิคการปรับให้เหมาะสมและระบบพิมพ์จนถึงทฤษฎีหมวดหมู่ monads และอื่น ๆ

หากคุณได้รับการสอนเป็นอย่างดีอย่างที่เคยเรียนในระดับมหาวิทยาลัยมาหลายปีคุณก็มีแนวโน้มที่จะแข็งแกร่งในประเภทนี้ (ห่างไกลจากหลักสูตรที่เรียนจบ แต่มีพื้นฐานที่มั่นคง) มิฉะนั้นลองอ่านหนังสือสองสามเล่มในพื้นที่เหล่านี้เพื่อดูว่ามีอะไรที่คุณไม่เคยรู้มาก่อนหรือไม่ หมวดหมู่นี้เป็นวิธีที่ง่ายที่สุดที่จะประเมินตัวเองมากเกินไป

กระบวนทัศน์ความรู้

ฉันมักจะประหลาดใจเมื่อโปรแกรมเมอร์ปรากฏตัวที่คิดว่าพวกเขารู้ - มัน - ทั้งหมด แต่ไม่รู้อย่างสมบูรณ์นอกเหนือจากกระบวนทัศน์หลัก หากคุณคิดว่าการวางแนวของวัตถุเป็นจุดจบนี่คือหมวดหมู่ของคุณสำหรับการปรับปรุง หากคุณคิดว่าการเขียนโปรแกรมฟังก์ชั่นมีอยู่ด้วยและอาจเคยได้ยินการเขียนโปรแกรมแบบลอจิกแล้วก็ยังเป็นตัวเลือกที่ดี มีกระบวนทัศน์ที่มากขึ้นและการเรียนรู้เกี่ยวกับสิ่งเหล่านั้นมีผลอย่างลึกซึ้งในการให้บางสิ่งบางอย่างคล้ายกับมุมมองใหม่ของโลกแห่งการเขียนโปรแกรม

อย่าลืม: บ่อยครั้งที่มีการถกเถียงกันในเรื่องสิ่งที่ถือได้ว่าเป็นกระบวนทัศน์หรือไม่ อย่าติดตามสิ่งเหล่านี้ เป้าหมายของคุณควรจะขยายขอบเขตของคุณและนั่นหมายถึงการเรียนรู้เกี่ยวกับสิ่งเหล่านี้ไม่ว่าจะมีคนอื่นคิดว่า X เป็นกระบวนทัศน์ด้วยตนเองหรือไม่ก็ตามไม่ได้สร้างความแตกต่างให้กับสิ่งนั้น

ความรู้ผู้เชี่ยวชาญ

วิธีที่ง่ายที่สุดคือทั้งหมดและมีประโยชน์น้อยที่สุดในเวลาเดียวกัน แน่นอนคุณสามารถผูกมัดตัวเองกับเทคโนโลยีเดียวและทำความรู้จักกับรายละเอียดทั้งหมด แต่คุณควรเตรียมพร้อมที่จะจ่ายเงิน เทคโนโลยีมีอายุและพวกเขาทำเช่นนั้นด้วยความเร็วที่เพิ่มมากขึ้นซึ่งทำให้การรับประกันว่าเวลาที่ลงทุนที่นี่จะไร้ค่าเป็นเวลาหลายปี

ปัญหาของการกลับมาลดน้อยลงอีกด้วย โดยธรรมชาติการเป็นผู้เชี่ยวชาญในบางสิ่งบางอย่างหมายความว่าคุณจะต้องใช้เวลานับไม่ถ้วนในเรื่องแคบ ๆ และด้วยคำจำกัดความคุณจะต้องใช้เวลานานในการเรียนรู้สิ่งใหม่และสิ่งใหม่นั้นจะเป็นปริศนาชิ้นเล็ก ๆ จะไม่เปลี่ยนมุมมองของใครก็ตาม

ความรู้เกี่ยวกับโดเมน

ไม่ว่าจะเป็นเพราะโดเมนของงานของคุณหรือเพียงแค่ขึ้นอยู่กับความสนใจส่วนบุคคลของคุณ แต่เป็นผู้เชี่ยวชาญด้านวิทยาการคอมพิวเตอร์และบางโดเมนมีคุณค่ามากและคุ้มค่า ฉันไม่ได้พูดเกี่ยวกับพื้นที่ด้านข้างของ CS ที่นี่เช่นคอมพิวเตอร์กราฟิกหรือ AI แทนที่จะสังเกตเห็นว่าคอมพิวเตอร์มีการยึดครองชีวิตของทุกคนและทำให้ทุก ๆ ฟิลด์ขึ้นอยู่กับคอมพิวเตอร์และพื้นที่ที่คุณสามารถเข้าไปได้

อันนี้ชัดเจนอยู่ในหมวดหมู่ของ "นอกเขตข้อมูลของคุณ" แต่มันไม่ได้เป็นคณิตศาสตร์ "นอก" ที่คมชัด แต่เป็นสาขาของการประยุกต์ใช้ พิจารณายา: ฉันไม่แนะนำให้คุณเป็นหมอ อย่างไรก็ตามการเรียนรู้พื้นฐานของยาเพื่อนำความรู้ที่มีอยู่ของคุณเกี่ยวกับวิทยาการคอมพิวเตอร์ไปใช้กับปัญหาของสาขานั้นคุ้มค่าแน่นอน ช่วงนี้จากเทคนิคการสร้างภาพข้อมูลมากกว่าหุ่นยนต์ไปจนถึงระบบผู้เชี่ยวชาญและการจัดการข้อมูลเพียงเพื่อการบัญชี / การบริหาร ในขณะที่คุณทำสิ่งเหล่านี้มาก่อนการทำในโดเมนอื่นอาจกลายเป็นประสบการณ์ใหม่ทั้งหมด

โปรดจำไว้ว่านี่เป็นการเปลี่ยนแปลงที่รุนแรงในทิศทางของคุณมากกว่าประเภทอื่น ๆ คุณอาจไม่ได้ติดต่อกับสาขานั้นในการทำงานประจำวันของคุณซึ่งทำให้การถอนออกเป็นเรื่องยากมาก อาจหมายถึงการเปลี่ยนงานด้วยซ้ำ นอกจากนี้คุณจะต้องมีการรับรองเกี่ยวกับโดเมนใหม่ของคุณ - คุณเป็นมือใหม่ในโดเมนนั้นและคุณต้องแข่งขันกับบัณฑิตจากการศึกษาแบบสหวิทยาการซึ่งเริ่มเดินทางไปสู่การเป็นผู้เชี่ยวชาญในช่องนั้น

เสริมความรู้

ดังที่ Mike Brown กล่าวเสริมนอกจากนี้ยังมีขอบเขตของความรู้ซึ่งในทางใดทางหนึ่งมาพร้อมกับงานปัจจุบันของคุณ แต่ไม่จำเป็นอย่างเคร่งครัด คุณไม่จำเป็นต้องเป็นผู้จัดการโครงการเพื่อเรียนรู้เกี่ยวกับการจัดการโครงการ แต่ตามปกติความรู้เพิ่มเติมจะให้ข้อมูลเชิงลึกที่มากขึ้นเกี่ยวกับการทำเครื่องหมายในด้านอื่น ๆ ใคร ๆ ก็สามารถพูดคุยเรื่องนี้กับจุดที่เน้นทักษะอ่อน ๆ ฉันเดาว่าทุกคนที่ทำงานในโครงการจริงกับคนอื่นรู้คุณค่าของสิ่งเหล่านี้


+1 โดยเฉพาะอย่างยิ่งสำหรับ "ความรู้เกี่ยวกับโดเมน" - นั่นเป็นสิ่งที่ทำงานได้อย่างน้อยสำหรับฉัน
Doc Brown

1
ฉันเห็นด้วย 100% กับสิ่งที่คุณพูด ฉันสนใจในความรู้พื้นฐานที่ลึกซึ้งยิ่งขึ้น สำหรับเอฟเฟกต์ที่ฉันลงทะเบียนในหลักสูตรเกี่ยวกับคอมไพเลอร์ในขณะนี้ สิ่งที่คุณไม่ได้สัมผัสคือสิ่งที่ฉันจัดว่าเป็นความรู้เพิ่มเติม: การออกแบบกราฟิกการจัดการโครงการและอื่น ๆ
Michael Brown

+1 สำหรับกระบวนทัศน์ - ฉันทำ OOP / ขั้นตอนเป็นเวลา ~ 10 ปี (และเบื่อมัน) จากนั้นฉันเริ่มเรียนรู้การเขียนโปรแกรมที่ใช้งานได้และดวงตาของฉันก็เปิดสู่โลกใหม่
paul

9

ฉันคิดว่าซอฟต์แวร์มีการพัฒนาอยู่ตลอดเวลาและมีการเน้นการปรับปรุงอย่างต่อเนื่อง ฉันเข้าใจว่าคุณมาจากไหนฉันรู้สึกคล้าย ๆ กันเมื่อเร็ว ๆ นี้และตอนนี้ฉันกำลังติดตาม MCSM ใน SQL Server

เรียนรู้ภาษาใหม่หรือกรอบงานถัดไปหรือสิ่งที่ "ร้อน" ในปัจจุบัน ทุก ๆ ปีจะมีเทคโนโลยีโครงร่างหรือภาษาที่ออกมาหรือมีความสำคัญจนกลายเป็นคำที่ฉวัดเฉวียนในตัวของมันเอง ฉันสามารถคิดบางสิ่งเหล่านี้ในไม่กี่ปีที่ผ่านมา: node.js, Ruby, jQuery สิ่งนี้จะส่งผลกระทบต่อวิธีคิดของคุณสำหรับแพลตฟอร์มอื่น ๆ เช่นดูว่า ROR ทำอะไรกับ Java ด้วย Grails

มีห้องพักสำหรับการปรับปรุงอยู่เสมอ ฉันคิดว่ามันไม่น่าเป็นไปได้ที่คุณจะเป็นผู้เชี่ยวชาญในทุกสิ่งและฉันอ่านมากและฉันก็เรียนรู้อยู่เสมอ ฉันเห็นด้วยกับสิ่งที่คุณพูดเกี่ยวกับการเรียนรู้น้อยลงต่อ 100 หน้า แต่สิ่งนี้จะต้องเกิดขึ้นเมื่อคุณเป็นผู้เชี่ยวชาญเรื่อง

ในแง่ของสิ่งที่คุณสามารถทำได้นี่คือคำแนะนำ:

  1. ติดตามการเปลี่ยนแปลงของชุมชนและสิ่งที่ผู้คน "เข้า" เรียนรู้สแต็คใหม่อย่างน้อยเพื่อให้คุณมีเพียงพอที่จะแนะนำพวกเขาตามความเหมาะสม

  2. เข้าร่วมในเว็บไซต์ถามตอบเช่นนี้ซึ่งคุณสามารถให้ความรู้เกี่ยวกับผู้อื่นได้ ถ้าคุณสละเวลาอ่านการมีส่วนร่วมของคนอื่นคุณจะได้เรียนรู้บางสิ่งบางอย่างและอย่างน้อยที่สุดคุณก็จะเห็นมุมมองที่คนอื่นมี

  3. เลือกงานอดิเรกที่มีความสัมพันธ์กับงานของคุณ มีงานอดิเรกมากมายที่ข้ามไปคิด AI, เลโก้ Mindstorms, RaspPi เป็นต้น

  4. เช่นเดียวกับการพยายามเพิ่มความกว้างของความรู้ของคุณดูที่การเพิ่มความลึก ตัวอย่างเช่นเรียนรู้วิธีการใช้งานของ EF ใต้ฝาครอบเพื่อให้คุณสามารถวินิจฉัยกรณีมุมแปลก ๆ เหล่านั้นได้แทนที่จะใช้เพียงกรอบงาน

  5. ดำเนินการรับรองระดับสูงสุดเพื่อพิสูจน์ว่าคุณรู้เนื้อหาของคุณ

โดยส่วนตัวฉันจะบอกคุณว่าสิ่งที่เปิดใจของฉันในขณะนี้ ฉันกำลังอ่าน97 สิ่งที่สถาปนิกซอฟต์แวร์ทุกคนควรรู้และฉันเพียงบางส่วนเท่านั้น หนังสือมีอิสระที่จะอ่านออนไลน์ได้ที่ลิงก์ที่ฉันให้ไว้

ในแง่ของงานอดิเรกที่ฉันได้รับในท้ายที่สุดฉันก็เข้าสู่การวินิจฉัยยานพาหนะ (ด้วยคอมพิวเตอร์แน่นอน) ซึ่งทำให้ฉันดูแลรถยนต์ของตัวเองได้อย่างเต็มที่ จริง ๆ แล้วฉันสนุกกับเวลาที่ฉันทำงานด้วยมือของฉัน


ตลก, ฉันรู้จักหนึ่งในผู้แต่ง 97 สิ่ง;)
Michael Brown

มันเป็นหนังสือที่ดี
Sam

ไม่เป็นไร มันยอดเยี่ยมใช่มั้ย
Sam

1

หลังจากถึงจุดหนึ่งคุณได้เรียนรู้มากพอเกี่ยวกับหัวข้อเฉพาะที่คุณยินดีรับความรู้ใหม่ ๆ แบบเฉพาะกิจ เมื่อคุณรู้สึกว่ามีไม่มากที่จะเรียนรู้เกี่ยวกับสาขาหลักของคุณก็ถึงเวลาที่จะเริ่มได้รับความรู้เพิ่มเติมที่เสริมความรู้หลักของคุณ

สำหรับฉันฉันกำลังดำน้ำใน UX และการออกแบบกราฟิกเพราะฉันรู้สึกว่ามันจะทำให้ฉันดีขึ้นในฐานะนักพัฒนาเพื่อไม่เพียง แต่โครงสร้างที่สง่างามในโค้ด แต่ยังรวมถึงอินเตอร์เฟสที่หรูหราสำหรับผู้ใช้ปลายทาง

หัวข้ออื่น ๆ ที่คุณสามารถเข้าถึงได้ ได้แก่ การจัดการโครงการการวิเคราะห์ธุรกิจการบริหารระบบและการปรับปรุงกระบวนการซอฟต์แวร์ หากคุณพบว่าตัวเองทำงานในโดเมนที่เฉพาะเจาะจงอาจทำให้การดำน้ำลึกลงไปในโดเมนนั้น ตัวอย่างเช่นฉันได้ทำงานอย่างหนักในภาคบริการทางการเงินเมื่อเร็ว ๆ นี้ ฉันได้ลงทะเบียนสำหรับหลักสูตรใน Coursera เกี่ยวกับการสร้างแบบจำลองทางการเงินและสิ่งที่คล้ายกันที่จะช่วยให้ฉันพูดกับลูกค้าของฉันในแง่ของพวกเขา

มีอะไรให้เรียนรู้มากกว่านี้มันแค่คิดนอกกรอบ


0

คำถามนี้มีสองส่วน: ทำไมการเรียนรู้ยากขึ้นและคุณจะทำอย่างไร

ส่วนแรกค่อนข้างตรงไปตรงมา - หัวข้อขั้นสูงยากขึ้น มันยากที่จะเรียนรู้วิธีการโปรแกรมมันค่อนข้างยากที่จะเรียนรู้วิธีการออกแบบโปรแกรมให้ดีและยิ่งยากที่จะเรียนรู้วิธีการออกแบบโปรแกรมขนาดใหญ่ ความจริงของเรื่องนี้คือหัวข้อขั้นสูงนั้นยากกว่ามิฉะนั้นจะไม่ก้าวหน้า คุณจะต้องใช้เวลาในการเรียนรู้มากขึ้น มีเวลามากขึ้นในการฝึกฝนให้เชี่ยวชาญ

สำหรับสิ่งที่คุณสามารถทำได้คุณดูเหมือนจะเน้นไปที่ด้านเทคนิคของการเป็นวิศวกรซอฟต์แวร์อาวุโส คุณสามารถทำสิ่งต่าง ๆ ได้อีกมากมายเพื่อช่วยให้ทีมของคุณสร้างซอฟต์แวร์ได้มากกว่าการเรียนรู้ภาษาและกรอบงาน ทักษะที่อ่อนนุ่มเช่นการให้คำปรึกษากับนักพัฒนาอื่น ๆ การเจรจาต่อรองความต้องการการจัดการโครงการการออกแบบโปรแกรมการสื่อสารวิสัยทัศน์การใช้บรรทัดฐานของทีม ... สิ่งสำคัญเหล่านั้นทั้งหมดที่จำเป็นในการทำให้ทีมนักพัฒนาซอฟต์แวร์มีประสิทธิภาพในการสร้างซอฟต์แวร์


-3

ทุกครั้งที่ฉันไปที่เว็บไซต์แลมบ์ดาเดอะ Ultimateฉันไม่คิดอย่างนั้นจริง ๆ ฉันไม่สามารถรู้ได้ว่าฉันรู้อะไรบ้างในสาขาวิทยาศาสตร์คอมพิวเตอร์

LtU จะช่วยให้คุณเป็นจุดเริ่มต้นที่ดีสำหรับกระบวนทัศน์และความรู้เชิงทฤษฎีที่ต้องเรียนรู้

"ยิ่งคุณรู้มากเท่าไหร่คุณก็ยิ่งรู้น้อย"


1
นั่นเป็นคำตอบของคำถามที่ถามว่า "ทำไมการเรียนรู้จึงมีประสิทธิผลน้อยลงเมื่อเทียบกับที่เคยเป็นมาก่อน"
ริ้น

เพราะเมื่อฉันไปที่นั่นมีบทความที่มีสิ่งใหม่ 90% ที่ฉันต้องเรียนรู้ ซึ่งเป็นสิ่งที่ OP กำลังบ่นเกี่ยวกับ: อัตราส่วนของสิ่งที่เรียนรู้จากจำนวนบรรทัดที่อ่านนั้นต่ำเกินไปในกรณีของเขา คุณไม่รู้จักไซต์นี้ใช่ไหม
Stephane Rolland

@gnat และคุณเข้าใจผิดกับคำถามที่มีสิทธิ์: "นักพัฒนาซอฟต์แวร์อาวุโสที่มีความสามารถทางเทคนิคสามารถทำการศึกษาเพื่อปรับปรุง" ได้อย่างไร?
Stephane Rolland

คุณอ่านเนื้อหาของคำถามหลังชื่อหรือไม่
gnat

@gnat ใช่แน่นอนฉันได้อ่านคำถามของเขา: มันค่อนข้างจะเป็นคำสั่งที่แน่นอนถ้า OP ถามว่าทำไม : หลังจาก 10 ปีที่แล้ววิศวกรซอฟต์แวร์อาวุโสอ่านหนังสือที่ไม่มีการเปลี่ยนแปลงขอบเขตอีกต่อไปเพราะผู้อาวุโสรู้มาก ใช่ฉันอ่านแล้ว ฉันยิ้ม ฉันทำซ้ำตัวเอง"ยิ่งคุณรู้มากเท่าไหร่คุณก็จะรู้น้อย"
Stephane Rolland
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.