나의 첫 번째 조언은 자신을 한 가지 역할로만 제한하지 않는 것입니다. 전문가가되는 것이 좋으며 특정 기술 세트 (예 : PHP)에 대한 깊은 지식이 있습니다. 그러나 나머지 도메인 전체에 걸쳐 광범위한 지식을 갖는 것이 중요합니다.
내 경험상 대부분의 팀은 PHP의 핵심 기능을 다시 작성하는 데 지식이있는 사람을 고용하지 않고 오히려 그 문제에 대처할 수있는 사람을 고용하려고합니다. 또는 팀에서 발생하는 모든 문제를 해결하는 데 도움이 될 수있는 사람. 예를 들어 응용 프로그램이 다운되고 고객이 영향을받는 상황을 상상해보십시오. 손을 내밀어 "무엇을해야할지 모르겠다 ..."라고 말하거나 서버에 SSH로 연결하여 로그 스캔을 시작하고 특정 파일 시스템의 디스크 공간이 가득 찬 것을 확인하고 정리를 진행할 수 있습니다. 이것은 작은 예이지만 요점은 분명하다고 생각합니다. 기본적인 지식을 바탕으로 개발자로서 특정 파일 시스템을 모니터하고 특정 임계 값에 도달하면이를 정리하는 스크립트를 작성할 수 있습니다. 이제 관리자에게 훨씬 더 가치가 있습니다.
내가 경력 중에 배운 또 다른 것은 일이 빨리 움직이고 당신이 계속하지 않으면 뒤에 남겨질 것이라는 것입니다. 비즈니스 측면을 포함한 전체 환경에 대해 더 많이 알수록 더 좋습니다. 그것은 당신이하는 모든 일에서 전문가가되어야한다고 말하지는 않지만 최소한 우둔한 것으로 분류되지 않는 지식을 가지고 있어야합니다. 친숙할수록 적응력이 뛰어나고 귀중한 자산입니다.
질문에 구체적으로 대답하려면 ...
전체 응용 프로그램 스택에 익숙해 지십시오. 사용중인 웹 서버, 데이터베이스, 캐싱 메커니즘 등을 알고 있어야합니다. 그리고 어떤 버전도. 자신의 서버에서 환경을 다시 만들 수있을 정도로 익숙해야합니다. 그 자체로는 매우 중요합니다. 놀라움을 줄이기 때문에 개발 및 프로덕션 환경에서 거의 동일한 환경을 갖도록 노력해야합니다 ( http://12factor.net/dev-prod-parity ).
이것은 실제로 팀에 달려 있습니다. 필자의 경우에는 개발자가 환경을 준비하는 데 큰 역할을합니다. 우리는 응용 프로그램의 내부 작업에 가장 친숙하므로 응용 프로그램을 실행할 서버 기술을 결정하는 가장 좋은 위치에 있습니다. 모든 팀이 이러한 접근 방식을 가지고 있지는 않지만 토론에 참여할 수있는 친숙 함을 얻는 것이 큰 이점이라고 생각합니다. 특히, 버전 관리와 관련하여 개발자는 어떤 기술이 선택되는지 (Git, Subversion, Mercurial 등)의 영향을 많이 받기 때문에 의사 결정 프로세스에 참여해야합니다.
이제 무엇?
이 모든 것을 배우는 가장 좋은 방법에 대한 나의 제안은 무엇입니까? 발을 이동합니다 . 피험자에 대해 할 수있는 모든 것을 읽는 것에 대해 걱정하지 마십시오. 대부분 끝날 때까지 뇌에서 누출 될 수 있습니다. 대신 처음부터 무언가를 개발하십시오. Vagrant로 시작하십시오 . 새 놀이터로 사용할 수있는 가상 머신을 쉽게 생성하고 관리 할 수 있습니다. 그런 다음 웹 서버와 데이터베이스를 설치하고 작성을 시작하십시오. 앱에 대한 아이디어가 있다면 완벽합니다. 그렇지 않은 경우 자습서를 찾거나 기존 앱을 다시 만들어보십시오. 요점은 전체 프로세스에 익숙해지는 것입니다. 또한 PHP 개발자는 PHP : 올바른 방법 을 확인하십시오... 정말 훌륭한 정보가 많이 있습니다. 그리고 가장 중요한 것은 자신을 강조하지 마십시오. 나는 당신이 개발자의 길을 따라 갔다고 생각합니다. 왜냐하면 그것은 당신이 즐기고 열정적 인 일이기 때문입니다 ... 그것을 놓치지 마십시오!