¿Hay desarrolladores / programadores exitosos que no tengan un título en informática?

Lectura de libros y recursos en línea, prueba y error, codificación más.

El conocimiento universitario es en gran medida irrelevante para la codificación de producción real, especialmente para aplicaciones empresariales. Los algoritmos que aprendes en la escuela en gran parte ya están mejor codificados en las bibliotecas existentes y van a funcionar lo suficientemente bien, y mejor que la mayoría de las implementaciones que un chico fuera de la escuela podría codificar (ya que quien codificó la biblioteca se ha topado con todos los problemas, cuellos de botella de rendimiento, etc. .). Es solo en casos raros y los niveles de escala más allá de la mayoría de los programas que se van a encontrar que existe un requisito real para mejorar las implementaciones existentes.

Programar es mucho más que conocer un lenguaje de codificación. La verdadera habilidad proviene de comprender los problemas, tener experiencia con diferentes tipos de soluciones y saber qué aplicar, y técnicas de experimentación.

Y también es muy importante la capacidad general de investigar y aprender cosas nuevas, ya que la programación es un entorno que cambia constantemente, por lo que creo que muchos programadores exitosos son exactamente el tipo de personas que pueden aprender sin el entorno universitario estructurado, que es por qué podían aprender por su cuenta, y cómo continúan manteniéndose al día y continuamente aprendiendo más. El aprendizaje constante es crucial para una buena programación, y muchas personas que solo asistieron a cursos universitarios nunca tuvieron que demostrar esa habilidad.

La programación también es muy adecuada para el aprendizaje individual, ya que una vez que tienes la computadora, la experimentación consume muy poco recurso que no sea el tiempo (y un poco de electricidad). Pero puede construir y reconstruir, experimentar con una técnica, luego con otra, y no tener que comprar más materiales, ni desarmar nada. Por lo tanto, un autoaprendizaje puede probar muchas ideas diferentes hasta que encuentren lo que funciona mejor. Y luego, una semana más tarde, descubra los problemas que el enfoque causa en otros lugares e intente algo nuevo para resolverlos. Una vez más, este tipo de experimentación es lo que hace a los grandes programadores geniales, y el mismo conjunto de habilidades les permite aprender de forma independiente.

He trabajado con y contratado a programadores con y sin títulos universitarios, y he tenido más éxito con los chicos autodidactas. Las cosas que los chicos de la universidad sabían de un aspecto académico de la informática eran bastante inútiles para crear aplicaciones de negocios.

Absolutamente.

A medida que el campo de la tecnología y nuestro enfoque colectivo hacia la educación evolucionan, la importancia de un título en ciencias de la computación disminuye, no aumenta.

Parte de la razón es que simplemente hay demasiados trabajos en tecnología. Si las empresas solo contrataran personas con títulos en informática, tendrían innumerables escritorios vacíos.

La otra parte de la razón es el hecho de que los colegios y universidades no siempre son expertos en mantenerse al día con las últimas tecnologías y dar a sus estudiantes experiencia práctica. Muchos programas de CS se centran en lenguajes específicos, teoría e historia. Y todo eso es importante, pero en el mercado actual, los candidatos más exitosos son personas que pueden demostrar experiencia y habilidad.

Muchas de las principales empresas no requieren ningún tipo de licenciatura para una serie de sus mejores cargos, y mucho menos un título de CS. En cambio, las empresas están empezando a centrarse en lo que las personas pueden aportar a la mesa, porque un buen resumen en papel rara vez es un indicador sólido de qué tan bien se desempeñará una persona en un trabajo determinado.

Entonces, ¿quiénes son las empresas que contratan para sus puestos de desarrollador y programador?

Hay CS mayores en la mezcla, sin duda. Pero también hay muchos graduados de bootcamp que traen experiencia de vida de otros campos (el graduado promedio de bootcamp tiene seis años de experiencia laboral antes de pasar a la codificación). Y de hecho, el 72% de los empleadores piensa que los graduados de bootcamp están tan preparados y tienen más probabilidades de ser de alto rendimiento que los titulados de CS. Otro 12% piensa que los graduados de bootcamp están más preparados para triunfar.

