ฉันควรจะฝึกการเขียนโปรแกรมด้วยตนเองหรือเรียนรู้วิธีการเข้ารหัสอย่างมืออาชีพ [ปิด]


36

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

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

ฉันได้ยินว่าโปรแกรมเมอร์ที่ผ่านการฝึกอบรมอย่างมืออาชีพยังคงดำเนินต่อไปเกี่ยวกับเรื่องต่าง ๆ เช่นการทดสอบหน่วย บางสิ่งที่ฉันไม่เคยใช้มาก่อนดังนั้นฉันจึงไม่มีแม้แต่ความคิดที่ลึกซึ้งที่สุดว่าพวกเขาคืออะไรหรือทำงานอย่างไร ขีดเส้นใต้จำนวนมาก "_" ซึ่งไม่ใช่รสนิยมของฉัน เทคนิคส่วนใหญ่ที่ฉันใช้ตรงจากฉันหรือหนังสือสองสามเล่มที่ฉันอ่าน ไม่ทราบอะไรเกี่ยวกับ MVC ฉันเคยได้ยินมามากมายเกี่ยวกับเรื่องนี้ด้วยสิ่งต่าง ๆ เช่น backbone.js ฉันคิดว่ามันเป็นวิธีการจัดระเบียบแอปพลิเคชัน มันทำให้ฉันสับสนเพราะตอนนี้ฉันสร้างโครงสร้างองค์กรของตัวเองแล้ว

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

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


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

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

1
"เบี่ยงเบนไปจากรูปแบบของผู้ที่ได้รับการฝึกฝนอย่างเหมาะสม" สถานที่แห่งนี้อยู่ที่ไหนบนโลก? ฉันไม่เคยพบผู้สำเร็จการศึกษาที่ผ่านการฝึกอบรมมาอย่างเหมาะสม
ซ้ำ

2
ผมจะมีความสุขในการทำงานกับผู้คนจำนวนมากที่เข้าใจการปิดให้ความคิดเพียงอย่างเดียวการพิจารณาเกี่ยวกับการใช้โปรแกรมการทำงาน ...
Izkata

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

คำตอบ:


62

ในความเป็นจริงฉันค่อนข้างกลัวความจริงที่ว่าผู้คนจะตรวจสอบรหัสของฉันในที่สุด

ดี. การมีสติรู้ว่าผู้คนกำลังมองดูรหัสของคุณจะทำให้คุณพยายามมากขึ้น

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

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

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

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


44
โปรแกรมเมอร์คือสิ่งที่คุณมีอย่างต่อเนื่องเรียนรู้ที่จะ ฉันควรแปลมันเป็นภาษาจีนและเขียนมันสักอัน?
Radu Murzea

1
@SoboLAN ฉันอนุญาตให้คุณทำเช่นนี้ ฉันต้องการรูปภาพ แต่!
asfallows

2
codereview.stackexchange.comเป็นเว็บไซต์เดียวที่ฉันรู้ทันทีทันใด แต่ฉันแน่ใจว่ามีคนอื่น มีค่ามากในการมีคนตรวจสอบเป็นการส่วนตัวและพูดคุยกับพวกเขาแบบหนึ่งต่อหนึ่งแม้ว่า อาจจะมีวิทยาลัย / มหาวิทยาลัยใกล้คุณกับศาสตราจารย์ที่เป็นมิตรที่ยินดีจะพบคุณ? นั่นคือสิ่งที่ดีที่สุดที่ฉันสามารถนึกได้ทันทีบางทีคนอื่นอาจมีความคิดที่ดีกว่า
asfallows

1
ในความคิดของฉันการทดสอบจริงคือถ้าคุณมีรหัสจัดส่งที่คนอื่นใช้จริง

4
@ ThorbjørnRavnAndersen: และเป็นครั้งแรกที่คุณตระหนักว่าผู้คนกำลังใช้สิ่งที่คุณผลิตจริง ๆในตอนแรกก็น่ากลัวมาก และเสริมพลังอย่างมากในภายหลัง และจากนั้นน่ากลัวอีกครั้งในขณะที่คุณพบข้อผิดพลาดใหญ่ที่คุณทำ ;-)
โจอาคิมซาวเออร์

