¿Cuáles fueron las mejores habilidades de desarrollo de software en 2013?

El desarrollo de software es un campo bastante grande. Fuera de mi cabeza en los últimos dos años, estos han ido ganando popularidad en la industria:

– Técnicas de desarrollo web del lado del cliente:

  • Nuevo marcado HTML5 y declaraciones CSS3
  • Nuevas funciones de JavaScript (como parte de la especificación HTML5) para cosas como geolocalización, WebSockets, trabajadores web, etc.
  • Diseño responsivo, pudiendo escribir el mismo sitio para múltiples dispositivos.
  • Estructuras de JavaScript MVC que realizan la representación solo en el lado del cliente (Backbone.js, Angular.js, etc.)
  • Estructuras JavaScript MVC que realizan la representación tanto en el lado del cliente como en el lado del servidor, junto con Node.js (Mojito, Derby.js, etc.)

– Técnicas del lado del servidor de desarrollo web:

  • WebSockets, junto con las nuevas especificaciones del lado del cliente
  • Bases de datos NoSQL, y sus diferentes tipos, tales como almacenes de clave / valor, bases de datos orientadas a documentos y gráficas (demasiadas para nombrar ahora).
  • Opciones basadas en SQL escalables (MemSQL y otros)
  • Almacenamiento distribuido (HDFS de Hadoop, Amazon S3)
  • Idiomas para aplicaciones de alta concurrencia (Node.js, Go, Erlang)
  • Computación distribuida de alto rendimiento (AWS, Azure, Compute Engine)

– Aprendizaje automático (distribuido):

  • Nuevos modelos de programación para el análisis de datos (MapReduce).
  • Lenguajes específicos de dominio para analizar grandes cantidades de datos distribuidos (Pig)

Como desarrollador de JavaScript, mi conocimiento es bastante basado en la web y de alto nivel, por lo que estoy seguro de que hay muchas más cosas en un nivel inferior de programación (¿C ++ 11?).

A pesar de todas estas cosas nuevas, sin embargo, es más importante tener una buena base de conceptos en lugar de simplemente subirse al último carro. Si observa la lista, hay una tendencia a volver a lo que se usó originalmente, pero de una manera más eficiente (representación del lado del cliente -> representación del lado del servidor, NoSQL -> SQL escalable).

Si conoce sus conceptos, escoger nuevas tecnologías tomará un tiempo muy corto, ya que muchos de ellos, independientemente de las exageraciones, son solo beneficios incrementales sobre lo que ya existe. No se moleste con los cursos especializados, ya que desde el momento en que se especializa en una tecnología, probablemente saldrá una mejor.

La única habilidad más importante en el desarrollo de software en 2013 es aproximadamente la misma que hace 50 años y probablemente será la misma dentro de 50 años: las comunicaciones .

  • Aprender a comprender los requisitos (o reunirlos y envolverlos en un medio comprensible).
  • Aprender a concentrarte en lo que se te pide sin desviarte de ello.
  • Aprender a comunicar sus éxitos y comunicar los obstáculos que requerían más atención sin perder la cara.
  • Aprender a diseñar un producto y, al mismo tiempo, evitar demasiadas reiteraciones como resultado de un pensamiento deficiente o una mala revisión por pares.

No olvide … Un lenguaje de programación no es inteligencia, es solo el medio por el cual las instrucciones inteligentes se pueden comunicar a un dispositivo automatizado, como una computadora. Uno puede conocer muchos lenguajes de programación y, aun así, ser estúpido, solo será un estúpido políglota.

El lenguaje de programación puede ser el elemento que lo ayudará a obtener el trabajo, pero sus habilidades de inteligencia y comunicación serán los elementos que lo harán hacer un buen trabajo o no.

respuesta difícil
Todo se reduce a unas pocas habilidades básicas; la calidez del desarrollador es proporcional a la competencia en estas habilidades.

0) Sólida base en conceptos de CS.

1) Pensamiento abstracto / cuidadoso / creativo de alto nivel, suficiente para manejar cualquier problema o tecnología que se le lance. Cada empresa tiene su propia configuración interna extraña, por lo que tendrá que aprender cosas nuevas a menos que se le contrate para trabajar exclusivamente en algo extraordinariamente específico.

2) Habilidades de comunicación. Debe poder especificar conceptos de alto nivel y, a la inversa, expresar su código a un alto nivel. Aunque este tipo de cae bajo el # 1.

3) Capacidad para escribir rápidamente código modular y robusto

