¿Es cierto que todos pueden convertirse en desarrolladores de software si se les da suficiente trabajo?

Todo el mundo puede conseguir un trabajo como desarrollador de software independientemente de sus antecedentes (estudios secundarios y / o universitarios) y experiencia (trabajos anteriores y opciones de carrera).

Sin embargo, hay muchos factores importantes que construirían el contexto alrededor de esa declaración.

En primer lugar, la demanda de desarrolladores es masiva. Si descomponemos el término “desarrollador de software”, podemos extenderlo a desarrolladores de aplicaciones web, desarrolladores de software integrados, desarrolladores móviles y similares. Esto deja mucho espacio para diferentes tipos de trabajos, sin mencionar otros que requieren un fondo de desarrollo o experiencia (DevOps, QA, scripting de shell también pueden requerir programación diaria).

La Comisión Europea ha declarado formalmente que ” Europa podría enfrentar una escasez de hasta 900,000 trabajadores calificados en TIC para 2020 “.

Ahora, la advertencia está en la definición de “experto” . El número puede ser 10 veces mayor, o más, para diferentes especialidades de TI y rangos de experiencia, incluidos los trabajos de nivel inicial y junior.

Segundo, los requisitos de desarrollo de software varían dramáticamente entre organizaciones. Construir software para un cohete es una cosa. Crear software empresarial no es exactamente lo mismo. Mantener un producto de 40 años con un conjunto de instrucciones que son algo predecibles o aprendibles puede ser factible.

En pocas palabras, se supone que todas esas personas deben escribir código y lógica de programa. Pero la complejidad y la responsabilidad adicional de un rol son diferentes.

Lo mismo ocurre con el tipo de software o una organización . Una startup innovadora en alta tecnología requiere una sólida formación y experiencia. Un equipo de mil desarrolladores en una organización grande a menudo necesita desarrolladores que realmente no necesitan pensar tanto.

Entonces también está el factor de complejidad del trabajo.

Algunos roles simplemente requieren esa perspectiva global del panorama técnico . La formación en informática es absolutamente crítica para todos los desarrolladores. Pero no es imposible. Se trata de la repetición, el aprendizaje experimental, la aplicación de esa habilidad una y otra vez en diferentes campos hasta que aprendas lo básico.

Si bien aprecio mi propia experiencia escribiendo código desde 1999, la mayoría del trabajo de programación no es ciencia espacial. No comprender el contexto o aplicar las mejores prácticas conduce a deudas técnicas, problemas de rendimiento, posibles problemas de seguridad.

Además, hay líderes técnicos y arquitectos de software que pueden garantizar que la arquitectura se haya diseñado de la manera más infalible posible, evitando algunos de esos problemas. Recuerda:

  • No todos los médicos son cirujanos cardíacos.
  • No todos los especialistas en construcción son arquitectos.
  • No todos los músicos se convierten en virtuosos.

Tienes el taladro.

  1. Estar interesado desde una edad temprana en las matemáticas, resolver acertijos y problemas similares, y abordar desafíos lógicos pueden mejorar sus posibilidades de convertirse en un gran desarrollador de software.
  2. Montar su propia computadora y leer extensamente sobre las diferencias entre CPU o tarjetas gráficas puede ayudar con el pensamiento fundamental.
  3. Participar en los desafíos de programación de la escuela y la universidad (incluida la programación competitiva) lo ayuda a configurar la mentalidad de un desarrollador experto.

De lo contrario, el resto se trata de estudiar a fondo los conceptos detrás del proceso de programación en sí . Pensando en las diferentes capas subyacentes. Averiguar qué parte del código afectará el uso de la CPU o acaparará las operaciones de E / S. Averiguar qué permutaciones de diferentes configuraciones de hardware y software interactuarían con su aplicación.

Existen patrones específicos que los desarrolladores profesionales usan como hojas de referencia para evaluar la complejidad o planificar la arquitectura del software. De acuerdo, necesita la experiencia en el lugar para enumerar todas las opciones y elegir la mejor para el negocio.

Incluso trabajos como el diseño gráfico y la escritura creativa se pueden dividir en estructura, reglas y mejores prácticas. Ambos requieren toneladas de experiencia práctica, pero uno se acostumbra a eso en cierto momento. La falta de un ojo para los detalles o la gramática básica evitará que seas grandioso, aunque aún puedes practicar en un nivel más bajo, mejorando continuamente con el tiempo.