16

เมื่อคุณเริ่มพัฒนาแอพพลิเคชั่นโดยร่วมมือกับนักพัฒนาคนอื่น ๆ ความเป็นตัวตนของสไตล์เหล่านี้กำลังจะเข้ามา

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

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

หากคุณไม่รู้อะไรเกี่ยวกับการทดสอบหน่วยซื้อหนังสือดีๆ มีหนังสือดี ๆ มากมายเกี่ยวกับการทดสอบยูนิต เหมือนกับ MVC

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


5

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

องค์ประกอบศิลปะคือความสนุก: คุณทำได้เพราะคุณสนุกกับมัน โดยธรรมชาตินั่นคือส่วนที่คุณสอนตัวเองก่อน

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

ลักษณะของโค้ดได้รับความสำคัญเช่นกันเนื่องจากการปฏิบัติตามสไตล์ทั่วไปทำให้โค้ดอ่านง่ายขึ้นสำหรับทุกคน ใน บริษัท ขนาดใหญ่คุณจะพบงานยามค่ำคืนที่ทดสอบการปฏิบัติตามมาตรฐานการเข้ารหัสโดยอัตโนมัติและส่งอีเมลคำเตือนที่น่ารังเกียจเมื่อคุณเบี่ยงเบน

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


3

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

@ จุดของ assfallows "Frankly โปรแกรมเมอร์ไม่ใช่สิ่งที่คุณเป็นโปรแกรมเมอร์คือสิ่งที่คุณเรียนรู้อยู่ตลอดเวลา" เป็นจริงทั้งหมดและสิ้นสุดการเข้ารหัสทั้งหมด

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

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

แน่นอนว่าการเข้าร่วมทีมเป็นประโยชน์อย่างมาก - คุณต้องมีตาอื่น ๆ เพื่อดูรหัสของคุณเพื่อหาจุดที่คุณรีบเร่งหรือไม่ได้คิดอย่างเต็มที่


2

คุณไม่จำเป็นต้องเป็นคนวิจารณ์มากขึ้น แต่คุณควรจะเป็นนักเดินทางที่ดี (ใช่เริ่มใช้ VCS บางประเภท - ฉันแนะนำ Git)

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

ลองช่วยในโครงการโอเพ่นซอร์สบน Github บางคนดีมากและพยายามช่วยเหลือคุณ นี่คือเคล็ดลับที่ดีที่สุดที่ฉันสามารถมอบให้คุณได้


2

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

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

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


2

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

ความเชี่ยวชาญในการเรียนรู้ทุกสิ่ง / มีน้อยเรียนรู้และอื่น ๆ เกี่ยวกับการเรียนรู้ / วิธี / ไปเกี่ยวกับการแก้ปัญหาในสถานการณ์ที่หลากหลาย

และใบสั่งยาที่ดีที่สุดสำหรับการปฏิบัติ คุณควรมีโครงการเสมอ หากคุณอยู่ระหว่างกิ๊กที่ได้รับค่าจ้างให้ใช้ของเล่นส่วนตัว เวลาว่างหนึ่งวันหยุดสุดสัปดาห์? ทำงานผ่าน 'hello world' สำหรับภาษาหรือแพลตฟอร์มที่คุณไม่เคยใช้มาก่อน มองหาวิธีการเรียนรู้มากมายในครั้งเดียว ตัวอย่างเช่นสร้างบางสิ่งใน Google App Engine และคุณจะได้เรียนรู้ทั้งหมดเกี่ยวกับฐานข้อมูล Python, BigTable และคอลัมน์เชิงคอลัมน์ คุณจะได้รับสไตล์แบบ Google "ระดับมืออาชีพ" เช่นกัน

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

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


