¿Cuál es la diferencia entre la programación de nivel universitario y corporativa? [cerrado]

28

Acabo de completar mi licenciatura en el campo de TI. Tengo un profundo interés en la codificación y realmente quiero ser un profesional en ello. Ahora, aparte de los cursos universitarios, he estado aprendiendo programación (C #) por mi cuenta (la programación a nivel universitario es demasiado básica). Ahora siento que necesito un poco más de tiempo para estar cerca del programador profesional. Pero algunos de mis mayores dicen que la programación del mundo corporativo es muy diferente de la programación de libros, por lo tanto, no tiene sentido perder el tiempo. (No son programadores, esto puede ser probablemente lo que escucharon).

¿Me beneficiaría alcanzar un nivel avanzado de C #? o como un nivel mediocre es suficiente para romper las entrevistas, los niveles más altos no son importantes para las empresas porque dependen de su capacitación únicamente para enseñar cómo funcionan las cosas en el mundo corporativo y aprender más no me ayudará mucho. Por favor, si hay algunos programadores profesionales que pueden ayudar, prometo que esto es algo que todos los estudiantes interesados ​​en la programación quieren preguntar en mi etapa. "¿Cómo cambias de alumno a profesional en el campo de la programación?" - Siga aprendiendo hasta que sea perfecto o unirse a una empresa es una vez que se cubren los conceptos básicos?

vish213
fuente
24
La escuela nunca se ha tratado de darte las habilidades necesarias para encontrar un trabajo. Se trata de darle las herramientas necesarias para encontrar un trabajo. Nada sustituye a la experiencia del mundo real, pero aún necesitas la escuela.
Robert Harvey
55
Creo que el título presenta una pregunta útil, pero el cuerpo de la pregunta está pidiendo asesoramiento profesional que está fuera del tema en este sitio.
Bryan Oakley
Puede encontrar el canal de chat para Programmers.SE (la pizarra) como un lugar útil para hacer tales preguntas: a menudo hay personas allí con una amplia gama de habilidades del mundo corporativo.
3
¿¿¿En espera??? Esto NO es pedir consejo profesional. Sí, esta pregunta tiene poco que ver con la discusión, pero es responsable. Hay tantas respuestas agradables a esta pregunta de ninguna manera esta pregunta debería eliminarse o algo así a menos que stackexchange se esté quedando sin memoria. Ver las respuestas aceptadas. ¿Está dando algunos consejos de carrera?
vish213

Respuestas:

32

Hay muchas diferencias entre la programación en la escuela y en el mundo real. No estoy seguro de que exista una programación corporativa .

Dependiendo de dónde esté trabajando, habrá grandes diferencias. También habrá grandes diferencias dependiendo de las tareas en cuestión.

Sin embargo, todavía hay algunos problemas comunes.

  • el ciclo de vida del código del mundo real es muy diferente de la tarea universitaria. En la programación del mundo real, generalmente está trabajando en una base de código existente. Uno de los mayores problemas es evitar romper la compatibilidad con el código utilizado por sus clientes (que pueden ser clientes internos o externos, dependiendo de su lugar de trabajo y caso real). El código que está escribiendo probablemente también se usará durante años después (esto depende: el problema no es el mismo para un sitio web o código incrustado en algunos dispositivos). Si desea prepararse para esto, acostúmbrese a escribir pruebas unitarias y pruebas funcionales para cada código. Eso no siempre se hace con el código del mundo real, pero debería simplificar su vida tanto en la universidad como en el mundo corporativo.

  • El diseño y los requisitos suelen ser mucho más difusos en el mundo real que en un ambiente universitario. Al escribir código profesional, alguien tiene que definir el propósito del código, y no se le dan simplemente problemas con los juguetes o incluso problemas conocidos. ¡Es muy probable que tarde o temprano seas tú quien haga el diseño! Los clientes generalmente no saben lo que quieren (e incluso cuando saben lo que quieren, puede que no sea lo que necesitan), y los gerentes generalmente solo describen el panorama general, dejando muchos detalles y opciones a los programadores. Dependiendo de los métodos seguidos ("ágil" -vs- "ciclo V", etc.), las elecciones y la definición detallada del problema pueden ocurrir tarde o temprano, pero al menos debe tener la mente abierta y preguntarse si realmente está haciendo lo que hace. es requerido. También puede considerar cambiar los requisitos si la tarea en curso es demasiado difícil de codificar o es ineficiente. Puede terminar escribiendo algo inútil o demasiado complicado de todos modos porque el cliente o su gerente no entendieron su punto o no están de acuerdo con usted. Aún así, siempre debes cuestionar los requisitos (es una habilidad de supervivencia). También tenga en cuenta que los requisitos pueden cambiar en el medio de una tarea, y debe estar preparado para eso.

  • en la universidad cuando recibes una tarea, se supone que debes escribir algún código. En el mundo real, generalmente comienza verificando si puede usar el código existente en su lugar: reutilizar o cambiar partes de un proyecto, usar o comprar bibliotecas, etc. Si encuentra el código existente que se ajusta a la asignación, puede terminar usándolo o no (puede haber problemas de mantenimiento, problemas de rendimiento, problemas de derechos de autor o incluso problemas de precios), pero la opción de reutilizar el código existente generalmente debe considerarse.

Obviamente, hay muchos otros problemas relacionados con el trabajo en equipo, la escala del proyecto, etc. Pero los puntos anteriores son problemas que es muy probable que vea en entornos corporativos pero que no tiene que considerar en sus tareas universitarias.

kriss
fuente
Por programación corporativa me refería al entorno de programación en las empresas. Buena respuesta por cierto :-)
vish213
3
Buena respuesta @kriss. Yo agregaría que es importante aprender a hablar en el idioma del cliente, no en "programmese". Esto ayudará tanto a su cliente como a usted.
Paddy Landau
38