respuesta más fácil
paralelismo, computación distribuida, aprendizaje automático, cualquier cosa que facilite el manejo de ‘big data’

respuesta más fácil
Ruby on Rails, Objective C, Java. Si bien la competencia en una tecnología muy específica no es realmente buena, verá a muchas personas que solicitan estas habilidades simplemente porque existe una gran demanda de aplicaciones de teléfonos inteligentes y de despliegue de sitios web fáciles. Los libros se vuelven obsoletos rápidamente, así que intente internet, hay muchos sitios de referencia y tutoriales sólidos por ahí. Utilice StackOverflow si no lo ha hecho.

La mayoría de los puntos clave ya están clavados aquí, y estoy de acuerdo … y me gustaría agregar mis 2 centavos:

• hazte fuerte algorítmicamente
• Aprender varios idiomas (funcional, de procedimiento, oops, etc.)
• demuestra que eres 10 veces mejor que cualquier otro promedio. (como Juan mencionó)
• crear nuevas soluciones, probar nuevos y creativos enfoques para resolver problemas
• ser expresivo

Yo pondría web, móvil y big data como las 3 áreas principales que están muy calientes.

Web:
HTML 5 / JavaScript (el tipo completo de aplicación del lado del cliente)

Móvil:
desarrollo iOS (Objetivo C)
un segundo distante es Android (Java)

Datos:
Big Data con Hadoop (Hadoop, MapReduce, Pig y similares)

pd: soy un usuario de Android comprometido, pero si estuviera desarrollando un dispositivo móvil, elegiría iOS porque es donde está la acción.

Creo que en este momento la tendencia más candente es el desarrollo móvil. Objective-C y Java para Android en particular.

Pero los lenguajes y tecnologías de programación vienen y van, por lo que un desarrollador que conoce los conceptos básicos de programación, presentaciones, desarrollo web, lee blogs, libros, revistas, etc. sobre la industria y aprende rápido, lo hará bien en cualquier momento y en cualquier lugar.

Acerca de las certificaciones, algunas personas las tienen en gran consideración, otras no, y creo que (teniendo 7 certificaciones en Java, IBM y UML) no te hacen un mejor desarrollador. La experiencia lo hace. Entonces conviértase en un certificado sobre las tecnologías que necesita o las que cree que le ayudan a avanzar en su carrera.

Sobre libros, echa un vistazo a:
La lista de libros de Horror de codificación: http://www.codinghorror.com/blog… .
Lista de Steve Yegge: https://sites.google.com/site/st

Bueno, hay estos dispositivos llamados iPhones y iPads que mucha gente parece querer desarrollar aplicaciones para … (considere: “Programación de Objective-C: Guía de Big Nerd Ranch” por Aaron Hillegass, “Aprendizaje de programación de iPad” por Turner y Harrington y / o “” Desarrollo de aplicaciones para iOS 5 principiantes “por Wei-Meng Lee (luego tome el CS193P de Stanford en la universidad de iTunes)

sin embargo, retrocediendo un poco, ¿qué disfrutas haciendo y dónde están tus intereses? Si tu amor principal son las bases de datos, no recomiendo pasar mucho tiempo en la implementación avanzada de CSS y jQuery. A la inversa, si se encuentra gravitando ante el diseño de la interfaz de usuario, pasar algunas semanas o meses desarrollando una comprensión profunda de Django, Hadoop o MongoDB puede no ser lo mejor para usted. Hay una gran cantidad de habilidades comerciales que puede adquirir para convertirse en un candidato atractivo para nuevas empresas y adoptadores tempranos (y si dedica de 15 a 20 minutos a buscar a Quora de manera cuidadosa, debería ser más o menos capaz de descubrir qué son la mayoría de ellos). ), pero ese camino de aprendizaje y superación personal debe alinearse con lo que disfruta hacer y cómo desea desarrollarse profesionalmente.

¿Qué es lo que personalmente quieres construir? ¿De qué quieres ser parte?

Perdona la intrusión de un no técnico …

La habilidad más novedosa que un programador puede poseer es la capacidad de traducir su genio al lenguaje de los negocios. ¿Cómo puede tomar sus conceptos y habilidades de alto nivel y adaptarlos a las necesidades de su cliente / empleador / jefe?

¡La capacidad de contar la historia y compartir el potencial y no dejarse engañar para hablar en siglas, jerga y código!

¡Deposite su capacidad de vender y volará sin importar cuál sea el lenguaje de programación subyacente!

Javascript ha existido desde siempre, pero realmente está empezando a cobrar fuerza en los últimos años gracias a la desaparición de ActionScript, obviamente, antes de abordar Javascript, querrá ser competente en HTML básico y CSS como mínimo.

