Cómo llegar a ser realmente bueno en la programación.

Varias personas en React Conf me pidieron consejos para ser un mejor programador. Por alguna razón, la gente me ve como un programador bastante avanzado que vale la pena escuchar. Pensé que valdría la pena escribir mi “modelo mental” de cómo he enfocado la programación a lo largo de los años.

Permítame tener claro que estos son solo algunos consejos para mejorar sus habilidades. En última instancia, necesita averiguar qué funciona mejor para usted. Estas son solo cosas que he encontrado útiles.

  • Encuentra personas que te inspiren, pero no las idolatres.

A lo largo de los años ha habido muchas personas a las que he admirado y he estado buscando nuevas tecnologías. Aprendí mucho simplemente confiando en que tenían razón y profundizando en las cosas en las que trabajaban. Estas personas tienden a ser muy productivas, brillantes e inspiradoras. Encuéntralos y deja que te inspiren y te enseñen.

Sin embargo, asegúrese de no idolatrarlos. Es fácil parecer intimidante de un feed de Twitter, pero si observas cómo funcionan en la vida real, verás que no son tan diferentes. Hacks por todos lados, etc. Todos estamos experimentando. Por último, no confíes ciegamente en ellos; Si no estás de acuerdo, compromételos y aprende de ello. Algunas de mis conversaciones más productivas sucedieron de esta manera.

