Tengo 23 años de experiencia como desarrollador, 18 años de experiencia en la gestión de desarrolladores, y tengo una maestría en ciencias de la computación. No quiero exceder la educación o vender menos. Sin embargo, quiero que comprenda los límites de lo que puede hacer con la educación adicional y sin ella.
Es popular en estos días que la gente diga que no es necesario tener una educación universitaria para ser desarrollador de software. Estoy de acuerdo, de hecho, con bastante firmeza, en que la industria ha cambiado en que la tecnología ha reducido la barrera de entrada para que alguien no necesite tener cuatro años de universidad simplemente para escribir código. Si todo lo que quiere hacer es escribir código, y eso está perfectamente bien, entonces debería considerar una alternativa más rápida, como ir a un Boot Camp de codificación. Alternativamente, es posible que desee ir a un Boot Camp de vez en cuando y continuar su educación por la noche.
Sin embargo, si desea hacer algo más que escribir código, le sugiero encarecidamente que considere una inversión no solo para sino hasta seis años de educación adicional.
- ¿Cómo se convierte un desarrollador de software en un consultor independiente?
- Actualmente estoy trabajando como desarrollador de software y quiero cambiar a pruebas, he comenzado a aprender automatización. ¿Es correcto?
- ¿Qué es la artesanía de software?
- ¿Cuáles son las recomendaciones para contratar desarrollador y diseñador de sitios web?
- ¿Qué sitios web se recomiendan para obtener trabajo independiente en el desarrollo de software, específicamente para desarrolladores de iOS?
La confusión es que el software es el único campo de ingeniería en el que las personas educadas realizan la construcción y el diseño, pero eso está cambiando rápidamente a medida que una mejor tecnología está democratizando la fase de construcción.
Es importante comprender el concepto del “ciclo de vida del desarrollo de software”. Al igual que con la ingeniería de cualquier otro tipo de producto, tenemos que desarrollar requisitos para el software, un diseño para el software, construirlo, probarlo e implementarlo. Las dos fases iniciales del proyecto, la de los requisitos y el diseño, son las más delicadas y las fases en las que es muy costoso cometer un error.
No necesita un MBA para crear una hoja de cálculo y no necesita un título en Ingeniería Civil para operar una retroexcavadora. También es cierto que no necesita ser un informático para crear un juego de Android o un formulario web con jQuery. Sin embargo, si tuviera una opción, ¿preferiría ser un empleado de archivo o el MBA?
Personalmente, he diseñado muchos de los grandes sistemas de software financiero y de seguridad en los Estados Unidos. Tenga la seguridad de que los ocho años que pasé en la universidad y los 33 años de estudio continuo me resultaron esenciales al desarrollar los requisitos y el diseño de estos sistemas.
Los ejemplos de donde la educación me resultó importante son demasiado numerosos para mencionarlos, pero creo que un par de ellos pueden ser suficientes para convencerte. Todos estos ejemplos son de la semana pasada.
(1) Contratación . Recientemente entrevisté a un candidato que afirmó haber escrito una tesis de maestría sobre un tema relacionado con las comunicaciones inalámbricas, pero no pudo respaldar las afirmaciones en su currículum. Me especializo en software, pero sabía lo suficiente como para hablar con el hombre sobre su trabajo, que luego admitió que fue rechazado por la facultad. Salvé a mi empresa de un error costoso.
(2) Diseño . Recientemente tuvimos un equipo de desarrollo que se liberó antes de lo previsto. Teníamos varios proyectos alineados, pero todos los desarrolladores eran jóvenes y estaban en otra ubicación, por lo que necesitábamos producir especificaciones de diseño para que pudieran comenzar. No hacerlo le habría costado a mi empresa varios miles de dólares por día simplemente porque teníamos a los desarrolladores infrautilizados. Pude producir una especificación de diseño de 20 páginas con algoritmos, un esquema de base de datos complejo y todos los demás elementos de diseño apropiados basados en una conversación en el pasillo con mi gerente. Lo hice en 10 horas.
(3) Implementación . Tuve un grupo de ingenieros que lucharon durante todo un día con problemas para administrar archivos con un complejo sistema de servicio de Windows multiproceso. Sin dudarlo un momento, pude darles un paso a través de la teoría del sistema operativo multiprocesamiento, la gestión de subprocesos, el almacenamiento en caché y la selección de opciones apropiadas para la transmisión de E / S de archivos.