โปรแกรมเมอร์หนึ่งคนสามารถทำอะไรได้ด้วยตัวเอง? [ปิด]


13

ด้วยผลิตภัณฑ์ซอฟต์แวร์ที่นำทีมงานทั้งหมดของผู้คนมาพัฒนาโปรแกรมเมอร์หนึ่งคนสามารถทำได้ด้วยตนเอง กล่าวอีกนัยหนึ่งคนเดียวสามารถเขียน Photoshop, MS word, ฯลฯ ได้ไหม? และหากพวกเขาทำไม่ได้การพัฒนาเว็บจะเป็นพื้นที่ที่โปรแกรมเมอร์คนหนึ่งสามารถทำอะไรได้มากมายหรือไม่?


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

ลองดูที่blitwise.comสำหรับงาน dev เดียว
Michael K

ประสิทธิภาพของ Coder นั้นแตกต่างกันอย่างมาก บางรหัสโคด 10x + เร็วกว่าคนอื่น ๆ ...
เดนิสเดอ Bernardy

2
ถ้าเป็นอาคาร devloper เดียว, photoshop และ ms word, พวกมันจะมีขนาดประมาณ 1/100 ฉันไม่คิดว่าเป็นสิ่งที่ไม่ดี
JeffO

1
มันขึ้นอยู่กับ. :-)
richard

คำตอบ:


14

เริ่มต้นเล็ก ๆ

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

เฉพาะในกรณีที่มันคุ้มค่า

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

เป็นการเริ่มต้นที่ดี แต่ไม่ยั่งยืนเสมอไป

หากซอฟต์แวร์ของคุณดีพอคุณอาจต้องจริงจังกับมัน ยกตัวอย่างเช่น Markus "Notch" Persson ผู้สร้าง Minecraft IIRC เขาเริ่มเกมคนเดียวและเมื่อเกมได้รับแรงฉุดเขาเริ่มมองหาผู้ทำงานร่วมกันและเริ่มก่อตั้ง บริษัท

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

ตำนาน

ลองดูThe Myth of the Genius Programmerการพูดคุยของ Ben Collins-Sussman และ Brian Fitzpatrick ใน Google I / O 2009 คุณควรได้รับความคาดหวังที่ผิดพลาดทั้งหมด ประเด็นหลักที่ฉันต้องการทำที่นี่คือบางครั้งนักพัฒนาเดียวจะได้รับเครดิตสำหรับทุกสิ่งในขณะที่มีคนเพิ่มขึ้น

มันเป็นไปได้อย่างแน่นอน

ตัวอย่างอื่นนอกเหนือจาก Linus Torvalds คือ John Carmack เขาพูดถึง Wolfenstein ในเวลาเพียงสี่วันเมื่อ EA ได้ประเมินทีมเต็มเวลาสองเดือน

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

ด้วยทักษะและความรู้ (เกินระดับเฉลี่ย) คุณสามารถทำให้งานรู้สึกน้อยมาก


7
+1 IMO, Linus ไม่ได้มีปัญหากับ Carmack สิ่งของของเขาคือสิ่งของในตำนาน
Steven Evers

1
สิ่งที่เป็นตำนาน? Linus หรือ John ไม่ได้สแลงของคุณกลับไปที่นั่น
Chani

1
@RYUZAKI: ฉันเดาว่าความคิดเห็นของ @ SnOrfus เป็นคำถามทั้งหมดสำหรับ stackexchange ภาษาอังกฤษ
Spoike

1
@RYUZAKI - John มีสิ่งของในตำนานในคอมเม้นท์ SnOrfus
ocodo

1
Carmack ได้รับเงินเดือนเต็มทีม 2 เดือนสำหรับงาน 4 วันของเขาหรือแค่ตบหลัง?
Drew

5

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

ข้อดี:

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

จุดด้อย:

  • ไม่มีทีมที่จะต่อสู้ด้วยดังนั้นบางครั้งคุณก็ตัดสินใจไม่ดีโดยไม่มีใครบอกคุณ
  • มันง่ายที่จะหลงทางไม่ใช่มองภาพใหญ่อีกต่อไป และไม่มีใครสามารถช่วยคุณได้ (ยกเว้น SO / SA และสิ่งที่ชอบ:])
  • ใช้เวลามากมายในการสนับสนุนลูกค้าที่คุณอยากจะใช้เวลาเขียนโปรแกรม

3

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


1

ขึ้นอยู่กับซอฟต์แวร์ที่เขา / เธอพยายามพัฒนาข้อ จำกัด ด้านเวลาและทักษะ หากเขา / เธอกำลังพัฒนาแอพพลิเคชั่น MIS ที่เรียบง่ายเป็นไปได้อย่างมากว่าเขาสามารถทำได้ในระยะเวลาอันสั้น พยายามพัฒนาซอฟต์แวร์ที่ซับซ้อนเช่น Photoshop, MS Word, Blender, Flash และอื่น ๆ ที่เป็นไปได้ แต่มันใช้เวลานานและมันมีฟังก์ชั่นพื้นฐานที่สุดและคุณสมบัติที่เรียบง่าย


1

ทั้งหมดขึ้นอยู่กับทักษะเวลาที่ใช้และความเต็มใจที่จะทำ ยิ่งคุณมีความรู้มากเท่าไหร่ก็จะมีเวลาน้อยลงในการทำให้บางสิ่งสำเร็จ คุณจะได้รับความรู้อย่างใกล้ชิดของ codebase ในฐานะผู้พัฒนา แต่เพียงผู้เดียวซึ่งสามารถเร่งกระบวนการในการหา / refactoring / debugging

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

โครงการทั้งหมดนี้ได้รับการทดสอบหลักเดียว ทุกวันหลังเลิกเรียนฉันได้ทำโครงการและวันหยุดสุดสัปดาห์ มีขนาดใหญ่เท่ากับ MS Word, Photoshop และอื่น ๆ หรือไม่? Nope โครงการนี้ยังคงมีขนาดใหญ่และเติบโตอย่างต่อเนื่องและเป็นไปได้ที่จะประสบความสำเร็จอย่างมาก


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

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

1

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

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

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

3) อย่ากลัวที่จะถามความคิดเห็น / ความช่วยเหลือในช่วงต้น โอกาสที่คุณจะไม่เก่งทุกอย่าง หากคุณเก่งในระดับต่ำกว่าระดับการเข้ารหัสคุณอาจดูด UI ได้ การสนทนายังใช้ ไม่เคยได้รับคำแนะนำจากผู้ที่เก่งกว่าคุณในบางพื้นที่ หลายคนจะหลีกเลี่ยงสิ่งนี้เพราะพวกเขาเป็นห่วงคนที่ขโมยความคิดของพวกเขา อย่ากังวลเกี่ยวกับเรื่องนี้ - ถ้ามีคนพยายามที่จะคัดลอกคุณก็หมายความว่าคุณเข้าสู่บางสิ่งที่คุ้มค่า แนวคิดราคาถูกการใช้งานเป็นกุญแจสำคัญ Apple ไม่ได้ประดิษฐ์เครื่องเล่น MP3 แต่ Microsoft ไม่ได้คิดค้นระบบปฏิบัติการ Facebook ไม่ได้ประดิษฐ์เครือข่ายสังคมและ Google ไม่ได้ประดิษฐ์เครื่องมือค้นหา สิ่งที่พวกเขาทำคือทำให้ผู้ใช้น่าสนใจ (และไม่ดูด)

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