จะทำอย่างไรเมื่อการเข้ารหัสเริ่มรู้สึกเบื่อเหมือนจะเหมือนกันทั้งหมด? [ปิด]


33

ฉันเริ่มเขียนโปรแกรมตอนอายุ 6 ขวบใน Commodore 64 ตอนนี้ฉันอายุ 28 ปีและฉันต้องเรียน 4 วิชาจากระดับปริญญาแรกในสาขาวิทยาศาสตร์คอมพิวเตอร์

ฉันเริ่มเบื่อกับการเขียนโค้ดหลังจากหลายปีที่ผ่านมา ฉันเรียนวิชาวิทยาการคอมพิวเตอร์ในภาษาคอมพิวเตอร์เชิงทฤษฎีและการเขียนโปรแกรม C เป็นเวลา 10 ปีในด้านความปลอดภัยเครือข่ายและฉันก็ไม่ได้รับการกระตุ้นจากการเขียนโค้ด

ฉันสามารถเขียนโค้ดใน C, C ++, Python หรือภาษาใดก็ได้ที่คุณต้องการ แต่ฉันไม่สามารถตื่นเต้นกับสิ่งที่ฉันทำ ฉันไม่สามารถรู้สึกท้าทายใด ๆ ฉันเขียนโค้ดหลายเธรด HTTPS MITM proxy และแอปพลิเคชั่น WSGI โดยไม่จำเป็นต้องมีทักษะอัลกอริทึมใด ๆ

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

ในงานประจำวันของฉันฉันรู้สึกเบื่อแม้จะค้นหาข้อบกพร่องหรือทำเกณฑ์มาตรฐานในรหัสหรือแก้ไขปัญหาด้วยไลบรารี X, Y, Z

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

ถึงเวลาแล้วที่จะก้าวหน้าในอาชีพการงานของฉัน หรือเพื่อให้ได้สิ่งที่ท้าทายยิ่งขึ้นในสาขาวิทยาศาสตร์คอมพิวเตอร์ อาจได้รับปริญญาที่สำคัญใน CS หรือไม่?

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

บางทีพยายามเข้าไปใน Google หรือ Microsoft หรือ Apple เหมือนที่เพื่อนของฉันทำไปแล้ว หรืออาจเป็นเส้นทางอาชีพการจัดการที่มากขึ้น ฉันได้พยายามหาหนังสือที่ดีเกี่ยวกับกฎการสื่อสารและ "บุคลิกภาพของคน" เพื่อเตรียมพร้อมสำหรับความเป็นไปได้ในการจัดการ

ข้อเสนอแนะใด ๆ

PS: ฉันมีความสนใจมากฉันไม่หดหู่ใจ :) ฉันรักภูเขาเดินป่าถ่ายภาพและฉันเป็นนักปีนเขาฉันชอบว่ายน้ำและเล่นกีฬาโดยทั่วไปบางครั้งฉันก็วิ่งจริง ๆ แล้วฉัน ' m อ่านหนังสือเกี่ยวกับประเทศของฉัน (อิตาลี) เรื่องราวจาก AC ถึงวันนี้และฉันรักทริป (ฤดูร้อนนี้ฉันทำ 4000Km เพื่อดูสถานที่มากมายในสเปนและปีนขึ้นไปในนั้นทั้งหมดในเวลาเพียง 3 สัปดาห์ไม่ใช่วันหยุด แต่มาราธอน การเดินป่าระยะทาง 24 กม. ทำให้อาการบาดเจ็บไส้เลื่อนของฉัน) ฉันรักโรงละครและใช้ชีวิตโดยทั่วไป


ขอบคุณทุกคนที่คิดเกี่ยวกับคำตอบทั้งหมดให้โอกาสฉันในการทำให้เส้นทางของฉันชัดเจนยิ่งขึ้น

เพื่อสรุปเราสามารถพูดคุยเกี่ยวกับคำตอบที่ได้รับการโหวตมากที่สุด

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

หลังจากคนเตือนความทรงจำนี้แนะนำให้:

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

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


10
นี่มันน่าหดหู่จริงๆ ทำไมคุณถึงต้องการเป็นผู้จัดการ

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

9
@ จอร์จ: ฉันคิดว่า (แต่ฉันยอมรับว่าฉันไม่แน่ใจ) นี้เขียนโดยคนที่ไม่พูด / เขียนภาษาอังกฤษเป็นภาษาแรกของพวกเขา
FrustratedWithFormsDesigner

2
ดูว่าการใช้ metaprogrammingสำหรับการเปรียบเทียบความสนุกในหัวข้อนี้คืออะไร (ทำสิ่งเดียวกันหมด)

2
@ George: ปิดหลักสูตรภาษาอังกฤษไม่ใช่ภาษาแรกของฉัน ฉันเริ่มทำการแก้ไขเพื่อพัฒนาภาษาอังกฤษของฉันและอธิบายความยุ่งยากในการเขียนโค้ด
boos

คำตอบ:


50

นั่นคือสิ่งที่จะเกิดขึ้น

หากความสนใจหลักของคุณอยู่ที่การใช้รหัสมันจะทำให้คุณบ้าหงุดหงิดและหดหู่นาน ๆ สักวันอย่างถาวร

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


