Esta pregunta podría obtener una respuesta de una milla de largo, pero intentaré mantenerla corta.
El desarrollo web es un campo extraño porque la gente tiende a aprender un poco de esto y un poco de eso. Hay dos “lugares” principales en los que las personas trabajan en el desarrollo web front-end / diseño y back-end . Sus mundos están entrelazados, pero son bastante distintos. En general, el trabajo de front-end o diseño proviene del navegador web y se ve o interactúa con él; esto se llama comúnmente UI / UX (otro tema en el que las personas podrían profundizar) Si puede interactuar con él yendo a una dirección web, lo más probable es que sea front-end.
Ahora, mencioné el diseño: durante un tiempo, cuando estaba aprendiendo, muchas personas equiparaban el front-end con el “diseñador” y el “desarrollador”, es decir, era tu trabajo como el “chico del front-end” tanto diseñar la página como crear las imágenes o íconos necesarios Y lo convierten en código. Lo he visto cambiar de modo que ahora son dos campos bastante distintos. Un desarrollador front-end trabaja con HTML, CSS y Javascript para crear el código que se presenta al usuario. El diseñador front-end trabaja para crear maquetas + activos para que el desarrollador los use cuando realmente están haciendo el sitio web. Esto se realiza principalmente en herramientas de diseño como Adobe Photoshop / Illustrator. Alguien como yo tiene lo que yo llamo experiencia “aceptable”, por ejemplo, cuando necesitábamos íconos extraídos para algunas páginas de clientes y todo lo que teníamos eran los archivos de Illustrator, sabía lo suficiente como para descubrir cómo incorporar estas cosas a sus propias imágenes, pero esto es no es mi especialidad, ni disfruto especialmente el diseño frontal.
- ¿Por qué es tan inútil el sistema de clasificación de Netflix? (Después de desplazarse por 100 títulos aleatorios, todos excepto uno estaban en el rango de 2.9 y 4.)
- Para desarrolladores de licenciatura y posgrado de CS: ¿Crees que los estudios superiores te enseñaron significativamente sobre el trabajo que haces, o hubieras sido tan bueno con un par de clases de programación / algoritmos y algo de práctica?
- ¿Qué es el alojamiento web alojado?
- ¿Cómo es el perfil de soporte del servidor en HPE?
- ¿Qué lenguaje de desarrollo web debo aprender después de html5 y css3?
El front-end es un ecosistema extraño, con alrededor de un millón de marcos y herramientas de construcción diferentes, y cada vez aparecen más. Inicialmente, la gente usaba Grunt / Gulp, pero he visto una migración a Webpack para la mayoría de los proyectos nuevos (y algunos proyectos más antiguos simplemente cambian a Webpack) como desarrollador, necesitará un conocimiento práctico de estas herramientas. Nadie debe esperar que sepa el 100% de cómo funcionan o interactúan estas cosas, pero debe conocerlas lo suficientemente bien como para que si encuentra un problema pueda buscar una solución sin demasiado alboroto. Ser un desarrollador web es mantenerse al día con todo esto y no descartar una nueva tecnología simplemente porque ya tiene una tecnología que le gusta, es una buena manera de salir adelante. Porque lo olvidé: diseño receptivo; conozca los fundamentos, pero a menos que sepa que puede sorprendernos con algo completamente nuevo, use un marco que ya existe (Bootstrap / Foundation / Bulma son algunos buenos lugares para comenzar)
El back-end tiene sus propias cosas raras porque abarca mucho . El back-end se conoce principalmente como “escribir el código del lado del servidor”. Piense en ello como “el front-end envía un formulario a esta página, ¿qué hago con esa información?” El back-end se trata de los datos. ¿Cómo se obtienen los datos correctos, cómo se acelera la obtención de esos datos, cuál es la mejor manera de almacenar esos datos? ¿Podemos mejorar alguna faceta aleatoria de algo sobre los datos? Estas son todas las cosas con las que he visto / escuchado lidiar con los desarrolladores de back-end. Sin embargo, el back-end también puede incluir cosas como configurar un servidor web o saber cómo trabajar con herramientas como Amazon Web Tools / Google Cloud Platform / Microsoft Azure. Si está buscando trabajos de fondo en algún momento u otro, lea la descripción con mucho cuidado . También hay una gran diferencia entre el front-end y el back-end: hay alrededor de un millón y medio de idiomas del lado del servidor. Algunos de estos incluyen (y no se limitan a) C #, ASP, PHP, Javascript (a-la NodeJS), Go, Ruby (on Rails), Python, Java, en algunos casos incluso C / C ++. Si una computadora puede interpretarlo, probablemente alguien haya construido un sistema de fondo para ello. Cada uno de estos idiomas tendrá pros y contras, y usted como desarrollador web debe tener lo que he escuchado descrito como una “descripción general de 10,000 pies” de cada uno para que pueda determinar qué pila usaría para una determinada aplicación. Esto se debe a que estos idiomas tienen ciertas cosas diferentes en las que son bastante buenos, por lo que desea un idioma que tenga más ventajas que desventajas para su caso particular. nota : en algunos casos, tiene sentido usar varios de estos, pero debe pensarlo con mucho cuidado porque podría hacer que el mantenimiento de la aplicación más tarde sea un desastre.
También en el back-end tenemos bases de datos. Pocos sitios web funcionan sin al menos alguna variedad de almacén de datos. Los más comunes son MySQL / MariaDB (busque la historia sobre eso), MongoDB, PostgreSQL, CouchDB, OrientDB, MsSQL, Oracle … esto también es bastante largo. Una de las cosas que pueden ayudar a definir su pila es “qué base de datos estamos usando, y ¿hay herramientas preconfiguradas para que podamos usar en [cualquier idioma del lado del servidor?]” Para la mayoría de estas, las respuestas deberían ser afirmativas, pero nunca se sabe hasta que comienza a profundizar. La configuración incorrecta de una base de datos podría terminar causando tiempos de latencia altos entre consultas y muchos otros problemas; si no se siente realmente cómodo con sus habilidades aquí, es posible que desee encontrar a alguien quién es y déjelos hacerlo ( pero también repáselo con ellos para que sepa cómo hacerlo la próxima vez ). De nuevo, este es un lugar donde debe tener una “descripción general de 10,000 pies” de cada base de datos y sus ventajas y desventajas.
Y lo último, y lo más aparentemente aleatorio que necesitas saber como desarrollador:
Cómo decirle a la gente “no, no puedo hacer eso / cambiar eso / arreglar eso en [lo que sea] marco de tiempo”. Muchas personas, especialmente las personas que no son desarrolladores, parecen pensar que debido a que somos desarrolladores podemos simplemente renunciar a nuestro pequeñas varitas mágicas extrañas y tada todos esos cambios sucederán instantáneamente. No lo hacen, y a veces no pueden . A veces pueden serlo, pero cuando realmente pienses que algo está fuera de un cierto período de tiempo, dilo . Si hacen hincapié en que es súper importante, les doy el viejo combo 1–2: les doy una descripción, incluidas las palabras técnicas, de lo que implicará ese cambio y por qué eso va a llevar a cabo la finalización fuera del plazo establecido. Si con quién está hablando no es desarrollador y simplemente no le cree, traiga a su jefe / supervisor para que pueda escucharlo y también diga “sí, eso tomará mucho más tiempo”. tenía que hacer esto antes)
¡Buena suerte!
… espero no haberte asustado