Eu sei que isso pode parecer um pouco vago, então vou tentar explicar um pouco mais ...
Depois de ser desenvolvedor por conta própria por muitos anos, agora estou em busca de uma função comercial de desenvolvedor web. Minha única experiência com servidores e hospedagem é fazer upload através de FTP e brincar um pouco com o CPanel / WHM. As funções que eu estou procurando são funções de desenvolvimento PHP, MySQL, HTML, CSS, mas em entrevistas recentes me perguntaram sobre a configuração de coisas no servidor, que eu não tinha ideia do que estava sendo dito ... o que não era o ideal!
Sem saber mais do que sei, é difícil explicar exatamente o que estou procurando aprender, mas são basicamente os elementos do servidor que eu deveria conhecer como desenvolvedor da Web? Se você é desenvolvedor da Web, tem alguma relação com o servidor além de enviar arquivos e, em caso afirmativo, o que? São coisas como o Subversion (SVN) e os sistemas de controle de versão frequentemente configurados pela equipe de desenvolvimento da web, seria sobre isso que eles estavam falando?
fonte
not a very valuable web developer
é o que estou tentando superar, por isso estou feliz em aprender sobre isso corretamente, só não sei qual a melhor maneira de realizar esse aprendizado e em quais áreas focar primeiro.Respostas:
Esse é um grande conjunto de perguntas, mas suspeito que muitas pessoas precisam abordar, principalmente quando começam a avançar em uma carreira que começou com um foco pesado no front-end.
Você menciona que está assumindo uma função que inclui desenvolvimento PHP e MySQL. São coisas que precisam ser executadas no servidor. Ser capaz de fazer bons julgamentos técnicos como desenvolvedor exige que você entenda como essas coisas funcionam no servidor e como elas interagem com o front-end da web. Portanto, você claramente precisa desenvolver um entendimento do servidor.
Em vez de tentar descobrir de antemão o corpo exato de conhecimento que você pode precisar sobre o servidor, eu recomendaria mergulhar e criar algo que inclua a instalação de todo o software do servidor. Uma ótima maneira de se molhar é instalar o Linux no seu computador. Você pode usar algo como o VirtualBox para permitir que ele seja executado ao lado do seu sistema operacional atual. Instale o MySQL, instale e configure o servidor para PHP e tente fazer tudo funcionar em conjunto. O bom é que, atualmente, um laptop moderadamente bem equipado pode executar tudo isso e ser o "servidor".Isso pode ser difícil no começo, principalmente se você não tiver experiência com o Linux e a linha de comando. Como desenvolvedor, você deve pelo menos saber o suficiente para conseguir fazer esse exercício e isso lhe dará um impulso para descobrir como aprimorar seu conhecimento.
Existem três áreas em que você provavelmente precisará se atualizar:
Se você fosse usar o Ubuntu, poderia seguir as instruções básicas aqui para começar a funcionar. Observe que você precisará acelerar bastante o básico do Linux antes de começar a instalar e jogar com os servidores da Web / componentes do banco de dados.
Em termos de como os desenvolvedores precisam interagir com o servidor, além do upload de arquivos, acho que isso varia muito de organização para organização.
O ponto é que não existe uma resposta única para exatamente como você precisará tocar no servidor, mas no decorrer de sua carreira, certamente irá além de apenas enviar arquivos por meio de FTP. Começar aprendendo o básico agora ajudará.
fonte
Meu primeiro conselho é não se limitar exclusivamente a qualquer função. É ótimo ser especialista e ter um conhecimento profundo de um conjunto de habilidades específico (PHP, por exemplo). No entanto, é igualmente importante ter um amplo conhecimento que se estende pelo resto do seu domínio.
Na minha experiência, a maioria das equipes não procura contratar alguém que possua o conhecimento necessário para reescrever a funcionalidade principal do PHP, mas alguém que possa lidar com qualquer problema que lhes seja causado (apesar de ter esse nível de conhecimento certamente não prejudicaria). Ou pelo menos alguém que possa ajudar a resolver quaisquer problemas que a equipe encontre. Por exemplo, imagine uma situação em que seu aplicativo seja desativado e os clientes estejam sendo afetados. Você pode levantar as mãos e dizer "Não tenho idéia do que fazer ..." ou pode fazer o SSH no servidor, iniciar a verificação de logs, observe que o espaço em disco de um sistema de arquivos específico está cheio e prossiga para limpá-lo. Este é um exemplo menor, mas acho que o ponto é claro. Com esse conhecimento básico, como desenvolvedor, você pode escrever um script que monitore esse sistema de arquivos específico e o limpe assim que atingir um determinado limite. Agora você se tornou muito mais valioso para o seu gerente.
Outra coisa que aprendi durante a minha carreira é que as coisas acontecem rapidamente e, se você não acompanhar, será deixado para trás. Quanto mais você souber sobre todo o seu ambiente (incluindo os aspectos comerciais), melhor estará. Isso não quer dizer que você precise ser especialista em tudo o que faz, mas pelo menos tenha o conhecimento para não ser rotulado como sem noção. Quanto mais familiar você estiver, mais adaptável será e mais valioso será um ativo para sua empresa.
Para responder especificamente às suas perguntas ...
Familiarize-se com toda a pilha de aplicativos. Saiba qual servidor web, banco de dados, mecanismos de cache etc. estão sendo usados. E quais versões também. Tenha familiaridade suficiente para recriar o ambiente em seu próprio servidor. O que, por si só, é de vital importância. Você deve se esforçar para ter mais ou menos os mesmos ambientes de desenvolvimento e produção, pois isso reduz surpresas ( http://12factor.net/dev-prod-parity ).
Isso realmente depende da equipe. No meu caso particular, os desenvolvedores desempenham um papel enorme na organização dos ambientes. Estamos mais familiarizados com o funcionamento interno do aplicativo e, portanto, estamos na melhor posição para determinar quais tecnologias de servidor existem para executá-lo. Imagino que nem todas as equipes tenham essa abordagem prática, mas ter familiaridade suficiente para poder se envolver nas discussões é uma grande vantagem. Especificamente, no que diz respeito ao controle de versão, você como desenvolvedor é altamente afetado pela tecnologia escolhida (Git, Subversion, Mercurial etc.) e, portanto, deve se esforçar para se envolver no processo de decisão.
Então e agora?
Quanto à minha sugestão sobre a melhor forma de abordar a aprendizagem de tudo isso? Mova seus pés . Não se preocupe em tentar ler tudo o que puder sobre o assunto, a maioria provavelmente vazará do seu cérebro quando você terminar. Em vez disso, comece a desenvolver algo do zero. Comece com o Vagrant ; permitirá criar e gerenciar facilmente uma máquina virtual que você pode usar como seu novo playground. Em seguida, instale um servidor web e um banco de dados e comece a criar. Se você tem uma idéia para um aplicativo, perfeito, vá em frente ... se não, encontre um tutorial ou tente recriar um aplicativo existente. O ponto é apenas para se familiarizar com todo o processo. Além disso, como desenvolvedor PHP, não deixe de conferir o PHP: The Right Way... realmente contém muitas informações excelentes. E o mais importante, não se estresse. Eu imagino que você seguiu o caminho de um desenvolvedor, porque é algo que você gosta e é apaixonado ... não perca de vista!
fonte
Focando no que você precisa saber sobre servidores para ser um desenvolvedor web? ...
Na verdade, surpreendentemente pouco. Suas principais áreas de conhecimento devem ser programação, html, php, etc.
O que você precisa saber é como executar as coisas localmente e, quando fizer isso, estará usando sua caixa como um 'servidor'. Portanto, ao executar localmente, você usa um navegador da web para visualizar as páginas, assim como em qualquer site da Internet ... exceto que o seu será
http://localhost
ouhttp://127.0.0.1
Quanto à configuração de cgi, http, etc. Não espero que você precise saber disso. Você sempre pode trabalhar em qualquer livro geral sobre a configuração de um servidor Web para o sistema operacional em que trabalha e isso seria cobertura suficiente para conhecer os termos gerais.
Para uma visão geral, eu recomendo entrar no Linux e aprender como instalar e configurar máquinas, como servidores da web. Mas somente se você realmente tiver interesse nas coisas. Não apenas para impressionar nas entrevistas.
Finalmente, eu recomendaria que você considerasse fazer anotações durante entrevistas sobre áreas que você não conhece o suficiente. Ajudaria se sua pergunta fosse mais específica sobre quais termos etc. você não sabia.
fonte
Você precisa saber as coisas abaixo para concluir o ciclo de desenvolvimento da web.
1) IDE (Netbeans e Eclipse etc.)
2) Qualquer linguagem de programação para codificação. (PHP, Java, etc.)
3) Tecnologia frontal para criação de páginas (HTML, CSS etc.)
4) Banco de dados com suporte para armazenar e recuperar dados. (MySQL etc)
3) Sistema de controle de versão para verificar e recuperar seu repositório de formulários de código.
4) ferramenta de compilação para compilar seu código com arquivos dependentes. (Formiga, Maven)
6) Servidor da Web para implantar e executar seu código.
7) É necessário conhecer o processo básico de implantação nos servidores para executar e testar seu componente web e ejb. (Tomcat, servidor Web-Logic)
fonte
Além da resposta do DemetriKots, eu também adicionaria soluções para implantação automatizada e integração contínua. A configuração inicial do servidor é apenas uma etapa, e a implantação por FTP é dolorosa e propensa a erros, sem solução adequada para reverter implantações ruins.
fonte