ขอบคุณจอห์นนี่สำหรับคำตอบแรกที่คุณโพสต์และยินดีต้อนรับสู่กลุ่มโปรแกรมเมอร์ในกองแลกเปลี่ยน โปรดตรวจสอบแนวทางที่เป็นประโยชน์สำหรับคำถามและคำตอบในไซต์ Stack Exchange: programmers.stackexchange.com/questions/how-to-answer - DeveloperDon
DeveloperDon

1

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

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

  • แก้ไข?
  • เข้าใจ?
  • maintainable?
  • ประสิทธิภาพสูงหรือไม่

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

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

อย่าหลอกตัวเอง!! เรียนรู้และเพลิดเพลินกับสิ่งที่คุณทำต่อไป


ขอบคุณ Chris สำหรับการทำคำตอบที่โพสต์ครั้งแรกของคุณและยินดีต้อนรับสู่กลุ่มโปรแกรมเมอร์ใน Stack Exchange ฉันมีความเคารพต่อแนวความคิดของคุณ "สิ่งที่คนพูดว่าคุณไม่สามารถทำได้คุณลองและพบว่าคุณทำได้" เฮนรีเดวิด ธ อโร โปรดตรวจสอบแนวทางที่เป็นประโยชน์สำหรับคำถามและคำตอบในไซต์ Stack Exchange: programmers.stackexchange.com/questions/how-to-answer
DeveloperDon

1

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

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

แม้แต่วิทยาลัยของฉันก็ล้มเหลวที่จะสอนฉันสิ่งเหล่านี้แม้ว่าพวกเขาจะพยายาม

สำหรับการทดสอบหน่วยค้นหาการพัฒนาการทดสอบแบบขับเคลื่อน

สำหรับการแสดงความคิดเห็นคิดว่ารหัสที่คุณเขียนหลังจากที่คุณหายไป และเวลาที่คนอื่นจะใช้วิศวกรรมย้อนกลับ

สำหรับภาษาเชิงวัตถุ ทำความเข้าใจกับมันอย่างน้อย มันเป็นเครื่องมือที่คุณสามารถใช้เพื่อแก้ปัญหาในแบบที่อ่านง่ายขึ้น

ขอให้โชคดี: D


0

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

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

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

ฉันเอนตัวไปยังส่วน Functional มากกว่า OO แต่ฉันเห็นการใช้ OO เมื่อมีบางสิ่งที่สมเหตุสมผลสำหรับนามธรรม

ฟังดูดีสำหรับฉัน ตัวแปลงสัญญาณที่ดีที่สุดคือคนที่ใช้เครื่องมือที่เหมาะสมสำหรับงาน ฉันมักจะเลือกใครสักคนที่รู้กระบวนทัศน์ทั้งสองและใช้แต่ละคนในที่ที่เหมาะสมกับคนที่ใช้กระบวนทัศน์เดียวเท่านั้น

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

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

ฉันใช้การปิดเยอะ ดี. นั่นเป็นเหตุผลที่พวกเขาอยู่ที่นั่น พวกเขาทำให้บางคนกลัวว่าจะติดอยู่ในรูปแบบกึ่ง quasi-OOP ของปี 1990 และ Java แต่จริงๆแล้วนั่นเป็นปัญหาของพวกเขา

และท้ายที่สุดฉันไม่ใช่คนวิจารณ์ที่ดีที่สุด

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

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

ดีถามพวกเขา :) การทดสอบโค้ดของคุณเป็นสิ่งสำคัญและการทดสอบหน่วยเป็นเครื่องมือยอดนิยมและมีประโยชน์สำหรับสิ่งนี้

ขีดเส้นใต้จำนวนมาก "_" ซึ่งไม่ใช่รสนิยมของฉัน

เช่นเดียวกับการแสดงความคิดเห็นนั่นเป็นเรื่องส่วนตัวและขึ้นอยู่กับภาษา ใน C และ C ++ lowercase_with_underscoresเป็นหลักการตั้งชื่อทั่วไป ในภาษาอื่น ๆ คุณจะไม่เห็นขีดล่าง แต่ในตอนท้ายของวันมันไม่สำคัญจริงๆ ไม่ว่าจะเรียกฟังก์ชั่นwrite_to_logหรือWriteToLogไม่จริงจะสร้างความแตกต่าง บางคนจะต้องดูดมันและทำตามสิ่งที่ทีมได้ตกลงกันไว้