Dicho esto, el número de graduados de bootcamp ha aumentado dramáticamente en los últimos cinco años. De hecho, se encontró que la cantidad de currículums en su plataforma que se referían a la experiencia de codificación de bootcamp se había quintuplicado de 2014 a 2016. Y esos números solo están aumentando.

Claramente, los campamentos de entrenamiento han encontrado un punto de apoyo, y los empleadores están interesados ​​en estos candidatos, pero el mar de programadores y de CS se volverá más denso y profundo.

Por lo tanto, es cada vez más importante encontrar formas de distinguirse para conseguir el trabajo de sus sueños. No necesariamente necesitas un título extravagante de uno de los mejores programas de CS, pero sí necesitas poder demostrar que tienes lo que se necesita para ser uno de esos “de alto desempeño” por los que las empresas están tan desesperadas.

¿Cómo haces eso?

  • Haz tus propios productos. Necesita un portafolio que pueda señalar como una representación sólida de sus conocimientos y habilidades.
  • Súbete a GitHub. Empezar a hacer conexiones y contribuir a proyectos de código abierto. Demuestre que continúa su educación fuera del aula con proyectos del mundo real.
  • Elija una opción de educación dedicada a su éxito continuo.

El último punto puede ser el más complicado, porque hay muchas opciones que hay que considerar. Y estoy a punto de darte una más – Make School.

Make School Product College es un programa de dos años que es más completo que un bootcamp y más acelerado que un programa tradicional de CS. En nuestro campus en San Francisco, nuestros estudiantes crean sus propios productos con la instrucción de asesores experimentados, justo en el corazón de Silicon Valley.

Para obtener más información sobre nuestro enfoque alternativo a la educación en informática, visite nuestro sitio web.

Los grados a menudo son tan inútiles como el papel en el que están impresos.

A menos que hayas asistido a una universidad muy buena y te hayas esforzado por aprender en lugar de solo obtener calificaciones, todo lo que tienes es un montón de información, con poco conocimiento.

La mayoría de los buenos programadores que conozco (incluyéndome a mí) eran programadores mucho antes de que fueran introducidos en sus académicos. Muchos de ellos tienen títulos en materias que no tienen nada que ver con la informática.
Si estás interesado en algo, terminas pasando mucho tiempo con él, y naturalmente lo haces bien.

También hay una distinción entre saber ciencias de la computación y poder desarrollar software: es la diferencia entre un científico y un ingeniero (que también tiene que ser arquitecto, albañil, decorador de interiores, electricista y fontanero)

La informática básica es esencial para poder programar bien, pero conocer bien la informática no necesariamente lo convertirá en un programador de ninguna habilidad.

La experiencia y la práctica hacen el máximo impacto, sin mencionar la adopción incansable y el aprendizaje de las nuevas tecnologías y tendencias de software.

Muchos otros han respondido esto bien. Para mi, no tengo titulo Dejé la medicina y caí en informática hace casi 35 años. El mejor programador que he conocido fue un estudiante de química. Los graduados de física son a menudo grandes programadores.

La clave es tener curiosidad. Necesitas poder resolver cosas y eso significa aprender por tu cuenta. Me considero un profesional solucionador de problemas. Eso es lo que mejor hago, y por eso soy un programador exitoso.

En mi carrera profesional he visto a muchos graduados de CS ir y venir, y lo más importante que me llamó la atención es que si quieres un nuevo lenguaje o un compilador construido, entonces un graduado de CS probablemente será muy útil. La mayoría de la programación profesional no tiene nada que ver con construir un compilador, sino resolver problemas de negocios. Todavía tengo que ver a un graduado de CS con menos de al menos 3 años de experiencia en el mundo real capaz de hacer eso.

Eso sí, cuando empecé, no creo que hubiera un título dedicado a CS disponible. Había un curso corto en Fortran como parte de los Métodos Matemáticos 101 que tomé, ya que en el primer año de Medicina tenías que tener una unidad fuera de la facultad.

