¿Qué habilidades encuentran los programadores más importantes que la programación?

Más que escribir código elegante, un programador tiene el rol de Arquitecto y Oracle. Piensa en la matriz 😛

Para la mayoría del software de la vida real, el cambio será inevitable. Siempre habrá características que aparecerán en el futuro. Por lo tanto, debe ponerse un sombrero como arquitecto y analizar el problema en cuestión, y también diseñar un sistema que brinde flexibilidad para futuros cambios. Un software bien diseñado se puede mantener más fácilmente. Podrá admitir nuevas funciones sin tener que introducir hacks o soluciones alternativas. Hay ventajas y desventajas en todo diseño, ya sea el costo, la complejidad, la eficiencia y la capacidad de adaptarse al cambio. Por lo tanto, pensar en múltiples formas de solucionar el mismo problema es fundamental.

Un ejemplo que puedo recordar es pensar en el cableado eléctrico de su casa. Observe el diseño de cómo funciona una lámpara de mesa junto con una toma de corriente. ¿No sería horrible si tuviera que cambiar la bombilla de luz que se vio obligado a cambiar el cableado de la toma de corriente? O si desea cambiar el interruptor en la pared que controla el tomacorriente, tuvo que desconectar la lámpara. Puede parecer una idea intuitiva, pero con mayor frecuencia los programas se escriben como si fueran un gran paquete de cables interconectados. Un ejercicio que puede realizar la próxima vez que programe es distinguir varios módulos en su código. Mire cómo están ‘conectados’, así que puede desacoplarlos, adivinar cuáles son los más propensos a cambiarlos y desacoplarlos.

Más allá de las habilidades de codificación, sinceramente, la capacidad de comunicarse tanto oralmente como por escrito. A lo largo de los años, descubrí que la capacidad de comunicarse efectivamente en formas tradicionales es una habilidad rara. Muchos programadores pueden ser grandes programadores, pero pueden ser malos oradores o escritores.

Esto se convierte en un detrimento cuando necesita comunicar un problema, concepto o tener una conversación con personas no técnicas. No quieren las minucias de su problema de algoritmo. Quieren una explicación concisa y planean resolverla.

La capacidad de entender claramente, escribir documentos comprensibles, incluido el correo electrónico y la documentación técnica que se pueden entender fuera del ámbito tecnológico, es una habilidad que lo llevará lejos. Sin ella, es posible que nunca pueda salir de los roles de desarrollo.

Aunque solo soy un programador incipiente con experiencia mínima; Creo que mi aporte puede ser relevante para aquellos que buscan ingresar a la programación por primera vez.

1. Mente abierta
Suponiendo que no tenga experiencia en alguna área de la informática / programación, deberá abordarlo con una mente abierta. Leer el código por primera vez puede ser imponente y aterrador. Al ingresar a la programación, debe darse cuenta de que, como la mayoría de las otras habilidades, aprender a codificar bien viene con el tiempo. Mantenga una mente abierta, pruebe diferentes proyectos, no se queme tratando de aprender los matices de un idioma desde el principio.

2. Persistencia
La única forma de mejorar su programación es practicar. Es mucho mejor reservar una o dos horas al día y trabajar con conceptos simples de lo que trataría de absorber todo en sesiones de 5 horas los fines de semana. Avance incesante.

3. Imaginación / Creatividad
En mi opinión, poder escribir un programa efectivo y eficiente es solo un aspecto de la programación. Antes de comenzar a escribir un código bueno y eficiente, comencé a ver todas las aplicaciones que podía tener. En el trabajo, en casa, en la escuela, las posibilidades son literalmente infinitas. Ver los impactos tangibles de lo que está aprendiendo puede tener en su vida es uno de los mejores motivadores para aprender y mejorar.

Ciertamente, hay muchas más habilidades que benefician a los programadores, y estoy seguro de que las personas más experimentadas pueden arrojar luz sobre ellas. Sin embargo, creo que estos son algunos aspectos importantes a tener en cuenta para aquellos que recién comienzan a programar.

1. Búsqueda eficiente en Google.
2. Dónde encontrar qué (en internet)
3. Habilidades de edición de código (para prevenir el plagio) 🙂
4. Algoritmo y lógica
5. Habilidades para comprender exactamente cuáles son los requisitos del cliente.

La comunicación es enorme en el campo. Muchas veces lo que un cliente dice que quiere y lo que realmente quiere son dos cosas diferentes. Ser capaz de aclarar esto al principio es una gran habilidad. El trabajo en equipo también es muy importante para un programador. Como programador, a menudo trabajará con otras personas y las personas con las que trabaja pueden cambiar regularmente. Debe poder trabajar bien con todos ellos. Otra habilidad que es muy importante es el manejo del estrés. Los plazos de los proyectos pueden generar una gran cantidad de estrés y algunas noches muy tarde. Es vital que pueda mantenerse enfocado y trabajar en estas situaciones de alta presión.

Comprender lo que necesita ser programado.

Cómo convencer a otros por qué su solución es la mejor.

Junto con las muchas situaciones que pueden acompañar esto: no tienes poder, tienes el poder, eres el jefe, eres el compañero de trabajo, eres el miembro menor del equipo, las personas mayores no están de acuerdo contigo, tu solución es impopular , los miembros de tu equipo son estrellas de rock, los miembros de tu equipo son idiotas, etc., etc., etc.

Además, debes hacerlo sin ofender a las personas (demasiado).

Comunicarse (con humanos).

He estado programando durante más de la mitad de mi vida. Hace apenas unas semanas que estaba hablando con un amigo y un colega, y él me reveló este hecho importante.

Conocimiento del dominio.

La habilidad que todo programador quiere aprender es …
Cómo sentarse en una silla por un día completo.

Obteniendo el algoritmo eficiente.

Encontrar personas que valen su tiempo y emoción, y dejarlos entrar en su vida. Entonces escuchándolos.

Dijiste que no solo estabas buscando habilidades laborales …