การเข้าถึงสถานะการเขียนโปรแกรมระดับกลาง [ปิด]


32

ฉันเป็นวิศวกรซอฟต์แวร์ที่มีตำแหน่งการเขียนโปรแกรมใน VBA (แม้ว่าฉันจะไม่พิจารณาประสบการณ์ที่ 'จริง' เพราะมันเป็นรุ่นทดลองใช้และข้อผิดพลาด!), Perl w / CGI, C # และ ASP.NET สองหลังเป็นระดับปริญญาตรีโดยที่ฉันเข้าสู่ 'โลกแห่งความจริง' ฉันออกจากวิทยาลัย 2 ปีและมีประสบการณ์ 5 ปี (รวม) ในภาษาที่ฉันพูดถึง อย่างไรก็ตามเมื่อพูดถึงประวัติการทำงานของฉันฉันสามารถวาง C # ลงเพียง 2 ปีเท่านั้นและน้อยกว่าหนึ่งปีสำหรับ ASP.NET

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

ไม่ได้หมายความว่าฉันไม่รู้สึกว่าตัวเองก้าวหน้าไปแค่หมายความว่าถ้าฉันมาทุกวันฉันก็ยังเห็นยอดเขาอยู่ไกล ๆ

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

ฉันได้อ่านCode Complete , The Mythical Man MonthและCLR ผ่านทาง C #, รุ่นที่ 2 - คำถามของฉันคือตอนนี้ฉันจะทำอย่างไร


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


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

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

@Gortok ฉันยอมรับว่ามีหลายสิ่งที่คุณสามารถทำได้เพื่อพัฒนาทักษะของคุณ แต่มันก็ขึ้นอยู่กับการเขียนโปรแกรมที่คุณทำ นักพัฒนา Windows ต้องการทักษะที่แตกต่างจากโปรแกรมเมอร์ของอุปกรณ์ฝังตัวเป็นต้น ฉันคิดว่าคำถามที่ถามจริง ๆ แล้วกว้างเกินไปที่จะได้คำตอบที่ดี
นาธาน Fellman

1
ฉันเขียนโปรแกรมมาตั้งแต่อายุ 2 ขวบ ฉันล้มเหลวในการเป็นโปรแกรมเมอร์ชั้นนำของโลกและตอนนี้ฉันเกลียดชีวิตของฉัน ฉันหวังว่าเป้าหมายของฉันคือการเป็นดาราหนังโป๊ชั้นนำของโลกแทน

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

คำตอบ:


41

ขอแสดงความยินดี!

จากคำอธิบายของคุณคุณเป็นนักพัฒนาระดับกลาง

ระยะนี้จะใช้เวลาประมาณ 3-8 ปีขึ้นอยู่กับความตั้งใจของคุณที่จะเรียนรู้จากปัญหาที่เกิดขึ้นในขณะนี้

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

หรือคุณอาจมีชีวิตนอกการเขียนโปรแกรม ;-)

อย่างจริงจังอยู่ในปัจจุบันและใคร่ครวญ แต่ปิด #% $ @ ทุก ๆ ครั้งแล้ว

ภาคผนวก:เมื่อคุณออกไปข้างนอกอย่าลืมใส่กางเกง


17
และระวังของโทลคีนอ้างว่าเป็นฮอบบิทยากที่จะหยุดพัก
Steven A. Lowe

1
Mr. Lowe เป็นคนที่เล่นได้ดี
kemiller2002

1
อย่างจริงจังมีชีวิตนอกการเขียนโปรแกรม ที่หนึ่ง: มีชีวิตมากกว่ารหัส ที่สอง: มากสามารถเรียนรู้ได้จากสาขาอื่น
kemiller2002

1
+1 - ทำได้ดีมาก ไม่มีอะไรมาแทนที่การฝึกฝน (หรืออารมณ์ขัน)

15

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


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

10
ฉันไม่เห็นด้วย --- โปรแกรมเมอร์ที่ดีที่สุดเป็นเหมือนนักเขียนที่ดีที่สุด: พวกเขาไม่สามารถหยุดตัวเองจากการทำสิ่งที่ดีที่สุด
Norman Ramsey

2
พวกเขาอาจไม่สามารถหยุดตัวเอง แต่ชีวิตสามารถและบางอย่างจะ
แชนนอนชดเชย

@ ShannonSeverance สำหรับหลาย ๆ คนมันจะไม่ใช่แค่สำหรับบางคน
Pacerier

9

คุณต้องผ่านตัวอ่อนระยะ

แม้ว่าตอนนี้ฉันจะเขียนโปรแกรมใน VB.NET บน Windows แต่ฉันก็ผ่านตัวอ่อนระยะบน Linux x86 ด้วยแอสเซมบลีเป็นภาษาหลักของฉัน

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

แกะกลายเป็น shepards และ shepards เหมือนแกะ แต่ไม่นานนักในโลกนี้ ด้วย [ต้นไม้และ] เปิดใช้มันเร็วและเข้าใกล้มากขึ้นและพวกเขาก็เดินตามอายุต่าง ๆ ด้วยกัน - โทลคีน

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

นี่คือเส้นทางสู่ความยิ่งใหญ่


2
มันเกี่ยวข้องกับ cheetos หรือเปล่า? ภาพในหัวของฉันเกี่ยวข้องกับ cheetos

2
มันไม่ใช่เรื่องง่ายเมื่อไร!
gnovice

ระยะตัวอ่อนหรือระยะตัวอ่อน ;)
Brad Thomas

9

ฉันเขียนโปรแกรมมาตั้งแต่อายุ 8 ขวบ ... ฉันจะอายุ 33 ปีในวันคริสต์มาสอีฟ ฉันยังเห็นภูเขาอยู่ไกล ๆ ไม่ว่าคุณจะมาไกลแค่ไหน

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

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

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


