¿Qué debe saber un buen desarrollador web full stack?

En términos de tecnologías, dado que no hay un conjunto de habilidades que pueda tener un desarrollador de pila completa, debe conocer al menos un lenguaje de secuencias de comandos del lado del servidor (PHP, Python, Node, no es realmente un lenguaje, GO, C #, Perl), uno subconjunto de tecnologías de base de datos (SQL, No-SQL) y luego todos los idiomas en el cliente (HTML, CSS, JS).

Más allá de eso, es realmente útil conocer algunas de las siguientes cosas, tanto desde una perspectiva práctica como teórica:

  • Redes informáticas: comprenda qué son DNS, TCP / IP y HTTP y cómo funcionan juntos para crear Internet. Debería poder cambiar los registros DNS de los sitios web, crear subdominios, etc.
  • Administración del servidor: debe conocer los conceptos básicos de la configuración de un entorno de servidor para su pila dada (generalmente Linux y NGINX / Apache o Windows Server e IIS). Puede experimentar con toda esta tecnología y practicar de forma gratuita (en su mayoría) utilizando Amazon Web Services.
  • Optimización: comprenda cómo optimizar partes específicas del software que está desarrollando. Aprenda a hacer llamadas DB lentas más rápido indexando. Aprenda cómo aumentar la carga de la página mediante el uso de un proceso de construcción eficiente para recursos estáticos. Aprenda a perfilar e inspeccionar el rendimiento del código.
  • Seguridad: dado que su rol como desarrollador de pila completa implica empujar / extraer datos entre el cliente y su servidor, debe comprender algunos conceptos básicos sobre cosas como la inyección de SQL y las secuencias de comandos entre sitios para que pueda escribir código que mitigue esas preocupaciones lo mejor que pueda lata.

Mi otra recomendación sería encontrar un área que te apasione y profundizar en ese conjunto de habilidades. Si puede hacer front-end, así como la mayoría de los desarrolladores de front-end, pero también tiene estas habilidades adicionales, rápidamente se convertirá en indispensable para su organización. Lo mismo ocurre si eres un asistente de base de datos que también puede saltar si es necesario un código de una interfaz de usuario de una maqueta. Piensa profundamente en un área, luego aprende en el resto de la pila.

No solo en términos de idiomas, sino también tecnologías y material teórico.

Estoy bastante seguro de que puedo trabajar con esto.

Programacion general

Es importante comprender la programación general, independientemente del idioma, relativamente bien. Comprender los conceptos de asignación de variables y mutabilidad, condicionales, bucles, funciones y tipos de datos comunes (matrices / listas, objetos / diccionarios). Si desea profundizar un poco más, considere examinar los conceptos de inmutabilidad, funciones de orden superior (si su lenguaje lo permite) y las diferencias entre los paradigmas de programación orientados a objetos y funcionales.

Los algoritmos básicos son un próximo lugar común para comenzar. Use su cadena o matriz / lista y pruebe algunos algoritmos de clasificación / búsqueda. Pruebe cosas como reemplazos de texto o inserciones en orden. También es bueno aprender a escribir funciones básicas de orden superior como filtro, mapa y reducción. Gran parte de su aprendizaje aquí está destinado a ayudarlo a comprender el valor de los algoritmos en las estructuras de datos.

Es importante comprender el concepto detrás de las estructuras de datos básicas para que pueda comprender cómo facilitan el manejo de datos, incluso si no comprende las variantes más complejas. Apunta a aprender listas enlazadas, árboles, conjuntos, gráficos y árboles binarios. Si encuentra esta diversión, considere buscar filtros de floración, árboles rojo-negros, árboles b, etc.

Lado del cliente

Los idiomas requeridos aquí en HTML, CSS y JavaScript, los componentes básicos de las aplicaciones web. De los tres, JavaScript es el que invierte mucho en aprender profundamente debido a su importancia en el desarrollo de aplicaciones. CSS sería un buen finalista, especialmente si necesita escribir su propia biblioteca de estilos por cualquier motivo.

Aprender una (preferiblemente más) biblioteca de desarrollo de aplicaciones (React, Angular, Ember, etc.) es ideal; facilitan el desarrollo de aplicaciones ricas y, a menudo, son el dominio común sobre el que se construyen los equipos.

En lo que respecta a la teoría, es importante comprender el Modelo de objetos de documento (DOM) y cómo funciona: prácticamente todas las aplicaciones web funcionan en última instancia al interactuar con el DOM para garantizar que refleje el estado actual de la aplicación. Además, comprender el bucle de eventos de JavaScript puede ayudarlo a comprender cómo y cuándo se está ejecutando su código y por qué.

Lado del servidor

Puede tomar casi cualquier lenguaje de programación y hacer que funcione aquí. A muchas personas les resulta más fácil aprender y trabajar con marcos de lenguaje dinámicos: Node.js (JavaScript), Django (Python), Ruby on Rails, PHP. Dicho esto, hay muchas otras opciones para incluir aquellas en idiomas compilados.

En el servidor, querrá comprender los conceptos básicos de servicio: escuchar en un puerto, aceptar solicitudes, leer archivos, interactuar con bases de datos y servir respuestas. Es probable que tenga muchas bibliotecas de soporte en el servidor que lo ayuden a abstraer muchos de estos procesos.

Más allá de simplemente escribir el código del servidor, también querrás aprender a lidiar con conceptos comunes relacionados con el servidor. Configuración / obtención de variables de entorno, manejo de permisos, registro, trabajos cron, etc. Hay muchas cosas que están sucediendo detrás de escena cuando se trata de servidores.

Persistencia de datos

Si bien no hay un “lenguaje requerido” aquí, recomendaría familiarizarse al menos con el lenguaje de consulta estructurado (SQL), ya que se utiliza en casi todos los sistemas de gestión de bases de datos relacionales (RDBMS) acreditados, como el popular MySQL, PostgreSQL, MSSQL, OracleDB, etc.

Más allá de RMDBS, también querrá explorar los beneficios de las bases de datos NoSQL que vienen en todas las formas y tamaños. Recomendaría acostumbrarse a las bases de datos en memoria (Redis, Memcached) que a menudo se usan para el almacenamiento en caché rápido y el almacenamiento de documentos (MongoDB), que a menudo se usan como alternativas a RMDBS y tienen algunas ventajas de escala (aunque con sus propias desventajas).

Por lo general, solo realizará un trabajo limitado con bases de datos directamente, en su mayoría operaciones simples de Crear, Leer, Actualizar, Destruir (CRUD) y quizás unir datos de múltiples tablas / sistemas.

Más allá

Hay muchas áreas para explorar tanto dentro de estas tres áreas generales como más allá.

  • Hay mucha investigación en curso en el dominio de la informática, y queda mucho espacio para escribir los algoritmos y las estructuras de datos del mañana.
  • Hay muchas API JavaScript poco comunes pero útiles en el navegador que puede aprovechar en una aplicación para hacer muchas cosas increíbles
  • Más allá de administrar servidores individuales, puede administrar flotas enteras aprovechando los contenedores y los planificadores, acercándose al dominio de DevOps
  • Las operaciones CRUD son buenas, pero hay muchas cosas que puede hacer con las bases de datos para optimizar consultas, cifrar datos en reposo o manejar fallas con gracia
  • Debajo de los servidores hay capas masivas de redes y comunicación que se pueden optimizar para entregar su contenido más rápido
  • En todos los aspectos, la seguridad es una preocupación primordial, desde ataques XSS en el navegador hasta pirateo de su servidor / base de datos

Una de las principales ventajas de ser un desarrollador de pila completa es que es relativamente fácil expandir sus horizontes y, de manera similar, es fácil explorar uno de una multitud de conceptos en profundidad extrema. Aprovechar esta gama para desarrollar un conjunto de habilidades con una amplitud y profundidad increíbles lo ayudará a desarrollarse como una parte indispensable de su equipo.

Un desarrollador de Full Stack conoce todos y cada uno de los temas, incluidos el hardware, el front-end, el back-end, los servidores, las bases de datos, la gestión de proyectos y la coordinación de clientes, etc. Por lo tanto, el desarrollo de Full Stack es tan bueno como un experto con múltiples habilidades lingüísticas y conocimientos de dominio en Varias funciones.

Sí, es necesario dominar mucho para ser llamado desarrollador profesional Full Stack. ¡Por lo tanto, el puesto merece un alto mando en su lugar de trabajo!

Más arriba se ofrece un vistazo fácil de las aplicaciones para convertirse en un desarrollador Full Stack. Es una lista exhaustiva y puede priorizar la lista a continuación para comenzar.

Idiomas para comenzar !!

Java: la secuencia de comandos más popular utilizada en varios programas, desde juegos, aplicaciones web y software ATM. HTML: esencialmente un lenguaje para principiantes utilizado ampliamente en la mayoría de las aplicaciones y sitios web. Python: el idioma favorito del alumno es muy efectivo en juegos y otras aplicaciones. C – Se utiliza en varias aplicaciones web y software de cajeros automáticos. Utilizado durante años de manera efectiva, tiene versiones modernas C ++, C # y Objective-C. Si está planeando el desarrollo web, entonces debería poder acceder a diferentes idiomas, ya que para móviles necesita diferentes habilidades. Su propósito es lo importante antes de comenzar. Para las aplicaciones web, los lenguajes simples pero personalizados son Python y Ruby. Estos lenguajes orientados a objetos usan sintaxis legibles. Los lenguajes orientados a objetos se centran en los objetos, la recopilación de datos y su gestión. Además, la compatibilidad con muchos lenguajes populares y avanzados JavaScript, HTML, C, C ++, Objective-C y C # es importante tener en conocimiento y el sistema.

¡¡¡A continuación, he simplificado los pasos para comenzar tus pasos hacia Full Stack Development Pro !! Sí, puede ser un profesional con las siguientes herramientas y el tiempo para lograrlo depende de su eficiencia y pasión.

1. Principiante absoluto: los plazos varían y dependen de tu pasión y conocimiento

Domine todo de varias fuentes y algunos programas populares en línea se pueden encontrar en Udacity , Coursera, Thinkful, General Assembly, Lynda, Edx y mucho más. La mayoría de los tutoriales son gratuitos. Recomiendo solo si está familiarizado con lo básico y si está familiarizado. Aprendedor.

2. Ya eres un profesional en muchas aplicaciones: todo lo que depende es tu motivación para aprender más

Use algunos foros para interactuar con sus compañeros. Las siguientes aplicaciones son opciones asequibles para las personas con exposición básica Aprenda a codificar – Academia de código, Aprender haciendo – Escuela de código, Aprender diseño web, Desarrollo web y más – Teamtreehouse Aprender desarrollo web para proyecto gratuito

3. Para principiantes, principiantes e intermedios J

Comienza en las universidades y entra en los cursos para desarrolladores de Full Stack. Prueba Holberton School. Tienen un curso especializado sobre el desarrollo Full Stack. El plan de estudios se basa en las necesidades de la industria y puede aprender de los pioneros de la industria. Estos cursos lo llevarán al siguiente nivel y lo prepararán para el próximo trabajo soñado. Sigue aprendiendo y te deseo todo lo mejor.

Finalmente, un Desarrollador Full Stack es un “asistente técnico que canta y baila” que da una idea de la naturaleza del trabajo. Crédito: Ian Peters-Campbell. ¡Recuerde leer, aprender y codificar más para entrar en la cabaña de un Desarrollador de Pila Completa!

Imagen cortesía: Cursos en línea de Java Delhi Noida.

En general, ser un desarrollador de pila completa significa que se siente cómodo trabajando con las tecnologías de back-end y front-end. Más específicamente, significa que puede trabajar con lenguajes del lado del servidor, bases de datos, HTML, CSS, JavaScript y todo lo demás.

Desglosaré las tecnologías requeridas por un desarrollador de pila completa en estos días:

  • Tecnologías de back-end : en términos de lenguajes de programación, debe sentirse cómodo con al menos un lenguaje del lado del servidor (PHP, NodeJS, Ruby, Python, C #). A continuación, debe estar bastante familiarizado con al menos una tecnología de administración de bases de datos (MySQL, PostgreSQL, Redis, MongoDB, Cassandra). Finalmente, debe saber lo suficiente sobre los servidores web (Apache, Nginx) y saber cómo configurar una aplicación o un sitio web.
  • Tecnologías front-end : HTML, CSS y Javascript como imprescindibles. Junto con ellos, como desarrollador de pila completa, debe saber sobre diseño receptivo, consultas de medios, MENOS, SASS, compatibilidades de navegadores, etc. También debe saber cómo comunicarse con el back-end usando AJAX o WebSockets. Es una era de Javascript, por lo que es bueno tener conocimiento en cualquier marco de JavaScript (se requiere lectura).
  • Administración del sistema : debe saber cómo funciona el alojamiento en la nube (AWS, Rackspace, Digital Ocean) y cómo configurar una instancia. No deberías ser competente con él porque es una ciencia completa, pero deberías ser capaz de manejarlo. Además, debe estar familiarizado con la configuración del protocolo HTTPS, DNS, monitoreo del servidor, etc. El almacenamiento en caché también es importante, Barniz, proxy inverso y Memcached.
  • Herramientas de desarrollo web : el control de versiones (Git, SVN) se debe tener en estos días. Además, para evitar las diferentes incompatibilidades del entorno, es bueno tener las herramientas de virtualización: pueden ahorrar mucho tiempo de depuración. Debe saber cómo configurar Virtual Box y Vagrant al menos.

Como desarrollador de pila completa, no necesita dominar todas esas áreas y tecnologías, pero debe sentirse cómodo con ellas.

Puedes trabajar en muchos tipos diferentes de pilas. Me centraré en las aplicaciones web, porque he pasado la mayor parte de mi carrera trabajando en ellas y conozco mejor esta pila. Para el software web, defino una pila básica de la siguiente manera:

  • HTML
  • CSS
  • Javascript
  • Un lenguaje de programación de uso general (Ruby, Python, PHP, etc.)
  • un sistema de base de datos relacional (Postgres, MySQL, Oracle, etc.)
  • un servidor web (nginx, Apache, etc.)
  • un sistema operativo de implementación (Ubuntu, CentOS, FreeBSD, etc.)
  • un sistema de control de versiones (git. no te molestes con el etc.)
  • una biblioteca frontend (React, Angular, Jquery)

El desarrollador web Full stack significa que puede desarrollar backend y frontend. Frontend requiere conocimiento de html, css, javascript y algunos marcos de javascript, si desea diseños más interactivos.

El backend requiere el conocimiento de cualquier idioma del lado del servidor como php, django, etc.

Debe tener conocimiento de varias pilas como lámpara, pila media. También debe saber cómo implementar sitios web o cómo configurar servidores de fondo.

Debe tener conocimiento de lenguajes de bases de datos como mysql, mongodb, etc. El conocimiento de sistemas de control de versiones como git, svn es una ventaja.

¡¡¡Espero eso ayude!!!

Primero y ante todo

Al explicar un error / problema correctamente, ya sea aquí en Quora o StackOverflow, la gente hace preguntas muy vagas. Ni siquiera describen su problema completo ni nos proporcionan algún código, pero esperan soluciones. Algunas personas esperan que se entregue el código completo sin siquiera intentarlo, lo cual es una muy mala práctica. Proporcione un ejemplo mínimo verificable y también brinde información sobre cómo funciona actualmente su código.

Segundo

No se limite a los enfoques individuales de una solución, aprenda otras formas, por ejemplo, una aplicación pequeña puede no requerir microservicios, pero las tecnologías de aprendizaje como el sistema de mensajes y colas para implementar la comunicación entre procesos entre microprocesos no dañan, termina aprendiendo mucho sobre el mantenimiento de aplicaciones de nivel empresarial y también un poco sobre la gestión de la red.

Tercero

La tecnología está cambiando rápidamente, especialmente en el desarrollo web, siempre manténgase actualizado con el nuevo jagron. Y en el tiempo libre aprenda sobre otros marcos e idiomas.

Cuarto

Aprenda sobre varios marcos y prácticas de grado empresarial como docker, kubernetes, etc.

Quinto

No reinvente la rueda a menos que se vea obligado a hacerlo, use herramientas de código abierto y también contribuya a ellas, aprenderá mucho.

Un desarrollador de pila completa debe saber lo siguiente:

  1. HTML, CSS, Java y JavaScript
  2. Al menos un lenguaje de script (más es bonificación). Pocas opciones populares serían
  1. PHP
  2. Pitón
  3. JavaScript
  4. Rubí
  5. Ir
  • Idealmente, un marco popular correspondiente al lenguaje de secuencias de comandos. Pocos son:
    1. Laravel
    2. CakePhP
    3. Django
    4. Frasco, etc.
  • Base de datos, algunos populares son:
    1. MySQL
    2. Mongo DB
  • Configuración y mantenimiento del servidor de nivel intermedio.
  • Opcionalmente Git
  • Después de estos 6 cielo es el límite. Aquí hay algunos:

    • Algoritmos
    • Estructura de datos
    • Balanceo de carga
    • Red de entrega de contenidos
    • Oreja
    • Angular
    • Reaccionar
    • Hablar con descaro a

    Además, un desarrollador de pila completa debe saber sobre:

    • Interfaz de usuario
    • Experiencia de usuario
    • Análisis (para corregir errores de desarrollo)
    • Comportamiento del usuario
    • Paletas de colores

    No hay una respuesta perfecta para esto. ¡Seguir aprendiendo!

    Básicamente, todo, desde el alojamiento hasta la comprensión de los clientes y el negocio.
    En primer lugar, aprenda sobre el alojamiento. Debe saber sobre las redes, sobre el sistema de alojamiento que utilizará, sobre el software del servidor web y, aunque no tiene que ser bueno en eso, debe ser capaz de hacerse cargo del trabajo del Web Master / Admin.
    A continuación, bases de datos. Necesita saber cómo modelar una base de datos y cómo configurarla, configurarla y, básicamente, ser capaz de hacerse cargo del trabajo de un DBA, aunque de nuevo, no tiene que ser tan bueno como DBA.
    Necesitas entender la lógica del negocio. Básicamente, lo que está sucediendo dentro de la aplicación. Debe conocer la capa API, que ayuda a la lógica empresarial a comunicarse con la interfaz. Necesita saber cómo hacer la interfaz y, lo que es más importante, sabe cómo hacer que sea agradable y útil para los usuarios.
    Y finalmente, debe comprender qué esperarán los usuarios de lo que está creando. Y si, por ejemplo, crea una aplicación financiera, debe saber sobre banca, seguros, hipotecas y muchas otras cosas relacionadas con los negocios.

    ¿Tienes que ser bueno en todo? No, en realidad no, pero serás un desarrollador completo que sabe bastantes cosas sobre todo el proceso de alojamiento de aplicaciones web. Básicamente, su función es combinar varias disciplinas en un solo trabajo. A menudo requiere varios años de experiencia ya que tienes que aprender muchas cosas diferentes.

    Un desarrollador de pila completa es alguien con conocimiento de cómo codificar el lado frontal y el lado posterior de un sitio web. Los lenguajes de programación para estos son HTMl, CSS, JavaScript, PHP y mySQL.

    Te invito a ver mi respuesta a una pregunta similar aquí: la respuesta de Josh Begleiter a ¿Qué significa el término “programador de pila completa”?

    HTML

    CSS

    Javascript

    Algunos JS Framework – angularJS / reactJS….

    algún servidor de aplicaciones – Node / Tomcat

    Java / J2EE o C # .Net

    DB- SQL o noSQL

    eso es un largo camino … buena suerte !!!

    Debes aprender la respuesta a la última pregunta de la vida, el universo y todo.

    Humildad, decencia, coraje, integridad, honestidad, dignidad y clase.