¿Cuáles son los conceptos erróneos más grandes acerca de ser / convertirse en programador?

Se requiere un título en informática. No es cierto, toneladas de personas que no son CS se involucran. Un título de CS es agradable, no un requisito.

Involucra muchas matemáticas. Depende del campo. Si estás haciendo programación de juegos o programación científica, me inclino a decir que sí. Si está haciendo programación CRUD, me inclino a decir mucho menos. Hay algunas matemáticas, pero ser pesado en matemáticas es específico del dominio.

La informática es lo mismo que la programación informática. Falso. CS implica el estudio de conceptos abstractos en informática y matemáticas. La programación o ingeniería de software es la aplicación práctica de estos conceptos. CS generalmente se centra en la corrección, mientras que la programación generalmente se centra en la productividad. Estas metas pueden o no ser diamétricas.

Ser bueno en matemáticas se correlaciona con ser un buen programador. Falso. Ambos campos implican hacer malabares con conceptos abstractos, por lo que en ese sentido son similares. Pero nunca hay una respuesta verdadera en la programación. A menudo se trata de equilibrar fuerzas no técnicas con una variedad de opciones.

Es muy tarde para comenzar. Nunca es demasiado tarde para hacer un cambio de carrera en tecnología, pero requerirá mucho trabajo. Si tienes el talento, el impulso y la disciplina, no es demasiado tarde.

Hay una idea errónea sobre la programación y, lamentablemente, la mayoría no se da cuenta hasta que es demasiado tarde.

Antes de convertirme en programador, estudiaba biología y estaba en camino de convertirme en médico.

Pero llegó un punto en el que me di cuenta de que no quería ser médico y que solo lo hacía porque eso era lo que mis padres querían que hiciera.

Quería ser parte de algo impactante. Quería estar en tecnología y allanar el camino para el futuro, pero después de haber pasado casi cinco años estudiando biología, creía que estaba encasillado en una carrera relacionada con la biología a menos que pasara más años y tiempo en la escuela.

Sabía que quería estar en tecnología y que la programación me llevaría allí, pero creía que no tener un título en informática hizo que lograr mi sueño fuera mucho más difícil y algo inalcanzable.

Mi idea errónea de que debes tener un título en ciencias de la computación para ser un programador se hizo añicos cuando descubrí la codificación de bootcamps.

Ver a personas graduarse de los campamentos de codificación como Firehose Project y Hack Reactor y ver a estas personas conseguir trabajo me hizo darme cuenta de que había una manera de hacer posible mi sueño de convertirme en un programador profesional.

Desde que me gradué del Proyecto Firehose, conseguí un trabajo como ingeniero de software en una startup haciendo lo que amo sin un título en informática.

Ahora, no diré que no hay ningún valor en los grados de informática. Ciertamente, pueden entrenarlo para pensar como un ingeniero y comprender cómo funcionan las computadoras y las estructuras de datos debajo del capó, pero no son completamente necesarias para convertirse en un programador.

¿Un título en informática te convertirá en un mejor programador? Sí, pero también creo que el autoestudio voraz es una opción que produce casi el mismo resultado por una fracción del costo.

Ahora, es posible que no tenga tantas opciones con trabajos como una persona con un título en ciencias de la computación, pero ciertamente puede entrar en la industria de la tecnología con ajetreo.

Espero que mi respuesta haya sido útil para usted y realmente significaría mucho si pudiera votar este comentario a continuación.

Grabé una pecha kucha sobre este mismo tema: 4 Pecha Kuchas (lunes) por K. Beck, S. Roock, D. DeGrandis, J. Coldewey

tl: dr Las decisiones son binarias, no tengo que interactuar con las personas, no tengo que lidiar con mis propias emociones, la programación es un proceso racional.

Bueno, hay muchos de ellos … aquí hay algunos:

En primer lugar, los programadores no son todos “nerds” sin vida además de las computadoras. Somos personas normales con esposas / esposos, amigos, hijos, etc. Como en cualquier otra área, hay más personas sociales y menos sociales. Todo depende de sus elecciones de estilo de vida y todos son libres de hacer el suyo.

