Estoy a punto de terminar mi carrera en ingeniería de sistemas y nunca he construido un software funcional, ¿qué puedo hacer?

Reescribe todo en tu escritorio comenzando con las cosas más simples primero. Por ejemplo, una lista de tareas o una aplicación de calendario.

El enfoque que más me preocupa cuando estoy aprendiendo un idioma es comenzar con un código de muestra algo similar a lo que quiero hacer y una buena referencia sobre el idioma. Luego, realice modificaciones en el código para transformar la aplicación en lo que desea. Luego agregue funcionalidad desde cero. Haga que funcione como una roca sólida, luego comience en la próxima aplicación. Tan pronto como te sientas cómodo, comienza a escribir desde cero. En realidad, mantendrá una biblioteca de fragmentos de código que reutilizará con mucha frecuencia. Sin embargo, escribir desde cero te obliga a aprender algunos aspectos del idioma de una manera que no se puede enseñar por ningún otro medio.

Una vez que te sientas cómodo en un idioma, mencionaste C #, aprende otro. Si va a ser un desarrollador, también quiere aprender Python, alguna forma de Basic moderno, Gambas es excelente si tiene una caja de Linux, si no .net VB también funciona. Conocer algo de Java es una buena idea. Aprender todo el idioma no tanto. Sin embargo, los programadores de Java son generalmente los puestos de desarrolladores mejor pagados que existen. Aprender algunos idiomas web tampoco es una mala idea. PHP es probablemente el mejor. Javascript imprescindible y conceptos básicos de HTML y XML. Una vez que conoces un idioma, aprender otros es mucho más fácil. Un bucle for es un bucle for. La sintaxis y las capacidades varían un poco entre los idiomas, pero el concepto básico es el mismo.

SQL es un deber. Aprenda ANSI SQL primero. MySQL es gratuito, funciona con todo y es un excelente sistema RDBMS. También es bastante compatible con ANSI SQL. Póngase cómodo al menos con MySQL. Lo verás una y otra vez. Si conoce MySQL, entonces usar MS SQL, Sybase y otros no será un gran desafío. Entonces aprenda PL SQL. No estoy seguro de si Oracle todavía hace esto, pero solía poder obtener ediciones de desarrollador gratuitas en Linux para Oracle, posiblemente en otras plataformas. Descárgalo y aprende PL SQL. Está a años luz de otros formularios SQL y probablemente el sistema RDBMS más común que encontrará en las compañías Fortune 500 y las grandes compañías.

Una vez que te sientas cómodo en estos idiomas básicos. Escriba el código para cualquiera que lo permita. Esto te obligará a estirar tus habilidades y hacer cosas que nunca habías considerado aprender a hacer. Los proyectos de código abierto (OSS) son una excelente manera de ganar experiencia en la industria, aprender y contribuir de nuevo. También es muy agradable en su currículum vitae y entrevista si la compañía en la que está entrevistando está utilizando algún software al que contribuyó con código.

No hay sustituto para la codificación si desea aprender a programar. Los cursos son una broma. Le enseñan algunos conceptos de alto nivel y, a menudo, no enseñan muchos malos hábitos en el proceso. Las certificaciones son aún peores. Especialmente certificaciones de Microsoft. No sustituye la experiencia, y como programador, todo lo que tiene que hacer es sentarse y decidir escribir un programa que haga XYZ para aprender a codificar. Para escribir ese programa, inicialmente pasarás mucho tiempo revisando textos, libros, ejemplos de código y seleccionando los cerebros de otros desarrolladores.

