¿Qué te mantiene motivado para continuar aprendiendo a programar cuando te das cuenta de que todavía hay una enorme distancia entre tú y un graduado en informática?

La programación es una parte relativamente pequeña de un plan de estudios de informática en muchas escuelas. Pasas el primer par de semestres tomando clases de programación de intro, luego tomas un curso donde se cubren los “temas avanzados” a menudo relacionados con las buenas prácticas y el POO avanzado. En este punto, se espera que usted sea un programador lo suficientemente competente como para escribir programas para otras clases, pero a menudo no son programas difíciles que tiene que escribir.

Si literalmente solo buscas aprender a programar con la misma competencia que un graduado de CS, no hay mucho que cubrir. Lo más importante que viene con ese diploma CS es la capacidad de resolución de problemas y el conocimiento conceptual. La programación no es más que una herramienta que las personas utilizan para interactuar con la computadora. Aún tiene que tener el conocimiento para idear ideas sobre qué codificar. No hay trabajos para que la gente entre al trabajo, se siente con una tarea bien definida (“escribe un programa para ____”), y luego simplemente ejecuta el código.

Si está buscando obtener un trabajo como programador de algún tipo, aprenda los conceptos básicos de la programación y luego intente saltar en algún tipo de proyecto accesible (a la gente de la industria le encantan las contribuciones de proyectos de código abierto). Incluso puedes trabajar a través de un proyecto independiente. Independientemente de cómo quiera hacerlo, creo que trabajar en el proceso de aplicar sus habilidades de programación es lo que lo motivará si realmente es el tipo de persona que está preparada para un trabajo en la escritura de software.

Completar un grado de CS es como cualquier otro grado. Tiene muchos cursos básicos como matemática, física, circuitos eléctricos, electrónica, etc. También hay muchos cursos básicos que tratan algunos aspectos de la computadora como sistemas operativos, redes de computadoras, etc. También hay algunos cursos muy especializados como comunicaciones digitales, procesamiento de señales, inteligencia artificial etc.
Los elementos básicos son quizás 5 o 6 cursos que generalmente son: programación básica, estructuras de datos (clasificación y clasificación), programación orientada a objetos, creación de aplicaciones visuales, tal vez sobre desarrollo web. También hay quizás algunos cursos en metodologías de software y pruebas de software.
Eso es. Nada de mágico al respecto.

Mire, creo que un programador es alguien que practica la programación, no alguien que ha sido enseñado por una escuela oficial. Y hablando de una experiencia personal, una escuela no sustituye la práctica. Si practicas, entonces te adelantas al juego.

Mi consejo es que apruebes algunas notas del curso de MIT OCW y las estudies. Necesitas un poco de orientación con tu aprendizaje. La programación a ciegas no te llevará a ninguna parte. Necesitas desafiarte con preguntas y los ejercicios del curso te ayudarán con eso.

Hay una razón por la que estás preocupado hoy.

Hace 5 años, cuando los estudiantes de CS estaban aprendiendo a programar, no lo estabas haciendo.
Si renuncia ahora, en 5 años, estará preocupado y se arrepentirá de no haber aprendido en los últimos 5 años cuando los estudiantes de CS estaban ganando experiencia. Y este ciclo sigue y sigue.

Lo que debes hacer es pasar menos tiempo lamentándote y comparándote con los demás. Aprovecha ese tiempo para aprender. Ya tiene un tiempo limitado para practicar, dar un tiempo adicional al dolor es un desperdicio patético.

Además, deja de basar tus desarrollos en otros. Establecer un objetivo y trabajar hacia él. Por ejemplo, si su objetivo es trabajar en google, observe los requisitos y trabaje para lograrlo.

Lo que está haciendo un graduado de CS a 100 millas de distancia no debería ser su factor determinante.

También soy autodidacta para programar. Después de un par de meses y libros, descubrí en términos de programación que podía competir con estudiantes del departamento de ciencias de la computación en mi universidad.

Si le da alguna satisfacción, muchos estudiantes de CS (tal vez excluir a los jugadores de la hiedra) se gradúan sin tener suficiente conocimiento del campo.
Los 3-4 años que pasan en la universidad no están totalmente dedicados a aprender a programar, ¿sabe? Y los únicos buenos estudiantes de CS son los que van más allá y son autodidactas.
Nunca he conocido a un buen programador que aprendiera a programar simplemente asistiendo a clases en la universidad.

Lleva mucho tiempo, como ya se ha dado cuenta.

A los estudiantes universitarios les lleva de 3 a 4 años aprenderlos todos, pero eso no es lo que se necesita para producir un desarrollador de software que se pueda emplear. Eso es para producir un científico informático bien redondeado que se pueda esperar razonablemente que cumpla una serie de roles sin mucha capacitación adicional.

Si se enfoca solo en un pequeño subconjunto (por ejemplo, desarrollo de aplicaciones), es muy posible que llegue a un estado de empleo con mucho menos compromiso de tiempo.

Dicho esto, hay cosas en el currículo de CS que son importantes sin importar el campo en el que quieras ingresar, y realmente no puedes escatimar en eso. Básicamente todo en un currículo típico de 1er año, y 2do año en menor medida.

Si tu principal motivación es el ingreso, lo olvidaría. La programación apesta si no estás ENAMORADO con ella, y si estás pensando en rendirte, diría que probablemente no lo estés.

Si solo quieres ganar mucho dinero, hay formas mucho mejores.

Absolutamente: no te rindas !

De qué y cómo escribes, seguramente pareces lo suficientemente apasionado como para tener éxito

