¿Cómo puedo averiguar si la programación es adecuada para mí? [cerrado]

22

Tengo experiencia en TI y tenía mucha confianza hasta que surgió una oportunidad en el trabajo para ingresar a la programación (C #). Nunca he programado antes de esto, y el software para el que estoy programando es un programa que nunca he usado antes (un software de modelado 3D).

Han pasado 6 meses desde entonces y tengo ganas de rendirme. No recibí mucho entrenamiento ... alrededor de 3 semanas de entrenamiento repartidas en los últimos 6 meses.

Creo que sería bueno programando, pero esta experiencia me está haciendo repensar mi decisión. No estoy seguro de si soy solo yo, o si esta frustración es normal.

¿Cómo puedo averiguar si la programación es adecuada para mí?

Rachel
fuente
11
¿Eres estudiante en alguna parte? Es curioso porque MS tiene un sitio llamado DreamSpark donde puede obtener Visual Studio, SQL y la mayoría de los servidores para la computadora de su hogar. Esto puede darle la oportunidad de hacer su propio software, para usted mismo, y probar cosas por su cuenta. Además, MS tiene un sitio de capacitación bastante bueno llamado Channel 9 que tiene algunos proyectos interesantes en él. Solo sugiero esto porque si disfrutas de la programación, algunos de estos deberían ser divertidos, no funcionar.
iMortalitySX
55
Cuando surgió esta oportunidad, ¿qué razones tenía para aprovecharla?
AakashM
1
@iMortalitySX: ¿Las herramientas disponibles de DreamSpark son diferentes de las ediciones VS Express?
FrustratedWithFormsDesigner
44
@ User66414 Su pregunta ha atraído un par de votos cercanos, por lo que la edité ligeramente para centrarme en la pregunta principal que parece estar haciendo, que creo que es una buena para el sitio. Siéntete libre de revertir la edición si no entendí tu pregunta :)
Rachel
2
@Rachel: Tal vez necesitemos iniciar una petición para salvar los sitios de StackExchange de la multitud Cerrar todas las preguntas. :-)
Warren P

Respuestas:

87

Hay algunas cosas a tener en cuenta al entrar en la programación.

En primer lugar, nunca sabrá todo sobre programación. Probablemente nunca se acerque a saber una fracción de todo. Y si alguna vez piensas que sabes algo, saldrá algo nuevo y lo que sabes será obsoleto.

Por lo tanto, debe estar bien aprendiendo constantemente cosas nuevas y enseñándose a sí mismo lo que debe hacerse. Si no está de acuerdo con pasar mucho tiempo aprendiendo, investigando y resolviendo cosas a través de "prueba y error", no entre en la Programación.

Segundo, es la lógica lo que importa, no la sintaxis. Solo aprender un lenguaje, un marco o una tecnología no necesariamente es un buen programador. Realmente necesita tener el tipo de mente que sea capaz de comprender la lógica detrás del código: cómo encajan las piezas, qué tipo de lógica se está utilizando y cómo la computadora interpretará su código.

Parece que está trabajando con una sola pieza de software e idioma, pero tenga en cuenta que hay muchos más idiomas y tecnologías disponibles. No los juzgues a todos por tu experiencia con uno de ellos. Si la sintaxis te está frustrando, ten en cuenta que siempre hay otras opciones. Pero si tiene problemas para comprender la lógica detrás del código, entonces quizás la programación no sea adecuada para usted.

Y, por último, no elija un trabajo que odie. La programación segura puede ser frustrante, pero también puede ser muy gratificante. Si puede manejar los momentos en los que quiere golpearse la cabeza contra la pared con algún código, o eliminar todo de su computadora con frustración, y aún así disfrutar de la codificación, está bien :)