ESTO ES CRÍTICO ENTIENDE, repito ENTENDER por qué un código funciona de la manera en que lo hace. He visto a algunas personas tratar de salir del paso como desarrolladores usando el enfoque del libro de hechizos y no fue bonito. Cuando digo enfoque de libro de hechizos, quiero decir que memorizan que un fragmento de código hace x, y aplican religiosamente ese fragmento de código a todo lo que está cerca de x sin entender cómo funciona ese código. En el mejor de los casos, puedes sobrevivir escribiendo COBOL o RPG haciendo eso. No en idiomas reales. Si comprende el por qué, el código se sugerirá a sí mismo. Si no lo hace, su dependiente y necesitado y sus compañeros codificadores pronto se cansarán de escribir sus programas para usted.

Aún mejor si comprende lo que están haciendo los códigos de operación de bytecode o asm. Todos los compiladores tienen fallas, errores y secciones mal escritas. Puede ser más fácil en el 3GL hacer algo de una manera, pero el código de bytes ejecutable o ejecutado puede ser extremadamente ineficiente o incluso romperse. Aprende primero el nivel de 3GL y luego, a medida que puedas aprender cómo funcionan los compiladores que utilizas. Cuanto más sepa sobre lo que sucede después de pulsar compilar o ejecutar, mejor software escribirá.

Si su maestro no le pide proyectos funcionales para la tarea, puede ser difícil pero no imposible aprender a crear un buen software completo. No sé exactamente qué tipo de software le interesa, pero le sugiero que comience creando sus propios proyectos a partir de su propia experiencia.

Era igual en la universidad, aprendí solo las cosas básicas en C y Visual Studio (Fox Pro) en una de mis asignaturas, pero obtuve tareas que me ayudaron.

Por experiencia, recuerdo haber ido al dentista y la larga espera la dificultad para obtener mi registro clínico (estaba en papel) y el dolor de tener una cita en el libro que tenían los médicos (nuevamente en papel).

Entonces, para uno de mis proyectos, imaginé una solución para todo eso creando un sistema muy simple pero eficiente para optimizar esos procesos.

Comencé con el análisis cuáles fueron los pasos que observé, las dificultades y los posibles resultados. luego comenzando con una pieza de software para ello.

Puede hacer lo mismo con una empresa local y crear un software que resuelva uno de sus problemas y comenzar desde allí.
Una vez más, no sé qué idiomas conoces y podría estar sesgado, pero recomiendo el desarrollo web para aprender porque es más fácil obtener resultados rápidamente, solo programa las necesidades del negocio y deja que el navegador web se preocupe por la pantalla.

Recomiendo usar algo fácil como PHP para programar MysQL para almacenar los datos y HTML / Javascript / CSS para la interfaz.

Puedes comenzar instalando Xampp e ir desde allí es muy fácil si eres lo suficientemente apasionado.

Así es como aprendí y luego hago una práctica cuando estés listo, te enseñarán el mundo corporativo y la importancia de los negocios, que cómo empecé es más fácil una vez que sabes todo esto.

Creo que muchos recién graduados se sienten como tú, sin saber si tienen el conjunto de habilidades y experiencia requeridas.

Permítanme calmar esa incertidumbre: es casi seguro que no tienen los conocimientos necesarios … Para hacerlo solo.

Pero tienes la comprensión básica de cómo encajan las piezas, solo necesitas a alguien que te muestre cómo se hace en el mundo real.

Encuentre un trabajo en una empresa mediana a grande, donde formará parte de un equipo. Ellos (o deberían), lo guiarán, corregirán sus errores, le dirán qué hacer (si no cómo) y así sucesivamente. Es en su propio interés mostrarle las cuerdas, convertirlo en un verdadero contribuyente a los proyectos.

Solo asegúrate de que haya personas a tu alrededor que sepan más que tú, y estarás bien.

Mucha suerte 🙂

Neto tiene algunas buenas sugerencias. También sugeriría encontrar un proyecto, ya sea voluntario o de investigación, que le permita usar sus habilidades. Compruebe GitHub y vea si alguien tiene un proyecto que necesite asistencia. También vea si alguno de los capítulos profesionales (IEEE, ACM, etc.) tiene proyectos en los que pueda trabajar.