Lời khuyên đầu tiên của tôi là không giới hạn bản thân trong bất kỳ một vai trò nào. Thật tuyệt khi trở thành một chuyên gia và có kiến thức sâu rộng trong một bộ kỹ năng cụ thể (ví dụ PHP). Tuy nhiên, điều quan trọng là phải có kiến thức rộng rãi trải rộng trên phần còn lại của tên miền của bạn.
Theo kinh nghiệm của tôi, hầu hết các đội không tìm cách thuê một người có kiến thức để viết lại chức năng cốt lõi của PHP, mà là ai đó có thể xử lý bất kỳ vấn đề nào được ném vào họ (mặc dù mức độ kiến thức đó chắc chắn sẽ không bị tổn thương). Hoặc ít nhất là ai đó có thể giúp giải quyết bất kỳ vấn đề nào mà nhóm gặp phải. Ví dụ, hãy tưởng tượng một tình huống mà ứng dụng của bạn bị hỏng và khách hàng đang bị ảnh hưởng. Bạn có thể giơ tay và nói "Tôi không biết phải làm gì ..." hoặc bạn có thể SSH vào máy chủ, bắt đầu quét nhật ký, nhận thấy rằng không gian đĩa của một hệ thống tệp cụ thể đã đầy và tiến hành xóa sạch. Đây là một ví dụ nhỏ nhưng tôi nghĩ rằng điểm này là rõ ràng. Với kiến thức cơ bản đó, là một nhà phát triển, bạn có thể viết một tập lệnh theo dõi hệ thống tập tin cụ thể đó và xóa nó đi khi nó đạt đến một ngưỡng nhất định. Bây giờ bạn đã trở nên có giá trị hơn nhiều đối với người quản lý của bạn.
Một điều khác tôi đã học được trong sự nghiệp của mình, đó là mọi thứ diễn ra nhanh chóng, và nếu bạn không theo kịp, bạn sẽ bị bỏ lại phía sau. Bạn càng biết nhiều về toàn bộ môi trường của mình (bao gồm các khía cạnh kinh doanh), bạn càng có lợi. Điều đó không có nghĩa là bạn cần phải là một chuyên gia trong mọi việc bạn làm, nhưng ít nhất phải có kiến thức để không bị gắn mác là không biết gì. Bạn càng quen thuộc, bạn càng dễ thích nghi và tài sản của bạn càng có giá trị đối với công ty của bạn.
Để trả lời cụ thể câu hỏi của bạn ...
- Những yếu tố máy chủ nào tôi nên biết khi là nhà phát triển?
Hãy làm quen với toàn bộ ngăn xếp ứng dụng. Biết những gì máy chủ web, cơ sở dữ liệu, cơ chế lưu trữ, vv đang được sử dụng. Và phiên bản nào cũng vậy. Có đủ sự quen thuộc để bạn có thể tạo lại môi trường trên máy chủ của riêng bạn. Mà, trong và của chính nó, là rất quan trọng. Bạn nên cố gắng ít nhiều có cùng môi trường trong phát triển và sản xuất, vì nó làm giảm những điều bất ngờ ( http://12factor.net/dev-prod-parity ).
- Là một nhà phát triển, bạn có giao dịch gì với máy chủ?
Điều này thực sự phụ thuộc vào đội. Trong trường hợp cụ thể của tôi, các nhà phát triển đóng một vai trò rất lớn trong việc dàn dựng các môi trường. Chúng tôi quen thuộc nhất với các hoạt động bên trong của ứng dụng và do đó, ở vị trí tốt nhất để xác định công nghệ máy chủ nào được áp dụng để chạy nó. Tôi tưởng tượng không phải tất cả các đội đều có cách tiếp cận như vậy, nhưng để có đủ sự quen thuộc để có thể tham gia vào các cuộc thảo luận là một lợi thế lớn. Cụ thể, liên quan đến kiểm soát phiên bản, bạn là nhà phát triển bị ảnh hưởng rất nhiều bởi công nghệ nào được chọn (Git, Subversion, Mercurial, v.v.), và do đó nên cố gắng tham gia vào quá trình quyết định.
Thế bây giờ thì thế nào?
Đối với gợi ý của tôi là làm thế nào tốt nhất để tiếp cận việc học tất cả những điều này? Di chuyển bàn chân của bạn . Đừng lo lắng về việc cố gắng đọc mọi thứ bạn có thể về chủ đề này, hầu hết có thể sẽ bị rò rỉ ra khỏi não của bạn khi bạn kết thúc. Thay vào đó bắt đầu phát triển một cái gì đó từ mặt đất lên. Bắt đầu với Vagrant ; nó sẽ cho phép bạn dễ dàng tạo và quản lý một máy ảo mà bạn có thể sử dụng làm sân chơi mới. Sau đó, cài đặt một máy chủ web và cơ sở dữ liệu và bắt đầu tạo. Nếu bạn có ý tưởng cho một ứng dụng, hoàn hảo, hãy thực hiện nó ... nếu không, hãy tìm một hướng dẫn hoặc cố gắng tạo lại một ứng dụng hiện có. Vấn đề là chỉ cần làm quen với toàn bộ quá trình. Ngoài ra, là một nhà phát triển PHP, hãy chắc chắn kiểm tra PHP: The Right Way... Nó thực sự chứa rất nhiều thông tin tuyệt vời. Và quan trọng nhất, đừng căng thẳng quá. Tôi tưởng tượng bạn đã đi theo con đường của một nhà phát triển bởi vì đó là thứ bạn thích và đam mê ... đừng đánh mất điều đó!