¿Qué debo hacer para mejorar mis habilidades de programación en un corto período de tiempo?

Aprender el montaje. Esto es lo que te hace temerario. Aprendes a amar el código de espagueti, las tablas de saltos y los gotos computados y las complicadas estructuras de programas como las co-rutinas de Knuth (una vez que obtienes coroutines, terminas haciendo esto todo el tiempo en C, usando gotos). Además, si alguna vez se queda atascado sin una característica en cualquier idioma, si conoce el ensamblaje, puede implementarlo desde cero. Si escribe incluso un pequeño programa en ensamblaje y lo hace funcionar, aprenderá más sobre la programación real que una montaña de cosas de alto nivel.

Disminuirá el problema, como la programación estructurada o la programación orientada a objetos, y hará que te concentres en lo que realmente está haciendo la computadora y en cómo puedes hacer que lo haga de la manera más eficiente posible.

Aprender el ensamblaje es un poco difícil, porque la sintaxis de X86 es muy compleja. Aprendí en un 6502, que era más limpio, pero no hace falta decir que estas habilidades ya no son tan útiles. Pero puede hacerlo si usa nasm, y atenerse solo a 32 o 64 bits, sin molestias de 16 bits. El conjunto de instrucciones de 32 bits y 64 bits es relativamente limpio. Las habilidades que adquieres son incomparables, y se mantienen ocultas para los programadores, que están familiarizados con todos los paradigmas de programación, excepto el que dio origen al campo.

