คำแนะนำแรกของฉันคือการไม่ จำกัด ตัวเองเพียงบทบาทเดียว เป็นเรื่องดีมากที่ได้เป็นผู้เชี่ยวชาญและมีความรู้อย่างลึกซึ้งในชุดทักษะเฉพาะ (เช่น PHP) อย่างไรก็ตามสิ่งสำคัญก็คือคุณต้องมีความรู้ในวงกว้างที่ครอบคลุมทั่วทั้งโดเมนของคุณ
จากประสบการณ์ของฉันทีมส่วนใหญ่ไม่ต้องการจ้างคนที่มีความรู้ในการเขียนฟังก์ชั่นหลักของ PHP แต่เป็นคนที่สามารถจัดการกับปัญหาใด ๆ ที่ถูกขว้างใส่พวกเขาได้ (แม้ว่าจะมีความรู้ในระดับนั้น หรืออย่างน้อยคนที่สามารถช่วยแก้ปัญหาใด ๆ ที่ทีมพบ ตัวอย่างเช่นลองจินตนาการถึงสถานการณ์ที่แอปพลิเคชันของคุณหยุดทำงานและลูกค้าได้รับผลกระทบ คุณสามารถยกมือขึ้นแล้วพูดว่า "ฉันไม่รู้ว่าจะทำอย่างไร ... " หรือคุณสามารถ SSH เข้าไปในเซิร์ฟเวอร์เริ่มการสแกนบันทึกสังเกตว่าพื้นที่ดิสก์ของระบบไฟล์นั้นเต็มและดำเนินการล้างออก นี่เป็นตัวอย่างเล็กน้อย แต่ฉันคิดว่าประเด็นนั้นชัดเจน ด้วยความรู้พื้นฐานในฐานะนักพัฒนา คุณสามารถเขียนสคริปต์ที่ตรวจสอบระบบไฟล์นั้น ๆ และกำจัดมันออกไปเมื่อถึงขีด จำกัด ที่แน่นอน ตอนนี้คุณมีค่ามากขึ้นสำหรับผู้จัดการของคุณ
อีกสิ่งหนึ่งที่ฉันได้เรียนรู้ในระหว่างการทำงานของฉันก็คือสิ่งที่เคลื่อนไหวอย่างรวดเร็วและถ้าคุณไม่ติดตามคุณจะถูกทิ้งไว้ข้างหลัง ยิ่งคุณรู้เกี่ยวกับสภาพแวดล้อมทั้งหมดของคุณมากเท่าไหร่ (รวมถึงแง่มุมทางธุรกิจ) ยิ่งคุณเป็นคนดี นั่นไม่ได้หมายความว่าคุณจะต้องมีความเชี่ยวชาญในทุกสิ่งที่คุณทำ แต่อย่างน้อยก็มีความรู้ที่จะไม่ถูกระบุว่าเป็น clueless ยิ่งคุณคุ้นเคยมากเท่าไหร่คุณก็ยิ่งปรับตัวได้มากขึ้นและสินทรัพย์ที่มีค่ายิ่งสำหรับ บริษัท ของคุณ
เพื่อตอบคำถามของคุณโดยเฉพาะ ...
- องค์ประกอบเซิร์ฟเวอร์ใดที่ฉันควรรู้ในฐานะนักพัฒนา
ทำความคุ้นเคยกับแอพพลิเคชันทั้งหมด รู้ว่าเว็บเซิร์ฟเวอร์ฐานข้อมูลกลไกการแคช ฯลฯ ที่ใช้อยู่ และรุ่นใดด้วย มีความคุ้นเคยเพียงพอที่คุณสามารถสร้างสภาพแวดล้อมบนเซิร์ฟเวอร์ของคุณเอง ซึ่งในและของตัวเองมีความสำคัญอย่างยิ่ง คุณควรพยายามให้มากขึ้นหรือน้อยลงมีสภาพแวดล้อมเดียวกันในการพัฒนาและการผลิตเนื่องจากลดความประหลาดใจ ( http://12factor.net/dev-prod-parity )
- ในฐานะนักพัฒนาคุณมีการซื้อขายอะไรกับเซิร์ฟเวอร์
มันขึ้นอยู่กับทีมจริงๆ ในกรณีของฉันนักพัฒนามีบทบาทอย่างมากในการจัดเตรียมสภาพแวดล้อม เราคุ้นเคยกับการทำงานภายในของแอปพลิเคชั่นมากที่สุดและอยู่ในตำแหน่งที่ดีที่สุดในการพิจารณาว่าเทคโนโลยีเซิร์ฟเวอร์ใดบ้างที่เปิดใช้งาน ฉันนึกภาพไม่ได้ว่าทุกทีมมีวิธีการแบบใกล้เคียงกัน แต่การมีความคุ้นเคยมากพอที่จะสามารถมีส่วนร่วมในการอภิปรายนั้นเป็นข้อได้เปรียบที่ยิ่งใหญ่ โดยเฉพาะในส่วนที่เกี่ยวกับการควบคุมเวอร์ชันคุณในฐานะนักพัฒนาซอฟต์แวร์ได้รับผลกระทบอย่างมากจากสิ่งที่เลือกเทคโนโลยี (Git, Subversion, Mercurial, ฯลฯ ) ดังนั้นจึงควรพยายามมีส่วนร่วมในกระบวนการตัดสินใจ
แล้วตอนนี้คืออะไร
สำหรับข้อเสนอแนะของฉันเกี่ยวกับวิธีการที่ดีที่สุดในการเรียนรู้ทั้งหมดนี้? ย้ายเท้าของคุณ ไม่ต้องกังวลเกี่ยวกับการพยายามอ่านทุกสิ่งที่คุณสามารถทำได้ในเรื่องส่วนใหญ่มันอาจจะแค่รั่วไหลออกมาจากสมองของคุณเมื่อคุณเสร็จสิ้น เริ่มพัฒนาบางสิ่งจากพื้นดินแทน เริ่มต้นด้วยคนจรจัด ; มันจะช่วยให้คุณสร้างและจัดการเครื่องเสมือนที่คุณสามารถใช้เป็นสนามเด็กเล่นใหม่ของคุณได้อย่างง่ายดาย จากนั้นติดตั้งเว็บเซิร์ฟเวอร์และฐานข้อมูลและเริ่มสร้าง หากคุณมีไอเดียเกี่ยวกับแอพพลิเคชั่นสมบูรณ์แบบไปเลยถ้าไม่ลองหาบทช่วยสอนหรือลองสร้างแอพที่มีอยู่ใหม่ ประเด็นก็คือการทำความคุ้นเคยกับกระบวนการทั้งหมด นอกจากนี้ในฐานะนักพัฒนา PHP อย่าลืมตรวจสอบPHP: The Right Way... มันมีข้อมูลที่ยอดเยี่ยมมากมาย และที่สำคัญอย่าเครียดตัวเอง ฉันคิดว่าคุณทำตามเส้นทางของนักพัฒนาเพราะมันเป็นสิ่งที่คุณสนุกและมีความหลงใหลเกี่ยวกับ ... อย่ามองข้ามสิ่งนั้น!