Entonces comencé a trabajar en una estación de servicio (gasolinera) y la caja registradora era programable. La compañía que lo suministró dejó el manual allí, así que durante el turno de la noche me enseñé a reprogramar el registro. La compañía me ofreció un trabajo. Cuando trabajaba allí, escribí COBOL y C, el COBOL en el que había hecho un curso de una noche corta y aprendí a mí mismo a C. Eso comenzó los peldaños de una larga y relativamente próspera carrera. Todo sin un título.

Yo diría que los desarrolladores / programadores muy buenos (no necesariamente equivalentes a exitosos) son autodidactas. Algunos de ellos también tienen un título en informática para ir con eso.

Esto no es para disminuir el grado de ninguna manera, pero como en cualquier campo, en mi opinión, la mejor manera de ganar experiencia es practicando. Y practicando mucho más allá de simplemente hacer las tareas.

Convertirse en un buen programador no es muy diferente a convertirse en un buen guitarrista. No necesitas mucho conocimiento previo para empezar. Solo levántalo y fideos alrededor. Con suficiente determinación llegarás a ser bueno. Si sabes cómo aprender, estructurarlo, que la gente te guíe, te volverás bueno más rápido.

En algún momento, saber la teoría detrás del instrumento puede ayudarlo a mejorar, a ser más diverso, a colaborar mejor con los demás porque habla el mismo idioma, etc.

Pero solo tener un documento que diga que eres bueno en X, no te hace bueno en X. No puedes convertirte en un gran guitarrista con solo estudiar teoría musical, y no te convertirás en un gran programador con solo estudiar informática. .

Practica, prueba cosas nuevas, fracasa, falla mucho, aprende de ello.

Ahora, si tiene éxito como se indica en la pregunta es un poco diferente. El éxito depende de muchos factores, por ejemplo, habilidades de comunicación. Pero si eres un buen programador, estoy bastante convencido de que serás lo suficientemente exitoso. Además, lo que usted considera exitoso puede ser muy diferente de lo que la sociedad considera exitoso.

Ciertamente. De hecho, me atrevería a suponer que la mayoría de los desarrolladores / programadores exitosos no tienen títulos CS.

En primer lugar, todavía hay un montón de gente de la época en la que no existía algo así como un título de CS, generalmente con títulos en EE o Matemáticas.

En segundo lugar, a menos que esté trabajando en “cosas” fundamentales (arquitectura de hardware, software del sistema), o que trabaje a nivel de sistemas, la experiencia en la materia es mucho más útil que la CS. Es decir, si está modelando el plegamiento de proteínas, probablemente sea un doctorado en biología molecular, con algunas habilidades de software implementadas. Si está haciendo software financiero, un fondo contable es mucho más útil.

Y luego hay algunos “grandes”:

Don Knuth: Física, luego Matemáticas.

Ray Tomlinson: EE.

Joe Armstrong: Física (Pregrado)

(Si no reconoces esos nombres, deberías buscarlos).

Entonces, en 1976, le pedí a mi padre un videojuego (¡Pong!) Y él dijo: “Tengo una idea mejor”. Esa “mejor idea” fue una computadora de una sola placa con un 6502 y 1k de RAM estática (y sin pantalla de video).

A partir de ahí comencé a hacer programas. Y me encantó. Con el tiempo, tomé cursos que me enseñaron Fortran, Lisp y C (los dos últimos fueron muy significativos en mi carrera posterior, el primero no tanto). Pero solo tomaría un curso aquí y allá en mis diferentes escuelas, ya que la programación fue algo que hice por diversión, no la carrera que tenía en mente para mí (¡ciencia!), Por lo que nunca aprendí CS de ninguna manera formal.

Descubrí que la ciencia no estaba funcionando para mí, así que conseguí trabajos aprovechando mi C y mi Lisp y aprendí muchas más cosas, a veces entrando en trabajos donde no conocía el lenguaje de programación ni el sistema operativo.

Podría contarte la aburrida historia de mis diversos trabajos y cómo, finalmente, terminé siendo el “ingeniero viejo y sabio” al que todos miran, incluidas las personas con títulos reales de CS. Pero eso no le interesa a nadie.