Mi configuración de Emacs es un desastre. No sé por qué se interrumpe mi autocompletado de OCaml (se ha roto durante más de un mes). No automatizo las cosas y tengo que buscar en el historial de mi shell para encontrar los comandos que necesito a veces. Escribo el código más feo al principio. Pongo las cosas en el objeto global hasta que sé lo que estoy haciendo. El programador más experimentado usa hacks todo el tiempo; la parte importante es que estás haciendo cosas.

  • No devalúe su trabajo. Los programadores más nuevos tienden a sentir que su trabajo no vale mucho porque son nuevos. O quizás eres un programador experimentado, pero trabajas en un área nueva que te hace sentir incómodo. En mi opinión, algunas de las mejores ideas provienen de los programadores más nuevos que ven mejoras en la tecnología existente que los que ya tienen opiniones formadas no ven. Su trabajo vale la pena, no importa qué. En el peor de los casos, si su idea no funciona, la comunidad habrá aprendido mejor por qué ese enfoque no tiene sentido. (Una nota para la comunidad: depende de nosotros ejecutar esto y dar la bienvenida a los recién llegados).
  • No te sientas presionado a trabajar todo el tiempo. Con la nueva tecnología que sale cada día, puede sentir que el mundo seguirá sin ti si te tomas una noche libre. Eso no es cierto. De hecho, trabajará mejor si se desengancha mucho. Tu perspectiva será nueva y, de manera inconsciente, surco nuevas ideas cuando no estoy trabajando. La mayoría de las cosas que se lanzan todos los días son solo una repetición de las mismas ideas. Las cosas verdaderamente revolucionarias solo suceden cada pocos años. Una buena charla para ver sobre este tema es Hammock Driven Development.
  • Ignorar la pelusa. Una de las formas más grandes en que puedes mejorar objetivamente más rápido es ignorando “pelusa” que en realidad no mejorará mucho tus habilidades. Otra forma de decir esto es “usa tu tiempo sabiamente”. Solo tienes tantas horas en el día y si lo dedicas a cosas más profundas, verás una gran diferencia en http://time.Así que, ¿qué es “pelusa”? Depende de usted, pero puedo darle algunos ejemplos de lo que yo considero pelusa: sintaxis de lenguaje, API de biblioteca y configuración de herramientas de construcción. Aprender una nueva sintaxis de ES7 JS no te hará ser un mejor programador tanto como aprender cómo funcionan los compiladores, por ejemplo. Adoptar una nueva biblioteca que implemente la misma idea pero con una nueva API no es tan interesante. Todas estas cosas son importantes, por supuesto, pero recomiendo pasar más tiempo aprendiendo conceptos más profundos que lo recompensarán por años. Aquí hay una pregunta que me gusta preguntar: ¿pasa la mayor parte del tiempo haciendo que su código se vea “bien”? Si es así, te recomiendo no enfocarte tanto. Tu código va a cambiar mucho con el tiempo de todos modos. Es mejor centrarse en los problemas centrales que intenta resolver y pensar detenidamente en sus capas de abstracciones. Después de que haya clavado todo eso, puede pasar un poco de tiempo puliendo su código. (Esto también se aplica al principio DRY. No te preocupes tanto. Siéntete libre de duplicar).
  • Profundiza en investigaciones pasadas. Si estás entusiasmado con una idea, es muy tentador sentarte y ponerte en marcha de inmediato. Pero no debes hacer eso hasta que hayas hecho una investigación superficial sobre cómo las personas lo han resuelto antes. Pasar unos días investigando el tema siempre cambia completamente la forma en que voy a resolver http: //it. Es valioso aprender a leer documentos académicos. No sé nada acerca de la semántica denotacional / operacional / etc, así que hay muchos documentos que no puedo leer. Pero hay muchos que usan código en lugar de matemáticas y no son tan difíciles de leer. Hay una gran cantidad de conocimiento en los documentos de los últimos 30 años. Si eres bueno en extraer esto, serás un líder de pensamiento en ningún momento. El más bello es un ejemplo perfecto de esto. Sabía lo que quería pero no tenía idea de cómo implementarlo. Después de una pequeña investigación encontré este documento y después de unos días supe exactamente lo que tenía que hacer. Tuve algo básico trabajando en una semana. Si hubiera ignorado la investigación anterior, habría tardado mucho más. Si buscas documentos, el repo de Papers We Love GitHub es un excelente lugar para comenzar.
  • Asumir grandes proyectos. Ponte incómodo. No hay nada mejor que la experiencia. No todos están en condiciones de experimentar, pero si tienes tiempo, prueba algunos grandes proyectos. Ni siquiera necesitas terminarlas. Tratar de abordar algo como escribir un compilador te enseñará toneladas en las primeras semanas. Honestamente, odio la sensación de que no tengo idea de cómo resolver un problema complejo. Es incómodo. Sé que tendré que investigar mucho y aprender antes de estar cerca de una solución. Pero después, siempre soy un programador mucho mejor. Empieza por aprender un nuevo idioma. Es la forma más efectiva de sacarte de tus hábitos actuales y ver las cosas desde una nueva perspectiva. Para mí, lo mejor que hice cuando era un programador joven fue aprender Scheme. Es un lenguaje extremadamente simple y lo obliga a hacer todo en un estilo funcional, y realmente aprender los fundamentos de cómo funciona el código. Los pocos años que pasé en Scheme todavía están dando sus frutos hoy; La forma en que veo el código se cambia fundamentalmente. (Incluso nombré a mi compañía Shift Reset LLC después de los operadores de cambio / restablecimiento de Scheme). Aquí hay una lista de algunas cosas que recomendaría hacer. Estas son todas las cosas que tuvieron un gran impacto en mi carrera de programador. La mayoría de ellos siguen dando sus frutos de manera sutil y me ayudan a deconstruir nuevas ideas mentalmente. No es necesario que hagas esto para convertirte en un buen programador , y hay muchas otras cosas que puedes aprender para mejorar, pero estas son las que me ayudaron. Aprende C – Solo lo básico, si no lo has hecho ya. Creo que es valioso entender por qué todos se quejan de ello. Escribir un compilador : tal vez la mejor manera de sentirse incómodo y aprender. Echa un vistazo al compilador super pequeño. Aprenda macros : vea Esquema, Lisp o Clojure (Script). Las macros realmente cambiarán tu forma de ver el código. SICP – SICP es un libro antiguo que creo que sigue siendo relevante hoy (algunas personas no están de acuerdo). Asume muy pocos conocimientos de programación y le guía a la hora de implementar un evaluador y compilador meta-circular. Otro libro que realmente disfruté y que va mucho más profundo en compiladores es Lisp In Small Pieces. Comprender las continuaciones : las continuaciones son un mecanismo de flujo de control de bajo nivel. Scheme es el único lenguaje para implementarlos, y aunque nunca los usará en producción, cambiarán su forma de pensar acerca del flujo de control. Escribí una entrada de blog tratando de explicarlos. En todo caso, simplemente intente un nuevo idioma : independientemente de lo que haga, debería explorar otros idiomas. Recomendaría cualquiera de los siguientes: Clojure, Rust, Elm, OCaml / Reason, Go o Scheme. Todos ellos tienen características únicas y te obligarán a aprender una nueva forma de pensar.

Aprender a programar es más seguir un hábito estricto que tener un talento especial. Necesitas – Perseverancia

El principal problema que escucho de la mayoría es que no pueden entender ‘Cómo hacer una aplicación’, más precisamente no entienden el flujo.