ความสนใจครั้งแรกของฉันไม่เพียง แต่ในการเขียนโปรแกรมฉันเป็นนักปีนเขากีฬาฉันชอบไปที่โรงละครรักที่จะเดินทางและดูสถานที่ใหม่ 2/3 เมืองในยุโรปทุก ๆ ปีและ 4000 กิโลเมตรในวันหยุดฤดูร้อนของฉัน นี่ไม่ใช่ประเด็น ฉันคิดว่าฉันได้มาถึงจุดที่ไม่กลับมาเกี่ยวกับการเข้ารหัส ปัญหาทั้งหมดในที่ทำงานของฉันไม่ยากที่จะจัดการและฉันไม่สามารถท้าทายได้มากขึ้น ฉันคิดว่าคำตอบที่ถูกต้องคือเปลี่ยนงานและรับความท้าทายมากขึ้นในปัญหาที่ซับซ้อนมากขึ้น จริงๆแล้วฉันอยู่ในแผนกวิจัยและพัฒนาแล้ว
boos

@ ถึงเลยลองclojure.org/Jobs
งาน

2
+1 การเข้ารหัสที่ไร้จุดหมายคืออะไรดี? มันคล้ายกับการสร้างกำแพงแทนบ้าน
Mayank

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

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

21

ฉันจะตอบคำถามของคุณด้วยคำถาม ...

โปรแกรมเมอร์มีหน้าที่เขียนโค้ดหรือแก้ไขปัญหาหรือไม่

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

แต่คุณได้ข้อสรุปว่ารหัสนั้นเป็นรหัสที่ควรเขียนได้อย่างไร ปัญหาส่วนใหญ่มีวิธีแก้ปัญหาหลายร้อยวิธี แต่มีวิธีที่ดีที่สุดเพียงวิธีเดียว

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

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


1
@Resis: ฉันชอบที่จะแก้ปัญหาฉันหยุดที่จะรักการเข้ารหัส! นี่คือหัวใจของ "คำถาม" ของฉัน ปัญหาทั้งหมดของโปรแกรมคือสิ่งเดียวกันเสมอค้นหาสิ่งของสั่งอีกอันถ้าทำอย่างนั้นถ้าอื่น ๆ เชื่อมต่อกับฐานข้อมูลทำการเชื่อมต่อกับบริการระยะไกลสื่อสารกับมันกลับไปที่บริการอื่น ฯลฯ
boos

1
@boos - ขอบคุณสำหรับคำตอบเพิ่มย่อหน้าสำหรับ "ถ้าคุณรักการแก้ปัญหา"
นิโคล

9

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

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

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

นี่คือฟังก์ชั่นการเรียงลำดับที่สมบูรณ์:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(ดูhttp://www.haskell.org/haskellwiki/Introduction#Ease_of_understandingสำหรับคำอธิบาย)

หากสิ่งนี้เป็นเรื่องใหม่สำหรับคุณฉันขอแนะนำให้คุณเริ่มต้นการผจญภัย

ขอให้โชคดี - ขอให้สนุก


+1 นั่นเป็นข้อสรุปเดียวกับที่ฉันได้อ่านหลังจาก OP OP ต้องการย้ายออกจากขั้นตอน โลกของการเขียนโปรแกรมมีขนาดใหญ่ขึ้นมากเขาแค่ต้องการออกไปสำรวจ! :)
Darknight

8

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

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

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


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

ลองใช้การเขียนโปรแกรมเกม: D เป็นปัญหาด้านภาพเป็นส่วนใหญ่
Dominique McDonnell

7

อาจเป็นเพราะคุณไม่ได้รับความท้าทายด้านเทคนิคเพียงพอ

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

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


4

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

ฉันรู้ว่ามันไม่ใช่สำหรับทุกคน แต่บางคนจัดการกับความไม่มั่นคงของการไม่มีการวัดคุณภาพงานของคุณอย่างหนักกว่าคนอื่น

แต่มันเป็นตัวเลือกที่อาจคุ้มค่าที่จะพิจารณา


4

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

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

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

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

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

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

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


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

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

@boos ถ้าคุณชอบทฤษฎีก็มีหลายพันหัวข้อใน cs / คณิตศาสตร์ / ฟิสิกส์ที่จะสูญเสียหัวของคุณมา
งาน

3

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

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


3

เริ่มเล่นกับไมโครคอนโทรลเลอร์ มันเป็นแอพพลิเคชั่นการเขียนโปรแกรมที่มีชีวิตชีวาและน่าตื่นเต้นที่สุดที่ฉันคิดได้


2

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

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

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

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


2

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

ฉันสามารถเขียนโค้ดใน C, C ++, Python หรือภาษาใดก็ได้ที่คุณต้องการ แต่ฉันไม่สามารถตื่นเต้นกับสิ่งที่ฉันทำ ฉันไม่สามารถรู้สึกท้าทายใด ๆ ฉันเขียนโค้ดหลายเธรด HTTPS MITM proxy และแอปพลิเคชั่น WSGI โดยไม่จำเป็นต้องมีทักษะอัลกอริทึมใด ๆ

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

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


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