Aquí está lo importante: he pasado toda mi vida adulta aprendiendo. Algo de eso fue aprender cosas muy específicas como lenguajes de programación (me encanta aprender lenguajes de programación por alguna extraña razón). Pero lo más importante es que me enseñé a mí mismo CS. Nunca me senté en clase y aprendí sobre la notación O grande o algoritmos o estructuras de datos. Pero tuve que aprender esas cosas. Tuve que aprender realmente el CS en el que no obtuve un título, con el tiempo.

Si no hubiera hecho eso, probablemente tendría un trabajo. Pero no estaría donde estoy y no tendría la carrera muy satisfactoria (con algunos momentos muy insatisfactorios) que he tenido. Me habría quedado estancado haciendo algo muy aburrido, y probablemente estaría encerrado en un nicho muy específico.

Me metí en la programación en un momento muy especial cuando solo estaba empezando y eso era para mi ventaja en algunos aspectos. Pero también hay muchas oportunidades ahora. No es por eso que te dije esto.

La moraleja de esta historia, como tal, es que puedes comenzar a programar sin un título de CS. Pero si quieres ser feliz haciendo eso y tener éxito, necesitas aprender. Usted puede pagarle a Piper por adelantado y obtener un título de CS o puede aprender toda su vida (lo que debería hacer de todos modos, pero el grado de CS le da una ventaja).

No se requiere la credencial de un grado de CS. Pero el conocimiento real adquirido es crucial. Tienes que conseguirlo de alguna parte.

Tal vez eso ayude.

OK, hay algunos puntos a mi respuesta, tengan paciencia conmigo …

¿Qué tiene de importante que un profesor te diga algo, en lugar de descubrirlo tú mismo?

¿Qué puede decirte un profesor de lo que no puedes resolver por tu cuenta?

Esto es algo importante para entender como programador. Si no puedes enseñarte a ti mismo, olvídalo . Seriamente. Si no puedes aprender cosas por tu cuenta, nunca serás un buen programador, te lo prometo.

La autoaprendizaje es una habilidad esencial, incluso si usted va a la universidad, también necesita la autoaprendizaje.

CS! = Programación

CS es importante, pero en realidad no es tan importante para construir productos.

Sí, lo dije. No es.

Hice un poco de trabajo de consultoría hace unos días. Fueron todas pequeñas cosillas, trabajando en torno a los cambios de OSX, cosas así. Nada relacionado con CS, nunca lo es.

CS es una base para la programación, pero estamos sobre los hombros de gigantes, en realidad no necesito saber esto, algún genio lo hizo por mí hace 10 años.

Viejo hombre hablando

Ingresé a la industria hace unos 20 años, en esos días, casi todos eran autodidactas, los grados CS eran raros (en el Reino Unido).

En la empresa donde trabajaba, nadie tenía un título de CS.

Todos aprendimos como niños y adolescentes en la BBC, Commodore, Spectrum. Aprendimos a hacer cosas, y el lado de CS fue realmente teórico, algo que hicieron los profesores, pero no tan relevante para nuestra afición.

No es realmente tan relevante para el trabajo tampoco.

Sí. Soy uno. Mi especialidad fue Matemáticas, mi menor fue Física. CIS (Computer Information Systems) fue un segundo menor “accidental” para mí. Solo tomé un montón de clases de CIS porque descubrí que eran divertidas. Mi camino hacia una carrera en TI también fue algo accidental. Después de ser despedido de mi primer trabajo fuera de la universidad (en un campo completamente diferente) necesitaba trabajo para mantenerme. Obtuve el trabajo de un operador de computadoras solo porque tenía experiencia previa como operador de turno nocturno mientras estaba en la escuela. Me sentí curioso y aprendí COBOL en un curso de autoaprendizaje (todo mi trabajo universitario había sido en lenguajes científicos), y luego me ascendieron a programador de aplicaciones de nivel básico. Aún curioso, hice lo mismo con el ensamblador. Para comprobar mi comprensión personal de eso, diseñé por ingeniería inversa el algoritmo de contraseña interno personalizado. Cuando me “atrapé” (honestamente nunca se me ocurrió que lo que estaba haciendo podría alarmar a la gente, simplemente me perdí en el aprendizaje), el jefe creyó mi historia (aunque) me trasladó a los sistemas y me dio mi primera tarea: reescriba ese algoritmo para que nadie más pueda hacerle lo que yo había hecho. Así comenzó mi carrera como programador de sistemas. Nunca he mirado atrás, y ahora más de 40 años después, todavía amo lo que hago.