Todos estamos de acuerdo en que creer en uno mismo no es suficiente. Sin embargo, la mejor pregunta podría ser “¿Puedo convertirme en un gran desarrollador de software si trabajo lo suficiente?”. No creo que ni siquiera el trabajo duro y la dedicación sean suficientes. Sin duda, el trabajo duro vale la pena y, a menudo, es más que aptitud. Prefiero tener a alguien que trabaje un poco más duro que alguien que sea un poco más inteligente.

Sin embargo, no todos son físicamente capaces de tocar la guitarra o el piano, sin importar cuánto trabajen. La vida me ha enseñado que de la misma manera que cada uno de nosotros nace con un límite físico máximo, nosotros nacemos con un límite mental. Hay aquellos que tienen un coeficiente intelectual que simplemente nunca alcanzaré, sin importar cuánto lo desee o cuán duro trabaje. Del mismo modo, nunca seré un Bobby Fisher, nació con una habilidad que nunca tendré.

La ingeniería de software requiere una cierta aptitud mental. No es un valor duro, fijo, pero el límite es mucho mayor que para muchas otras profesiones. Algunas personas simplemente no están conectadas de esa manera. Sin embargo, para mejorar sus habilidades de codificación hasta niveles competentes, puede ir a una buena escuela de programación como la escuela holberton y aprender programación. Todo lo mejor.

Yo diría que sí, dado el trabajo duro suficiente, creo que cualquiera puede convertirse en desarrollador de software. El desarrollo de SW es ​​una habilidad que se puede aprender. Dicho esto, no creo que todos deberían convertirse en desarrolladores de software.

Ser un desarrollador de software requiere períodos de intensa concentración y pensamiento abstracto. Deberá poder pensar lógicamente como una computadora, asegurándose de incluir todas las instrucciones aplicables. Es posible pasar años perfeccionando sus habilidades y aún así tener más que aprender.

No me malinterpretes. Tengo fe en que puedes ser un desarrollador de SW, y puedes convertirte en un gran desarrollador si te esfuerzas lo suficiente. Solo recomiendo no pasar por eso si serás miserable. Siéntase libre de comenzar de a poco, y si le gusta, ¡adelante! Por mi parte, estoy feliz de decir que no querría ningún otro trabajo.

Respuesta simple: sí, todos pueden convertirse en desarrolladores de software. Pero más importante: no todos pueden convertirse en un BUEN desarrollador de software. Las características distintivas de un buen desarrollador de software son la persistencia, la intuición, el pensamiento lógico, la autoeducación continua y el refinamiento de la técnica. Si crees que puedes convertirte en un buen desarrollador simplemente tomando algunas clases y luego descansando en tus laureles, estás equivocado. Para un buen desarrollador, la codificación es una pasión.

¿Es cierto que todos pueden convertirse en desarrolladores de software si se les da suficiente trabajo?

Creo que, dado un nivel moderado de inteligencia, sí, creo que casi cualquier persona puede ser desarrollador de software.

Desarrollar software simple realmente no es tan difícil, pero por supuesto, hay diferentes niveles de complejidad y diferentes niveles de habilidad de los desarrolladores.

A lo largo de mi carrera, he trabajado con todos los niveles de habilidades, desde sangrienta horrible hasta sobresaliente.

Hubo algunas personas que lo tomaron mejor que otras, y no parecía estar relacionado con la inteligencia, se trataba mucho más de la actitud …

Trabajé con un programador que estaba demasiado confiado, y otro que no tenía la confianza suficiente . Ambos fueron malos programadores.

La actitud es realmente importante

Prepárate para aprender durante mucho tiempo , el tema es amplio y profundo, no esperes leer un libro y ser un experto. Toma años

Tenga paciencia , tomará mucho tiempo, al principio, chupará una pelota de béisbol a través de una manguera, no se preocupe, todos lo hacen, pero mejorará. Es fácil sentirse frustrado y pensar que no eres lo suficientemente bueno.

Trabaja duro Esto parece obvio, pero hay muchas personas que buscan atajos. Confía en mí, no hay ninguno .

