Sé que puede sonar un poco vago, así que intentaré explicar un poco más ...
Después de ser desarrollador autónomo durante muchos años, ahora estoy en busca de un rol de desarrollador web comercial. Mi única experiencia con servidores y alojamiento es subir a través de FTP y jugar un poco con CPanel / WHM. Los roles que estoy buscando son los roles de desarrollo web PHP, MySQL, HTML, CSS, pero en entrevistas recientes me han hecho preguntas sobre cómo configurar las cosas en el servidor, que no tenía idea de lo que se decía ... que no era ideal!
Sin saber más que yo, es difícil explicar qué es exactamente lo que estoy buscando aprender, pero ¿son básicamente los elementos del servidor los que debo saber como desarrollador web? Si usted es un desarrollador web, ¿tiene alguna relación con el servidor además de cargar archivos, y si es así, qué? ¿Los sistemas de control de versiones y Subversion (SVN) a menudo son configurados por el equipo de desarrollo web, ¿podría ser eso de lo que estaban hablando?
fuente
not a very valuable web developer
es lo que estoy tratando de superar, así que estoy feliz de aprenderlo adecuadamente, simplemente no sé cuál es la mejor manera de aprender y en qué áreas enfocarme primero.Respuestas:
Esta es una gran serie de preguntas, pero sospecho que muchas personas deben abordarlas, especialmente a medida que comienzan a avanzar en una carrera que comenzó con un fuerte enfoque inicial.
Menciona que va a asumir un rol que incluye el desarrollo de PHP y MySQL. Estas son cosas que deben ejecutarse en el servidor. Ser capaz de hacer buenos juicios técnicos como desarrollador requiere que comprenda cómo funcionan estas cosas en el servidor y cómo interactúan con el front-end web. Entonces, claramente necesita desarrollar una comprensión del servidor.
En lugar de tratar de averiguar por adelantado el conocimiento exacto que pueda necesitar sobre el servidor, recomendaría sumergirse y construir algo, incluida la instalación de todo el software del lado del servidor. Una excelente manera de mojarse los pies es instalar Linux en su computadora. Puede usar algo como VirtualBox para dejar que se ejecute junto con su sistema operativo actual. Instale MySQL, instale y configure el servidor para PHP e intente que todo funcione en conjunto. Lo mejor es que, en estos días, una computadora portátil moderadamente bien equipada puede ejecutar todo esto y ser el "servidor".Esto podría ser difícil al principio, especialmente si no tiene experiencia en el uso de Linux y la línea de comandos. Como desarrollador, al menos debe saber lo suficiente para poder completar este ejercicio y le dará un buen comienzo para descubrir cómo ampliar su conocimiento.
Hay tres áreas en las que probablemente deba ponerse al día:
Si tuviera que usar Ubuntu, podría seguir las instrucciones básicas aquí para comenzar a trabajar. Tenga en cuenta que tendrá que acelerar un poco los aspectos básicos de Linux antes de comenzar a instalar y jugar con los servidores web / componentes de la base de datos.
En términos de cómo los desarrolladores necesitan interactuar con el servidor, más allá de cargar archivos, creo que esto varía mucho de una organización a otra.
El punto es que no hay una respuesta única para saber exactamente cómo necesitará tocar el servidor, pero en el transcurso de su carrera, ciertamente irá más allá de simplemente cargar archivos a través de algo como FTP. Comenzar aprendiendo lo básico ahora será de ayuda.
fuente
Mi primer consejo es no limitarse exclusivamente a un solo rol. Es genial ser un especialista y tener un conocimiento profundo de un conjunto de habilidades en particular (PHP, por ejemplo). Sin embargo, es igual de importante tener un conocimiento amplio que abarque el resto de su dominio.
En mi experiencia, la mayoría de los equipos no buscan contratar a alguien que tenga el conocimiento para reescribir la funcionalidad central de PHP, sino a alguien que pueda manejar cualquier problema que se les presente (aunque tener ese nivel de conocimiento ciertamente no dañaría). O al menos alguien que pueda ayudar a resolver cualquier problema que encuentre el equipo. Por ejemplo, imagine una situación en la que su aplicación deja de funcionar y los clientes se ven afectados. Puede levantar las manos y decir "No tengo idea de qué hacer ..." o puede SSH en el servidor, comenzar a escanear registros, notar que el espacio en disco de un sistema de archivos en particular está lleno y proceder a limpiarlo. Este es un ejemplo menor, pero creo que el punto está claro. Con ese conocimiento básico, como desarrollador, podría escribir un script que supervise ese sistema de archivos en particular y lo limpie una vez que alcance un cierto umbral. Ahora se ha vuelto mucho más valioso para su gerente.
Otra cosa que aprendí durante mi carrera es que las cosas se mueven rápido, y si no sigues el ritmo te vas a quedar atrás. Cuanto más sepa sobre su entorno completo (incluidos los aspectos comerciales), mejor estará. Eso no quiere decir que necesite ser un experto en todo lo que hace, pero al menos tener el conocimiento para no ser etiquetado como despistado. Cuanto más familiar sea, más adaptable será y más valioso será un activo para su empresa.
Para responder específicamente a sus preguntas ...
Estar familiarizado con toda la pila de aplicaciones. Sepa qué servidor web, base de datos, mecanismos de almacenamiento en caché, etc. se están utilizando. Y qué versiones también. Tenga suficiente familiaridad para poder recrear el entorno en su propio servidor. Lo cual, en sí mismo, es de vital importancia. Debe esforzarse por tener más o menos los mismos entornos en desarrollo y producción, ya que reduce las sorpresas ( http://12factor.net/dev-prod-parity ).
Esto realmente depende del equipo. En mi caso particular, los desarrolladores juegan un papel muy importante en la puesta en escena de los entornos. Estamos más familiarizados con el funcionamiento interno de la aplicación y, por lo tanto, estamos en la mejor posición para determinar qué tecnologías de servidor existen para ejecutarla. Me imagino que no todos los equipos tienen un enfoque tan práctico, pero tener suficiente familiaridad para poder involucrarse en las discusiones es una gran ventaja. Específicamente, en lo que respecta al control de versiones, usted como desarrollador está muy afectado por la tecnología elegida (Git, Subversion, Mercurial, etc.) y, por lo tanto, debe esforzarse por involucrarse en el proceso de decisión.
¿Y ahora que?
¿En cuanto a mi sugerencia sobre la mejor manera de abordar el aprendizaje de todo esto? Mueve tus pies . No se preocupe por tratar de leer todo lo que pueda sobre el tema, la mayoría probablemente se saldrá de su cerebro cuando termine. En cambio, comienza a desarrollar algo desde cero. Comience con Vagrant ; le permitirá crear y administrar fácilmente una máquina virtual que puede usar como su nuevo patio de recreo. Luego, instale un servidor web y una base de datos y comience a crear. Si tienes una idea para una aplicación, perfecta, anímate ... si no, encuentra un tutorial o intenta recrear una aplicación existente. El punto es simplemente familiarizarse con todo el proceso. Además, como desarrollador de PHP, asegúrese de consultar PHP: la forma correcta... realmente contiene mucha información excelente. Y lo más importante, no te estreses. Me imagino que seguiste el camino de un desarrollador porque es algo que disfrutas y te apasiona ... ¡no pierdas de vista eso!
fuente
Centrándose en ¿Qué necesita saber sobre los servidores para ser desarrollador web? ...
En realidad sorprendentemente poco. Sus principales áreas de conocimiento deben ser programación, html, php, etc.
Lo que necesita saber es cómo ejecutar las cosas localmente y cuando lo hace, está usando su caja como un "servidor". Entonces, cuando se ejecuta localmente, usa un navegador web para ver las páginas, al igual que con cualquier sitio de Internet ... excepto que el suyo será
http://localhost
ohttp://127.0.0.1
En cuanto a la configuración de cgi, http, etc. No espero que necesites saber eso. Siempre puede trabajar en cualquier libro general sobre la configuración de un servidor web para el sistema operativo en el que trabaja y eso sería suficiente cobertura para conocer los términos generales.
Para una visión más amplia, recomiendo ingresar a Linux y aprender a configurar y configurar máquinas como servidores web. Pero solo si realmente te interesa el material. No solo para impresionar en las entrevistas.
Finalmente, le recomendaría que considere tomar notas durante las entrevistas sobre áreas que no conoce lo suficiente. Sería útil si su pregunta fuera más específica sobre qué términos, etc., no sabía.
fuente
Necesita saber las siguientes cosas para completar el ciclo de desarrollo web.
1) IDE (Netbeans y Eclipse, etc.)
2) Cualquier lenguaje de programación para codificación. (PHP, java, etc.)
3) Tecnología frontal para el diseño de páginas (HTML, CSS, etc.)
4) Base de datos respaldada para almacenar y recuperar datos. (MySQL, etc.)
3) Sistema de control de versiones para verificar y recuperar su repositorio de formularios de código.
4) herramienta de compilación para compilar su código con archivos dependientes. (Hormiga, Maven)
6) Servidor web para implementar y ejecutar su código.
7) Necesita conocer el proceso de implementación básica sobre servidores para ejecutar y probar su componente web y ejb. (Tomcat, servidor Web-Logic)
fuente
Además de la respuesta de DemetriKots, también agregaría la búsqueda de soluciones para la implementación automatizada y la integración continua. Configurar el servidor inicialmente es solo un paso, y la implementación a través de FTP es dolorosa y propensa a errores, sin una solución adecuada para deshacer las implementaciones incorrectas.
fuente