ไม่ทราบอะไรเกี่ยวกับ MVC ฉันเคยได้ยินมามากมายเกี่ยวกับเรื่องนี้กับสิ่งต่าง ๆ เช่น backbone.js ฉันคิดว่ามันเป็นวิธีการจัดระเบียบแอปพลิเคชัน มันทำให้ฉันสับสนเพราะตอนนี้ฉันสร้างโครงสร้างองค์กรของตัวเองแล้ว

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

การเขียนโปรแกรม OO ที่สมบูรณ์ทำให้ความรู้สึกไม่ดีอยู่ในปากของฉันจริงๆ

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

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

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


0

นี่ไม่ใช่คำตอบที่สมบูรณ์ แต่คุณก็มีดีอยู่แล้วหลายอย่าง อย่างไรก็ตามมีบางจุดที่ฉันสับสนเล็กน้อยและยังไม่ได้รับการแก้ไข

มันเป็นส่วนผสมของหลายสิ่งที่ฉันทำ ฉันมักจะผสมผสานกระบวนทัศน์การเขียนโปรแกรมหลายอย่างเข้าด้วยกัน ชอบฟังก์ชั่นและ OO ฉันเอนตัวไปยังส่วน Functional มากกว่า OO แต่ฉันเห็นการใช้ OO เมื่อมีบางสิ่งที่สมเหตุสมผลสำหรับนามธรรม เหมือนเกมวัตถุ

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

ภาษาโปรแกรมสมัยใหม่มักสนับสนุนรูปแบบการโปรแกรมเชิงประกาศ ตัวอย่างเช่นใน C # การใช้ Linq ให้ผลลัพธ์ในรูปแบบที่ประกาศได้เนื่องจากคุณไม่ได้บอกวิธีรับสิ่งที่คุณต้องการ คุณกำลังพูดในสิ่งที่คุณต้องการเท่านั้น

การเขียนโปรแกรม OO ที่สมบูรณ์ทำให้รสชาติแย่ในปากของฉันจริงๆ แต่นั่นก็เป็นสิ่งที่ทุกคนใช้อย่างเคร่งครัด

ภาษาสมัยใหม่มักเป็นภาษาแบบหลายกระบวนทัศน์ มันหายากที่ทุกคนใช้ภาษา "บริสุทธิ์" ฟังก์ชั่นหลายภาษารองรับวัตถุและผลข้างเคียง ภาษาที่ถือว่าเป็นวัตถุมักจะไม่ได้กำหนดข้อ จำกัด ว่าทุกอย่างเป็นวัตถุ

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

การเขียนโปรแกรม OO ทำให้เรามีคุณสมบัติมากมายที่จะสนับสนุนสิ่งต่าง ๆ เช่น: ข้อมูลนามธรรม, การห่อหุ้ม, การส่งข้อความ, แบบแยกส่วน, ความหลากหลายและการสืบทอด ถ้าฉันดูที่ฐานรหัสที่ไม่ได้ใช้ประโยชน์จากสิ่งนั้นมันจะทำให้รสชาติแย่ในปากของฉัน


ทำไมต้องลงคะแนน
Dave Hillier

0

คำตอบสั้น ๆ : ใช่

การสอนตัวเองนั้นดีเกือบทั้งหมด
กรองด้วยความรู้สึกที่ดีคำแนะนำที่ดี

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

ชั่งน้ำหนักคำแนะนำเกี่ยวกับองศาโดยพิจารณาจากแหล่งที่มา: ผู้ที่มี / ไม่มีพวกเขามีส่วนได้เสีย
คุยกับครึ่งโหลของแต่ละคน

วิชาการแยกจากอุตสาหกรรมหรือไม่ บ่อยครั้ง.
ปริญญาไม่มีค่าไหม? ดอลลาร์ฉลาดยากที่จะโต้แย้ง
จบเกือบทุกสร้างรายได้ แต่ระวังสินเชื่อวิทยาลัย