Como siempre le digo a la gente, si tienes la masa, ve y obtén una cuenta de los video tutoriales y entrenamiento en línea, de lo contrario, Youtube será tu nuevo mejor amigo, yo empezaría con los cursos de thenewboston allí.

Tener una buena idea sobre el desarrollo de Full-Stack. La pila completa incluye: interfaz de usuario, capa de aplicación, capa de base de datos, capa de SO que también incluye diseño, implementación (nube / independiente), automatización, svn / git, etc.

Profundice en una o dos de sus áreas de interés (por ejemplo, UI o DB). Diga: si eres un usuario de UI, mantente informado sobre las últimas tendencias y tecnologías en esta área.

Aprenda un OO, un Funcional y un lenguaje de scripting … No importa cuál … los fundamentos y conceptos importan

Nos especializamos en el seguimiento y la selección de candidatos, por lo que muchas empresas publican sus puestos de trabajo a través de nosotros y, por lo general, estos puestos de trabajo incluyen requisitos de habilidades. Recientemente, analizamos los datos para ver qué habilidades tienen la mayor demanda en trabajos relacionados con TI (en su mayoría, desarrollo de software).

Las principales conclusiones son que las herramientas antiguas y “no originales” están lejos de morir. Todavía hay una gran cantidad de Java y muchos requisitos de habilidades relacionadas con SQL por ahí. Las diferentes variaciones de las tecnologías web también son muy demandadas y, por supuesto, móviles.

Puede ver el desglose completo aquí: ¿Cuáles son las habilidades de TI más populares de hoy? – Contratar mejor

Big data es bueno, pero es un área muy peligrosa. Sólo es popular porque las empresas quieren usar esta información para ganar dinero. Una vez que se haya perfeccionado y una vez que haya más personas en el espacio, se volverá menos demandada. Es algo muy específico y puede pasar mucho tiempo aprendiéndolo para descubrir que tiene cada vez menos uso. Es solo el sabor del mes … Er pocos años.

Un buen conocimiento sobre las bases de datos NoSQL sería una buena apuesta. Personalmente, también recomiendo aprender sobre bases de datos de Graph una vez que haya dominado SQL y NoSQL.

Node.js es algo para pensar a medida que crece.

Pero realmente, asegúrate de tener una base sólida de codificación. Luego, simplemente aprenda sobre otras tecnologías e idiomas y aprenda por qué y cuándo los usaría. Es posible que se encuentre en una posición en la que no es el que está haciendo la codificación real … Pero como sabía la respuesta, usted es el que está en el asiento del conductor. ¿Tener sentido?

Siento que a todos les falta uno grande (las respuestas anteriores son en su mayoría excelentes). Y eso es Machine Learning / Big Data.

Hay un millón de empresas que tienen más datos de los que saben qué hacer con ellos. Aparte de las aplicaciones de inteligencia artificial, hay tendencias de búsqueda, adaptación a usuarios individuales, búsqueda y sugerencia inteligentes, clasificación y automatización de tareas. Se necesita un alto nivel de comprensión, pero echa un vistazo a los cursos gratuitos de Stanford, MIT, Udacity y Coursera. Aparte de eso, estoy de acuerdo con la mayoría de lo que se ha dicho. Y la respuesta realmente depende de lo que le interesa (desarrollo web vs aplicación vs software propietario, etc.)

El desarrollo móvil es fácil y dado.

Sin embargo, el desarrollo de aplicaciones de big data basado en matemáticas pesadas tiene y tendrá un gran vacío de talento durante varios años.

NoSQL sería bueno aprenderlo, pero primero aprende a manejar una automática con MySQL si no lo haces. 🙂

Tecnología / idiomas, diría yo.
a. Objective-C (para aplicaciones iOS y Mac), desarrollo de Android
segundo. Desarrollo de Windows Mobile (aún no está allí, pero pronto)
do. HTML5 / CSS3
re. NoSQL, jQuery
mi. RoR

Habilidades
a. UI / UX habilidades de diseño / sentido estético
segundo. Buenas habilidades analíticas y comprensión de los conceptos básicos (esto puede ayudarlo a aprender fácilmente cualquier idioma)