En segundo lugar, sabemos todo acerca de las computadoras y podemos resolver cualquier problema. De la misma manera que un arquitecto puede diseñar un edificio pero no puede construir uno, podemos hacer software pero no necesariamente tener el conocimiento para solucionar todos los problemas de hardware y otros problemas que las personas tienen en sus computadoras. Y no, no todos somos capaces de crear software para piratear cuentas bancarias y robar dinero. Solo las personas que no entienden la informática en absoluto pueden subestimar la complejidad de hacer un truco como ese.

En tercer lugar, para ser un programador no tienes que saber todo sobre matemáticas y física, ni siquiera tener un título en informática. Para ser un programador, lo más importante que necesitará es motivación para aprender y mejorar cada día. Requiere mucho trabajo duro pero todos son capaces de programar.

Cuarto, si eres un programador, puedes hacer todo tipo de desarrollo para todas las plataformas. ¡No es cierto del todo! La física requiere mucho conocimiento en matemáticas, pero un buen profesor de matemáticas no tiene que saber nada sobre física. Hay un montón de lenguajes de programación y áreas de desarrollo. Puede programar para web, móvil, computadora de escritorio, juegos, etc. Un programador puede saber programar usando 2 o 3 idiomas y en 2 o 3 áreas, si no más, pero cada una de ellas requiere muchos conocimientos diferentes. así que lo más probable es que ese mismo programador solo sea “excepcional” en una de esas áreas. En los otros puede hacer algunos programas, ¡pero no es su experiencia!

Quinto, la idea errónea de que en pocos años, con algo de experiencia y dedicación, ¡puedes ser el mejor programador del mundo! No es cierto en absoluto … Un programador dedicado sabe que este es un proceso continuo que toma toda su vida. La tecnología siempre está evolucionando y, por lo general, a un ritmo mayor que el que puede manejar. ¿Puedes ser un gran programador? Claro que puedes, pero no es simple y nadie puede decir que te tomará 10 o 20 años llegar allí.

Sexto, y este es para nuestros “clientes”, solo porque fue fácil para usted pensar en un software o en una funcionalidad dentro de un software, no significa que podamos hacerlo en un abrir y cerrar de ojos o que presione un botón en nuestras computadoras portátiles y listo. Las cosas son un “poco” más complejas que eso. Por ejemplo, un juego reciente para PC, bien pulido y que hace uso de la tecnología actual, puede tardar 5/6 años en hacerse, con un equipo de 500 personas trabajando 10/12 horas al día cuando sea necesario. Si le pide a un escritor que escriba un libro, incluso si ya tiene la historia en su cabeza (lo cual nunca hace realmente), todavía necesita tiempo para escribirla en su computadora e imprimir todas las páginas antes de entregarla. E incluso después de eso, hay muchas correcciones que se deben hacer antes del lanzamiento final, lo que requiere más tiempo para corregir todo y volver a imprimir. Y si cuenta los “espacios en blanco”, se necesita la investigación y todos los problemas que pueda tener (la computadora que tuvo un problema en un determinado día o dos [no, los programadores no necesariamente sabemos cómo resolverlo]), entonces tendrá una ligera idea del tiempo que necesita todo el proceso de principio a fin.

En suma. Un programador no es un “chico o chica de las computadoras”. La programación es un área dentro de la informática. Hay muchos más. Somos personas normales, no extraterrestres de otras galaxias. No sabemos todo acerca de las computadoras, la programación no es fácil, se necesita mucho trabajo para ser un programador, pero cualquiera puede ser uno. Solo tiene que gustarle y dedicarle su tiempo.

Gracias por A2A.

Solo para agregar un error común a los que ya se han presentado.

Todos los programadores saben lo mismo.

Esto es completamente falso. Hay una superposición general, pero cada uno debe encontrar dos ingenieros profesionales que no pueden programar en el mismo idioma o incluso entender el contexto en el que trabaja el otro a diario.

Un ejemplo es un ingeniero que programa interfaces RESTful para un backend de un sitio web frente a un programador que escribe el firmware para un controlador de disco duro.

Ambos están listados como “ingeniero de software” en los listados de trabajo, pero también podrían ser profesiones completamente diferentes. El ex programador ni siquiera sabe cómo usar un osciloscopio, mientras que el segundo no pudo acceder a una base de datos de back-end para salvar su vida.