Cosas en la mente de los principiantes:

  • Quiero hacer una red social como Facebook.
  • Cómo empezar, por dónde empezar, cómo conectar los puntos.
  • Frustración, confusión y mucha redirección.
  • Salto de una aplicación a otra sin completar una aplicación (yo mismo solía hacer esto)

Llegando a la respuesta de tu pregunta. Sigue estos pasos:

  • Apoyarse en el programa no significa aprender un lenguaje de programación.
  • Aprender a programar significa pensar en algo y convertirlo en un algoritmo corto (proceso paso a paso)
  • Elija su lenguaje de programación sabiamente
  • Diga si quiere construir algo, trate de saber cómo se hizo.
  • Conozca el flujo de la aplicación, ya sea en Facebook o en un juego como flappy bird en C ++, JS o en cualquier idioma.
  • Primero, conozca las funcionalidades que la aplicación debe proporcionar. Dibujalas
  • No puede hacer una copia exacta de Facebook instantáneamente en un mes o en un año. Facebook sigue cambiando todos los días (arquitectura sabia)
  • Si desea hacer algo como Facebook, divida sus principales funcionalidades en partes e intente hacer 1 parte a la vez.
  • Las principales funciones de Facebook son: registro de usuario e inicio de sesión, publicación de fotos, videos, feeds, ver la línea de tiempo de otros y cerrar sesión
  • Comience con el Sistema de registro de usuarios, lea mucho sobre este tema en Internet. Entonces comienza con otras partes. Por fin combinarlos todos.
  • Lea acerca de cómo implementar la funcionalidad anterior en su idioma preferido, diga NodeJS
  • No te rindas hasta que lo completes. Una vez que te rindas, será muy difícil para ti concentrarte de nuevo.
  • Lee muchos artículos y libros. Otorgue al menos 1 año a un idioma, para conocer sus entresijos y luego intercambiar información en otros idiomas cuando sea necesario.

Colm Smyth ha dado algunos grandes puntos.

Cuando quieras mejorar en el béisbol, la gente te dirá que practiques. Cuando quiera mejorar en la resolución de ciertos tipos de problemas matemáticos, las personas le dirán que practique. Cuando quieras tocar perfectamente cada nota de una canción, la gente te dirá que practiques. Por lo tanto, creo que una de las respuestas más populares que obtendrás es la siguiente: sigue practicando.

Si bien estoy de acuerdo con eso, creo que hay una manera más desafiante y gratificante de mejorar en un lenguaje de programación que escribir un gran volumen. (En este caso, asumo que “mejor” significa aprender cómo obtener más funcionalidad de una cantidad menor de código, o aprender a utilizar código para tareas completamente nuevas).

Mi respuesta a esta pregunta es, sí, siga practicando, pero si realmente desea mejorar y tener más conocimientos en un idioma, debe mirar constantemente el código que es demasiado complejo para que lo entienda. Si está intentando aprender HTML, ¿por qué no ver el código fuente de Quora.com? ¡A ver si los escritores emplean ciertas prácticas que nunca has visto antes! ¿Tratando de obtener un mejor control sobre Python? ¡Por qué no subir a GitHub y buscar un proyecto elaborado que requiera mucho código! Cuanto más popular sea el código, entonces, con suerte, mejor será. Mi punto principal aquí es examinar constantemente el código que es más elaborado que cualquier cosa que haya visto antes. Aprenderá nuevas prácticas, convenciones, trucos y trucos y, en última instancia, obtendrá el conocimiento del desarrollador que escribió el código en primer lugar si lo hace bien.

Así que aquí está mi respuesta condensada en un TL; DR. Indudablemente, la práctica es una forma de acelerar la programación, pero si desea aprender y descubrir nuevas formas de evitar un lenguaje de programación, ¡deje de escribir y navegue por los vastos alcances de Internet en busca de otro ejemplo de código! ¡Lo más probable es que pueda elegir una o dos cosas simplemente dando un nuevo archivo .py o .cpp!

Buena suerte OP, y sigue codificando!

Bueno, con el riesgo de golpear el muro “No, mierda, Sherlock”, ¡escribe un código!

Si usted es un principiante y está buscando construir una base sólida en un lenguaje de programación, estructuras de datos y algoritmos, las plataformas en línea que le ofrecen desafíos junto con consejos y / o cursos reales son un buen lugar para comenzar. Personalmente, me gusta HackerRank por su estructura de pistas y desafíos que aumentan gradualmente en dificultad en los temas de su elección. Puede acceder a él desde cualquier lugar, ya que ofrece compilación / interpretación en varios idiomas populares como servicio.