Rachel
fuente
11
Hubiera publicado mi propia respuesta, pero me gusta esta. Quería agregar que la programación tiene que ver con el cumplimiento mediante la creación de algo que funcione. Si puede comparar cómo se siente entre la creación de software en comparación con el mantenimiento (parcheo) de un servidor, entonces tendría su respuesta. Además, sugeriría encarecidamente a cualquier persona nueva que sea aprendiz "práctica" que intente formar parte de un equipo SCRUM, para que trabaje en estrecha colaboración con otros desarrolladores y aprenda rápido (pero necesita poder mantenerse al día).
iMortalitySX
1
También recuerde que cuanto mejor obtenga en la programación, más poder tendrá para elegir trabajos que sean agradables para usted, en lugar del código que solo paga las facturas.
Zoot
77
... programming can be frustrating, but it can also be very rewarding.Esto es a lo que me refiero como el efecto de "montaña rusa" de la profesión de programación. Los mínimos son muy bajos, pueden llegar muy rápido y puede ser difícil salir de ellos. Pero los máximos son impresionantes, y la emoción es adictiva.
Ryan Kinal
1
Hermoso relato. Muy cierto. Lamentablemente, incluso el personal de RR.HH. no parece entender esto, que un verdadero profesional del software es alguien que puede desempeñarse íntimamente bien con MUCHOS marcos, ya que demuestra que han trascendido el ámbito de la sintaxis en el núcleo, la lógica (OOP, patrones de diseño, etc) cuando se trata de su oficio.
Glstunna
2
@RyanKinal Estoy bastante seguro de que los programadores comparten varios rasgos de los jugadores compulsivos. Cuando te bajas, se vuelve muy difícil romperlo hasta que tu espalda esté alta. Y cuando llegas a un punto alto, por lo general, todo lo que tienes en mente es llegar a otro punto alto ...
Earlz
24

Mi amigo fue un viajero frecuente durante muchos años, pero siempre quiso ser piloto de una aerolínea. Un día aprovechó la oportunidad para volar el Boeing 747. Después de unos seis meses, tuvo ganas de darse por vencido: pensó que sería bueno para volar aviones, pero esta experiencia de los últimos seis meses le hizo repensar su decisión.

Por supuesto que estoy bromeando: no tengo un amigo así. Y eso es por una buena razón: cualquier aerolínea estaría loca si permitiera que alguien tome los controles de un 747 antes de pasar unos años volando un Cessna, seguido de unos años volando aviones multimotor, seguido de unos años de aviones a reacción. , seguido de unos meses de entrenamiento extenso en el 747.

El punto de mi historia inventada es que incluso el paquete de modelado 3D más simple sería el equivalente del desarrollador de software de volar un 747. Muchos programadores se sentirían intimidados por él, incluso después de una década o dos en la industria. No es sorprendente que te sientas frustrado: ¡asumiste una tarea incorrecta para tu nivel de habilidad actual!

Que deberias hacer Primero, dejaría la tienda de modelado 3D, tomaría un curso en línea o real en programación, y conseguiría un proyecto favorito en el que pueda trabajar en su tiempo libre. Una vez que haya terminado con el curso, intente obtener un puesto de nivel de entrada en una tienda que produce aplicaciones comerciales, aplicaciones móviles o sitios web sofisticados. Aprenda todo lo que pueda en el trabajo y practique en casa para mejorar aún más sus habilidades. En unos años podrá volver a su empresa de modelado 3D y trabajar allí sin la más mínima frustración.

dasblinkenlight
fuente
99
Esto es bueno, pero no necesariamente renunciaría. Si su trabajo es difícil, pero su jefe está de acuerdo con que necesite tiempo para ponerse al día, entonces podría ser una gran oportunidad. Además, las aplicaciones comerciales pueden no ayudar mucho con el modelado 3D. He estado haciendo principalmente aplicaciones de negocios y estaría completamente perdido si intentara escribir un programa de modelado 3D.
Vuelva a instalar Mónica
22

Es posible que no haya elegido el mejor camino para aprender programación :)

En serio, el modelado 3D es un dominio muy complejo incluso para un programador experimentado, por lo que tenerlo como su primer proyecto será difícil. Sugeriría conseguir algunos buenos libros y trabajar en proyectos simples por su cuenta. Si te gusta trabajar en eso, sigue enchufándote y llegarás allí. Si no disfruta eso, entonces podría ser el momento de reducir sus pérdidas.