9

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

นี่คืออาการบางอย่างที่คุณอาจคิดถึง:

  1. คุณเข้าสู่สงครามการแก้ไขออนไลน์หรือไม่ ถ้าเป็นเช่นนั้นคุณอาจแสดงว่าคุณชอบที่จะโต้แย้งเกี่ยวกับรายละเอียดในเขตความสะดวกสบายของคุณมากกว่าที่คุณต้องการที่จะเข้าใจมุมมองของคนอื่น
  2. คุณคิดว่าภาษาเป็นสิ่งที่แตกต่างอย่างแท้จริง? C # และ Java ทั้งสองนำแพลตฟอร์มและทรัพยากรของตัวเองมาไว้ในตาราง แต่ทั้งคู่เป็นรูปแบบการคำนวณที่มีประสิทธิภาพ คุณสามารถเรียนรู้ภาษาและแพลตฟอร์มใหม่เร็วพอที่จะรับเงินเพื่อทำงานหรือไม่?
  3. คุณยังคิดว่างานซอฟต์แวร์เป็นงานพิมพ์หรือไม่? หากคุณได้งานทำทำไม? รหัสนี้จะใช้เพื่ออะไร มันจะเป็นส่วนหนึ่งของระบบอะไร? ข้อมูลนั้นสามารถเปลี่ยนแปลงโซลูชันที่คุณเสนอได้อย่างมาก
  4. คุณละทิ้งความรู้ทุกอย่างในชีวิตของคุณไปแล้วหรือยัง? คุณกำลังฟังส่วนที่เหลือของทีมหรือคุณแค่พยายามคิดสิ่งต่อไปที่จะพูด?
  5. คุณรู้หรือไม่ว่า "การดึงสิ่งที่มีชีวิตทั้งหมด" เพื่อสร้างทางออกในนาทีสุดท้ายของรถที่ไม่น่าประทับใจอีกต่อไป? หลังจากแปดชั่วโมงแรกคุณสามารถจินตนาการได้อย่างง่ายดายว่าเวลาที่เหลือเพียงแค่ใช้ในการพิมพ์ข้อบกพร่อง

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

คะแนนโบนัสที่ได้รับหากคุณจัดการเพื่อหาคู่สมรสและทำซ้ำ ....


8

สิ่งที่คุณทำตอนนี้ดีมาก แต่ถ้าคุณต้องการเร่งความเร็วอย่างไม่น่าเชื่อคุณสามารถทำสองสิ่งเพิ่มเติมได้:

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

BTW คุณสามารถลงชื่อสมัครใช้บัญชี SingingEelsได้อย่างง่ายดายซึ่งคุณจะได้รับบล็อกฟรีจากชุมชนการพัฒนาที่มีอยู่

2) เขียนจำนวนมากของโปรแกรมมินิ - จากนี้ผมหมายถึงประมาณ 1 ต่อสัปดาห์ คุณสามารถใช้สิ่งนี้ได้ในทางแยกด้วยด้านบน ... หรือเพื่อความสนุกสนาน สิ่งที่ฉันทำในฐานะนักพัฒนาหนุ่มเพิ่งเลือกแบบสุ่ม (ฉันไม่ได้ล้อเล่น) namespace ใน. NET Framework เลือกคลาสที่คุณไม่เคยเห็น / เคยใช้มาก่อนและสร้างโปรแกรมขนาดเล็กที่ใช้คลาสนั้น


8

พยายามที่จะ

อ่านหนังสือเพิ่มเติม เลือกหยิบหนังสือเล่มใหญ่จาก Amazon แล้วอ่าน ตัวอย่างเช่นผู้เขียน Code Complete ได้เขียนหนังสือยอดเยี่ยมเกี่ยวกับวิศวกรรมซอฟต์แวร์ - การพัฒนาซอฟต์แวร์อย่างรวดเร็วให้ซื้อและอ่าน

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

เข้าร่วมชุมชน ผู้คนสามารถแลกเปลี่ยนความคิดด้วยการฟังจากผู้อื่นและให้การนำเสนอ


4

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

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


3

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

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

และมันก็แสดงให้เห็นได้ดีกับประวัติการทำงานของคุณด้วย :)

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


-1

หากต้องการเก่งในฐานะนักพัฒนา C # ให้อ่านสองสิ่งต่อไปนี้ โปรดทราบว่าจุดเน้นของหนังสือเหล่านี้เพิ่มเติมเกี่ยวกับภาษา (C #) ไม่ใช่กรอบงาน (.NET) ..

  1. Essential C # : ลิงค์สำหรับรุ่นล่าสุด ฉันอ่านอันก่อนหน้านี้จริงๆ (C # 4.0) แต่ฉันสมมติว่ารุ่นใหม่ดีกว่า หนังสือเล่มนี้มีสิ่งพื้นฐานบางอย่างเช่นกัน แต่จงอดทนอ่านหนังสือเล่มนั้นให้ครอบคลุม
  2. C # in Depth : การเชื่อมโยงเป็นอีกครั้งสำหรับรุ่นล่าสุดซึ่งจะเปิดตัวใน 10-15 วัน ฉันอ่านแค่เล่มเดียว แต่เพื่อนร่วมงานของฉันที่อ่านมันมีความเคารพในเรื่องนี้

คุณได้อ่านCLR ผ่านทาง C #มิฉะนั้นอาจเป็นคำแนะนำที่สามสำหรับทุกคนสำหรับนักพัฒนา C #

เหล่านี้ยังจะทำให้คุณเป็นนักพัฒนาที่ดีกว่า: กรอบแนวทางการออกแบบและการทำงานอย่างมีประสิทธิภาพกับรหัสมรดก


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