También puede optar por algo (un poco) más complejo si la idea de paso a paso no parece lo suficientemente interesante, aunque es probable que se pierda una parte sustancial del proceso de aprendizaje si se enfoca en lo que necesite. El proyecto de su elección y despreciar el resto. Intente crear una aplicación para Android: es gratis, se golpeará la frente con todos los aspectos de una aplicación orientada al cliente (diseño, escalabilidad, interfaz de usuario, trabajo con API propietarias, implementación, comentarios cuando llegue a Play Store) y usted ¡Puede terminar construyendo algo verdaderamente útil, y / o divertido! ¿No eres un fan de Java? Obtén una RaspberryPi: es barata, potente y hay muchas cosas que puedes hacer con ella, desde configurar un servidor torrent hasta smart mirros, cámaras web y demás. Ten en cuenta que no te propones reinventar la rueda. Puede retomar un proyecto que se ha hecho anteriormente; en realidad, es mejor si lo hace en lugar de algo completamente nuevo, porque encontrará un montón de soporte en línea, desde consejos y trucos hasta problemas que la gente encontró, que también podrían ayudarlo.

Larga historia corta, ponte frente a ese teclado con una idea, una taza de café y paciencia, y ponte a trabajar.

Odio ser el que diga lo obvio, pero si quieres ser bueno en la programación, debes practicar.

De hecho, para llegar a ser bueno en cualquier cosa, debes practicar.

Supongo que crees que eres bastante bueno para caminar. ¡Apuesto a que caminas todos los días de tu vida!