No voy a comenzar ningún argumento sobre los mejores libros de programación, pero creo que encontrará numerosas preguntas en SE sobre referencias de programación.

FWIW, he estado programando en MS Windows desde 2.x, y si saltara a un proyecto de modelado 3D existente, creo que también estaría frustrado por un tiempo :)

revs cdkMoose
fuente
Estoy de acuerdo. La programación en 3D no es exactamente un paseo por el parque. Las aplicaciones comerciales en el campo financiero, médico o tecnológico son un mejor lugar para comenzar su carrera en C #.
ROFLwTIME
+1 para señalar que el modelado 3D no es un buen punto de partida, es mucha matemática también en mi opinión. Creo que esto es lo principal aquí, siempre comienza con las cosas fáciles, cuando intentas correr demasiado rápido terminas tomando más tiempo (¿no es raro?)
cincuenta
8

Como desarrollador de software bastante novato (2 años de trabajo a tiempo parcial), lo que me mantiene en marcha es la perspectiva a largo plazo .

Cada nuevo proyecto que comienzo, entiendo mejor cómo manejarlo sin problemas. Cada nuevo idioma se vuelve menos difícil. Mis soluciones comienzan a sentirse más completas.

Aquí está mi lista de lo que debería tener para continuar como programador:

  • Te gustaría y podrás aprender por tu cuenta. (es decir, trabajar con libros, foros, documentaciones, ...)
  • Debería mantener sus pensamientos organizados: la programación es una forma de llevar los procesos de pensamiento al papel ( a la computadora ).
  • Debe tener una capacidad de recuperación suficiente, cuando se trata constantemente con una lista aparentemente interminable de problemas minuciosos, que primero deben identificarse antes de que puedan resolverse.

Aparte de eso, creo que hay muchas razones para que te guste la programación, y cuanto más lo hagas, más experimentarás la alegría de trabajar en un campo tan creativo y no repetitivo.

Editar: si tiene problemas con algo, intente señalar exactamente cuál es el problema y luego llévelo a uno de los sitios de Stack-Exchange, si su pregunta aún no ha sido respondida, seguramente obtendrá un buena respuesta A la larga, también será bueno que leas algunos libros estructurados sobre paradigmas de programación, ingeniería de software y algoritmos. Sin embargo, la mayoría importa, sigue escribiendo código, y como la mayoría de las respuestas aquí sugieren, encuentra algo de tiempo para trabajar en programas no relacionados con lo que ya estás haciendo, incluso si eso significa que inventas tus propios proyectos para trabajar desde casa.

Rafael Cichocki
fuente
4

Es simple: ¿te gusta hacerlo? Si no te pagaran por hacerlo, ¿lo harías en tu tiempo libre, por diversión? Si la respuesta es no, entonces la programación probablemente no sea adecuada para usted.

Eso no quiere decir que no puedas aprender a hacerlo lo suficientemente bien como para tener un empleo remunerado haciéndolo. Pero si no lo amas, nunca serás bueno en eso. Y, si no lo disfrutas, ¿cuál es el punto?

Comencé a programar cuando tenía 12 años, y lo hice porque quería. Tenía 20 años (y estaba a la mitad de la universidad) antes de que se me ocurriera que tal vez podría hacer eso para vivir. Fue algo que hice porque me encantó.

Creo que la mayoría de las personas que son excelentes en algo (cualquier cosa) no lo son porque tienen alguna habilidad innata, sino porque tienen una obsesión poco saludable por esa cosa.

zpasternack
fuente
1
No estoy seguro de por qué alguien rechazó esto. No podría estar mas de acuerdo.
finales
Podría, por ejemplo, disfrutar del trabajo del OP si llego a aprender algo realmente bueno sobre las matemáticas 3D, y me gusta aprender sistemas 3D y sus matemáticas relacionadas. Ah, y detalles de OpenGL o DirectX, y tarjetas de video.
Warren P
2

