ยอดคงเหลือระหว่าง“ เครื่องมือที่เหมาะสมสำหรับงาน” และความคุ้นเคย [ปิด]


19

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

คำตอบ:


12

ว้าวนั่นเป็นคำถามที่ยากมากเมื่อถูกนำออกจากโลกแห่งทฤษฎีและสู่โลกของการผลิต

ในทางทฤษฎี

ง่าย ใช้เครื่องมือที่ดีที่สุดสำหรับงานเสมอและเรียนรู้สิ่งที่คุณต้องการ

ในทางปฏิบัติ

ไม่เพียงมีคำถามเกี่ยวกับความคล่องแคล่วของคุณเท่านั้นยังมีคำถามทางธุรกิจอื่น ๆ ที่จำเป็นต้องถามก่อนที่คุณจะสามารถตอบคำถามนี้:

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

นอกเหนือจากทฤษฎีแล้วยังมีเครือข่ายที่จริงจังสำหรับการเลือกใช้เทคโนโลยี

ตอนนี้ฉันไม่ได้บอกว่าอย่าเลือกเครื่องมือที่ถูกต้อง - เพียงตรวจสอบให้แน่ใจว่าเครื่องมือที่ถูกต้องจะสามารถทำลายได้แม้จะเกี่ยวกับค่าใช้จ่าย

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


2
มันไม่ง่ายนักในทางทฤษฎี สิ่งที่ดีที่สุดจริงๆหมายถึงอะไร เกณฑ์อะไรบ้าง
whatsisname

+1: เมื่อรวมปัจจัยทั้งหมดเข้าด้วยกันเครื่องมือที่ถูกต้องอาจไม่ได้กลายเป็นเครื่องมือที่ดีที่สุด - มีคนไม่กี่คนที่เลือกเครื่องมือที่ดีที่สุดและประสบผลที่ตามมา
Steven Evers

1
@whatsisname ที่ดีที่สุดคืออัตนัยและขึ้นอยู่กับสภาพแวดล้อมของคุณงบประมาณกรอบเวลา ... - แต่ในจิตวิญญาณของโครงการบ้านมันจะเป็นกรณีของการลองใช้เทคโนโลยีที่ออกแบบมาเพื่อแก้ปัญหานั้น เช่น Erlang สำหรับการกระจาย Perl สำหรับการจัดการข้อความ - จากนั้นคุณสามารถตัดสินใจได้เอง
Stephen Bailey

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

9

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

http://headrush.typepad.com/creating_passionate_users/2006/08/when_the_best_t.html


3

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

วิธีการทั่วไปของฉัน:

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

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


1

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

ฉันทำงานเป็นเวลาหลายปีในฐานะนักพัฒนา ASP.NET ในหน่วยงานดิจิทัลที่เรามีโครงการขนาดใหญ่โครงการขนาดเล็กโครงการที่รัดกุมโครงการที่มีการใช้งานที่ดี ฯลฯ สิ่งที่เราพยายามทำเพื่อขยายทักษะของเรา มองหา "เป้าหมายที่อ่อนนุ่ม" โครงการขนาดเล็กที่ไม่มีเส้นตายที่ยากลำบากและยากลำบากและใช้พวกเขาเป็นโอกาสในการใช้เทคโนโลยีใหม่ซึ่งอาจเหนือกว่า .NET 2.0, 3.5, 4.0, ASP.NET MVC, Linq ถึง SQL, Entity Framework - ทั้งหมดนี้ฉันใช้เป็นครั้งแรกในโครงการ

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

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


1

ขึ้นอยู่กับบางสิ่ง:

1. คุณเรียนภาษาหรือเครื่องมือใหม่ ๆ ได้ดีแค่ไหน

หากคุณกำลังศึกษาอย่างรวดเร็วอุปสรรคในการเรียนรู้ภาษาหรือเครื่องมือใหม่ ๆ นี่เป็นการเปิดโอกาสให้คุณเพิ่มเครื่องมืออื่นลงในกล่องเครื่องมือ

2. ภาษา / เครื่องมืออิสระทำให้สภาพแวดล้อมการทำงานของคุณเป็นอย่างไร

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

คนที่ใช้ vim หรือ emacs ไม่มีปัญหานี้ สิ่งที่พวกเขาต้องทำคือเรียนรู้ภาษาใหม่

3. ความเป็นจริงทางธุรกิจ

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

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


0

หากมีภาษาใหม่ที่คุณอยากรู้และคุณ (และธุรกิจ) สามารถหาซื้อได้ทำไมไม่ลองใช้เวลาสองสามสัปดาห์ในการสำรวจ

นี่คือวิธีที่ฉันเรียนรู้ทับทิม ผู้เขียนโค้ดพันธมิตรของฉันมีประสบการณ์ 7 ปีกับ Java ฉันมีประสบการณ์ชวา 11 ปี เราคนใดคนหนึ่งไม่ได้รู้อะไรเกี่ยวกับทับทิมเท่าที่เราต้องการลอง

ฉันโน้มน้าวให้เขาและ บริษัท อื่น ๆ ลองทับทิมเป็นเวลาหนึ่งเดือน (นี่จะเป็นโครงการ 6-8 เดือน) กรณีที่แย่ที่สุดเราจะเริ่มต้นใหม่โดยใช้ Java

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


0

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


0

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


0

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

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

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

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

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