Convertirse en un programador profesional, sin ir a la universidad? [cerrado]

16

Recientemente fui rechazado de una universidad que me había aceptado anteriormente, debido a que pasé un año de secundaria en un país extranjero y la universidad no estaba interesada en reconocer la educación recibida en otra nación. Debido a esto, una beca muy generosa se ha agotado, y el financiamiento de una educación es dudoso. También dudo en formar parte de un sistema que ha demostrado lo que considero xenofobia flagrante.

Lo que quiero hacer es decir "A la mierda la universidad", salir adelante por mi cuenta y hacer algo increíble, sorprender a todos y convertirme en millonario. La realidad de la situación es que estoy dos semanas fuera de la escuela secundaria, tengo aproximadamente el equivalente de un curso de Introducción a la programación de experiencia autodidacta (aunque estoy impulsado a aprender y mejorar), todavía tengo que pagar facturas, y tengo la sospecha de que cualquier empleador tendrá dificultades para tomarme en serio.

Según tengo entendido, es una creencia bastante popular que puedes lograrlo sin un título, pero ¿cómo hace eso alguien como yo? ¿Alguien me tomaría en serio si entrara a su oficina y dijera "No tengo educación formal y un mínimo de habilidades, pero quiero trabajar y quiero aprender. Por favor, denme un trabajo"?

Kenis Regan
fuente
3
¿Por qué no vas a un colegio comunitario y luego te transfieres a una universidad? Es la ruta más barata para obtener un título.
davidk01
1
¿Puedes rehacer ese año de secundaria en tu propio país y luego tener todas las avenidas abiertas para ti? Si estás aburrido la segunda vez, siempre puedes comenzar a programar esos proyectos que sospechas que te harán millonario. Sin embargo, hoy en día, es mejor volverse multimillonario.
John K
2
No debe aceptar el rechazo de un personal burocrático universitario, como si viniera de un profesor. Los profesores generalmente solo participan en la selección de los estudiantes de posgrado. Si yo fuera usted, me defendería educadamente, contactando a la universidad y preguntándoles qué se necesitaría para demostrar su habilidad y luego cumplir). La educación secundaria es financiada por los contribuyentes, por lo que haría otro año como alguien sugirió. También consideraría ir a la universidad comunitaria por un par de años, como dijo alguien más. La pregunta es: ¿valoras más el tiempo o el dinero? ¡La mejor de las suertes para ti!
Trabajo

Respuestas:

27

He estado en la misma posición que tú, y elegí ese camino de 'universidad de mierda' del que hablas. Me encantaba el desarrollo de software, un pasatiempo de C ++ además de un curso básico de programación de HS y sueños. Ahora soy un desarrollador profesional, así que te daré mi experiencia.

Después de ir a la universidad durante 1 año (tenía una beca completa para teatro técnico), descubrí que me gustaba más el software que la construcción de escenarios.

Año 1- Comencé mi "cosa propia" que consistía en soporte de escritorio para pagar el alquiler y el desarrollo. Desarrollando cualquier cosa que pueda hacer, para cualquiera que lo desee, a una fracción del precio. Mirando hacia atrás, probablemente estaba haciendo solicitudes de $ 20,000 por $ 1,000. Comenzar por tu cuenta realmente apesta porque, incluso si tuvieras la experiencia de saber que es una aplicación de $ 20K, no tienes la credibilidad para pedirla. Y lo peor de todo, no tengo idea de lo que no sé, y no hay otros desarrolladores a mi alrededor. Creé aplicaciones que eran pesadillas de mantenimiento. No tenía habilidad en arquitectura o patrones de diseño, así que básicamente hice cosas que explotaron e hice soporte de red para pagar las facturas. Un montón de Taco Bell, mezclado con "bueno, al menos no estoy trabajando para el hombre". Tengo algunos sueños de aplicaciones para escribir y salir al mundo,