Mi consejo para ti es pasar un tiempo por tu cuenta con C # y la programación en general.

Haz un pequeño juego. Crea una herramienta simple para organizar tus fotos. Haz cualquier cosa realmente.

Si pasa su propio tiempo individual, es posible que disfrute de la programación. Si no, la programación no es la carrera para ti. De cualquier manera, sigue trabajando en ello.

Un recurso que puede ser útil para aprender algunos conceptos:

http://msdn.microsoft.com/en-us/library/618ayhy6.aspx (Referencia de C #)

Brad S
fuente
2

¿Dónde estaba su experiencia si nunca programó antes de esto? La mayoría de los roles de TI tendrían alguna oportunidad de programar algo, aunque solo sea una macro o script para automatizar alguna pequeña pieza del rompecabezas.

Tienes derecho a tus emociones. Sin embargo, la mejor pregunta es ¿qué haces con esta frustración? ¿Estás resolviendo las cosas y avanzando? ¿Qué tipo de comentarios recibes sobre el trabajo que estás haciendo? Si recibe comentarios de que es genial, entonces puede tener expectativas poco realistas de sí mismo. Por otro lado, si está recibiendo poca o ninguna retroalimentación, podría entender que tengo algunos temores.

JB King
fuente
2

Recuerdo haber comenzado con el ensamblador en un Commodore VIC20. Al principio, solo seguí las instrucciones para los hacks que se publicaron en revistas de juegos para darme vidas infinitas en Jet Set Willy o lo que sea que estaba tratando de engañar. Tenía una curiosidad y un anhelo que me llevaron a querer crear mis propios trucos y entender cómo y por qué funcionaban. Esto me llevó a escribir mis primeros programas.

El punto es que estuve totalmente confundido durante bastante tiempo (no tanto como 6 meses, pero estoy de acuerdo en que probablemente sea una función de comenzar con el modelado 3D), pero luego, el centavo cayó repentinamente. Comencé a entender cómo el código que escribí se tradujo en instrucciones de CPU y referencias de memoria y pronto pude escribir un ensamblador bastante competente. Por supuesto, ahora está trabajando 20 niveles por encima de la CPU, pero estoy seguro de que si tiene la aptitud, ese momento de la bombilla ocurrirá.

Supongo que estoy reiterando los puntos sobre la curiosidad, el aprendizaje y el efervescencia cuando creas algo que es realmente sinérgico.

Si puede dar un consejo, es "perseverar y aprender los conceptos básicos de la programación orientada a objetos". Buena suerte.

Simon
fuente
2

Básicamente no ha recibido capacitación y se ha visto envuelto en un proyecto difícil. Por lo general, las personas pasan al menos tres años aprendiendo cosas incluso antes de comenzar proyectos no triviales. No hay vergüenza, ni significa que la programación no es para ti, si te resulta demasiado difícil.

Incluso tuve problemas en mi cuarta semana de programación: P

revs DeadMG
fuente
Me tomó unos años antes de poder crear programas no triviales que no tenían muchos errores. Una vez que llegué a un punto de inflexión, mi tasa de mejora explotó, y esto ha sucedido varias veces. Recuerdo cuando comencé a abrirme paso y podía conceptualizar ideas de una manera que no podía antes. Todo fue cuesta abajo desde allí.
jett
2

Tu frustración es completamente normal; Es probable que 3 semanas de entrenamiento sean muy insuficientes. No puede saber si la programación es adecuada para usted al lanzarse de cabeza a un proyecto de programación difícil con su sueldo en la línea.

Si realmente desea saber si la programación es "adecuada para usted", aprenda un nuevo lenguaje de programación durante su tiempo libre y realice algunos proyectos de programación de hobby. Si disfruta de esta experiencia (la experiencia de programación sin plazos y presiones de trabajo que se ciernen sobre su cabeza), entonces la programación es adecuada para usted.

