¿Cuáles son las cosas que un desarrollador de software debe saber aparte de los lenguajes de programación?

  1. Ser un buen jugador de equipo: cuando trabajas como ingeniero de software profesional, TIENES QUE trabajar en equipo. Tienes que ser un buen jugador de equipo. La mayoría de las veces, no trabajarás solo. Comprenderá lo importante que es comunicarse bien con sus compañeros de equipo. El software en la era moderna son bestias complejas y son desarrollados por equipos.
  2. Sistemas de control de versiones, IDEs y otras herramientas para aumentar la productividad: está relacionado con el punto anterior. Disfruta de la experiencia de obtener un primer conflicto de fusión. Es asombroso. Es muy importante aprender a usar herramientas como Git, Mercurial, etc. Del mismo modo, un buen IDE puede aumentar enormemente su productividad. (O para los fanáticos incondicionales de Vim / Emacs: la instalación de los complementos correctos podría funcionar, pero no lo he probado).
  3. El diseño y la arquitectura son importantes: conocer algunos lenguajes de programación no necesariamente lo convierte en un ingeniero de software. También es importante aprender y comprender cómo se construyen los sistemas grandes y los fundamentos detrás de las decisiones y fallas de diseño.
  4. Dominio: si te unes a alguna organización, estarás resolviendo problemas en su dominio comercial. El conocimiento del dominio es extremadamente importante. No solo eso: imagina leer el código de algún proyecto compilador. Si no conoce los términos técnicos utilizados en ese dominio, no tendrá ni idea. El lenguaje de programación es solo una herramienta para resolver problemas.
  5. Más reciente y popular no significa necesariamente que deba usarse: los sistemas en la empresa funcionan durante años y es importante evaluar los riesgos asociados con la nueva tecnología. Del mismo modo, un idioma es antiguo no necesariamente lo hace irrelevante. Considere Java, por ejemplo: tiene décadas de antigüedad, pero las herramientas, los marcos, las bibliotecas y la plataforma JVM son sólidos como una roca. No pienses que deberías escribir todo desde cero. No tiene sentido
  6. Ajustar el rendimiento es complicado: ya no se trata solo de cambiar / agregar hardware, como agregar GPU puede no resolver sus problemas mágicamente. También recuerda la ley de Amdahl . Los cuellos de botella pueden ser diferentes: puede ser memoria, red, discos / bases de datos o, a veces, las pausas del recolector de basura pueden ser largas. Debe medir, medir, medir muchas cosas y comparar con algunos puntos de referencia antes de saltar para optimizar alguna parte de su aplicación. Debe conocer bien los casos de uso que necesitan optimización. No vale la pena optimizar cada pieza de su aplicación. No es tan simple.
  7. Conocer un poco acerca de los detalles de bajo nivel (memoria, cachés, sistema operativo, redes) no hace daño: no hace daño si conoce los cachés y la jerarquía de memoria, especialmente en el contexto de los procesadores multinúcleo. Lectura interesante: http: //futuretech.blinkenlights….
  8. Los puntos flotantes dan miedo: lo son. A veces notarás una pérdida de precisión y, en algunos dominios, es INACEPTABLE. Si trabaja en dicho dominio, a menudo se le aconsejará que no use float y double.

Gestión del tiempo

Dejando a un lado la metodología ágil o en cascada, tendrá que informar cuánto tiempo tomará algo. Se le asignarán diferentes funciones para implementar. Necesitas manejar esto

Hablar en público

una u otra vez, tendrá que explicar algo a su equipo, ya sea algo que haya implementado o un problema que haya tenido. Recomiendo acostumbrarse a llevar a grupos grandes.

Empatía y habilidades de las personas.

a menos que esté escribiendo algún tipo de MVP de lanzamiento para una carga de VC o una prueba de concepto para una característica en particular, realmente no estará trabajando solo. Estarás en algún tipo de equipo que tiene diferentes niveles de habilidad y niveles de comunicación. Lo que debe hacer es comunicarse de manera efectiva y sin causar más problemas. Ayuda cuando se le solicite, pida ayuda cuando esté atascado. Si estás en un lugar que te dice que no hagas esto; salir.