Año 2 : convertirse en un desarrollador un poco mejor al aprender qué no hacer y ver cómo me explotan en la cara. Apenas sobrevive con el soporte de escritorio, aprendiendo servidores y creando sitios web Debe ser más fácil que esto para el hombre, pero no tengo una cartera real, así que sigue adelante.

Año 3- Empezando a acostumbrarme a esto. Cuando presiono Archivo> Nuevo proyecto, tengo una vaga idea de a dónde quiero ir y cómo construir cosas. Aún eligiendo las arquitecturas incorrectas, los servicios web parecen geniales, así que ¿por qué no construir TODO con ellos? ¿Necesita una aplicación de escritorio de calculadora? ¡Construiré un servicio web! Comenzando a captar algunos clientes y ser el tipo de TI y algunos proyectos de software en el camino. Una cosa que hice fue crear un servicio de Respaldo externo usando Servicios web, por lo que mi sueño era ser un 'Mozy' mientras todos intercambiaban cintas. La banda ancha se estaba convirtiendo en algo común, así que estaba por delante de la curva, y esta iba a ser mi idea de un millón de dólares. Pero el servicio tenía problemas (debido a mi falta de habilidades de arquitectura),

Año 4 - Finalmente, un cliente cree en mí para un proyecto a largo plazo. Me las arreglo para hacerlo sin arruinarlo; el código no es genial pero funciona. Comenzando a ponerme al día con las facturas, me pongo a trabajar con algunos otros desarrolladores (finge hasta que lo hagas, ¿verdad?) E incluso respondo algunas preguntas de Intercambio de expertos. Oh si.

Año 5 : si aún no lo había notado, esos sueños en el año 1 aún no están escritos, por lo que eso comienza a ser un poco deprimente. Tengo una cartera decente de cosas que he escrito con éxito, obtuve un impulso decente y una base de clientes respetable. Todavía no sé realmente lo que no sé, y el punto de equilibrio.

Años 5 - 8 - Combinaré estos ya que es más de lo mismo de "hacer un proyecto, aprender un poco sobre cada uno, llevar esa experiencia al próximo". Hoy es a mediados del año 8, y solo en el último año o dos me he convertido en un buen desarrollador. Esos sueños en el año 1 ya han sido inventados muchas veces por otra persona. En caso de que no lo hayas adivinado, no creé Mozy.

En el camino he tenido nuevos sueños y nuevas ideas, y algunos han sido buenos, otros han sido horribles. Ahora tengo las habilidades para hacer que sucedan, y algunos de ellos están sucediendo, y es emocionante. Sin embargo, tengo la sensación de que si hubiera hecho las cosas de manera diferente, podría haber acortado este viaje bastante.

No puedo hablar de cuán diferente la universidad cambia este viaje; Dejaré eso a otros en este hilo. Pero los consejos que daré:

  1. Necesitas trabajar con otros desarrolladores. No me di cuenta de lo importante que era esto. No sabes lo que no sabes hasta que miras el código de otra persona u obtienes una horrible revisión del código.
  2. Falla antes de tener grandes responsabilidades. Si realmente quiere salir por su cuenta, intente hacerlo antes de casarse, tener un pago de la casa, hijos, etc. Fracasará y fracasará muchas veces. Acostúmbrate y valóralo, ya que es la mejor experiencia de la historia. Pero cuando tu aplicación asesina en la que acabas de gastar todo tu tiempo y dinero no tiene un solo cliente, es mucho más fácil recuperarse cuando solo eres tú.
  3. No hay absolutamente nada de malo en el arranque. Si tiene habilidades de red, vaya a trabajar en un Centro de operaciones de red o en un servicio de asistencia (algo dentro del ámbito de TI) y trabaje para convertirse en un mejor desarrollador fuera de horario y los fines de semana. Haga conexiones con personas en trabajos reales. Los necesitarás más tarde.
  4. Esté 125% seguro de que AMA el desarrollo de software. La pasión por el software viene antes de la parte 'millonaria', no al revés. Si no te apasiona esto, o tu corazón no comienza a latir un poco más rápido cuando llegas a New Project, ve a hacer otra cosa y mantén esto como un pasatiempo.