La primera reacción que escucho cuando digo que trabajo con computadoras “Oh, ese es un trabajo realmente genial”, seguido de “debes estar haciendo mucho dinero” y finalmente “Sabes que soy un asco en tecnología, tengo este problema con mi computadora puedes ayudar “. Bueno, esos son algunos de los conceptos erróneos comunes, y por supuesto también una buena cantidad de estereotipos negativos. De todos modos, como escritor de códigos durante los últimos 12 años, esto es lo que enfrento.

La programación de computadoras es un trabajo realmente genial.

Gracias a los medios de comunicación, se ha transmitido la impresión de que ser un programador de computadoras es un trabajo genial, donde te sientas en lujosos complejos de oficinas, tienes fiestas y sales a salir. Sí, tenemos complejos de oficinas lujosos, pero hay nuevas empresas que se ejecutan desde nada más que un apartamento. Y hazlo bien, la programación de computadoras es cualquier cosa menos un trabajo genial. Tendría que pasar horas y horas, a veces atrapado en problemas para los que no tiene solución, tener que cumplir plazos imposiblemente ajustados, decididos por sus jefes. Puede ser largo, triste, estresante y errático. Hubo días en que trabajaba las 24 horas del día, los 7 días de la semana, y días en los que simplemente hacía girar los pulgares. Además, tampoco está seguro de cuánto tiempo podemos mantener nuestro trabajo actual.

Tengo este problema con mi computadora, ¿pueden ayudarme?

La gente tiene la sensación de que, como eres un programador de computadoras, puedes hacer casi todo. Sí, por lo que se espera que solucione lo que es esencialmente un problema de hardware o podría ser un problema de red. Y esto no es solo con la multitud no tan experta en tecnología, he visto esta actitud incluso con personas que trabajan en empresas de TI. Muy a menudo alguien me pregunta en el medio: “Oye, tengo un problema con LDAP, ¿puedes solucionarlo?”. Lo que la gente necesita entender es que las computadoras son un campo amplio, tienes personas que configuran el hardware, tienes personas que conectan las computadoras y programan el software de red, tienes personas cuya única competencia es diseñar las pantallas. Y la programación nuevamente es un campo amplio, tiene programación de sistemas, programación de aplicaciones, programación de red. Por lo tanto, un programador de computadoras no es alguien que tiene una solución única para todas sus necesidades.

Los programadores son nerds egoístas y materialistas sin vida social.

Soy programador, tengo una familia, tengo una vida social más allá del trabajo. Asisto a grupos de cuestionarios, reuniones fuera de línea, blog, para mantenerme actualizado. No todos los programadores de computadoras son especies bohemias, que irán de pub todos los fines de semana, se echarán a alguna discoteca y se quedarán inconscientes. Los programadores son personas como cualquier otra persona, y usted tiene muchos de ellos. Hay algunos que son ferozmente políticos en sus opiniones, izquierda o derecha. A algunos les encanta leer sobre historia o economía. Hay programadores que aman las películas o los libros. Los programadores no solo están obsesionados con la tecnología, muchos tienen una vida más allá.

Los programadores son graduados en informática.

La informática y la programación de computadoras son tan similares como la ciencia pura y la ciencia aplicada. La programación es donde realmente aplicas todos los conceptos de informática que pensaste. No es necesario que seas un graduado en Informática, puedes ser un graduado en Ingeniería, Comercio siempre que tengas una buena forma lógica.

Puedes ser un programador si sabes el lenguaje X

“Quiero hacer computación en la nube, creo que hace calor”. “¿Estás planeando aprender Hadoop”. Muchos “ingenieros de software” expertos en tecnología tienen la impresión de que todo lo que necesita para ser un programador es aprender la última tecnología o curso y el bingo más recientes. Demonios, no, ser programador no es solo aprender el lenguaje X o la herramienta, se trata de la aplicación real. Y cuando digo aplicar lo que sabes, es una visión más holística. Ya pasaron los buenos días, cuando se le podía pagar una fortuna, solo por saber cómo escribir “Hello World” en Java. Como programador, no solo se espera que conozca Java, C o Ruby, debe saber cómo trabajar en un entorno en red, integrar herramientas, hacer pruebas unitarias, diseñar pantallas decentes. En resumen, debe tener una idea clara del funcionamiento de la aplicación de principio a fin, y eso solo se obtiene a través de la experiencia práctica. Entonces, solo aprender el lenguaje / herramienta X o Y no te convierte en un programador, es cuando realmente aplicas eso, cuenta.