Aquí está mi personal Mejore su codificación 101 :

  1. Asustarse
    Realmente no hay sustituto. Debe haber algún tipo de fuego autosostenido dentro de ti, porque estás a punto de intentar hacer algo que está asociado casi universalmente con un grado elevado de inteligencia, y solo lo suficientemente bueno si puedes escalar la curva de aprendizaje. Para mí, el miedo funciona. Me gusta asustarme haciendo cosas como mirar código grande en idiomas que no entiendo completamente. Me da miedo. Siento que no pertenezco allí. Siento que tal vez nunca pueda entender esto. Que hay millones de personas mejor que yo. Sigo a (Quora y otros) grandes programadores, y trato de pensar si alguna vez podría hacer lo que ellos han hecho (la respuesta a eso siempre debe ser un rotundo “no” de los anales de su conciencia, cualquier otra cosa significa usted es un pseudo-saber-todo-sonofabitch). Y luego me gusta desafiar mi miedo en una lucha a muerte. Estoy sentado aquí escribiendo esto, así que eso significa que he ganado todas las veces. Hasta ahora, eso es, nunca lo olvides, o vence todo el propósito.
  2. Alimentar el miedo
    Sigue buscando cosas más espantosas. Mire profundamente dentro de usted y descubra los secretos sucios (pero relevantes) que no comparte con nadie, y utilícelos aquí. Invoca todas las dudas que hayas tenido sobre ti mismo, todos tus demonios, y ten una agradable charla con un café (lo veremos en un minuto). Yo, por ejemplo, ayudo rápidamente a las personas con sus problemas de programación. A veces voy tan lejos como para resolver sus problemas de solicitud de pasantías . Pero durante el tiempo en que estoy resolviendo los problemas, casi siempre estoy seguro de que no podré resolver el siguiente que se me lanza. Y luego lo hago. Y se siente increíble, cada vez. Algo así como lo que The Oatmeal (gran chico) está tratando de decir aquí (ignora la parte de la cabra):

    ¿Puedes sentirlo ahora? Ahora estás realmente listo para comenzar el proceso.

  3. Tener esa cerveza lista
    Sólo una forma elegante de decir que te prepares con el café. No hay ninguna explicación aquí: el café es un líquido orgásmico que es el sol amarillo para su Kal El. Este zumo mágico que fluye proverbialmente por tus venas puede darte ese impulso adicional que necesitas para “ir hasta el final” con un problema, si sabes lo que quiero decir . Porque siempre debes ir hasta el final con un problema. Si no puedes, no lo olvides y presta atención al # 6. Si no quieres, tengo malas noticias para ti …
  4. Empieza pequeño
    Cualquiera que sea la imagen que proyecte en el mundo exterior, ahora o más adelante, siempre debe saber que el comienzo de cualquier lección debe ser humilde. No intente implementar la https://en.wikipedia.org/wiki/Na … como su primer paso. Comience con “hola mundo”. Luego, construya uno que tome el saludo anterior “, world!”, E imprima la concatenación. Entrada “Hola”, verlo decir “Hola mundo”. Para obtener puntos en badassery, ingresa “Kiss my ass” la próxima vez que lo ejecutes. Míralo decir “¡Bésame el culo, mundo!”. Risa. Siga adelante. No fue tan gracioso.
  5. Encuentra una comunidad, molesta a esas personas.
    Esta es la verdad acerca de toda la comunidad de programación: la razón por la que tanta gente hace tantas cosas no es porque todos son realmente capaces, es porque hay tantos, muchos más para guiarlos a través de los problemas y eliminarlos. pepinillos. La regla de oro es encontrar el campo / idioma que desea comprender, rastrear su canal en IRC (probablemente estaría en freenode, que básicamente alberga el 99.135% de todas las conversaciones de IRC que se caen), y simplemente pedir la mierda de esos tipos. Ellos realmente están ahí para ayudar. En serio, a cualquier hora del día, cualquier día, alguien, en algún lugar siempre está presente en los canales populares. Intentalo. Ahora solo vete, la respuesta aún estaría aquí cuando vuelvas.
  6. Persigue a tu presa
    Puede que esté todo en mi cabeza, pero me parece que perseguir un objetivo final, como si te orientaras a mejorar tus habilidades de programación, es muy parecido a un depredador que persigue a tu presa. A veces, puede parecer que se está escapando, pero no dejes que eso te detenga, porque debería tener el efecto exactamente opuesto. Sombra a tu objetivo, nunca lo pierdas de vista, no lo dejes fuera de tus pensamientos, hazlo parte de la misma persona que eres. Exponerse a un contenido más estimulante, como la última conferencia de Randy Pausch:

    Persigue a ese imbécil hasta que haya sumisión absoluta. Ser un campeón es un trabajo de tiempo completo.

  7. revisión
    Mirar atrás. Mira lo lejos que has llegado. Estás empezando a dominar las cosas. Ese enorme monstruo de código que vimos en el punto # 1 ya no parece tan aterrador. Yay, gran éxito! (Trate de leer eso en la voz de Borat, si puede, solo tiene más impacto). Pero no se regodee. Sepa que la montaña no se ha subido todavía, el monstruo acaba de ser herido. Tiene que morir. Para obtener más inspiración, lea Shaolin Monk: prepárese siempre con los lápices Zen, preferiblemente mientras escucha alguna canción animada. La música tiene la habilidad mágica de controlar tu mente, úsala en tu beneficio.
  8. Iterar
    Haz 3-8, repetidamente, hasta que escales tu pico y ganes la batalla contra tus dudas y demonios. Para los cheevos de Juego de Tronos (serie de televisión), di “no hoy” cuando te encuentres matándolos en tu mente. Siempre recuerda, sin embargo, que la batalla podría haber sido ganada, pero la guerra no ha terminado. Porque la guerra nunca termina.

Escriba un programa que le interese, de preferencia donde le preocupe mucho la solución.

Esta es otra forma de decir “práctica”, sino más bien, practicar con un propósito.

Esto es mucho más efectivo que simplemente “poner en las repeticiones”.

Lea el código con comentarios de excelentes programadores y adáptelo a SU PROPÓSITO.

Adapta y escribe el nuevo código que te interesa.

Vuelva a escribirlo para hacer mejor el trabajo y para agregar nuevas funciones.

Aprenda y use con habilidad al menos cuatro lenguajes de programación de diferentes paradigmas y luego intente resolver problemas difíciles utilizando los lenguajes que conoce. Esto le permite ampliar sus conocimientos de programación en general y aplicar nuevas técnicas de programación aprendidas de diferentes idiomas.

Puede practicar muchos problemas relacionados con la informática en http://projecteuler.net/