Estoy seguro de que podría continuar, pero lo curioso es que vi esta pregunta mientras trabajaba en uno de esos sueños y tuve que responder a esta. :) Buena suerte.

Brandon
fuente
66
Como desarrollador web autodidacta, puedo aceptar que el punto "No sabes lo que no sabes" es particularmente válido.
Ben Stephenson
55
+1 para "Fallar antes de tener grandes responsabilidades". Soy autodidacta y pasé años trabajando en proyectos independientes por la noche antes de obtener un puesto a tiempo completo. Mirando hacia atrás, no cambiaría nada, pero si por un giro inesperado conocí a mi señora antes en el proceso, sé que no me casaría en un par de meses, 80-100Hr semanas no funcionan demasiado bien una relación.
DBlackborough
16

Sin duda, ve a la universidad.

Personalmente, lo hice sin la universidad (sin decir que soy millonario, pero tengo un buen trabajo en una empresa para la que amo trabajar), pero es un camino difícil . Inicialmente, estás detrás de la curva en todo . Matemáticas, algoritmos, sistemas operativos, todo lo que obtienes durante una educación formal (y algunos de los cuales, es decir, Cálculo, es muy difícil de aprender en ti, incluso con acceso a cosas como las matemáticas. SE).

Al estar recién salido de la escuela secundaria, es posible que pueda ingresar a un departamento de control de calidad y comenzar a sumergirse en todo lo que pueda. Sin embargo, el camino desde el control de calidad hasta el desarrollador o el ingeniero puede ser difícil, ya que hay una generalización (a veces pobre) sobre las personas que vienen del control de calidad que intentan entrar en un camino de desarrollo.

Hacerlo sin un título es factible, pero tremendamente difícil y requiere tanta suerte y trabajo en red como pura habilidad.

Aunque amo lo que hago y estoy orgulloso de mis logros personales, nunca lo recomendaría a nadie que tenga la habilidad y esté en una buena posición para realizar un programa de grado.

Demian Brecht
fuente
+1 No fui a la universidad yo mismo, dejé la escuela temprano y tuve que superar muchos problemas cuando comencé como desarrollador de software sin las credenciales requeridas. Sin embargo, ese camino me hizo como si fuera hoy, ¡y me gusta cómo soy hoy! ¡Me gusta tanto aprender que estoy a punto de comenzar los estudios universitarios (en otro campo)!
3
Estoy en desacuerdo. Entré a tiempo completo, desarrollo de software profesional sin un título, y creo que todo depende de la persona. Odio la educación formal y estructurada, y prefiero aprender mientras hago las cosas. Sé que nunca habría podido pasar la universidad (a pesar de que tenía las calificaciones para obtener una decente), simplemente porque todo es muy teórico y, bueno, no tiene sentido. Entonces, si no eres el tipo de persona que va a disfrutar la estructura de la universidad y eres un autodidacta seguro (que debes ser un desarrollador para ser honesto), entonces la universidad no es necesaria.
Ben H
La educación formal es una raqueta. La teoría, como dijo Ben, no tiene sentido a menos que esté trabajando en una capacidad académica. Realmente no puedo entender la obsesión de las personas con la educación formal, y pasar 4 años dando conferencias entre otros 30 estudiantes, en lugar de pasar esos 4 años aplicando lo que estás aprendiendo. ¿No aprendemos haciendo? No solo eso, ¿por qué pasaría 4 años en un título, heredaría una deuda aplastante, para luego seguir una carrera y ahorrar para la jubilación? ¿Por qué no construiría mi propia empresa? ¿Hacer mi propio dinero? ¿Usar las herramientas que quiero usar? El concepto de empleo es ridículo.
Damien Roche
4

Con su currículum actual, no obtendrá un trabajo como desarrollador, así que ni se moleste.

