Me convertiré en ingeniero de software después de 5 años. ¿Debo aprender desarrollo web o desarrollo de aplicaciones (Android) mientras estudio ingeniería de software?

¿Honestamente? Yo recomendaría aprender Javascript a cualquiera actualmente.

¿Por qué? Porque, por ejemplo, con AngularJS puedes desarrollar excelentes Webapps, mientras que también puedes tomar la ruta hacia dispositivos móviles y desarrollar aplicaciones móviles usando algo como Ionic Framework.

La tendencia desde hace 1 a 2 años definitivamente va hacia el aprendizaje de Javascript, con todo tipo de marcos emergentes. Si bien no tiene que aprender o saber sobre todos ellos, con algo como Javascript, pronto Typecript y AngularJS 2 le abrirán muchas puertas.

Finalmente, también puede aplicar sus habilidades de Javascript para trabajar en un servidor escrito en Node.js, por lo que tiene todas las posibilidades de convertirse en un desarrollador web, móvil, back-end o simplemente Fullstack al aprender un idioma.

Si quieres darle una oportunidad a Angular2 e Ionic, desarrollé un curso de inicio rápido para principiantes para crear tu primera aplicación Ionic 2 en una hora.

Creo que el desarrollo de aplicaciones de Android es una mejor opción. El desarrollo de aplicaciones web es realmente fácil y ahora es dominio de colaboradores no profesionales, no de ingeniería de software. Claro, todavía hay problemas difíciles de resolver para la web, al igual que las herramientas cliente-servidor 4GL no pueden cubrir todas las situaciones, pero aún no existen para Android.

Miro la cadena de herramientas: ¿qué se necesita para pasar de la idea a la implementación? Cuanto más se automatice, menos será necesario que un ingeniero de software cree y administre las herramientas necesarias para el desarrollo. Por el contrario, cuando aún es complicado, aquí es donde quiero aplicar los conjuntos de habilidades de ingeniería para ‘limpiar las cosas’ o madurar esa cadena de herramientas.

Android todavía tiene un camino por recorrer. La web está bastante hecha.

Como parece, javascript gobernará cada vez más en los próximos años, debido a su flexibilidad civil y los marcos y bibliotecas emergentes que admiten el desarrollo front-end (lado del cliente, por ejemplo, angularjs) y el desarrollo de back-end (lado del servidor, por ejemplo, nodo .js), así como apoyar o proporcionar la implementación de conceptos de alto nivel listos para usar.

Definitivamente es importante tener una comprensión general de cómo funcionan ambas partes. Hoy en día, las descripciones de trabajo a menudo buscan los llamados “desarrolladores web full stack”, lo que significa que debería poder trabajar en ambos lados si es necesario. Pero es o siempre debe ser el caso de que eres mejor en un lado en comparación con el otro.

Por lo tanto, asegúrese de considerar la comprensión de los conceptos (POO, polimorfismo … etc.), así como las mejores prácticas y principios (por ejemplo, Principios SÓLIDOS) y quizás también entienda qué son los patrones de diseño y analice algunos de ellos en detalle. Sus habilidades de programación vendrán junto con la práctica y la aplicación de los conceptos antes mencionados. Será mejor hacerlo a largo plazo.

Comprender los conceptos es más importante porque los conceptos duran, pero las tecnologías cambian a menudo y rápidamente

A partir de ahora se olvidó del desarrollo web / móvil, solo concéntrese en los conceptos básicos de Ingeniería de Software. Aprender sobre un nuevo lenguaje / plataforma no es gran cosa. Debe centrarse en la Estructura de datos y algoritmo , RDBMS , Patrón de diseño, OOPS y conceptos básicos de sistemas operativos. También he escrito una publicación al respecto. Si obtiene un buen dominio sobre estos temas, le resultará muy fácil aprender cualquier idioma / plataforma.

Se ve bien hacer ambas cosas si no está seguro acerca de una especialidad. Ambos verán crecimiento. Incluso una visión básica del uso común de teléfonos inteligentes o navegadores web le dirá que ahora son básicos. Se han convertido en bienes estándar en el mercado. El sistema operativo iOS y Android, junto con el desarrollo de JavaScript y HTML admitirán ese ecosistema.

Desarrollo de aplicaciones primero.