La principal diferencia entre la programación corporativa y la programación universitaria es la escala. En la escuela nunca obtienes una tarea que una persona no puede comenzar y terminar en un semestre. Como profesional, puede trabajar con docenas de otros programadores en software que dura años sin estar "terminado".

A nivel micro, el trabajo no es tan diferente. Después de todo, si fuera demasiado diferente, un título universitario no sería de ningún valor para las empresas. Pero es como la diferencia entre hornear 12 galletas y hornear 12,000 galletas. Puedes ser realmente bueno en el primero y completamente despistado en el segundo.

En la escuela te preocupa principalmente hacer un programa correcto . En el trabajo, su software correcto no es suficiente. Tiene que ser mantenible, comprobable, eficiente y capaz de ser trabajado simultáneamente por varias personas. Eso es algo que las escuelas intentan enseñar, pero en realidad no se puede aprender completamente, excepto al hacerlo.

Karl Bielefeldt
fuente
En mi experiencia, la mayoría del "código corporativo" no se esfuerza por ser mantenible, comprobable y eficiente, sino lo suficientemente bueno como para resolver el problema en cuestión en un corto período de tiempo. En muchos casos, el código ni siquiera es "correcto", sino solo "lo suficientemente correcto".
Simon
26

Esta pregunta se basa en una suposición no válida:

"¿Cómo cambias de alumno a profesional en el campo de la programación?"

Te conviertes en un profesional al recibir un pago por hacerlo. Usted no deja de ser un aprendiz. Si lo haces, tu carrera ha terminado.

Sal al mundo y consigue un trabajo. Su entusiasmo por aprender es una ventaja.

Steven A. Lowe
fuente
44
Todo eso es un buen consejo, pero en realidad no responde la pregunta, ¿verdad?
Bryan Oakley
66
Estoy de acuerdo en que un programador profesional nunca deja de ser un aprendiz, pero no es que ser pagado te convierta en un profesional. Conocí a muchos aficionados a los que se les pagaba por escribir códigos terribles y terribles. Profesional se trata de hacer el trabajo correctamente, y hacer el trabajo correcto, no se trata de recibir un pago por producir código.
Bevan
@Bevan También se puede argumentar que esa es la diferencia entre un "programador" y un "desarrollador". Sin embargo, no estoy seguro de dónde estoy parado.
Izkata
3
@Bevan: La palabra "profesional" es realmente ambigua; los sentidos enumerados en la entrada de Wiktionary incluyen "De, perteneciente a, o de acuerdo con los estándares (generalmente altos) de una profesión" y "Eso se lleva a cabo por dinero, especialmente como medio de vida". Ser pagado automáticamente lo convierte en un programador profesional en el último sentido, incluso si no dice nada sobre el primero.
ruakh
12

Respuesta corta, sí: el mundo corporativo es muy diferente al de muchos entornos universitarios.

Dicho esto, las empresas lo saben. Esperamos que los graduados universitarios sean casi inútiles. Si ha pasado tiempo aprendiendo a programar, eso es genial. No necesita ser súper increíble para aplicar, pero comprenda que mantenerse mediocre no será suficiente.

No aprenderá mucho de lo que necesita en los negocios por su cuenta. Solicite lo antes posible mientras continúa aprendiendo por su cuenta.