Si no puede o no quiere ir a la universidad, tendrá que adquirir experiencia por su cuenta. Es una forma difícil de hacerlo, pero se puede hacer. Las aplicaciones móviles son una buena manera de comenzar, ya que puedes poner tu producto frente a usuarios reales muy fácilmente. Contribuir a proyectos de código abierto podría ser otra opción. O simplemente escriba algo para su propio uso. Al principio, no ganará dinero con esto, al menos no lo suficiente para ganarse la vida, por lo que probablemente también necesite un trabajo regular. Esté atento a las oportunidades de obtener una educación barata; algunas universidades te permiten tomar cursos sin crédito por una fracción de la matrícula regular.

Haga esto por algunos años, y luego puede comenzar a enviar currículums. Asumiendo que todavía quieres hacer esta mierda para vivir.

Buena suerte.

Mike Baranczak
fuente
3

Hmm ... esto es difícil. Creo que realmente depende de tu naturaleza como persona.

Si realmente conociera el contenido en unos 6 u 8 libros, sería un desarrollador muy sólido (años más allá de lo que está produciendo la mayoría de los programas de CS, en serio). Toma los fundamentos en serio; muy en serio, como una religión en serio (KR podría ser tu biblia).

La idea de hacer pequeños proyectos es buena. Siempre trate de mejorar usted mismo: elija un par de ecosistemas y apréndalos bien (1 - diga ROR o Django en Linux con mysql y 2. iOS / Objective C; 2.5. - agregue jQuery / HTML).

editar --- en la parte superior de mi cabeza, sugeriría la lista a continuación (en ~ este orden); Tengo 9 pero uno es un libro de matemáticas, uno es un libro de secuencias de comandos / Java, y el último lo consideraría opcional. Hay un par de temas más allá de esto que se tratarían en Joel on Software. Creo que esto te haría un desarrollador muy fuerte, estoy seguro de que otros no estarían de acuerdo.

  1. El lenguaje de programación C - Kerrigan y Ritchie - la mayoría de los otros libros son una muestra de los problemas planteados aquí
  2. un buen libro de secuencias de comandos en el idioma de su elección (Ruby, Python, PHP) o libro de Java
  3. Sistemas informáticos: una perspectiva de los programadores: este libro sigue dando y dando
  4. Matemáticas discretas con aplicaciones - Epps (?)
  5. Programación avanzada en el entorno UNIX
  6. Un libro de aprendizaje automático / IA puede ser Reconocimiento de patrones y aprendizaje automático O un libro dedicado a redes como TCP / IP ilustrado vol. 1
  7. Patrones de diseño o patrones de diseño J2EE
  8. Diseño de algoritmo - Kleinberg
  9. Comprensión del kernel de Linux: opcional
timpone
fuente
¿Qué es el KR? ¿Es este un libro?
Ominus
2
@Ominus Creo que se está refiriendo a "El Lenguaje de Programación C" - en.wikipedia.org/wiki/The_C_Programming_Language
@Glenn +1 ¡Gracias! @timpone cuando dices 6 u 8 libros, ¿tienes algunos en mente o simplemente hablando en general? Si está pensando específicamente en libros específicos, me encantaría ver la lista. Gracias.
Ominus
@Ominus Personalmente, diría que cualquier libro relacionado con los lenguajes de programación que usa y los libros de esta pregunta ( programmers.stackexchange.com/questions/870/… ) también son buenos.
1
@timpone: Ah, me perdí # 7 :) Y sí, obviamente no estamos de acuerdo, lo cual está bien (algunas de las mejores conversaciones nacen de desacuerdos :))
Demian Brecht
2

Comencé como uno de esos desarrolladores universitarios de tornillo. Hoy en día estoy terminando la universidad a pesar de que tengo un buen trabajo bien remunerado como desarrollador.

Comencé a jugar con la programación de computadoras cuando tenía unos 9 años. En los años 90, gané dinero creando sitios web para amigos y esto me dio experiencia de primera mano con la web temprana (jugué con javascript, estaba bastante confundido cuando apareció CSS, etc.).