Y, por supuesto, leer muchos libros y códigos. Recomiendo leer la serie de libros Head First de la editorial O’reilly. Te ponen en marcha bastante rápido.

La única forma de aprender un nuevo lenguaje de programación es escribiendo programas en él.
– Brian Kernighan

El mejor consejo que puedo darte es evitar el miedo al fracaso y comenzar a programar. Sus habilidades siempre aumentan haciéndolo de una manera consciente, pregúntese por qué las funciones que está utilizando funcionan, no solo cómo. Practica cada característica del lenguaje. Consigue un libro de referencia y un libro de texto. Si te gusta C ++, el lenguaje de programación C ++ de Bjarne Stroustrup está disponible para leerlo en línea y es el mejor libro de referencia y manual que puedes obtener.

Aquí está la cuarta edición, pero solo en parte creo que el lenguaje de programación C ++ (4ª edición)
También puedes leer la tercera edición, ya que no está tan obsoleto como el lenguaje de programación C ++.

Luego, para cada conjunto de características (por ejemplo, 3 o 4, no lo hagas muy complejo, adáptalo a tu comodidad), aprende, implementa un programa que lo use. No tiene que ser excelente, ni grande ni útil, solo un programa que descubras que podrías hacer con esas características.

De esa manera creo que obtendrías lo mejor de ese mes 😀

En primer lugar, ¿qué quiere decir realmente con habilidades de programación de computadoras?
Un programador informático tiene que resolver algún tipo de problema. Para resolver eso, piensa en el problema, intenta encontrar una solución y luego parafrasea esa solución en algún lenguaje de computadora (C / C ++, Java, etc.)
A un buen programador no le importa el lenguaje de programación, él quiere que su solución sea eficiente. Hay un muy buen problema llamado ‘8 reinas’. Buscalo en Google. Ahora tiene un problema, intente resolverlo y ni siquiera piense cómo escribió su solución en lenguaje informático. Solo encuentra una solución. Ahora que tiene una solución, cada lenguaje de programación nos proporciona algunas herramientas como ‘bucles’, ‘declaraciones condicionales’, etc. Utilice estas herramientas para parafrasear su solución en cualquier lenguaje informático.
Lo que quería decirles es que debe enfocar su mente en cómo resolver un problema en lugar de pensar en cómo escribir esa solución. Realmente no conozco tus antecedentes de programación, así que perdóname si estoy siendo ingenuo.


¡Construye proyectos!

Manténgase alejado de los recursos de aprendizaje en línea que solo lo alientan a copiar y pegar el código. Muchos de los campos de arranque de codificación han creado herramientas para personas que recién comienzan. Aquí hay algunos lugares para comenzar:

  • Thinkful Learning Resources : ¡toneladas de mini-guías sobre todo desde Python a GitHub a JavaScript y jQuery, todo gratis!
  • Coding Dojo Algorithm Platform – plataforma en línea gratuita para practicar algoritmos
  • Epicodus : un campo de arranque de codificación en Portland que pone su currículum en línea de forma gratuita

Usted trata este plan de desarrollo de programación como un algoritmo. Usted se sienta y coloca cuidadosamente los conceptos básicos y practica los problemas en los que trabajará. Si este impacto en la vida personal no lo motiva a mejorar la resolución de problemas algorítmicos, deberá copiar al instructor. Esto no es deseable, pero si tiene que hacerlo, lea las especificaciones del programa y la implementación recomendada.

Recomendaría encarecidamente al juez de Pekín en línea ( http://poj.org/ )

Hay miles de problemas algorítmicos, y puede enviar su código. Puede comprobar inmediatamente si su solución está bien o no. Su código debería 1) producir la salida correcta Y 2) lo suficientemente rápido.

Este recurso se usó realmente en una de las clases de Stanford (CS 97SI) para enseñar habilidades de codificación algorítmica. Aprendí mucho de ello.

Puede usar el idioma de su elección, incluyendo C ++, Java, Python, etc.

Además, puede medir la dificultad de cada problema leyendo las estadísticas: qué porcentaje de envíos fueron correctos, cuántos resolvieron el problema, etc.