¿Por qué no vuelves a escribir ese estúpido código?

Ok, este es otro tipo de ideas erróneas, en particular de ciertos esnobs intelectuales “nariz en el aire” . Parecen creer que escribir código no es gran cosa, es un trabajo tonto y no nos pagan por nada. Ah, sí, intente escribir un código que descubra el segundo número más grande de una serie o genere una serie de Fibonacci. Intenta descubrir cómo conectar las diferentes partes de una aplicación. No hay nada estúpido en escribir código, es un trabajo como cualquier otro trabajo, por lo que ponemos mucho esfuerzo.

Los programadores de computadoras son personas normales como cualquier otra persona, quizás un poco más inteligentes, pero eso es todo. No somos súper héroes o imbéciles materialistas o nerds antisociales, tenemos familias, hacemos trabajo social y cometemos errores. Amamos la tecnología, pero no es el principio y el fin de nuestra vida, también tenemos intereses más allá.

Nuestros programadores junior frecuentemente vienen con un gran error: que su trabajo consiste principalmente en escribir código. Este concepto erróneo se ve fuertemente reforzado por la educación en informática.

1. Los estudiantes reciben un problema que está muy claramente definido.
2. Los estudiantes descifran el código para resolver el problema.
3. Los estudiantes entregan el programa completado y están contentos con una calificación aprobatoria.

Entonces, ¿dónde pasan la mayor parte de su tiempo los estudiantes? El paso 2 es donde se gastan las noches completas. Cuando estos estudiantes de CS se gradúan, todos piensan que sus trabajos serán una serie constante de hack-a-thons.

Desafortunadamente, en el mundo real, no es así como funciona. Alguien tiene que pasar tiempo para definir el problema, y ​​nadie va a pagar el código que solo está allí en un 70%. Hay dos máximas que hablan de esta realidad. Una es que para cualquier proyecto de software dado, un tercio del esfuerzo se gasta en especificaciones, un tercio se gasta en código y un tercio se gasta en garantía de calidad. La otra máxima es que te lleva un 20% de tu tiempo escribir un software que está allí un 80% y otro 80% de tu tiempo para que el software llegue al 100% (o lo suficientemente cerca como para que nadie se queje). Haz los cálculos y descubrirás que cuando un programador junior dice que su tarea solo debe tomar 1 día de esfuerzo, de hecho, tomará 15 días de ef

No creo que la gente se dé cuenta de lo agradable que es programar, incluso corregir errores puede ser “divertido”. Por supuesto, construir una aplicación o biblioteca OSS es lo mejor. Te sientes muy capacitado para poder resolver todos estos problemas.

Además, las personas no se dan cuenta de que el desarrollo es una especie de actividad social donde la interacción y cierto nivel de confrontación por parte de sus compañeros mejora el producto resultante.

No estoy seguro si he hecho suficiente programación para intentar esta pregunta, pero la creencia general de que los programadores no tienen vida es un gran error. Los programadores son tan parte de la sociedad como cualquier otra persona en cualquier otra profesión. La mayoría de ellos tienen una vida social increíble e interactúan con las personas que los rodean y participan en actividades regulares como cualquier otra persona, quizás de una manera un poco más geek.

OOP es siempre la mejor manera de programar.

OOP es solo una forma de resolver problemas en la programación, hay muchos otros paradigmas que puede usar. Depende de tus requerimientos.
Como programador, puedes estar seguro de que tus amigos y superiores están listos para empujarte a la garganta.

Que somos capaces de piratear la cuenta de Gmail / Facebook / Twitter / cualquier otra persona. De hecho, estoy impresionado por la frecuencia con la que diferentes personas me preguntan si puedo hacer esto.

Que un programador realmente sepa lo suficiente como para arreglar su propia computadora.

Te sorprendería la cantidad de programadores que tenemos en el trabajo (en todas las áreas de codificación, probablemente tenemos 40) y muy pocos pueden realmente solucionar sus propios problemas de hardware. Eso no quiere decir que los programadores no puedan arreglar sus propias computadoras, pero en mis más de 20 años de experiencia en el campo de la computación, he tenido relativamente pocos programadores que sabían lo suficiente sobre su propia computadora para poder arreglarlo ellos mismos.