Solo hazlo.

Es así de simple, solo empiezas.

Puedes obtener un título en actuación, ¿crees que es esencial para convertirte en actor? No

Muchos de nosotros aprendimos a programar cuando teníamos 8,9, 10 o lo que sea, no estábamos dispuestos a esperar hasta que tuviéramos 18, solo para poder hacerlo en la Universidad. O tal vez hacer un año sabático, y luego aprender.

Elige un idioma, aprende y comienza a escribir programas.

Hay tantas preguntas sobre Quora sobre esperar para aprender, esperar la oportunidad correcta, esperar que alguien les diga la mano, esperar para obtener una Mac, o la computadora portátil correcta, o hasta que puedan pagar los libros correctos.

Es una locura, solo consigue tu computadora, instala algunas cosas y ¡comienza!

No necesitas un título de CS. No tengo un título de CS. Mi hermano no tiene un título de CS. Somos programadores experimentados (ahora retirados).

Puede aprender los conceptos básicos de programación por su cuenta, y después de eso, solo necesita practicar la escritura de programas. Mucha y mucha práctica.

Para aprender los conceptos básicos de programación, puede seguir un tutorial en línea, por ejemplo: Aprenda cómo programar. O bien, puede asistir a un MOOC, por ejemplo: Programación de objetos en vivo en Pharo.

Probablemente hay muchos desarrolladores muy exitosos que no tienen un título de CS. He conocido algunos de ellos. También he visto personas sin un título que no podían codificar nada más complejo que una simple página web. Como otros han señalado, en parte se debe a la cantidad de autoaprendizaje que has realizado. Pero un título en ciencias de la computación en realidad tiene muy poco que ver con la programación. La codificación es solo un medio para traducir sus habilidades de resolución de problemas y diseño / modelado en un programa de trabajo. El grado se enfoca más en conceptos abstractos como gramáticas, análisis de algoritmos y toneladas de matemáticas. Una vez más, la resolución de problemas y el análisis es el verdadero impulso de un programa de licenciatura en CS, no de programación.

Si desea obtener un trabajo trabajando en compiladores, es posible que tenga que mostrar sus credenciales de CS antes de que lo dejen entrar. Entonces también depende de qué tipo de trabajo quieres hacer.

La informática es un campo único donde la barrera de entrada es baja (porque todo lo que se necesita es una computadora), y hay una gran cantidad de recursos gratuitos en línea, probablemente en parte debido al movimiento de código abierto / software libre. Hay numerosos tutoriales, blogs, foros y ejemplos disponibles en línea. La mayoría de las personas comienzan con tutoriales (en todos los idiomas) y luego comienzan a crear sus propios proyectos simples, encontrando orientación en línea y, finalmente, a sus propios proyectos más grandes.

Para mí, la codificación es una forma de pensar, no un conjunto de hechos aprendidos de memoria. El lenguaje es casi irrelevante; Aprendo leyendo código antes de escribirlo. He corregido errores y código escrito en idiomas que nunca había visto antes, después de un par de horas.

Hace muchos años, formé parte de un equipo de desarrollo de productos de software de aproximadamente 20 personas, y un día compartimos nuestros antecedentes. Profesor, contador, vendedor de alfombras, ingeniero químico, bailarín, astrónomo, jardinero y muchas otras áreas más diversas. Ah, sí, y una licenciada en informática. La mayor parte del equipo se había convertido en expertos en algunos aspectos de la codificación, y muchos de ellos iban a rodear a los graduados modernos de informática.

La codificación no es lo más difícil de aprender. Aprender a diseñar tus propios algoritmos es mucho más difícil. Aprender a codificar es como aprender a operar una máquina de coser, y diseñar algoritmos es como hacer un vestido de novia.

Por supuesto. Es cierto si hablas de personajes famosos como Bill Gates o Mark Zuckerberg, o si hablas de personas aleatorias que tienen carreras razonablemente buenas como programadores.