La confianza para rechazar

Por último, habrá ocasiones en que alguien -desarrollador sénior, gerente, cliente- esperará de usted algo que no es razonable hacer en el marco de tiempo, o casi imposible de hacer de la manera en que lo desean. Necesita confianza y suficientes habilidades de comunicación para decir “no, no podemos”.

Estaba esperando una de esas preguntas …

Actualmente estoy trabajando como desarrollador de software en IBM. con mi experiencia personal, siento que la programación es el 25 por ciento de lo que haces en la industria … El 75 por ciento restante continúa así …

  1. GITHUB -> asegúrese de saber todo al respecto.
  2. Travis construye
  3. Cómo lidiar con la política del equipo (como los boletos se asignarán a uno y los hará otro con crédito que no va al bolsillo del que trabajó para él)
  4. Si está en el perfil CLOUD -> Docker y kubernetes son obligatorios.
  5. Finalmente, nunca se adhiera a un lenguaje de programación en particular.

Algo que nadie más ha mencionado: manipulación simple de imágenes.

Si un proyecto tiene una interfaz de usuario y un cliente, y la mayoría de los proyectos lo tienen, entonces tiene una persona de negocios que quiere su logotipo en la pantalla, botones personalizados y si son nuevos en el juego, gifs animados de cebras danzantes en lugar de enlaces de texto .

Pueden o no proporcionar estos activos de manera oportuna. Si lo hacen, siempre tendrán la resolución incorrecta, la relación de aspecto incorrecta o, en retrospectiva, demasiado oscura. Nunca tienen fondos transparentes, por lo que se verían estúpidos de todos modos.

Muchos recursos gráficos tienen que ser exactamente correctos para proporcionar una interfaz de usuario “aparentemente”. La mayoría de los clientes no saben cómo hacer esto.

Aprender a recortar y cambiar el tamaño de las imágenes, hacer transparentes los fondos y crear sus propias imágenes de ejemplo es más rápido que esperar a que los clientes lo hagan bien. Una habilidad muy útil.

Hay varias otras habilidades que un desarrollador debería tener que serán útiles. La escritura táctil te llevará muy lejos, ya que con un editor de texto especial como Vim, Emacs también te ayudará a desarrollarte muy rápido. Además, tendría que aprender tecnologías que no entran en la categoría de lenguajes de programación como git, trabajos administrativos, linux, etc.

More Interesting

Al contratar, ¿cuáles son algunas técnicas creativas para evaluar a los desarrolladores de software?

¿Todos los desarrolladores de software necesitan usar o comprender algoritmos?

¿Por qué Blender es mucho mejor que otro software de código abierto?

¿Cuál es un buen plan de un año para convertirse en desarrollador de software?

¿Cuál es la diferencia entre desarrollador de software y programador analista?

¿Qué calificaciones necesita un desarrollador de iOS?

Para un desarrollador de software establecido, ¿hay algún punto en ir a la universidad?

¿Hay alguna computadora portátil específica que sea mejor para el desarrollo de software?

¿Cuál es la diferencia entre el desarrollador de software y el probador en términos de salario, presión laboral, promoción y demanda de trabajo?

Cómo obtener experiencia en sistemas distribuidos si no puedo conseguir un trabajo cerca de este dominio

¿Qué hace que convertirse en desarrollador de software sea tan difícil?

Cómo encontrar un equipo para hacer un MMORPG de PC por un porcentaje de ganancias en lugar de un salario

¿Por qué a algunos desarrolladores de software les gusta abrir muchas ventanas de terminal y pretender ser un geek en la oficina?

¿Dónde se almacenarían los lenguajes de programación en el cerebro de un desarrollador?

¿Cuáles son algunos de los objetivos típicos que un programador / desarrollador de software de nivel superior esperaría trabajar para su revisión de desempeño?