Espero que haya ayudado!

Haga algunos algoritmos intensivos div 2 http://www.topcoder.com/tc entrenamientos.

Las salas de práctica en topcoder son un recurso educativo increíble. Puedes ver como otras personas resolvieron los problemas.

Lo que sugiero es tratar de simular un concurso real y ver qué tan bien lo hizo en comparación con las personas que participaron en el concurso real. Obtienes información inmediata sobre tu nivel y las mejoras que haces.

He leído las otras respuestas aquí y estoy de acuerdo con ellas al respecto. No hay atajo aquí. La única forma de mejorar tus habilidades es practicar. Encuentra problemas que te interesen y codifica soluciones para ellos. Una cosa adicional que puede ayudar que no vi mencionada aquí es tratar de encontrar tantas formas como sea posible, para codificar una solución a un problema. Luego, analiza sus soluciones para identificar qué enfoques fueron los más efectivos y por qué. El juego de Mastermind es un buen problema para esto, ya que hay varias formas diferentes en las que puedes abordar diferentes partes del problema para codificar una solución.

¿Cómo mejorar sus habilidades de programación en poco tiempo? Por la programación. La programación es lo que te hace mejor en la programación. No hay atajo real. La experiencia es una parte masiva de lo que te hace un mejor programador.

Trabajar en proyectos reales. Si aún no lo has hecho, elige un proyecto y comienza a hacerlo. Sigue haciéndolo hasta que esté terminado.

Muchas de estas respuestas son grandes respuestas. El tema común, con el que estoy de acuerdo, es sumergirse en la codificación. Elija un idioma o tecnología que le atraiga y sumérjase en él. Con todos los increíbles recursos en línea (especialmente para aprender sobre desarrollo web), no es difícil sumergirse en absoluto. Un bootcamp de desarrollo web como el nuestro ( http://devatory.com ) también puede disminuir enormemente el tiempo que le toma aprender a programar porque le brindamos el entorno para sumergirse junto con la tutoría y el trabajo en equipo para sacarlo Cuando te quedas atascado y te mantiene motivado.

¡Buena suerte!

Lo único que puedes hacer, programa, programa y programa. No hay atajos, cualquiera que te diga lo contrario está intentando venderte algo. Si hubiera un multiplicador de fuerza real a la hora de aprender, todos tendríamos mucho más conocimiento. Sin embargo, la experiencia es el mejor maestro.

Dime y me olvido. Enséñame y me acuerdo. Involucrarme y aprendo.
Benjamin Franklin
El verificador de respuestas estúpido no cree que mi respuesta sea lo suficientemente buena, así que estoy poniendo esta pelusa inútil al final para que la puedas recibir.

Tome un proyecto para hacer. Puedes trabajar para una empresa o ser freelancer.

Experimentarte es la mejor manera. Lee este artículo para decidir lo que realmente quieres hacer.
10 formas de autoaprendizaje para convertirse en un gran programador – Beau Magazine

La práctica es la única clave, amigo mío. Lo que por cierto requiere algo de tiempo.
Dirígete a concursos de programación competitiva, como codechef.com

La práctica hace que los hombres sean perfectos, es la manera perfecta …….

Aquí hay un tutorial de video que, con suerte, puede ayudar a responder su pregunta: YouTube

Esta semana lanzamos App Academy [1], un curso de ingeniería de software gratuito de tiempo completo de 9 semanas; El lanzamiento hizo la portada de Hacker News [2].

El programa enseñará a los estudiantes el desarrollo de Ruby, Objective-C y iOS, pero las habilidades principales que estamos entrenando son completamente independientes del lenguaje. Los estudiantes aprenderán cómo desarrollar nuevas tecnologías rápidamente, cómo escribir código escalable y robusto y cómo diseñar soluciones de software para problemas del mundo real. Se graduarán con repositorios de github y proyectos que contienen miles de líneas de código que muestran lo que son capaces de hacer.

Así que si estás interesado, ¡échanos un vistazo!

[1] hashmaplabs.com/app_academy
[2] news.ycombinator.com/item?id=4048336