No tengo un título, aunque era un especialista en informática y probablemente debería tener uno. He trabajado con excelentes desarrolladores sin título, y otros con títulos en teología, inglés, física y matemáticas (y algunos en CS también, obviamente).

Hola, aprendí a codificar principalmente comprando un manual / haciendo cursos en línea, como codeacademy, y siguiendo los ejemplos que aparecen allí. Creo que muchas personas han aprendido a codificar lanzándose a ellas, y experimentando con lo que puedes hacer, con la ayuda de sitios web como StackOverflow.

Una excelente manera de introducirse en la programación es usar una Raspberry Pi, comenzando por la codificación en Python. Desde allí, puede expandirse a más idiomas, tal vez completar algunos cursos en línea o buscar formas de acceder a ellos (es decir, desarrollo de aplicaciones de Android con Java / C #).

Espero que esto ayude.

Claro que pueden tener títulos de ingeniería, física o matemáticas. Hace 40 años en los Estados Unidos, muchas universidades solo tenían un departamento de matemáticas aplicadas o ciencias de la ingeniería. Así que aquellos programadores anteriores que son buenos en C, ensamblaje, etc., nunca tuvieron un título de CS.

O tal vez te refieres a personas sin títulos en absoluto. Sí, por supuesto, muchas personas auditan una clase o dos en el colegio comunitario local. Es más barato ya veces gratis. No necesita 4 años, no hay electivas inútiles, no hay requisitos inútiles de matemática.

He sido un desarrollador pagado toda mi carrera sin un título de CS.

Tengo un BEng en electrónica. Aprobaría las partes relacionadas con la programación de un título de CS, y probablemente podría enseñarlas. Solo he tenido que aprender a hacer eso.

Pero no podría entrar y completar un grado completo de CS. Hay demasiado en uno que nunca he necesitado aprender. Tendría que estudiar esas partes como todos los demás.

Estudié ingeniería civil en universidad.

¿Sabes cuántos libros de Ingeniería Civil que leí por deserción en mi tiempo libre?

Ninguna.

¿Sabes cuántos libros de programación leo en mi tiempo libre?

Muchos.

¿Sabes lo que pasé haciendo más de 10 horas al día en mi tiempo libre? ¿Intentando constantemente perfeccionar, mejorar y mejorar?

Programación.

¿Qué crees que hago ahora como profesión?

More Interesting

¿Qué flujo debo tomar para la astronomía después del 10 en la India?

¿Qué universidad es la mejor para una licenciatura en arquitectura: UCL, Cardiff, Kent, Cambridge o Bath?

¿Cuál debería elegir para un CS - NIT Warangal o NSIT Delhi?

Estoy haciendo ingeniería de primer año, pero ahora perdió todo el interés. ¿Qué tengo que hacer?

Estoy 1er año de abandono de MBBS. La gente me está sugiriendo que tome CA basándose en mi calibre. Estoy bastante confundido si debo ir por ello.

Me aceptaron tanto en Swarthmore College como en Cornell University. ¡Quiero estudiar Políticas Públicas y Economía y trabajar en el Banco Mundial! ¿Qué tengo que hacer?

¿Debería duplicar mi carrera en psicología y sociología debido a la superposición de clases?

¿La universidad es todo acerca de la prueba y la asignación?

¿Qué debo hacer para estudiar ms en nueva zelanda?

¿Por qué flujo debo optar para convertirme en un ingeniero de software, y qué debo hacer después de la clase 12?

Estoy muy confundido acerca de mi futuro. Estoy en el primer año de ingeniería, pero no tengo ningún interés. No puedo encontrar mi interés. ¿Qué tengo que hacer?

¿Cuáles son algunas sugerencias de habilidades de estudio para un estudiante extranjero a partir de la Universidad de Witwatersand en Johannesburgo, Sudáfrica?

Al postular a programas de doctorado en CS, ¿qué escuela de posgrado debería elegir? ¿Grupo UIUC System o grupo Harvard System?

¿Debo tomar el inglés regular o de honores de segundo año?

¿Es la concentración un gran problema mientras se prepara para el prestigioso y el gran examen de UPSC? ¿Cómo puede uno mantenerse concentrado mientras se prepara para esto?