Además, tenga en cuenta que un graduado de CS no hace mucho más (1-2 horas / día, todos los días) para aprender a programar. Una licenciatura en CS abarca muchos, muchos campos, temas y temas diferentes, y la programación es solo una parte (cada vez más pequeña, me dijeron).

Dicho esto, me ayudo con dos ojos : uno mira hacia atrás, al pasado ; Hace poco tiempo, para darme cuenta de lo deficiente que era mi habilidad de codificación en comparación con la actual, así que, con suerte, puedo mejorar mucho una y otra vez si pongo mi mente y mis energías en ello como lo hice 🙂

El otro mira hacia el futuro : tengo una lista de temas que quiero aprender, sé más o menos dónde aprenderlos y cómo practicar, así que es solo una cuestión de tiempo que mi kung fu me lleve allí.

Un tercer ojo podría estar listo para el presente : no es como si estuviera conteniendo la respiración hasta que me convierta en uno de los programadores más famosos de la historia y estoy bastante satisfecho con lo que puedo hacer ya.

Y eso también podría aplicarse a usted: no necesita ser medallista de oro en algún concurso de codificación para, por ejemplo, poder hacer un desarrollo web o escribir un código común para ser más empleables y hacer algo que disfrute.

De ningún modo.

Oh, soy un graduado de Administración y Negocios y me encontré capaz de comparar un CS graduado en (pocas) áreas, si esto te ayuda, puedes hacerlo también.

Si hay una voluntad, hay una manera, confía en mí 🙂

Comparando con otros es uno de los mayores bloqueos mentales alrededor.

¡¡Sólo tú puedes ser tú!! Nadie más.
No pasaron por tu vida y enfrentaron los mismos problemas o elecciones.
No tienen tus fortalezas o debilidades. Así que no tiene sentido comparar cosas inherentemente desiguales. Como comparar dos copos de nieve. El viaje que recorrieron les da forma literalmente. Tienen un nombre común pero son totalmente únicos.

Si te comparas con una persona y tratas de ser como ella, gastarás mucho tiempo y esfuerzo en tratar de convertirte en otra persona. Luego, te encuentras con otra persona y pierdes más tiempo agonizando por tu “error”, luego corriges y sigues a esa segunda persona. Esto nunca termina y ciertamente no es un lugar feliz para estar.

Sé el mejor TÚ que TÚ puedes ser. Como existes hoy, ahora mismo.
¿Aprendiste algo hoy en un campo específico que te ayudó a ser mejor que ayer? Si sigues este objetivo simple, alcanzarás rápidamente un buen nivel de habilidad en ese campo elegido. Fácilmente puede mantener un buen trabajo con eso.

Después de hacer esto un par de veces en varias habilidades, te darás cuenta de que no fueron las diferentes habilidades las que fueron difíciles (ya que ahora las conoces y parecen más fáciles que antes). En realidad estabas luchando con varios bloqueos mentales que habías desarrollado inconscientemente.

A medida que te vuelves más consciente, te das cuenta de que otras personas pasan por sentimientos similares, incluso los que envidias. Entonces dejas de envidiar y miras a caminar en tu propio camino de tu elección.

Sólo se necesita tanto dinero para vivir la vida. Pero uno necesita toda la paz, la satisfacción y la felicidad que uno puede obtener.

La mejor de las suertes.

Por cierto, la calidad sobre la cantidad también es una buena idea. No solo conocimiento de amplitud sino también profundidad.

Las otras respuestas ya hablan sobre la motivación y los enfoques para desarrollar habilidades, etc. Así que elegí hablar sobre estar contento con lo que tienes en tu plato.

Hay una gran diferencia entre dónde estoy y dónde está un graduado de informática. Saben mucho más informática que yo. Y, sin embargo, he estado desarrollando software durante casi 10 años y me gano la vida con eso.

Estudié ciencias de la computación (2 años, no 4), pero casi todo lo que sé lo enseñé por mí mismo. El conocimiento que he adquirido en mi tiempo libre empequeñece lo que aprendí en la escuela. Además, hay una gran diferencia entre la informática y la construcción práctica de software.

Así que no te rindas, y no te desanimes con la idea de no poder igualar a un graduado de CS. La mayor parte de lo que saben ni siquiera es útil en el trabajo.

¡Absolutamente no! Caminar mil millas comienza con el primer paso.

La programación es un arte y una ciencia donde la ingeniería de software es la mejor práctica. Comienza por tomar cursos introductorios. Los programas de ciencias de la computación están diseñados para profesionales que trabajan. Actualmente, hay una serie de muy buenos cursos MOOC CS que están diseñados para el autoaprendizaje, vea mi blog Cómo elegir los cursos de ciencias de la computación por J. Lee Anthony sobre Cómo ingresar a la universidad de su elección.

En primer lugar, la mayoría de los programas de CS no son muy eficientes en la enseñanza de la programación. No te preocupes tanto por eso. Empieza a trabajar en ello. Te sorprendería cuánto puedes hacer si asignas 1 hora por día y realmente te concentras en ello. Aquí hay una buena receta, una gran presentación en video “.

Cómo aprender algo … rápido – Josh Kaufman ”

Solo debes pensar en trabajar en los proyectos de programación que disfrutas y dejar de compararte con los demás. Incluso seis meses de aprender a programar pueden ser suficientes para encontrar trabajo a veces.

También encuentro con la programación, que algo que parece realmente complicado puede llegar a ser algo que puedes dominar en pocos meses. Me enseñé a programar en un año de esfuerzo esporádico, conseguí un trabajo en programación y he estado aprendiendo más desde entonces.

Lo hago porque lo disfruto. De vez en cuando, consigo un contrato para hacer un trabajo de programación pagado. Como siempre, esa es mi opinión, y no puedo hablar por nadie más.