Creo que lo que realmente intentas preguntar es esto: ¿cómo te conviertes en un experto en el mundo del desarrollo de software? Los clasificaré por orden de los más importantes.

  1. Resolución de problemas
    • Todas las soluciones comienzan con un problema. Cuando los problemas pueden existir independientemente, las soluciones dependen de los problemas para poder existir. Las habilidades para resolver problemas son, con mucho, las habilidades más importantes que se deben tener en el desarrollo de software. La mayoría, si no todos los programas y aplicaciones que escribes en tu vida, existen para una cosa; Resolver un problema.

    2. Conocimiento técnico

      • ¿Cómo se traduce una necesidad / requisito / problema empresarial en una solución técnica? Como mínimo, se requiere un conocimiento fundamental de la informática. Este es su conocimiento del dominio del entorno. Esta es la parte “qué” y “cómo” del análisis de la solución. El conocimiento técnico es lo que separa a los ingenieros superiores de los analistas de programación junior, no el conocimiento del lenguaje de programación. Los ejemplos incluyen: planificar la infraestructura para soluciones independientes de la plataforma y cómo esas aplicaciones pueden interactuar o comunicarse con otras aplicaciones, integración de datos, integración de sistemas, modernización de sistemas, estrategia de implementación y otras arquitecturas empresariales.

      3. la comunicación

        • Para ser un ingeniero eficaz, tienes que ser un líder eficaz. Las habilidades de comunicación con los gerentes de proyecto y las partes interesadas son comunes en las prácticas de desarrollo de hoy. Los silos de nerds de antaño comienzan a desvanecerse rápidamente. Debes ser proactivo, comprometido y agradable. Ser eficaz en el trabajo con un pequeño equipo de desarrolladores y personas no técnicas es esencial para maximizar la productividad y cumplir con los plazos de los proyectos desafiantes. Esta es un área donde muchos ingenieros son bastante ineptos. Para aquellos que ya están en la industria, es posible que haya aprendido que a menudo se necesita cierta delicadeza política cuando las soluciones mal diseñadas se impulsan hacia un equipo de desarrollo para que la nave vuelva al rumbo correcto.

        4. Lenguajes de programación

          • De lejos, lo menos importante. Te diré por qué. Míralo así: ser un maestro con un martillo hará que todo se vea como un clavo para ti. Lo que quiero decir con esto es que los lenguajes de programación son simplemente herramientas. Por lo tanto, podría parecer una tontería si reformulaste tu pregunta original a “¿Cómo puedo ser realmente bueno martillando?” Un mecánico experto no solo usa una llave, aunque sus habilidades con las llaves son increíbles . Además, para elegir una nueva herramienta, ¡todo lo que necesita hacer es leer el manual! Compré un taladro inalámbrico hace un tiempo y no tenía idea de cómo usarlo en el momento de mi compra, pero cuando lo traje a casa, ¡lo descubrí! Lo compré porque no llegaré a ningún lugar tratando de apretar un tornillo, ¿sabes?

          Déjame divagar un poco en la parte de “programación”. En lo que debería centrarse en términos de programación son los paradigmas que se encuentran en todas partes hoy en día. Programación orientada a objetos, y no puedo enfatizar esto lo suficiente … un componente clave en el conocimiento fundamental del desarrollo de aplicaciones de hoy. Aprenda y domine los conceptos de POO en cualquier lenguaje de POO que elija, no importa, todos están en demanda. Aprenda y domine el SQL genérico y entienda cómo funciona el modelado de datos relacionales. Aprender protocolos de redes y conceptos de sistemas operativos. Si puede dominarlos, ¡será más que capaz de convertirse en un gran desarrollador e ingeniero en su carrera!

          En primer lugar, permítame decirle que la programación no es para todos una taza de té. Depende únicamente de los intereses de uno. Si uno está haciendo la programación solo para aclarar la materia (porque está en el curso de la escuela o la universidad), será difícil de dominar, pero si está interesado en ella, puede aprenderla y dominarla fácilmente.

          Para dominar la programación, primero debe aprender los conceptos básicos de un lenguaje de programación en el que está codificando. Por ejemplo, si está codificando en C ++, debe tener un buen dominio de los bucles, las clases y los conceptos relacionados, como encapsulación, polimorfismo, etc. En segundo lugar, debe ser bueno en la formulación de la lógica. Si puede crear fácilmente una lógica detrás de un programa determinado, entonces puede resolver fácilmente todos los problemas. Siempre que su maestro le enseñe algo, pídale que le explique la lógica detrás del programa, esto aumentará su horizonte y también lo ayudará a generar lógica para otro. problema en el futuro

          Además de esto, debe observar cuidadosamente las cosas físicas como si va a crear una calculadora, entonces debe saber qué cosas están incluidas en una calculadora para poder incluirla en su programa. El más importante de ellos es la práctica, como se ha dicho correctamente: “La práctica hace al hombre perfecto”. No solo escriba el código directamente en la computadora, escríbalo en un papel y luego intente ejecutar ese programa usando su cerebro en su cuaderno. Si practica de esta manera, visualizará el programa que se ejecuta en su mente y nunca olvidará ese programa. Esto será muy bueno para ti si eres un principiante.

          Por último, como dicen otras personas, hay muchos sitios en línea que pueden proporcionarle información sobre la programación y también puede participar en competiciones en línea.

          Por lo tanto, estas son algunas de las cosas que puede implementar para mejorar sus habilidades de programación.

          No solo aprendas a codificar, aprendes a crear.

          Programación es un término muy amplio, hay muchos conceptos para aprender en programación.

          Entonces, ¿cómo recordar todos esos conceptos?

          Si quieres convertirte en un buen programador, no necesitas recordar todos esos conceptos, pero debes saber qué conceptos usar para resolver un problema en particular, y la mejor manera de hacerlo es usar esos conceptos para crear algo. Independientemente de los conceptos que hayas aprendido, simplemente utilízalos y crea algo.

          Generalmente, cuando aprendes a programar, se te enseñará cada concepto con un ejemplo solo para ese concepto, pero nadie te dirá cómo relacionar esos conceptos para crear algo.

          Por ejemplo: Si has aprendido tres conceptos.

          1. Tomando entrada del usuario
          2. Declarando variables
          3. Operadores aritméticos

          Entonces simplemente combina esos conceptos y CREA una calculadora simple

          Luego obtendrá una imagen clara de todos los conceptos que ha aprendido y tendrá una mejor idea de resolver más problemas con la programación y eso lo hará realmente bueno en la programación.

          Aquí hay una lista de pasos para ser “realmente bueno en programación”

          1. Aprende la sintaxis de un idioma. (Variables, estructuras de control, operadores, tipos de datos, arrays, rutinas, funciones, espacios de nombres, alcance)
          2. Practicar la escritura de algoritmos (ordenaciones, búsquedas, iteración, recursión, etc.)
          3. Construir algunas estructuras de datos básicas. Nunca usarás la tuya (siempre usarás una biblioteca), pero te ayudará a entenderlos bajo el capó. (Tablas vinculadas de lista, pila, cola, árbol binario, gráfico y hash)

          Para cuando aprenda lo anterior, estará en una programación “realmente buena”. Podrá aprender fácilmente nuevos idiomas / discutir la programación / crear su propio software.

          * ¿Quieres ser “realmente muy bueno en la programación”?

          Especializarse. Aprende las herramientas del oficio para esa industria. ¿Desarrollo frontal? (Marco angular o bootstrap, etc.) ¿back-end? (El sitio oficial de Microsoft ASP.NET, o laravel). ¿Móvil? (Xmarian <¿Lo deletreo correctamente?>) Sistemas integrados? (Obtener realmente bueno en la gestión de la memoria). ¿Desarrollo de juegos? (Unreal motor / unidad y vector matematicas).

          En definitiva, la especialización depende de usted y solo de sugerencias. Pero si realmente quieres ser bueno en la codificación, sigue todas las recomendaciones anteriores. ¡Buena suerte!

          Estos son algunos de los consejos que me parecieron útiles para convertirme en programador.

          1. Práctica práctica práctica……………..
          2. Se paciente.
          3. Mantente interesado
          4. Empieza a amar al error.
          5. Sé lógico, piensa lógico y profundo.
          6. Entiende cómo funcionan las cosas.
          7. aprender cosas nuevas.
          8. No solo codifique, construya soluciones.
          9. Disfruta de la depuración.
          10. Hazte manejar el fracaso.
          11. Trabajar dentro de los plazos establecidos.

          Nuevamente practica, practica y practica …… ..

          1. Construir cosas Desde juegos de arcade que implementan poca cantidad de física hasta sitios web de vainilla JavaScript.
          2. Práctica práctica práctica.
          3. Use todos los bits y piezas, recursos e información que pueda en StackOverflow, Udemy, Github y YouTube.
          4. Aclare lo básico. La programación es como las matemáticas. Sin el álgebra, no puedes moverte a otras ramas.
          5. Personalmente, no me gusta saltar de un idioma a otro. Aunque la sintaxis, los principios y los símbolos son similares en muchos de ellos. Solo tiene que tener un buen conocimiento de uno, y otros idiomas se pegarán a sus células cerebrales con mucho menos esfuerzo invertido. Es como ser multilingüe. Por lo general, la tercera lengua es mucho más fácil de aprender que la segunda.

          TL; DR practica la codificación, no te limites a una sola herramienta o lenguaje y explora, el código abierto es excelente. aprender el verdadero poder de búsqueda de google. Participar en las comunidades de programación.

          No dejes de aprender

          Siempre hay una nueva herramienta para aprender. no deje caer todo y salte después de esa nueva herramienta, pero sea ​​consciente de lo que hace, del problema que resuelve y prepárese para aprenderlo algún día.

          Preguntar, preguntar y luego preguntar un poco más.

          Hay muchos sitios web / foros de control de calidad relacionados con la programación, utilícelos bien. Google, Stack Overflow y, por supuesto, Quora son tus nuevos mejores amigos.

          ¡práctica práctica práctica!

          al igual que cualquier otra habilidad. Sus habilidades de programación se van a oxidar si las abandona. así que sigue escribiendo el código, y cuando te canses de escribir …

          Leer el código de otras personas

          En realidad, es muy importante que un programador pueda comprender y rastrear el código de otras personas. porque a menudo necesitarás mantener o modificar el código de otra persona, también es educativo.

          OpenSource es un regalo

          utilízalo Aquí hay un rápido cómo hacerlo.

          1. leer sobre proyectos de código abierto. Encuentra un proyecto interesante y míralo en GitHub [1]
          2. contribuir. no siempre tendrá una idea de proyecto increíble para implementar y flexionar sus músculos de programación. pero siempre hay casi un proyecto de código abierto interesante para ti, comienza con la escritura de documentaciones y pruebas hasta que encierres un proyecto, luego sumérgete.

          Menos es mejor

          Cuando esté a punto de escribir algún código para realizar la tarea X, primero piense “¿Qué partes de la tarea X se pueden hacer usando las bibliotecas de código abierto?”. se sorprendería de lo menos, más conciso y legible que es su código. siempre y cuando uses una buena biblioteca.

          ¡Tomar un descanso!

          Deje su escritorio cada 1 hora durante cinco minutos. Toma un vaso de agua o revisa a tu mascota. su computadora portátil no va a ninguna parte.

          eso es todo de mi parte ¡la mejor de las suertes!

          Notas al pie

          [1] Ser Social · Guías GitHub

          1. Escribe programas cada vez más complejos y largos.
          2. Estudiar programas bien escritos.
          3. Estudiar patrones de diseño
          4. Estudio de estilos de programación (estructurado, funcional, orientado a objetos).
          5. Usa todo lo que has aprendido para intentar escribir programas aún mejores.
          6. (Opcional) Lea Malcolm Gladwell’s Outliers (2008); luego trate de averiguar los límites de su conocimiento y habilidad actuales en la programación, y busque formas de hacer retroceder ese límite en alguna área

          Una forma es hacerlo a continuación:

          # 1. Aprende y trata de dominar un lenguaje de programación lo más posible.

          Ejemplos: Go Tutorial, C ++ Tutorial, etc.

          # 2. Aprendiendo buenas prácticas de programación. Vea a continuación los enlaces:

          Mejores prácticas de codificación

          Técnicas de codificación y prácticas de programación

          # 3. Al diseñar y escribir código óptimo para sus problemas. Aprendizaje de estructuras de datos y algoritmos:

          Tutorial de Estructura de Datos y Algoritmos (DSA)

          # 4. Aplicando todo el conocimiento de # 1 y # 2 en algunos proyectos.

          O crea tu propio proyecto. O colabore con un proyecto ya existente en un proyecto de código abierto como el bueno en Github: cree mejor el software, juntos

          Espero que haya ayudado.

          La mejor de las suertes.

          Si ve la programación como una de las asignaturas que necesita aprender, entonces nunca la aprenderá. Básicamente, la forma en que habla inglés debe ser la forma en que debe aprender a programar, considérelo como un lenguaje y no como una asignatura.

          Lo más importante es la paciencia, debes tener mucha paciencia, tanto que debes analizar 3000 líneas de código para detectar un error, los errores en un programa pueden estar relacionados entre sí, por lo que mi consejo es seguir estos pasos.

          1. Ir a fondo a través de la parte teórica del concepto de programación.
          2. Intenta ver un ejemplo.
          3. Ejecute el ejemplo en su compilador .. Como turbo c o gcc o putty en consecuencia.
          4. Analice usted mismo cómo está obteniendo el resultado deseado.
          5. Intente enmarcar una idea sobre un programa similar pero intente reducir las líneas de código (esto puede llevarle un tiempo, pero recuerde que la complejidad del espacio y la complejidad del tiempo).
          6. Si recibes un error, es algo asombroso, porque aprendes mucho de tus errores … yo mismo aprendí conceptos de mis propios errores.
          7. Consulte los libros de texto
          8. Participe en competiciones en línea como hackerearth, codechef, etc. a través de Facebook si desea
          9. Nunca te rindas cuando recibas errores …

          Recuerde que todos aprenden de sus errores. Feliz programacion 🙂

          ¡Genial, están haciendo esta pregunta y es fantástico verlos tratando de superarse a ustedes mismos y a otros con esta pregunta!

          El factor de cambio más importante para mi experiencia con otras personas es que intentamos convertirnos en los mejores en todo lo que encontramos.

          Trate de encontrar un enfoque en el campo de la programación con el que se sienta mejor conectado, podría ser ser un programador gráfico 3D o ser capaz de construir sistemas de back-end impresionantes arquitectónicos. Es un campo de juego totalmente diferente y poder hacer A. no lo hace calificado para B.

          Comprender esto y reconocer que necesitará a otras personas que aman a A. o a B. es la mejor calificación que podría tener un programador. Esto hace que una persona sea más amigable con los novatos y hace que sea más activa en los debates de arquitectura o comprensión de los errores; Como esta mentalidad de las personas será muy abierta a diferentes puntos de vista.

          Lo segundo que he visto es que los programadores que tienden a ser muy buenos en lo que hacen, en su mayoría tienen algo de magia para observar. Suena estúpido al escribir esto, pero honestamente tendrá la ventaja de poder observar y entender fácilmente. Comprender los patrones desde la observación, observar el comportamiento del código y comprender cómo su equipo podría ayudar en ciertas tareas, proporciona un campo de juego uniforme y abre espacio para aprender más de una manera más rápida.

          Oh … hacer estupendas preguntas asombrosas también construye grandes pasos en la dirección de ser bueno. Preguntar permite que otras personas te ayuden. Pero nunca rehúse de hacerle la misma pregunta a más personas, por lo que no terminará con una respuesta única a esa pregunta y posiblemente permita que eso se convierta en la verdad.

          Ya estás en un gran camino en una de las direcciones correctas.

          ¡Buena suerte!

          Para ser bueno en cualquier cosa, mucha práctica, se necesita trabajo duro.

          Para ser un buen programador, la ruta que se debe seguir es la siguiente:

          1. Aprende básico C.
          2. Iniciar la programación competitiva. Algunos buenos sitios para esto, Hackerearth, codecheaf, code forces, etc.
          3. Una vez que haya ordenado en él. Ir para avanzado y pasar a c ++.
          4. Tomar un curso de DSA (estructuras de datos y algoritmo).
          5. En este momento usted tiene un buen rango en los sitios de programación competitivos
          6. Ahora es el momento de elegir la especialización (desarrollo de aplicaciones, desarrollo web, visión artificial, desarrollo de software, aprendizaje automático, etc.)

          ¡Una vez que elija la especialización, tome su curso y comience a codificar!

          Como es cierto para cualquier industria y cualquier trabajo, la comprensión conceptual es la clave del éxito. A menos que uno tenga una base conceptual sólida, nunca podrá ser un buen programador. La comprensión conceptual fundamental lo ayuda a diseñar e implementar las mejores soluciones de la mejor manera posible.

          Cuando te metes en la cabeza, haz ping a los mentores. No les importa, confía en mí. Algo que pasará 5 horas entrando en pánico para aprender les tomará 2 minutos explicarte. Si no conoces a ningún buen programador, siéntete libre de usarme como tu primer mentor.

          Dedique más tiempo a comprender y analizar el problema y diseñar soluciones para él. Encontrará el resto de las cosas fácilmente factibles. Diseñar no siempre significa usar herramientas y lenguajes de modelado, puede ser tan simple como mirar el cielo y pensar la solución en tu mente. Aquellos que tienen hábitos de presionar el teclado (para la codificación) en el momento en que tienen el problema, generalmente nos terminaron con algo diferente al requisito.

          Escuela de holberton

          Leí esto en alguna parte, 10 formas de ser un buen programador.

          • Sin embargo, se convertirá en un buen programador al practicar más y más programación lógica, pero trate de leer el Código de otras personas.
          • Una vez que haya terminado de escribir su propio código, haga que alguien lea su código.
          • Antes de escribir un nuevo código, intente refactorizar su propio código o intente corregir errores en su propio código.
          • Lo mejor de un código realmente bueno es que es muy simple y fácil de entender, así que, hazlo simple.
          • Si intentas algo nuevo o investigado sobre algo, intenta escribir una publicación de blog sobre tu código.
          • Este es bastante difícil, pero trata de contribuir al código abierto.
          • Si tiene algún problema, intente solucionarlo usted mismo, no piratee el código de alguien.
          • En palabras simples, aumentar la cobertura de código en un 1%.
          • Para hacer que la programación sea divertida y sentirse renovado, intente dejar su escritorio cada hora.

          Sigue escribiendo programas.

          Sé que has leído esto por todas partes, pero realmente no hay forma de evitarlo. La práctica hace la perfección.

          Y esta es la razón exacta por la que siempre les digo a las personas que comiencen con algo que les encanta y que les apasiona, en lugar de buscar “el mejor idioma para principiantes de 2017”. Para seguir escribiendo y mejorando los programas, debes amar el tema en el que estás trabajando. Ya sea electrónica, desarrollo web, desarrollo de juegos, etc.

          Mi consejo sería recoger un libro para principiantes, leerlo y luego hacer algunos proyectos para principiantes. Después de eso, es posible que desee obtener un libro más avanzado, trabajar en él y luego hacer algo propio.

          Si no me crees, guarda una copia del código fuente antiguo y revísalo cada mes, así verás cuánto has mejorado.

          Buena suerte y diviértete 🙂

          Hola,

          Como dijo Sir Leif Erickson, necesitas práctica, mucha práctica. Sin embargo, es posible que seas bueno en la programación.

          Tiene plataformas de problemas que se utilizan para programar entrevistas, que pueden ayudarlo a hacer ejercicio y desarrollar una buena mentalidad de resolución de problemas, por ejemplo: LeetCode, la plataforma de aprendizaje de programación en línea líder del mundo.

          Además, la práctica por sí sola no lo llevará a donde quiere estar (a nivel profesional) porque también necesita una buena base teórica. Dependiendo del tipo de programador que quiera ser, también debe considerar estudiar temas relacionados con la materia elegida. Por ejemplo, digamos que usted decide convertirse en un desarrollador web, es importante que comprenda conceptos como DOM para que pueda entender el Shadow-DOM utilizado por ReactJS de Facebook o entender qué significa MVC y por qué es útil. Digamos que desea convertirse en un desarrollador de servicios de fondo, entonces debería considerar el aprendizaje de algoritmos y estructuras de datos. Y así.

          Espero haberte ayudado.

          Saludos,

          Carlos