Ahora ... si ese trabajo de programación en particular es adecuado para usted ... Yo personalmente me inclinaría hacia un no . Hable con su gerente sobre su frustración y considere obtener un trabajo que se adapte mejor a su conjunto de habilidades actual o que prometa un mejor programa de capacitación. No puedo conocer los detalles de su situación particular, pero me parece que fue un mal servicio para usted y la empresa contratarlo para ese puesto sin proporcionar el tiempo de capacitación adecuado; Si no estaban planeando brindar una mejor capacitación, entonces no deberían haberte contratado. Aún así, la escuela de los golpes duros es una escuela tan buena como cualquier otra; Una vez más, el mejor curso de acción aquí es hablar con su gerente y ver cómo evalúa su desempeño actual y responde a su frustración.

Dan Burton
fuente
2

¿Soy yo o tengo razón en sentirme frustrado?

La pregunta que realmente necesita hacerse es:

a) ¿Te gusta la programación? b) ¿Te sientes la persona más feliz del mundo una vez que tu aplicación está funcionando? - Si su respuesta es SÍ , deje de preocuparse, solo siga aprendiendo y mejorando sus habilidades en programación.

En términos generales, el modelado 3D es un área totalmente diferente en el mundo de la programación, como la programación de un juego. Eso puede asustarlo o no generarle interés. No te asustes , solo mantén tu motivación aprendiendo cosas que no sabes. Establezca sus objetivos a corto y largo plazo en lo que necesita para ponerse al día y aprender.

Editar: El "software de modelado 3D" no es un área de programación de transmisión principal. Por lo tanto, es posible que se encuentre aprendiendo técnicas / conocimientos muy específicos que no se aplican en otras áreas (CRM, contabilidad, atención médica, etc.). eso impulsa tu interés.

revs ElYusubov
fuente
2

La programación de gráficos en 3D es un nicho en el que incluso la mayoría de los desarrolladores de software bien establecidos preferirían no meterse. Trabajo mucho con OpenGL y lo sé de primera mano. Con suerte, todo su trabajo implica trabajar con escenas de escena en un nivel superior, pero si está en el fondo como yo. Para un nuevo programador, es como un bebé corriendo ... en una carrera de 100 metros ... con gente como Usain Bolt ... con la presión adicional de que las personas realmente tienen expectativas realistas de que el bebé ganará la carrera.

Sin embargo, los milagros suceden y no se pierde toda esperanza.

Confío en que ya está haciendo esto, pero no solo tiene que hacer tutoriales sobre programación (este es, con mucho, el desafío más pequeño), sino que debe leer cosas sobre los fundamentos 3D y los sistemas de coordenadas. Comprender las matemáticas involucradas en dibujar polígonos, traslación, rotación (que Dios te ayude si es Quarternion), matrices, etc.

Pero en serio, ¿estás seguro de que quieres seguir con esto? ¿Qué es más importante para ti? este trabajo o un juego completo de cabello?

Glstunna
fuente
1

Acabo de tirar un libro sobre C # recientemente, ya que no tiene valor para mí.

Pero puedo confirmar que la frustración y los errores se consideran "normales".

Si bien no es una fecha límite en la parte posterior de su cuello, no se preocupe.

Por otro lado, una vez que funciona como un encanto, puede ser divertido.

Cuando entregue resultados extraordinarios, podrían llamarlo "Señor" :)

Con respecto a su pregunta si es el trabajo adecuado para usted, esto depende, si desea aprender cosas nuevas todos los días, ya sea que lo haga o no. Además, si tiene la paciencia y la locura para abordar los problemas.

Aplico constantemente la metodología TDD, pero esto lleva varios años para aprender. Tener un curso de inicio rápido de 3 semanas puede no llevarte a ninguna parte, se trata de cometer errores y aprender de ellos.

Todos odian los errores y el mal funcionamiento, pero uno puede crecer con ellos. Lo que quiero decir es que cometer (o incluso provocar) errores no es necesariamente algo malo.

Probablemente el mejor consejo que pueda darle es dividir las cosas en hitos más pequeños.