No exactamente. La programación es un análisis situacional, por lo que si no puede pensar analíticamente, no puede “aprender” a hacerlo, como tampoco puede aprender a ser más alto. El pensamiento analítico no se aprende, es genético.

¿Alguien que pueda pensar analíticamente aprende el desarrollo de software? Más o menos, simplemente hace en código lo que hace en la vida, analiza el problema y codifica la solución, pero en un lenguaje de programación. (Alguien que piensa analíticamente siempre piensa analíticamente, no es algo que “enciendes” para programar).

Sin embargo, la mayoría de la gente no piensa analíticamente, es anti-supervivencia. (También lo es la diabetes tipo 1, pero algunas personas aún nacen con ella todos los años).

En cierto sentido, pero es difícil tener éxito con el trabajo duro solo.

Amazon ha estado utilizando un proceso de revisión conocido como “clasificación de pila” o “clasificación y extracción” en el que los empleados se califican entre sí.

La idea es que los empleados con las calificaciones más bajas serán eliminados continuamente, creando una compañía de solo empleados altamente productivos.

En Amazon, el trabajo duro por sí solo no puede aportar mucho valor. En el desarrollo de software, un buen desarrollador puede ser 7 veces más productivo que un trabajador mediocre.

No.

Si bien esto puede parecer extraño al principio, creo que, a menos que una persona tenga afinidad por los idiomas, tendrá dificultades para aprender a programar. Los lenguajes de programación son otra forma de comunicación que los humanos han inventado para instruir a las máquinas complejas a realizar ciertas tareas, por lo que estos lenguajes realmente no son tan diferentes de los lenguajes que los humanos usan para comunicarse entre sí.

Por supuesto, hay más factores que contribuyen a la capacidad de aprender, y esto ciertamente no es absoluto, pero creo que mi tesis tiene algunos fundamentos en la realidad.

Aquí está la cosa: siento que la respuesta es sí, y que es una cosa fácil y cualquiera debería poder hacerlo.

No creo que sea cierto en absoluto, es fácil si eres el tipo de persona que naturalmente se siente atraída por las computadoras.

Espero que a la mayoría de las personas que realmente quieran y encuentren computadoras fascinantes les vaya bien.

Espero que las personas que acaban de ser despedidas en la mina y necesiten un trabajo de reemplazo no tengan, en promedio, casi esa tasa de éxito.

More Interesting

Soy un ingeniero de software que trabaja para una empresa multinacional líder. Quiero hacer mi carrera en el campo de análisis de datos y Big Data. ¿Alguien puede sugerirme cómo puedo ingresar a esta secuencia? En mi empresa actual no estoy teniendo esa oportunidad.

¿Es posible pasar de no tener conocimientos de software a un trabajo en Silicon Valley en 4 años, o la duración de una licenciatura? ¡Gracias!

¿Puedo convertirme en un buen desarrollador de software como ingeniero eléctrico?

¿Debo dejar mi trabajo actual si creo que no estoy aprendiendo?

Cómo conseguir un trabajo en la industria del software

Una vez que me gradúe de la universidad, ¿debería realizar una pasantía o un puesto de nivel de entrada en una empresa de software?

¿Cómo convertirse en un experto en escribir casos de prueba para pruebas de software? ¿Cuáles son las propiedades fundamentales de un buen caso de prueba?

¿Ser un ingeniero de pruebas de software es un buen trabajo? ¿Hay algún buen futuro y ventajas de pago?

¿Cuál tiene bueno como carrera, crecimiento, salario a largo plazo? (1) Ingeniero de pruebas de selenio-probador de automatización O (2) ¿Probador interno de dataware / probador ETL?

¿Vale la pena cambiar una carrera de programador de software con más de 6 años de experiencia a Business Analytics?

¿Qué calificaciones esperarías de un estudiante de CS que quiere ser pasante en ingeniería de software?

Tengo experiencia laboral en Siebel CRM. ¿Qué software básico debo hacer para mejorar mis habilidades de software?

Soy un ingeniero de software. ¿Cómo puedo convertirme en un experto para obtener buenas ganancias?

He sido probador manual todo el tiempo durante 10 años. Quiero pasar al desarrollo. ¿Dónde empiezo?

¿Qué debería hacer un nuevo graduado con un título de CS que quiere los mejores trabajos?