Cuando era adolescente decidí que era hora de aprender realmente la programación de computadoras en profundidad, así que busqué en Internet los temas que todo programador debería saber y luego gasté todo lo que tenía en libros. Compré un libro sobre Matemática discreta, un libro sobre el sistema operativo y un libro sobre programación en C en entornos UNIX.

Luego me dispuse a aprender programación orientada a objetos con C ++ y aprendí Python y Java en el camino y esto me dio mi primer trabajo (no valió la pena, pero pronto dejaría este trabajo por uno mucho mejor).

Cuando llegué a la universidad, me encontré realmente frustrado. Excepto para clases como Cálculo, Estadística e Idiomas formales; Prácticamente ya conocía todos los temas cubiertos en el curso y el equilibrio de la universidad y mi trabajo se hacía cada día más difícil.

La universidad me hizo sentir tan frustrado que abandoné y decidí aprender todo lo que necesitaba solo. De nuevo, compré más libros, participé en proyectos de código abierto y seguí cambiando de trabajo para seguir obligándome a aprender cosas nuevas.

El año pasado, decidí volver a la universidad (aunque todavía me frustra). La razón por la que decidí terminar la universidad fue porque ahora tengo la oportunidad y no quiero tener que arrepentirme nunca de haber ido a la universidad.

Entonces, sí, puedes trabajar como desarrollador de software sin un título, pero tendrás que estudiar mucho, tomar algunos trabajos pésimos cuando aún eres un principiante y mostrar a cada empleador potencial que tienes conocimiento, experiencia y que eres realmente inteligente ( después de todo, debes convencerlo de que te contrate a ti y no al otro tipo que tiene ese título de CS). Solo asegúrese de comprender las estructuras de datos, los algoritmos y el análisis de algoritmos, los patrones de diseño y algunos conceptos del sistema operativo.

Mi último consejo para ti: si puedes permitírtelo, deberías ir a la universidad. Confía en mí, será mucho más fácil ahora que todavía estás recién salido de la escuela secundaria y no tienes que preocuparte por pagar las facturas. Ser desarrollador sin ir a la universidad solo funciona si comienzas muy temprano. La gente lo contratará si tiene un título pero no puede codificar bien todavía, ahora, si no tiene un título y aún no puede codificar bien , no será contratado.

Rafael
fuente
1

Si puedes ingresar a la universidad, te será más fácil, pero no es necesario.

La clave es tener cosas que puedas señalar y decir "hice eso". La única forma de hacerlo es trabajar desde abajo. Comience haciendo trabajos ocasionales para las personas que "solo necesitan un programador". Quizás visite lugares como eLance .

También puede escribir su propio software y venderlo. Elija algún problema que todavía no tenga una buena solución en el mercado y escriba un programa que resuelva ese problema. Podrás venderlo. Entonces tendrás algo de credibilidad. Honestamente, probablemente harás un trabajo horrible si es tu primer proyecto real, pero aprenderás muchísimo y aún venderás copias si es útil. El código no tiene que ser bonito. Los usuarios solo ven la interfaz de usuario.

La experiencia es clave. Afortunadamente, la programación es una de esas profesiones en las que casi no se necesita ninguna sobrecarga para comenzar. Solo date cuenta de que hay una curva de aprendizaje muy larga por delante.

Scott Whitlock
fuente
0

Los empleadores quieren al menos una de dos cosas (o ambas): educación o experiencia práctica. Por lo general, obtener una educación es una de las formas más fáciles de ingresar al sistema donde finalmente comenzará a obtener experiencia práctica. Obtener una educación le dice a un empleador que te quedarás con algo que es difícil (y que a veces puede parecer inútil y una pérdida de tiempo). Esto es importante para ellos porque el trabajo, no importa cuánto lo disfruten, nunca será fácil ni divertido todo el tiempo. Quieren saber que te vas a quedar ahí.