Telastyn
fuente
4

¿Me beneficiaría alcanzar un nivel avanzado de C #?

No. Esperamos que los estudiantes sean inútiles durante varios meses mientras los separamos. El título es solo apuestas de mesa. Su entusiasmo por aprender y seguir instrucciones son sus mejores activos. Cuando entrevisto a graduados universitarios, quiero un jugador de equipo que no encaje en un hotshot que interrumpa al grupo.

... los niveles más altos no son importantes para las empresas porque dependen de su capacitación únicamente para enseñar cómo funcionan las cosas en el mundo corporativo y aprender más no me ayudará mucho.

Esto es diferente para cada compañía, pero en general las compañías más grandes tendrán una capacitación más estructurada. Esta es su primera gran decisión, ¿le gusta la capacitación formal y un alto grado de estructura? Si es así, busque trabajos que proporcionen eso.

¿Cómo se cambia de alumno a profesional en el campo de la programación?

Cambias de estudiante a profesional al conseguir un trabajo. Recomiendo que las personas mayores obtengan una cooperativa con una empresa a través de su escuela. Esta es la mejor manera de mojarse los pies y superar la ansiedad de una nueva profesión.

¿Seguir aprendiendo hasta que seas perfecto o unirte a una empresa es una vez que se cubren los conceptos básicos?

Consigue un trabajo, no esperes. Es común estar nervioso, pero sea honesto acerca de sus habilidades y no oculte su entusiasmo por aprender más. Es común cambiar de compañía varias veces, especialmente al principio de su carrera.

Felicidades por terminar tu carrera y buena suerte en tu viaje a la programación profesional.

Acometida psíquica
fuente
1

Diría que la diferencia fundamental entre la programación a nivel corporativo y la de nivel universitario es que la programación a nivel corporativo es mucho más un proceso de colaboración que lo que encontrará en un entorno de clase y el énfasis está mucho más en el desarrollo de productos que en el aprendizaje pedagógico.

Bagazo
fuente
1

Si realmente espera que la programación del mundo corporativo sea una cultura de programación avanzada de alto nivel, creo que estará bastante decepcionado. La programación en el mundo corporativo se trata más de poder asumir la responsabilidad del código que escribes y mantenerlo mantenible.

Pero a tu pregunta

¿Cómo se cambia de alumno a profesional en el campo de la programación?

Esto no tiene nada que ver con la programación a nivel corporativo y universitario, sino con la programación en general. Si realmente quiere aprender, comience a construir su propio software, algo que quiera construir o comenzar a trabajar en proyectos de software de código abierto. Haga preguntas que enfrente. Y lea el código de otras personas.

menosSeven
fuente
1

La respuesta de Karl sobre la escala es acertada. No puede ordenar una matriz de 15 números, tendrá que ordenar un conjunto de datos de un millón, digamos, números de cuenta.

Una clase de estructuras de datos y algoritmos probablemente le dirá una docena de formas diferentes de ordenar. En una aplicación real, es probable que incluya un orden por cláusula y permita que la base de datos lo optimice.

En cuanto a prepararse para el mundo corporativo, hay dos formas en las que sugeriría a) Obtener una pasantía, incluso una de bajo pago o sin pago le permitirá ver a otros trabajar. b) Con todas las tiendas de aplicaciones disponibles, puede intentar escribir y publicar una aplicación en las tiendas Apple / Google / MS. Esto lo ayudará a comprender mejor los flujos de trabajo, el valor de las pruebas, la necesidad de configurar el entorno y las herramientas adecuadas y más.

SidJ
fuente
1
Solo quería agregar, además de la tienda de aplicaciones, puede intentar ser voluntario para un proyecto a pequeña escala. Mi primera tarea fue ayudar al lugar de trabajo de mi madre a presentar informes de vacaciones y horas extras :)
SidJ
0

Lo principal que necesita para tener éxito en la programación corporativa es la paciencia y la capacidad de comunicarse con los usuarios que no entienden la tecnología. Asegúrese de utilizar pruebas unitarias, control de versiones, depurar cuidadosamente y utilizar el seguimiento / registro adecuado. Los idiomas pueden cambiar, pero mantener la calma y buscar cuidadosamente los problemas siempre funcionará.

Tim Spann
fuente
-1

Además de la excelente respuesta proporcionada "programación corporativa" también se trata de requisitos que no están claros o no cambian.

¿Qué haría si su profesor cambia los requisitos de su tarea de programación dos días antes de que tenga que entregarla?

En la industria esto es bastante común.

k3b
fuente