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).
- ¿Necesitamos hacer un BCA para la ingeniería de software?
- A los 35 años, tengo más de 12 años de experiencia en desarrollo y un buen trabajo, pero sin progresión. Soy el único ganador de pan, e inteligente, pero no soy una entrevista aguda. ¿Qué debería hacer después?
- ¿Qué tan fácil es hacer una transferencia interna a otro equipo en una gran compañía tecnológica, y cómo se comparan compañías como Microsoft, Google, Facebook y Yahoo en términos de facilidad de transferencia interna?
- Cómo hacer una transición en la carrera del campo de la ingeniería al campo del software
- ¿En qué debería centrarme para obtener un nuevo trabajo como ingeniero de software?
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.
- 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.
- Montar su propia computadora y leer extensamente sobre las diferencias entre CPU o tarjetas gráficas puede ayudar con el pensamiento fundamental.
- 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.