Dicho esto, si vas a intentar la ruta que delineaste, tendrás que obtener algo de experiencia práctica. Yo personalmente recomendaría buscar nuevas empresas (generalmente son un poco más propensas a arriesgarse con alguien con poca o ninguna experiencia). Otra cosa a considerar es conseguir un trabajo de cualquier tipo (para pagar las facturas), luego pasar tiempo desarrollando proyectos de algún tipo que pueda usar como currículum. Una vez que tenga un pequeño arsenal de proyectos, estará en una posición mucho mejor para acercarse a los empleadores y decir "Esto es lo que puedo hacer ...".

Mi recomendación personal sería ir a la escuela. No importa mucho cuál y con subvenciones y becas que están ampliamente disponibles y no se utilizan, hay muchas maneras de financiar una educación. Al final, es probable que estés muy agradecido de que te hayas quedado con la escuela para terminar y obtener un título.

Kenneth
fuente
0

He estado fuera de la escuela secundaria durante aproximadamente 2 años. Ya tengo un trabajo en programación y solo tomé unas 20 o 24 horas de universidad. Sin embargo, no tuve suficiente dinero ni tiempo para hacerlo después de los primeros dos semestres.

¿Cómo conseguí mi trabajo en programación? Suerte, básicamente. Pero puede aumentar sus probabilidades de hacerse notar afortunadamente. La razón por la que me notaron fue por algunos pequeños programas paralelos que hice y mostré a mis amigos. Eso, y yo era conocido como "The Computer Guy" con más maestros que me preguntaban cómo reparar su computadora que el tipo de soporte técnico real. Bueno, uno de los padres de mi amigo era dueño de una pequeña compañía de software ...

El consejo que te daré es que no dejes de hacer cosas. Aprender y hacer. Haga cualquier proyecto que alguien quiera. Cualquier cosa interesante para usted, o cualquier cosa que alguien le pague incluso un centavo por hacer. Contribuya a proyectos de código abierto también. Un ambiente de equipo es bueno.

Además, dése a conocer en un sitio web como StackOverflow. Obtuve mi segunda oferta de trabajo de una consulta de Stack Exchange en StackOverflow que básicamente mostraba a todos en Oklahoma ... y yo era la persona mejor calificada en reputación.

Earlz
fuente
0

Genial, excelentes respuestas aquí. También agregaré mi propia experiencia.

He estado programando de una forma u otra desde que tenía 5 o 6 años (¿TI BASIC, alguien?) En 1995 más o menos me metí en Linux y comencé a enseñarme C y Perl. Ni siquiera tomé un curso de programación en la escuela secundaria, porque en ese momento estaban enseñando Visual Basic y Visual C ++, y tampoco me interesaba.

Fue al colegio. CS 101 fue "Introducción a la programación (Visual Basic)". Se convirtió en una filosofía principal.

Abandonó la universidad. Trabajó en CompUSA, comenzó a hacer desarrollo web independiente.

Trabajé en cafeterías o trabajos de soporte técnico, seguí codificando por mi cuenta ... haciendo programación independiente y de código abierto.

Mi primer trabajo de codificación "real" (con "programador" en el título) vino a través del nepotismo. Un amigo dejaba un puesto y le pidieron que encontrara su reemplazo.

Ahora recibo ofertas de forma regular, mi trayectoria profesional se ve bien, no me preocupa ese grado. Pero voy a volver a golpear algunos de esos cursos de CS ... A pesar de que la informática! = Programación del mundo real, aprenderá algoritmos y (con suerte) patrones de diseño que le impedirán hacer cosas estúpidas y reinventar la rueda. Entonces la escuela no es necesaria ... pero ayuda.

Principalmente, diría, incluso si tienes que ir a una escuela estatal o incluso a un colegio comunitario, ve y aprende todo lo que puedas. Sigue pirateando proyectos de código abierto en tu tiempo libre (GitHub es el nuevo currículum, como dicen), y si aparece algo más atractivo ... no tienes que terminar. No tiene que graduarse para incluir un conteo de crédito y un GPA en su currículum, FWIW.

De todos modos, la mejor de las suertes. Si realmente te apasiona escribir un buen código, esa es la clave. Pero la universidad es una especie de "dependencia del sistema heredado" para la mayoría de las empresas.

Jason Lewis
fuente