Según Indeed ( http://blog.indeed.com/2011/11/1… ), las habilidades de más rápido crecimiento en puestos de trabajo en 2011 fueron las siguientes:

  1. HTML5
  2. MongoDB
  3. iOS
  4. Androide
  5. Aplicación movil
  6. Marioneta
  7. Hadoop
  8. jQuery
  9. PaaS
  10. Medios de comunicación social

Desarrollo basado en framework. Desde mi época en la que seguimos usando un disquete hasta ahora, la gente dejará cualquier estilo de vida de “código desde cero”, y hoy en día la gente simplifica sus trabajos utilizando algunos marcos que son más fáciles, por ejemplo, el código de encendido, el arranque de Twitter, RoR, grails, jquery ui etc.

Aunque los salarios de TI no han cambiado mucho en estos dos años, algunas áreas están mostrando un buen crecimiento. A continuación, se detallan las habilidades y los salarios de la tecnología en los principales trabajos relacionados con software de computadora en los EE. UU. Son buenos para realizar una investigación salarial, por lo que usted sabe lo que vale al negociar un aumento de sueldo o cambiar de carrera.

1. Java / J2EE y las tecnologías relacionadas todavía están en demanda con los salarios más altos en promedio. C también es relevante, pero hay casi tantos programadores de C como programadores de Java. Salarios promedio: –Java: 90k ~ $ 100k –C / C ++: $ 90k –C # $ 85k

2. Programación en la nube de Apex Fácil de adoptar para desarrolladores familiarizados con Java o C #, Apex es el lenguaje de programación Salesforce.com que se ejecuta en la nube en un entorno de múltiples inquilinos. Esto es un poco de trabajo de programación de propietario, por lo que no estoy demasiado caliente en eso. El salario promedio de los profesionales de Apex es de alrededor de $ 95k.

3. Python y Ruby A pesar de toda la emoción en torno a Ruby on Rails, los profesionales de TI con habilidades en Python tienen un salario promedio de $ 90,000, un poco más alto que el de RoR. Python también subió un 7,1 por ciento con respecto al año pasado, mientras que RoR disminuyó un 0,6 por ciento. La cantidad de personas con experiencia en esos idiomas todavía es bastante baja, pero aprender a Python puede ser la mejor inversión en este momento. Salarios promedio: Python $ 90,208; Ruby on Rails $ 89,973.

4. Los desarrolladores de Windows Tech .NET tienen un salario bajo en comparación con los desarrolladores de Java / C. El salario promedio es de alrededor de $ 80k.

5. Perl y COBOL A pesar de la popularidad de los idiomas más nuevos, Perl sigue en demanda. Los desarrolladores de Perl en promedio reportaron salarios más altos. También todavía hay demanda para los desarrolladores con fondo COBOL. Salarios promedio: Korn Shell $ 96,886; Perl $ 94,210; Shell $ 88.918; COBOL $ 85,847.

6. Mac, Windows y Red Hat Salarios promedio: Red Hat $ 88,223; Microsoft Windows Server $ 76,915; Mac OS $ 74,199.

7. Salarios promedio de empleos especializados en sistemas operativos: Solaris $ 94,429; AIX $ 93,684; HP-UX $ 92,662; DOS $ 72,637.

8. Ingenieros de seguridad pagaron bien al arquitecto de seguridad $ 117,387; ingeniero de seguridad $ 95,146; analista de seguridad / arquitecto / ingeniero (combinado): $ 89,620; Analista de Seguridad $ 78,288.

9. Specialists for Networks Paid Well Especialista en WAN con salarios promedio $ 108,842; Diseño de red $ 90,378; Administrador de red $ 60,134; Ingeniero de Redes $ 70,681.

10. Habilidades de administración de datos La mayoría de la demanda Las habilidades de almacenamiento de datos son las más demandadas y ganan buen dinero. Data Warehouse $ 96,613; Sybase $ 92,855; Oráculo $ 90,914; DB2 $ 89,159; Servidor SQL $ 80,773; MySQL $ 79.629.

En pocas palabras, Java, Python, Apex, Windows encabeza la lista de habilidades de TI en demanda en 2011.

La capacidad de predecir lo que hará calor mañana.

Lo digo en serio.

Si solo estás estudiando lo que la gente piensa que es “caliente” ahora, siempre estarás detrás de la curva.

He hecho mi carrera preguntándome “cuál es el siguiente paso lógico” y estar allí listo y esperando cuando el mundo se puso al día.

Estos son algunos temas que son famosos en el último año:

1. Desarrollo de software
2. Desarrollo móvil
3. Desarrollo web
4. Seguridad de la información
5. Nube / SAAS
6. Gestión de la red
7. Gestión del servicio
8. virtualización
9. Extraer, transformar y cargar (ETL)
10. Inteligencia de Negocios (BI)