Arquitecto : Esa es la última palabra de moda para los ingenieros de software. Lo siento amigos, el término ya está en uso por aquellos de nosotros con grados reales de arquitectura. Estás diseñando software, no edificios. Recibo una multa de $ 10,000 por usar el término arquitecto hasta que tenga la licencia como tal. Los ingenieros de software usan este término como si realmente tuviera significado para ellos. Grado CS – 120 horas semestrales, grado BArch – 160 horas semestrales. Titulación mínima.

Que realmente podemos reparar la computadora.

Un programador es aquel que se ocupa de algoritmos y principios de diseño, no el que repara una computadora. Podemos saber cómo funciona el funcionamiento interno de una computadora, cómo se ajusta el código.
Pero eso no significa que sepamos cómo arreglar el hardware.
Eso no significa que sepamos cómo solucionar el problema que está teniendo con Chrome que lo bloquea cada vez que lo abre, o por qué su computadora siempre se sobrecalienta y la batería se agota. Los programadores de computadoras, al menos saben cómo programar computadoras, no las arreglan.

Que no es un esfuerzo en solitario, sin necesidad de interacción y comprensión humana.

(Crud, difícil de creer, dejé el trabajo clave “no” la primera vez …)

Que los hombres son naturalmente mejores que las mujeres.
Veré tu evidencia anecdótica y te elevaré mi tamaño de muestra de 4 dígitos. 🙂

He conocido a muchas personas en mi vida preguntando, “ooo eres programador, definitivamente puedes reparar mi computadora”

El chico puede ayudarte con los problemas de tu PC. Es muy irritante cuando alguien se acerca a mí con cosas como:

Olvidé mi contraseña.
Mi PC no se está iniciando.

Que un programador es un ingeniero de software o que puede hacer ingeniería de software.

Los programadores escriben programas de alto nivel. Dan instrucciones relativamente simples a sistemas complejos que otros han construido.

Los ingenieros de software diseñan e implementan esos sistemas. Los entienden desde las puertas de hardware y pueden entenderlo cuando algo sale mal y arreglarlo.

Los programadores son la mecánica del mundo del software. Los ingenieros de software diseñan y construyen los automóviles.

Que aprender la sintaxis de un idioma en particular implica que eres un programador .

Una analogía simple sería: la mayoría de nosotros aprendemos a leer y escribir lenguaje (s) humano (s) a una edad muy temprana, pero eso no nos convierte en escritores. Un lenguaje es solo un medio o una herramienta para expresar nuestras ideas.

Puede ayudar a las personas a crear ppt elegantes, diseños web agradables, encontrar buenas ofertas móviles o reparar su impresora

More Interesting

¿Cuál es la mejor manera de comenzar a aprender el diseño de algoritmos si no has tomado un curso de informática en la escuela?

¿Alguien ha creado una estrategia comercial sistemática?

¿Puede el software hacer algo?

¿Cuáles son algunas de las razones por las que un profesional de la tecnología se mudaría del Área de la Bahía a Seattle?

¿Qué tan difícil es la transición del desarrollo web a la ingeniería de software?

¿Qué función cumplen los analistas de garantía de calidad de software?

¿Cómo puede una organización de desarrollo de productos ágil elaborar una respuesta competitiva a una solicitud de propuesta (RfP) tradicional con muchos requisitos?

¿Qué hacen los arquitectos de software?

¿Es cierto que Infosys asigna tecnologías al azar basadas en los requisitos del negocio? ¿Qué pasa si alguien se atasca en una tecnología que no tiene alcance futuro? ¿Cómo se pueden cambiar las tecnologías, cuando todas las empresas piden experiencia en lugar de habilidad?

¿Por qué C y C ++ siempre se mencionan como C / C ++ en lugar de C, C ++?

¿Hay una universidad no Elite en Alemania (preferiblemente cerca de Berlín que ofrezca cursos de idiomas) a la que pueda asistir para la ingeniería de software? De nosotros.

¿Cómo podría impulsar mi carrera como ingeniero de sistemas integrados en India?

Recientemente me gradué con una maestría en informática y estoy trabajando como desarrollador de QlikView. Quiero cambiar mis campos a cualquiera de los anteriores o como nuevo ingeniero de software graduado. ¿Cómo debo proceder?

Cómo aprender a leer el código

¿Qué cosas 'específicamente Java' debería revisar para prepararme para una entrevista de puesto de desarrollador de software (centrada en Java)?