ความรู้ฉลาด? อาจจะ.
ถ้าคุณเกลียดโรงเรียนคุณจะไม่ได้รับมากกว่าที่คุณใส่

หากคุณรู้สึกว่าปริญญาเป็นเป้าหมายที่สมควรแก่คุณก็อาจเป็นได้

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

ค่าใช้จ่ายอาจจะค่อนข้างน่ากลัว แต่พวกเขาบอกเพียงบางส่วนของเรื่องนี้เพราะมีทุนและทุนการศึกษามากมายสำหรับการทำบุญความต้องการและเหตุผลอื่น ๆ อีกนับร้อย

ถ้าคุณไปเลือก smart profs and buds


0

คำถามที่สอง - ฉันสามารถใช้สไตล์ของตัวเองได้หรือไม่

คุณมีสองคำถาม

ที่แรกก็คือในชื่อของคุณ โปรดดูคำตอบก่อนหน้าของฉัน

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

  • สอนตัวเอง 100%
  • แตกต่างกันในด้านเทคนิคและการจัดระเบียบ
  • เป็นการผสมผสานระหว่างการทำงานและการวางวัตถุ
  • ซับซ้อนน้อยลง
  • การปิดจำนวนมาก
  • ความเห็นไม่กี่
  • ไม่มีการทดสอบหน่วย
  • ไม่กี่ขีด
  • ไม่มี MVC
  • ไม่มี backbone.js
  • ไม่มีแอปพลิเคชันเทมเพลต

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

http://en.wikipedia.org/wiki/Coding_conventions

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

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

เหตุผลของการมีรหัสชุด (และการฝึกอบรมแบบเดียวกัน) คือการเพิ่มความเร็วและผลิตภาพของการพัฒนาและในทางที่เป็นสถาบันการเรียนรู้ของการปฏิบัติที่ดีที่สุด ปัญหาเช่น camelCase หรือ use_underbars สามารถดูเล็กน้อยและจิ๊บจ๊อย แต่มีประโยชน์ต่อความมั่นคง

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

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

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


0

คำแนะนำที่ให้นั้นค่อนข้างมีประโยชน์ แต่ฉันพยายามจำไว้ว่าเป้าหมายหลักของฉันคือการสร้าง 'ซอฟต์แวร์ที่ใช้งานได้' ซึ่งมีประโยชน์ต่อผู้ใช้ของฉัน ผู้ชมของฉันมักจะไม่ใช่กลุ่มโปรแกรมเมอร์ - พวกเขาเป็นนักธุรกิจที่ยินดีจ่ายเงินสำหรับการแก้ปัญหาอัตโนมัติ (ผู้ใช้ไม่สนใจระเบียบวิธี OO, กรอบงาน, การทดสอบหน่วย, การทดสอบหน่วย, ความคิดเห็นเกี่ยวกับโค้ด ฯลฯ ดังนั้นอย่าไปด้วย วางสายบนมัน.)

ฉันพบว่าอุดมคติของ Agile Manifesto มีประโยชน์ในอาชีพของฉัน (www.agilemanifesto.org)

  • บุคคลและการมีปฏิสัมพันธ์เหนือกระบวนการและเครื่องมือ
  • ซอฟต์แวร์ที่ทำงานผ่านเอกสารที่ครอบคลุม
  • การทำงานร่วมกันของลูกค้าในการเจรจาสัญญา
  • ตอบสนองต่อการเปลี่ยนแปลงมากกว่าการทำตามแผน

0

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

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

แน่นอนว่าฉันได้เรียนรู้ไวยากรณ์และแนวคิดในพื้นฐานการศึกษาของฉัน แต่มันอยู่ในโลกการค้าที่ฉันเริ่มเรียนรู้การเขียนโปรแกรม


ไม่มีสิ่งใดมาทดแทนประสบการณ์ในโลกแห่งความเป็นจริงไม่ว่าการสอนจะดีแค่ไหน
แอนดรูว์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.