Porque si los objetivos que ha establecido están completamente fuera de su alcance, esto es lo que causa frustración.

Aprendí a depurar en una SNES de Nintendo: estaba haciendo trampa como una azada y obtuve dinero de una revista de consolas por proporcionarles nuevos trucos. Más tarde, obtuve un ST de Atari y aprendí a codificar Omikron Basic ... y todavía estoy aquí, actualmente soy autónomo como asistente de JS :)

Su situación, como se describe, es más bien "aprenderla de la manera difícil" ... También sugiero aprenderla con aplicaciones mucho más básicas que eso. Una buena referencia de lenguaje es todo lo que uno necesita, y quizás buenos ejemplos.

revs syslogic
fuente
1

La programación requiere mucho impulso y dedicación para llegar al punto en que sepa lo que está haciendo y sea excepcional en hacer lo que sabe.

Para que realmente tenga éxito, la programación debe convertirse en una forma de vida; en lugar de una profesión deseada. Necesita convertirse en una obsesión que comienza en la resistencia y se extiende a toda la red que comprende Internet.

Personalmente, te recomiendo que te quedes con él porque yo personalmente luché mucho también. Realmente no pude comenzar a pensar como programador hasta aproximadamente un año y unos meses después de que comencé a estudiar informática a tiempo completo (a menudo más de 12 horas al día).

Pasé todo el tiempo solo estudiando todo lo que podía comprender en Internet relacionado con las computadoras. Utilicé la complejidad de la programación para hacerme aún más terco y motivado cada vez que me sentía abrumado. Pasé mucho tiempo leyendo el código de otras personas y escribiéndolo manualmente. Cada vez que encontraba algo que no entendía, lo buscaba. Todos los días, sumergiéndome más y más en mi fascinación y obsesión forzadas. (Incluso comencé a tener sueños de programación donde me comunicaba con programas a través de binario, ¡Demasiado profundo! Lmao)

No siempre fue fácil. Definitivamente sentí que no estaba hecho todo el tiempo, pero un día pude conectar y comenzar a codificar como loco. Simplemente comenzó a tener más y más sentido para mí, con cada línea que imaginaba. Todo comenzó a juntarse hasta el punto en que podía volver y reescribir mi código de manera más óptima y eficiente solo unas pocas horas después.

Después de eso, nunca dudé si era capaz de convertirme en programador. Tienes que quererlo realmente. No hay muchas personas que tengan la dedicación requerida para superar la tempestad que se requiere para convertirse en un informático.

Sin embargo, cuando realmente llega al punto en el que puede construir sistemas de software complicados que nacieron de su creatividad e ingenio, la recompensa por el logro que siente supera con creces la lucha que tuvo que atravesar para alcanzar el éxito.

mortdeus
fuente
1

Creo que lo más definitivo que debes hacerte es "¿te gusta aprender?"

Con esta simple pregunta, sabrá si la programación es adecuada para usted con una probabilidad decente. Si no te gusta aprender, entonces no, probablemente no te gustará la programación. La programación es 5% sobre escribir código, 10% sobre diseñar cómo debería funcionar su código y 85% sobre aprender a escribir mejor código y hacer mejores diseños. (¡y eso no cambia! ¡He estado programando durante más de 8 años y todavía estoy aprendiendo constantemente!)

Ahora, por supuesto, te puede gustar aprender y no como programar, pero como te gusta aprender, ¡intenta hacer algunos programas! Sin embargo, no puedes rendirte en la curva de aprendizaje inicial, especialmente con tantos idiomas fáciles ahora. ¡Así que sal y escribe un código!

Earlz
fuente
0

La programación se trata de resolver problemas primero. El idioma es secundario. Tan pronto como tenga la tarea de escribir su primer programa (por cierto, no escribirá el código usted mismo la primera vez, porque todo ha sido escrito) y resolverá el rompecabezas ... haga la conexión, sabrá en ese mismo momento si quieres ser programador.

aserwin
fuente