Cómo mejorar las habilidades de programación

Comience por obtener el 20% de su tiempo para dedicarlo al desarrollo de sus propias habilidades. Si es posible, será mejor si ese 20% proviene de una o dos horas al día en lugar de un día a la semana, ya que entonces puede hacer un hábito diario mejorar sus habilidades. Su productividad puede disminuir inicialmente (o puede que no cambie mucho si reemplaza la navegación web u otras distracciones), pero el objetivo es hacer inversiones que lo hagan más efectivo a largo plazo.

Entonces, ¿qué debe hacer con ese 20% de tiempo? Dado que está en una empresa de tecnología conocida, debe aprovechar los recursos disponibles para usted. Aquí hay 10 sugerencias:

  • Estudie el código sobre abstracciones centrales escrito por los mejores ingenieros de la empresa y comprenda por qué se tomaron ciertas decisiones y cómo se implementaron . Por ejemplo, si está en Google, lea el código en algunas de las bibliotecas principales escritas por los primeros ingenieros como Jeff Dean, Craig Silverstein o Ben Gomes. Comience con los que ha usado antes y pregúntese si hubiera escrito un código similar para varias partes y cómo podría aprender de sus ejemplos.
  • Si no es demasiado eficiente en su editor de texto o IDE, pregunte a algunos de sus compañeros de trabajo más eficaces si les importaría que los mire por un momento mientras codifican. ¿Están utilizando métodos abreviados de teclado o funciones de editor con las que no estás familiarizado pero que los hacen mucho más eficientes? Si es así, aprende y practica. Busque consejos de productividad en Google para cualquier entorno de desarrollo que utilice. Cuando aprendí Emacs por primera vez, por ejemplo, las 10 formas específicas de Steve Yegge para mejorar su productividad con Emacs me hicieron notablemente más eficiente. Incluso al releer partes de esa página para esta respuesta, he aprendido algo nuevo.
  • Lea todo el material técnico y educativo disponible internamente. Google, por ejemplo, tiene una amplia gama de codelabs que enseñan abstracciones básicas y guías de alta calidad de las mejores prácticas que los ingenieros veteranos han escrito para varios idiomas en base a décadas de experiencia. Si su empresa no tiene recursos similares, Google abrirá algunas de sus guías: https://code.google.com/p/google….
  • Domina los lenguajes de programación que utilizas . Lea un buen libro o dos sobre los idiomas. Concéntrese en desarrollar una comprensión sólida de los conceptos avanzados en ese idioma y familiarícese con las bibliotecas principales de idiomas. Asegúrese de que al menos uno de sus idiomas sea un lenguaje de secuencias de comandos (por ejemplo, Python) que pueda usar como su navaja suiza para tareas rápidas.
  • Envíe sus revisiones de código a los críticos más duros. Optimice para obtener comentarios buenos y reflexivos en lugar de reducir la barrera para que su trabajo se registre. Solicite una revisión más detallada sobre las implementaciones en las que no confía demasiado.
  • Inscríbase en clases en áreas en las que quiera ser más fuerte. Estos podrían ser ofrecidos en el campus de la compañía, en los campus universitarios cercanos o en línea. Muchas de las compañías tecnológicas más grandes incluso pagarán sus clases. Si desea mejorar en la programación, tome más clases prácticas sobre temas como patrones de diseño o algún lenguaje de programación.
  • Construya una buena lista de lectura de libros técnicos y comience a leer. Su empresa puede incluso reembolsarle. Aquí hay un comienzo: ¿Cuál es el libro más influyente que todo programador debería leer?
  • Trabaja en diferentes tipos de proyectos y úsalos como oportunidades de aprendizaje. Si siempre se encuentra realizando tareas similares utilizando métodos similares, será difícil salir de su zona de confort y adquirir nuevas habilidades.
  • Asegúrese de estar en un equipo con al menos algunos ingenieros superiores de los que sienta que puede aprender. Si no lo está, considere cambiar proyectos o equipos. Esto ayudará a aumentar su tasa de aprendizaje durante el 80% restante de su tiempo.
  • Escribe más código. Si cree que la programación es su punto débil, dedique más tiempo a crear y escribir código, ya que no mejorará a menos que practique el oficio. En la medida de lo posible, aleje el tiempo de otras tareas relacionadas con la ingeniería, como administrar proyectos, corregir errores, asistir a reuniones, diseñar productos, etc.

¡Buena suerte!

¿Busca más formas de sobresalir como ingeniero de software? Descargue un capítulo de muestra gratuito de mi libro, The Effective Engineer . Está diseñado específicamente para los ingenieros de software de hoy en día, basado en entrevistas extensas con líderes de ingeniería en las principales empresas de tecnología, y está repleto de cientos de hábitos y técnicas accionables para acelerar su carrera.

Para mejorar las habilidades de programación, debe centrarse en los siguientes 4 temas.

  • Lenguajes de programación
  • Estructuras de datos
  • Algoritmos
  • Comprensión del sistema

Para mantener mi respuesta breve, no sugeriré ningún libro, pero me limitaré a una visión general de cada tema.

Cada tema es un gran tema de interés en sí mismo. Pero puede tratar de obtener la mayor cantidad posible gradualmente a largo plazo.

Lenguajes de programación

  • Nunca te limites a un solo idioma. Siga aprendiendo varios idiomas: uno de procedimientos, uno orientado a objetos, uno de secuencias de comandos, uno funcional, etc.
  • Además, no intentes aprender demasiados idiomas en un corto período de tiempo. Poco a poco siga aprendiendo un nuevo idioma cada año. Pero nunca olvides el viejo que aprendiste.
  • No se concentre solo en la sintaxis. Centrarse en el paradigma del lenguaje, sus debilidades y fortalezas. Comprende dónde encaja bien cada idioma. Aprenda lo que el lenguaje diseñado para ofrecer.
  • El buen dominio de 3-4 idiomas le dará una idea muy agradable sobre estos idiomas, lo que le será útil.
  • Sigue practicando mucho. Casi a diario debe escribir un programa, incluso si es un programa de 10 líneas. Conviértalo en un hábito que nunca muera.

Estructuras de datos

  • Aprenda todas las estructuras de datos básicas: matriz, lista, árbol, gráfico, trie, diccionario / mapa, conjunto, etc.
  • Aprenda las estructuras de datos avanzadas todo lo que pueda: matriz de sufijos, árbol de sufijos, etc.
  • Implemente estructuras de datos en los idiomas que conozca.
  • Comprender las operaciones básicas (lectura, escritura, etc.) complejidad de tiempo para esas estructuras de datos.
  • Comprenda las fortalezas y debilidades de cada uno de ellos.
  • Recuerde la estructura de datos compatible con las bibliotecas de idiomas (STL, clases, etc.).
  • Sigue jugando mucho con ellos.

Algoritmos

  • Aprenda todos los algoritmos fáciles: clasificación, búsqueda, gráficos de algos, etc.
  • Aprenda todos los algoritmos avanzados lo que pueda: programación dinámica, retroceso, etc.
  • Necesita dominar el cálculo de la complejidad del algoritmo.
  • Debe aprender a diseñar su algoritmo personalizado según la necesidad.
  • Sigue implementando muchos algoritmos.

Comprensión del sistema

  • Comprenda la naturaleza de su sistema operativo de destino. ¿Qué soporta tu sistema operativo? ¿Cómo se ejecuta un proceso? etc.
  • Comprender los segmentos del programa: datos, texto, pila, montón, etc.
  • Si su idioma se basa en una máquina virtual, aprenda cómo funciona su VM a un alto nivel.

Herramientas [Opcional]

  • Elige un editor adecuado.
  • Prefiere compiladores, construye herramientas que sigan los estándares.
  • Aprenda herramientas de análisis estático, herramientas de creación de perfiles.

Finalmente

  • Escriba un montón de código, compile, ejecute, depure.
  • Lea un montón de código escrito por otros, puede ser de proyectos populares de código abierto.
  • Siga aprendiendo nuevos idiomas, nuevas estructuras de datos, nuevos algoritmos, nuevas herramientas año tras año.

Espero que esto ayude.

Gracias por el A2A, Vaidyanathan Pk.

La primera mirada a la pregunta y lo único que me llamó la atención fueron “7-8 meses”. Eso es mucho tiempo. Al hacer una programación competitiva, obtendrá la confianza para abordar problemas invisibles, lo cual es un activo importante durante las entrevistas. Simplemente concentrándose en estructuras de datos (DS) y algoritmos, perderá la capacidad de producir código rápido y correcto. La mayoría de las veces, no se le permitirá usar la biblioteca de plantillas estándar (STL) durante las entrevistas (aunque si el foco de la pregunta es un concepto algorítmico que es ayudado por un DS, entonces se le puede permitir usar un STL DS )

Hay una cosa a tener en cuenta: mejorar sus habilidades de codificación y prepararse para ser ubicado no es lo mismo.

Prepararse para ser ubicado implica mucho más que el conocimiento adecuado de algoritmos y DS y la capacidad de producir el código correcto rápidamente. Involucra una comunicación adecuada de lo que sabes, la capacidad de explicar tu código correctamente y no confundirte con las trampas difíciles que hacen los entrevistadores. En mi opinión, muchos entrevistados no prestan atención a estos aspectos, lo que afecta negativamente el desempeño de su entrevista.

De todos modos, volviendo al punto, para ser bueno en la programación competitiva, comience con topcoder, asista a los SRM para ver cómo le va en contra de un reloj y use las salas de práctica para fortalecer sus áreas débiles. Luego dirígete a LightOJ de Jan para practicar los problemas de manera inteligente. Mejorar en la programación competitiva implica práctica, práctica inteligente. No hay atajos.

Sin embargo, si su objetivo es no preocuparse, mejore la programación solo para que lo ubiquen (lo cual es una mala idea, pero no lo juzgo). La página en geeksforgeeks.org es para usted. Dirígete a LeetCode para practicar las preguntas de la entrevista. Leetcode también tiene un foro de discusión activo.

LPT: Esto es lo que solía familiarizarme con las preguntas de la entrevista. Toma un problema Lea el concepto y la solución (no se moleste en perder el tiempo y encuentre la solución, encuéntrela ). Asegúrate de entenderlo correctamente. Dirígete a Ideone.com y pega la solución, borra el bloque de funciones. Intenta recrearlo. Cree casos extremos y vea si su código lo maneja. Esto lo ayudará a escribir código estricto y también a escribir casos de prueba, que también es un componente integral de las entrevistas. La desventaja de que esto es un proceso lento (pero que tiene de 7 a 8 meses, no debería preocuparse por ello), es altamente efectivo.

¡Todo lo mejor!

Concéntrese en el problema y no en la ceremonia de herramientas a su alrededor . No sigas a la manada y al bombo publicitario. Cuando se le presente un problema, continúe analizando el problema hasta que sea absolutamente claro para usted y luego solo trabaje en la solución.

Metahábito : aprende a adoptar diferentes hábitos para diferentes situaciones. Con eso en mente, algunas técnicas que he encontrado útiles para diversas situaciones:

Programación de mantenimiento para una base de código grande y desconocida:

  • Echa un vistazo a los tamaños de archivo. Los archivos más grandes generalmente contienen la carne del programa, o al menos un despachador que señala la carne del programa. main.cc suele ser pequeño e inútil para orientarse.
  • Paso único a través del programa con un depurador, comenzando en el bucle principal de despacho. Aprenderá mucho sobre el flujo de control.
  • Busque estructuras de datos, particularmente aquellas que se pasan a muchas funciones como parámetros. La mayoría de los programas tienen un pequeño conjunto de estructuras de datos clave; encontrarlos y orientarse hacia el resto se vuelve mucho más fácil.
  • Escribir pruebas unitarias. Son la mejor manera de confirmar que su comprensión del código es realmente cómo funciona el código.

Trabajo de rendimiento:

No lo haga, a menos que lo haya construido y sea demasiado lento para los usuarios. Tenga objetivos de rendimiento de cuánto necesita mejorar y deténgase cuando los golpee.

  • Antes que nada (¡incluso perfilar!), Construya un conjunto de puntos de referencia que representen el uso típico del mundo real. No permita que su rendimiento retroceda a menos que esté muy seguro de estar atrapado en un máximo local y haya una mejor solución global a la vuelta de la esquina.
  • A menudo puede obtener grandes ganancias iniciales al evitar el trabajo innecesario. Guarda en caché tus cálculos más grandes y evalúa perezosamente cosas que generalmente no son necesarias
  • No ignores los factores constantes. A veces, un algoritmo con un rendimiento asintóticamente peor funcionará mejor en la práctica porque tiene una localidad de caché mucho mejor. Puede identificar oportunidades para esto en las funciones que se llaman mucho.

Código general de higiene:

  • No construyas especulativamente. Asegúrese de que haya un cliente para cada función que agregue.
  • Controla tus dependencias con cuidado. La biblioteca que utilizó para una función de utilidad puede haberlo ayudado a ahorrar una hora implementando la función de utilidad, pero agrega muchos más lugares donde las cosas pueden romperse: implementación, control de versiones, seguridad, registro, muertes inesperadas de procesos.
  • Cuando desarrolle para usted o un equipo pequeño , deje que los problemas se acumulen y corríjalos todos a la vez (o deseche la base del código y comience de nuevo). Cuando se desarrolle para un equipo grande, nunca permita que se acumulen problemas; la base del código siempre debe estar en un estado en el que un nuevo desarrollador pueda mirarlo y decir “Sé lo que hace y cómo cambiarlo”. Esto es una consecuencia de la relación lector: escritor: el código de inicio se escribe mucho más de lo que se lee y, por lo tanto, la legibilidad importa poco, pero el código maduro se lee mucho más de lo que se escribe. (Cambiar a la última cultura cuando necesita desarrollarse como la primera para obtener usuarios y financiación y mantenerse con vida se deja como un ejercicio para el lector).

¡Espero eso ayude!

La codificación es solo una parte del proceso de resolución de problemas. Debe comprender el problema subyacente y la solución eficiente dentro de las limitaciones dadas. Así que mejor te diré, cómo ser mejor en la resolución de problemas:

Lenguaje de programación y ciencias de la computación fundamentales : –
En primer lugar, debe dominar cualquiera de los lenguajes populares (C / C ++ / Java / Python), le aconsejaré que elija entre c ++ o Java, ya que ambos son ampliamente aceptados en todas las competiciones de codificación y tienen mejores recursos para Hazte entrenar. Aparte de saber el idioma
asegúrese de ser bastante bueno en la depuración y prueba de su propio código escrito
con todos los escenarios

Recursos: –
CS106A: Metodologías de programación (tutorial de Stanford Java)
Tutoriales en video de Eclipse y Java
CodingBat Java (problema elemental en la programación de Java para poner en marcha las cosas)
Coursera (curso C ++)
Compre el lenguaje de programación C ++ (Bjarne Stroustrup)
Página en stanford.edu (curso CS101 de la universidad de stanford para estudiantes que no son cs / estudiantes principiantes de ciencias de la computación)

Estructura de datos y algoritmo : –
Puede ser un buen programador si conoce bien un lenguaje de programación, pero para convertirse en un gran programador necesita comprender la estructura de datos y el algoritmo subyacentes.

Recursos: –
Introducción al Libro de Algoritmos (CLRS), lenguaje fácil, explicación muy detallada sobre todas y cada una de las técnicas de algoritmo (libro de la Biblia 🙂)

El arte de la programación de computadoras: algoritmos fundamentales v. 1 libro

Estructuras de datos y algoritmos simplificados: Segunda edición: Estructura de datos y libro de acertijos algorítmicos

Canal de Youtube:-

mycodeschool

saurabhschool

Coursera (curso de algoritmo ofrecido por la universidad de Stanford)

Qué hacer:
1. Intente implementar cada solución en papel primero antes de comenzar el código
2. Analice el problema, defina la restricción, compare su propia solución con el parámetro de complejidades de tiempo / espacio y luego comience a codificar (puede ser difícil de hacer al principio, pero seguramente lo convertirá en un mejor programador)

En este momento, tendrá la suficiente confianza como para imaginar qué técnica debo seguir o qué algoritmo utilizaré para resolver un problema en particular. ¡Ahora es el momento de practicar!
1. Comience a resolver el problema en Sphere Online Judge (SPOJ), 200 problemas
2. Una vez que termine el paso 1, pruebe los problemas de topcoder para DP y otras técnicas algorítmicas (resuelva alrededor de 300 div2 o div1, hasta que se sienta seguro de sí mismo)
3 ( Opcional ) Si está buscando preparación para la entrevista, comience a resolver problemas desde
Descifrando la entrevista de codificación: 150 preguntas y soluciones de programación
GeeksforGeeks: un portal informático para geeks

En pocas palabras: – No es la única ” La ” forma de lograr una buena mentalidad de programación, pero es una mejor manera que me ayudó a equiparme con un mejor conocimiento de programación.

Hay 3 aspectos en los que las habilidades de programación se pueden mejorar para cualquier programador:

  1. Eficiencia: esto viene principalmente con la práctica y el estudio de un idioma en particular. Cuanto más codifique en un idioma, más rápido se volverá porque se acostumbrará a las funciones, el marco, las configuraciones, el IDE, etc. Esto ocurre naturalmente. A menudo he trabajado con programadores que tienen solo 1 o 2 años de experiencia laboral pero que codifican bastante rápido. En retrospectiva, fui ese tipo de programador en mis primeros años. Pensé que todo es posible y, siempre que sea posible, podría escribir código rápidamente y hacerlo funcionar.
  2. Pragmatismo: este es el aspecto más importante de la habilidad de programación. Este aspecto depende de cuán bueno sea tu proceso de pensamiento. Si tiene que escribir código para una función, ¿simplemente abre un editor de texto y comienza a codificar como un campeón, o piensa y planifica? El programador que hace esto último suele ser el mejor programador. Para mejorar el enfoque y el proceso de pensamiento, debe aprender cómo lo hacen los maestros. Recomiendo leer algunos libros principalmente “El programador pragmático”. Este libro trata sobre la sabiduría de programación. Ser pragmático significa que piensa con anticipación, planifica bien e identifica los principales defectos en su lógica y refina su algoritmo hasta un punto en el que está convencido de que no hay un vacío importante en su enfoque. Luego simplemente ejecuta (escribe el código). Los mejores programadores no se preocupan tanto por la velocidad de codificación como por la calidad . Por lo general, no reelaboran las funciones. Su código tiene solo unos pocos errores menores y sus características duran años porque lo escriben de una manera que puede construir funciones adicionales en la parte superior y escalarlo. Escriben código que se ve tan limpio y simple que cualquiera puede entenderlo fácilmente. No encontrará funciones o métodos largos y complicados que son cientos de líneas de código. Todo se desglosará (delegará) en funciones más pequeñas, de modo que cuando lea cualquier función, comprenderá lo que hace en unas pocas líneas (todos los detalles se delegan a otras funciones / métodos al igual que un gerente desglosa una tarea y delega a los miembros de su equipo). No encontrará código de desperdicio en comentarios, etc., en sus archivos porque los buenos programadores refactorizan temprano y refactorizan a menudo .
  3. Uso de mejores prácticas: una vez más, esto implica leer. Independientemente del idioma en el que programe, encontrará artículos sobre las mejores prácticas para ese idioma. Debe leerlos y seguirlos después de comprender el propósito de esas prácticas, es decir, sin seguirlos ciegamente y estar dispuesto a romper las reglas cuando realmente tenga sentido común.

Sin tener el proceso de pensamiento correcto, puedes ser tan rápido como quieras y ser un programador de bajo rendimiento. Pero con el enfoque correcto, su eficiencia aumentará con el tiempo y mantendrá la calidad alta. Si continúas en ese camino, lograrás el dominio.

En cuanto a qué aprender, comience leyendo algunos buenos libros de programación. Jeff Atwood, cofundador de stack overflow, ha recomendado algunos libros que cree que todo programador debería leer:

Lecturas recomendadas para desarrolladores

Un buen programador con unos pocos años de experiencia sabe que cualquier lenguaje de programación tendrá las construcciones de programación básicas, tales como variables, declaraciones condicionales (if-else, switch), iteraciones (por un tiempo), etc. Todos los frameworks MVC son básicamente iguales. Solo los detalles son diferentes. Todos los lenguajes OOPS tienen clases / objetos / métodos. Por lo tanto, puede elegir cualquier herramienta (idioma) y sentirse cómodo con ella en unas pocas semanas, si sabe cómo usar muy bien estas construcciones básicas y escribe un código inteligente, ordenado, simple y reutilizable.

Todo lo mejor.

A medida que el mundo se vuelve más conectado y la tecnología continúa evolucionando, su éxito como programador depende de su capacidad de aprender y adaptarse. Cualquier desarrollador experimentado sabe que siempre debe buscar formas de mejorar sus habilidades de programación. En ese sentido, ya sea que sea nuevo en la industria o un veterinario, lo tenemos cubierto con técnicas eternas para la mejora continua.

1. Conoce tu estilo de aprendizaje

Todos aprendemos de manera diferente. Algunos aprenden mejor leyendo un libro. Algunos prefieren experiencia práctica o necesitan la estructura proporcionada por un curso formal. Afortunadamente, hay muchos recursos de aprendizaje gratuitos o de bajo costo a solo una búsqueda rápida para que no tenga que perder su tiempo en métodos que no le convienen. Si usted Aquí hay algunos sitios excelentes para comenzar.

  • Código escolar
  • Udacity
  • Safari Books Online
  • Lynda.com
  • Vista plural
  • Coursera
  • Confreaks.TV
  • Libros de programación gratis

2. Aprende de los demás

Una de las formas más rápidas de mejorar su conjunto de habilidades es aprovechar el conocimiento y la experiencia de las personas que ingresaron al campo antes que usted. Si bien un mentor formal es un gran activo, no es obligatorio. Busque ayuda de expertos de fuentes como el líder de su equipo, los miembros de su grupo de usuarios local o Stack Overflow. Muestre su código y solicite comentarios. Y no permita que el miedo a las críticas o la sensación de estar molestando a las personas le impidan aprovechar uno de los recursos más poderosos disponibles para nivelar su conjunto de habilidades. Te sorprenderá lo ansioso que está ayudar a muchas personas a ayudar. Es halagador que te pidan que compartas experiencia.

3. Use la regla de los 15 minutos

Si ha estado atrapado en un problema por más de 15 minutos, ¡solicite ayuda! Date la vuelta y pregúntale a un compañero de trabajo cómo resolverían el problema, o describe tu problema en detalle en Stack Overflow. Independientemente de a quién le pregunte, el solo hecho de describir su problema en detalle lo coloca en el camino hacia la solución. La mayoría de los problemas no tienen precedentes, y alguien estará encantado de compartir su experiencia o formar un equipo sobre el tema.

4. Trabajar en proyectos reales.

¿La manera segura de mejorar? Practica y desafíate a ti mismo. Esto significa que siempre deberías estar trabajando en un proyecto de codificación. Incluso si tiene un trabajo de programación a tiempo completo, el trabajo puede no ser lo suficientemente desafiante para desarrollar sus habilidades, así que encuentre algo que lo haga. Algunos de los mejores desarrolladores siempre tienen un proyecto paralelo para trabajar. No tener una idea no es una excusa. Encuentre un proyecto de código abierto para contribuir regularmente, cree aplicaciones web para organizaciones benéficas o aborde la idea tonta de la aplicación que su amigo le ofrece.

5. Mira debajo del capó

La mayoría de los programadores dependen en gran medida de marcos como Spring, Rails o Angular para hacer el trabajo. Si bien estos marcos promueven la productividad, también son un tesoro de ejemplos e inspiración que puede aplicar a sus propias soluciones. Vea su código fuente y estudíelo. Al principio puede sentirse perdido, pero con el tiempo aprenderá a navegar grandes bases de códigos, identificar patrones de diseño y comprender rápidamente el código.

6. Comparte lo que aprendes

Como dice el viejo refrán, la mejor manera de aprender es enseñando. Cuando aprendas algo nuevo, no te lo guardes. Comparta su nueva habilidad o hallazgo en una publicación de blog, grabe un screencast de usted mismo creando una nueva característica, empaquete su código en una biblioteca y póngalo en GitHub, o presente nuevos descubrimientos en una reunión local. Compartir no solo refuerza lo que aprende, sino que demuestra sus habilidades a futuros empleadores y clientes. ¡También te hace sentir bien!

7. Haz pequeñas mejoras diarias

Nadie domina la programación de la noche a la mañana. Se necesita práctica constante y deliberada. Tómese unos minutos para reducir la velocidad y realice una pequeña mejora todos los días. Podría ser aprender una nueva función de idioma, leer una página del manual o cambiar la configuración de su editor para agregar un acceso directo para una tarea común. Cuando se combinan con el tiempo, estas pequeñas mejoras diarias se suman a los principales avances.

8. Explore

Tómese un tiempo de espera cada semana para explorar nuevos idiomas, tecnologías y fuerzas externas que dan forma a nuestro mundo. El conocimiento y las habilidades no existen en el vacío. Encuentre dos o tres fuentes de información nueva para aprovecharla regularmente en busca de inspiración. Sigue a los codificadores que admiras en Twitter. Explore las noticias de Hacker diariamente o semanalmente.

Resumen

No hay secretos para convertirse en un mejor programador. Se necesita paciencia, práctica y perseverancia. Mantenga la curiosidad, diviértase y nunca se enorgullezca de pedir ayuda. La recompensa está en el viaje y disfruta cada parada en el camino. ¡Feliz codificación!

Fuente: 8 maneras de perfeccionar sus habilidades de programación y convertirse en un mejor codificador | Blog | AppDynamics

Estoy en mi tercer año de graduación y también estoy trabajando para mejorar mis habilidades de codificación.

Lo importante que hay que entender es que no se pueden concretar las entrevistas asaltando todas las preguntas importantes sobre estructuras de datos y algoritmos. Uno necesita practicar e implementar los conceptos de estructuras de datos en un lenguaje de programación. Y la mejor manera es comenzar una programación competitiva y participar en los concursos realizados por ellos. Pero, ¿cómo debería llevarse bien con la programación competitiva?

Comencé resolviendo problemas de Codemonk – Hackerearth , en el que los problemas se clasificaron en función de varios DS y algoritmos. Sin embargo, las preguntas eran de un nivel de dificultad más alto y a menudo incluían muchos conceptos juntos. También resolví algunos problemas en Hackerrank , pero no pude continuar mucho. Spoj también contiene varios problemas basados ​​en etiquetas, pero los casos de prueba parecen ser bastante fáciles.

Recientemente descubrí la Certificación de estructuras de datos y algoritmos de Codechef . La fase de preparación de la certificación es bastante buena. Comienza desde el nivel de principiante, mencionando artículos sobre dónde estudiar y luego contiene algunos problemas de práctica que le ayudarán a familiarizarse con la programación competitiva. Por lo tanto, es un buen sitio para comenzar una programación competitiva. Además de esto, uno debe participar en Concursos Largos de codechef. Y luego, una vez finalizada la competencia, uno debe tratar de resolver los problemas restantes sin resolver con la ayuda de editoriales.

Para poder pasar la ronda de codificación de cualquier empresa, es necesario resolver los problemas en un momento específico . Entonces, la velocidad a la que resuelve un problema también es importante. Esto podría lograrse participando en Concursos cortos de codechef.

Aparte de esto, uno debe conocer las bibliotecas de al menos un lenguaje de programación, lo que ayudaría en la implementación de algoritmos y estructuras de datos. La más recomendada es la Biblioteca de plantillas estándar (STL) de C ++, sin embargo, también se pueden utilizar bibliotecas de otros idiomas.

Y para actualizarnos con qué tipo de preguntas se hacen en las entrevistas, debemos visitar el sitio web geeksforgeeks . Sin embargo, como se mencionó anteriormente, no debemos juntar las soluciones y siempre tratar de implementarlas.

Enlaces a los sitios mencionados –

Prepararse | CodeChef

Página del concurso | CodeChef

Página del concurso | CodeChef

GeeksforGeeks | Un portal informático para geeks

¡Todo lo mejor!

Creo que muchos buenos consejos se pueden encontrar aquí en relación con la misma pregunta. Por lo tanto, le animo a que primero lea todas las preguntas relacionadas.

Volviendo a la pregunta nuevamente, ¿podría compartir su situación actual para que podamos brindarle consejos adaptados a sus necesidades? Su pregunta es en general: cómo mejorar sus habilidades de programación. Hay muchas respuestas generales. Los sacudirá por ti en puntos:
1) Practique más: haga proyectos de pasatiempo, comience un proyecto y COMÚLELO. Bueno o malo, termínalo. Obténgalo revisado si es posible. Aprender de ello.
2) Vaya a github y verifique los proyectos que le interesen, lea y aprenda del código. Sí, lea un buen código y aprenda los trucos que se usan allí, comprenda e intente implementar lo mismo
3) Mejore su comprensión con respecto a las computadoras y su funcionamiento, no solo aprenda un lenguaje de programación. Aprenda más sobre las computadoras: su funcionamiento, redes, etc. Esto puede no mejorar su programación, pero definitivamente lo ayudará a crecer.
4) Comprender varias estructuras de datos y sus usos. Prueba la solución algorítmica de problemas. Impleméntelos en el idioma que elija.
5) Interactuar con personas con intereses similares. Comparta ideas y obtenga comentarios.
6) Participa en hackatones y concursos si es posible. Será bueno tener un equipo para esto. Encuentra personas de interés similar.

… también, sigue codificando más. Empujar proyectos. Para mejorar cualquier cosa, es solo práctica. Practica bien, toma consejos.

Estas son solo cosas menores con poco detalle. Dé detalles si necesita detalles. Además, como se mencionó anteriormente, revise todas las preguntas similares. Esta es una parte esencial de aprender a programar, no hacer preguntas ya formuladas. En cambio, mire las soluciones proporcionadas y, si no le conviene, formule preguntas que hagan justicia a su situación y diga por qué algo no funciona para usted. La gente te ayudará más entonces.

Aprendes haciendo .

Paso 1 : Olvídate de lo que está haciendo la universidad. Están tratando de completar el programa de alguna manera. No tengas tanta prisa. Por el contrario, trata de descubrir qué “poderes” realmente obtienes una vez que te vuelves excelente en la programación. Vea cómo se usa la programación en varios campos, como la resolución de problemas, la creación de aplicaciones, la creación de juegos, etc. Una vez que comprenda que hay algo más que “de alguna manera obtener buenas calificaciones en los exámenes”, será mucho mejor que donde estaba ayer. Inspírate para comenzar todo.

Paso 2 : Quédate con un idioma al principio. Intente aprender los conceptos básicos de la codificación si aún no lo ha hecho (correctamente), hay toneladas de videos / tutoriales en línea. (No te sobreestimes / subestimes a ti mismo en este punto)

Paso 3 : práctica. Cuantas más horas / día pase detrás escribiendo códigos y resolviendo problemas, mejor será. Tan sencillo como eso. Aprenda algoritmos, impleméntelos. Para empezar, recomendaría practicar los problemas de SPOJ (Juez de Esfera en línea (SPOJ)) ordenados de fácil a difícil. También hay toneladas de otros buenos sitios web como GeeksForGeeks (GeeksforGeeks | Un portal de ciencias de la computación para geeks) que debe vigilar. Si está interesado , también puede participar en concursos de programación celebrados en CodeChef (Concurso de programación, Concurso de programación, Programación informática en línea) y otros sitios web similares. (Nota: Hay varias formas diferentes de practicar la programación, y acabo de mencionar una de ellas, que funciona mejor para mí). Recuerda: cuanto más practiques, mejor serás. Tan sencillo como eso.

Paso 4 : Sal con otros codificadores (excelentes). Tal vez tus amigos de la universidad, personas mayores o simplemente en cualquier foro en línea. Cuanto más salgas con ellos, más aprendes nuevas formas de hacer las cosas. Mira cómo escriben los códigos. Cómo se acercan para resolver un problema particular. Aprenderás mucho aquí.

Paso 5 : ” Tu entrenamiento no es nada. La voluntad lo es todo. Si te conviertes en algo más que un hombre, si te dedicas a un ideal, te conviertes en algo completamente diferente. ¿Estás listo para comenzar?

– De ra al Ghul

El comienzo de batman

Me gusta escribir lo que he hecho los últimos 12 meses para ayudarme a mejorar mis habilidades de programación.

  1. Juega más de 20 concursos de hackerrank y gana 10 medallas, incluyendo una de oro. Documenté el viaje First Gold Medal en Hackerrank.
  2. Haga más de 30 preguntas de algoritmos sobre el usuario Jianmin Chen y también responda algunas preguntas.
  3. Escribir blogs de codificación para documentar mi práctica de Leetcode. Solo aprendo a leer las estadísticas y respetar el resultado. Haz una cosa a la vez, el blog de codificación de Julia: la práctica hace la perfección
  4. Revise mi propio código hace 8 años, fue un momento difícil leer mi propio código y ver tantos problemas para trabajar. Blog de codificación de Julia: la práctica hace la perfección
  5. Pruebe varias actividades, como entrevistas simuladas, escribí mi entrevista simulada y seguí mi progreso. Blog de codificación de Julia: la práctica hace la perfección
  6. Tener un buen espíritu deportivo. Aprenda a compartir su progreso, no importa cuán pequeño sea, y también aprenda de algunos deportistas profesionales. Aprendo a muchos tenistas de la WTA y especialmente a través del video de práctica y las entrevistas. Obtenga una buena comprensión de la fortaleza mental y ayúdese a mantener la salud física y la fortaleza mental. Cómo superar el miedo es mi tema de investigación favorito en mayo. Investigación deportiva: cómo superar el miedo a perder en el tenis

Creo que el programador inteligente dedica menos tiempo a escribir código, más tiempo a conectarse con los mejores talentos del mundo. Simplemente practique a diario, lea el código, escriba el código, comparta su idea. Disfruta el viaje a uno de los mejores programadores competitivos del mundo.

Originalmente respondido: ¿Qué debo hacer para mejorar mis habilidades de programación? ·

Hola Rohini Ganorkar, gracias por el A2A.

Imagina a alguien que conoces que es un programador increíblemente bueno.
Probablemente desearías poder ser como ellos. ¿Derecho?

Si quieres mejorar en algo, practica.

  • Comienza a escribir programas. Cree su propio blog en PHP, cree un complemento de JavaScript, tenga una idea de cómo funcionan estas cosas, para que tenga la confianza. Recuerde Mejorar habilidades generalmente mejora la productividad.
  • Modificar programas existentes escritos por otras personas. esto le permite trabajar en muchos más programas grandes de los que tendría tiempo para escribir desde cero, lo que ayuda mucho con esas habilidades que solo se aplican a programas grandes.
  • Encuentre algunos buenos mentores y déjelos revisar su código, e intente hacer un par de programación con ellos. Esto lo ayudará a aprender su enfoque hacia la programación y lo ayudará a comprender sus deficiencias.
  • Encuentre algunos compañeros con los que pueda revisar su código. Las personas con niveles de habilidad similares pueden enseñarse mucho.
  • Amplíe su horizonte aprendiendo múltiples lenguajes de programación. Cada idioma que aprenda le dará ideas sobre cómo hacer mejor las cosas en otros idiomas. Lea libros sobre la calidad del código, como código completo, The Pragmatic Programmer.
  • Acostúmbrese a comprender el dominio del problema. Intenta crear un mapa mental para el problema. Una vez que comprenda la lógica detrás del código, podrá escribirlo. Puede consultar el libro de Raj Bapna para comprender los mapas mentales.
  • Participe en varias comunidades de codificación en línea. Obtendrá conocimientos de calidad en estas plataformas.
    Aquí hay enlaces a las principales comunidades:
    Reddit: https://www.reddit.com/r/program
    Github: https://github.com/
    Geeks For Geeks: http://www.geeksforgeeks.org/
    Codechef: https://www.codechef.com/
    Proyecto Euler: https://projecteuler.net/
    CodeAcademy: https://www.codecademy.com/
    CodeMonk: https://www.hackerearth.com/prac
  • Practicar la estructura de datos, algoritmos y problemas relacionados con el diseño. Cuando intentas resolver un cuestionario particular con tu programación, terminas con una solución. Debe ejecutarse más rápido, usar menos memoria y aún así ser preciso.
  • Siempre que se enfrente a un problema en particular, puede compartirlos en comunidades dedicadas. Esto lo ayudará a obtener respuestas a sus problemas rápidamente sin perder mucho tiempo y esfuerzo.
    StackOverflow: https://stackoverflow.com
    Esta es la comunidad más grande para hacer preguntas relacionadas con la programación o la informática.

    También puede leer El pequeño libro del talento de Daniel Coyle, esto lo ayudará a nutrir y mejorar sus habilidades.

Aprenda algunos idiomas que exponen diferentes ideas y filosofías y construya algo significativo en cada uno.

Elija un lenguaje orientado a objetos como C #, Java, Ruby o Python para exponerse al estándar de la industria que es OOP. Por lo que he visto, las plataformas .NET y Java son los grandes jugadores, así que si estás interesado en aprender lo que gana trabajos, ten esto en cuenta.

Elija un lenguaje funcional como Clojure, Racket o Haskell para obtener exposición a la pureza funcional, la gestión del estado y los datos inmutables. Echa un vistazo a un lenguaje basado en ML (F #, OCaml, Haskell) aunque solo sea para ver lo que es tan increíble sobre los tipos de datos algebraicos y la tipificación fuerte.

Elija un idioma como Clojure, Erlang o Go que tenga un buen modelo de concurrencia.

Elija JavaScript porque está en todas partes.

Crea cosas que se adapten al lenguaje que estás utilizando. Por ejemplo, haga algo en Erlang que capitalice su modelo de actor.

Crédito adicional: hay una gran cantidad de valor para poder comparar y contrastar idiomas. Para ese fin, sería útil construir lo mismo en diferentes idiomas. Por ejemplo, podrías construir un juego (tal vez un roguelike) en cada uno de tus 3 o 4 idiomas teniendo cuidado de notar cómo se desarrollan las propiedades de cada idioma en el diseño.

La visión a largo plazo: si construyes 10 cosas en 3 idiomas (30 cosas) serás un programador más capaz que el que construyó 30 cosas en 1 idioma. Definitivamente no extrapolaría que construir 1 cosa en 30 idiomas es una vez más mejor, ya que lleva un tiempo dominar un idioma. Concéntrese en 3 o 4 idiomas hasta que sienta que ha aprendido todo lo que tienen para ofrecer. Yo estimaría no menos de 2 años por idioma, por lo que 3 o 4 idiomas deberían demorar de 6 a 8 años, como mínimo.

Yo afirmaría que para ser realmente avanzado como programador, uno debe conocer al menos 4 idiomas bien sin contar los lenguajes falsos como HTML y CSS. Solía ​​pensar que era un programador bastante bueno codificando profesionalmente en COBOL por un período y luego en .NET durante mis más de veinte años de carrera. Y luego Rails me llamó la atención y me abrió a una comunidad que abrazaba a Ruby y hacía cosas más increíbles de lo que había visto en mi trabajo de consultoría. Eso despertó mi apetito por los lenguajes de programación por completo. He estado aprendiendo uno tras otro y viendo innumerables charlas en cada uno. Aprendí más en los últimos cinco años de lo que aprendí durante los 15 años anteriores.

La verdadera revelación, sin embargo, ha sido la programación funcional. Las ideas en la comunidad de FP son algunas de las mejores en tecnología, en mi humilde opinión. (Estoy enamorado de los lenguajes basados ​​en ML y Scheme). F # por diversión y ganancias es lo mejor de lo mejor cuando se trata de mostrar el poder de FP: ¡lee todo! Si lo asimilas todo, estarás codificando a un nivel completamente nuevo.

Constantemente encuentre pequeños problemas que le interesen que puedan resolverse mediante programación y practique, practique, practique. Si tener una solución a esos problemas creara valor para usted, entonces será más probable que persevere. Si tiene una meta concreta, sabrá exactamente cuándo la alcanzó y sabrá qué partes faltan en el camino. Por casualidad, aprenderá miles de cosas útiles e interesantes que no formaron parte de su proyecto original, pero que serán siempre útiles en el futuro.

Tenga curiosidad acerca de cómo se construye el software que usa actualmente. ¿Te has preguntado cómo identifica Gmail los mensajes como spam? Intenta construir un filtro básico de spam usando el teorema de Bayes (¡es más simple de lo que parece!)

Ignorar el diseño y las interfaces al principio. Puede aprender una cantidad increíble simplemente trabajando con texto, y no se sentirá abrumado por tratar de hacer que las cosas se vean pulidas.

Si tiene inclinación matemática, eche un vistazo a algo como https://projecteuler.net/ e intente resolver los desafíos. Intente resolverlos en un idioma nuevo y desconocido (Swift, Go, etc.).

¿Quieres ver tu código afectar el mundo físico? Compre un microcontrolador Arduino barato ( http://www.arduino.cc/ ) y experimente con diferentes sensores. Parpadea un LED cuando un sensor IR pasivo detecta movimiento. Suena un piezo cuando presionas un botón.

Compra un reloj inteligente Pebble y crea una esfera de reloj simple que muestre la hora. Haga que muestre el clima para su código postal utilizando una API web pública, a pesar de que se ha hecho miles de veces antes. Es un objetivo concreto y claramente definido que le enseñará cómo utilizar cualquier tipo de datos de API web externas.

Descargue Unity – Game Engine gratis y comience por crear aplicaciones increíblemente simples usando su script C #. No tienen que calificar como juegos. Haz que las esferas se disparen al vacío al hacer clic en el botón del mouse. Añade sonido. Añadir física. Juega con una aceleración similar a un cañón donde se lanza el proyectil y se impulsa por el aire usando el impulso antes de caer. Crea mediante programación un muro de cajas (¡matrices anidadas!) Para disparar a tus esferas. Haga que las cajas cambien de color dependiendo de la fuerza que experimenten.

Pronto se dará cuenta de que poder programar es como una superpotencia. Puedes codificar una parte inmortal de ti mismo en la electrónica y luego clonarla miles de veces. Ese pedazo de tu conciencia continuará indefinidamente y te liberará para hacer otra cosa. Esas piezas digitales tuyas incluso interactuarán con otras personas.

Si siente que nació para codificar, el proceso de mejora se encargará de sí mismo. Simplemente elimine todas las distracciones que pueda, elija algo interesante y comience a escribir.

Me parece que estás experimentando algo que muchos desarrolladores experimentan … Visión de túnel.

Como desarrollador de software, su trabajo no es escribir código, en realidad es investigar para averiguar qué código se supone que debe escribir. La investigación es generalmente más del 50% de nuestro trabajo, a veces más del 80% dependiendo de su rol en el equipo.

Demasiados desarrolladores solo investigarán lo que necesitan investigar para completar la tarea en cuestión, y no pasarán tiempo investigando tecnologías generales o áreas que son nuevas.

Nunca crecerá como desarrollador si elige solo aprender los hechos que necesita aprender para resolver el problema que tiene por delante, porque hay algunas cosas muy importantes que nunca pensará buscar.

Hay cuatro categorías de su propio conocimiento:

  1. Cosas que sabes que sabes.
  2. Cosas que no sabes que sabes.
  3. Cosas que sabes que no sabes.
  4. Cosas que no sabes que no sabes.

Es el último en esa lista que le impedirá convertirse en un mejor desarrollador de software. Nunca encontrará un problema en su trabajo diario que lo lleve directamente a aprender algo que no sabe que no sabe. Tienes que salir activamente y buscar cosas que no sabes que no sabes.

Después de aprender una de estas cosas, está bien olvidarlo si no lo necesita para su trabajo, porque ese conocimiento se trasladará al espacio “sabe que no sabe” y puede buscarlo cuando lo desee. necesito.

Reserve 6 horas a la semana como mínimo para leer sobre cosas nuevas. Aquí hay algunas ideas para ti:

  • ¿Sabes qué es AngularJS?
  • ¿Sabes qué es TypeScript?
  • ¿Conoces los entresijos de la programación multiproceso?
  • ¿Sabes cómo aplicar patrones de diseño asincrónicos tanto a la programación de subprocesos múltiples como a los escenarios en los que esperas recursos externos como una transmisión desde un disco o la respuesta de un servidor web?
  • ¿Sabes qué son las expresiones regulares? ¿Sabes si hay alternativas a ellos que podrían funcionar mejor?
  • ¿Sabes qué son los diferentes algoritmos de búsqueda?
  • ¿Sabes qué son los diferentes algoritmos de clasificación?
  • ¿Sabes cómo crear un objeto que arroje sus propios eventos a los que otros objetos pueden suscribirse?
  • ¿Sabes lo que son MENOS y SASS?
  • ¿Conoces Bootstrap, Skeleton y Foundation y qué los hace diferentes?
  • ¿Sabes cómo funciona SQL? Quiero decir, realmente funciona, ¿cómo convierte esa consulta en el plan de ejecución correcto?
  • ¿Alguna vez has intentado escribir algo en la Asamblea?
  • ¿Sabes qué es una máquina de estado?
  • ¿Estás familiarizado con un Arduino? ¿Qué pasa con una Raspberry Pi?
  • ¿Sabes cuáles son los diferentes tipos de bases de datos NoSQL? ¿Entiende para qué podría usarse una base de datos de gráficos o para qué beneficios podría usarse una base de datos de valor clave?
  • ¿Sabes qué son las bases de datos en memoria y se te ocurre alguna razón para usarlas?
  • ¿Alguna vez has oído hablar de la segregación de consultas de comando y el abastecimiento de eventos?

La idea es obligarse a aprender sobre tecnologías que no necesita conocer, incluso si nunca las usa, incluso si olvida lo que lee, porque en el futuro comenzará a notar que tiene un una caja de herramientas mucho más grande de recursos en tu cabeza porque eres consciente de tantas cosas que no sabes, ¡donde antes ni siquiera sabías que no las sabías!

Si quieres convertirte en un buen programador, solo recuerda lo siguiente:

  1. Ejecute cada código : debe ejecutar cada código que escriba porque solo entonces obtendrá la alegría de la codificación.
  2. SIEMPRE intente hacerlo usted mismo : siempre trate de resolver el problema usted mismo antes de pedir ayuda a otros.
  3. NUNCA intente copiar el código de otro sin entenderlo : si está atascado en un punto, puede ver el código de otras personas como referencia. Pero, nunca intentes copiar el código de nadie a ciegas sin entenderlo.
  4. SIEMPRE aclare sus conceptos : antes de pasar a la siguiente parte de un lenguaje de programación, debe comprender muy bien la parte actual porque estas partes están relacionadas entre sí.
  5. Practique tanto como pueda: sin la práctica de escribir código, no puede ser un buen programador. Debe usar HackerRank, CodeChef, etc. para practicar nuevos códigos.
  6. SIEMPRE trate de entender lo que sucede dentro de la computadora : siempre trate de pensar lo que realmente sucede dentro de la computadora cuando escribe una línea de código en particular. Esto lo ayudará a comprender mejor los lenguajes de programación.
  7. SIEMPRE intente lo INCORRECTO : siempre trate de ver qué sucederá si codifica el programa incorrectamente (por ejemplo, intente averiguar qué sucederá si incluye 2 funciones principales en su código C) (Haga clic aquí para averiguar por qué podemos No use 2 funciones principales en C: la respuesta de Suman Adhikari a ¿Por qué C no puede tener dos funciones principales?). Esto te hará comprender mejor el funcionamiento de un lenguaje de programación.
  8. Haga preguntas : siga haciendo tantas preguntas como pueda hasta que haya entendido bien el tema.

Y trata de aprender C muy bien. Porque, una vez que comprenda completamente C, le resultará muy fácil cuando aprenda otros lenguajes de programación.

Espero que mi respuesta te ayude. Y la mejor de las suertes para tu futuro. Feliz codificación 🙂

PASO 1: Aprende

Elija un idioma (uno de C ++, Java y C #). Aprende a vivir, comer y respirar en ese idioma. Puede aprender de los libros o ir a los diversos cursos en línea. Algunos de mis libros favoritos son:

  • Programación – Principios y práctica usando C ++: este es un libro bastante útil para aquellos con poca o ninguna experiencia en programación; Te ayudará a refinar tu técnica.
  • Pensar en Java por Bruce Eckel es un buen libro para principiantes.
  • C # 4.0 La referencia completa de Herbert Schildt
  • Hay varios cursos disponibles en Learn to code. Regístrate.

Únase también a Stack Overflow, una plataforma de preguntas y respuestas en línea dedicada a la programación. Si necesita ayuda para comprender los conceptos, o está teniendo problemas con algún ejercicio, encontrará mucha ayuda aquí.

PASO 2: Practica

Mejore su velocidad y precisión en la codificación participando en varios hacathons en línea. Regístrese en HackerRank o Sphere Online Judge (SPOJ), donde encontrará muchos desafíos.

Una vez que haya terminado con los algoritmos, intente resolver problemas de la vida real en HackerEarth: desafíos de programación y trabajos de desarrollador

PASO 3: Propagar

Forme un grupo de estudio y practique diariamente. Intente desarrollar sus propios algoritmos / aplicaciones; intente responder algunas preguntas sobre Stack Overflow.

Incluso puedes organizar talleres para los jóvenes en tu universidad.

Feliz piratería

  • Mientras estás construyendo algo, aprende lo que no sabes. Búscalo en línea y RTFM.
  • Sea un experto en una tecnología a la vez. Incluso con una pequeña API con la que está trabajando … piense en leer las instrucciones y realmente comprender el diseño y la funcionalidad de la misma. Lea un libro sobre el lenguaje de programación que está utilizando, de principio a fin. Descubrirá que incluso puede enseñar a los expertos una o dos cosas sobre las cosas que ha dominado.
  • Si alguno de sus “superiores” se toma el tiempo para educarlo, aproveche la oportunidad y aprenda todo lo que pueda. Si no comprende algo, búsquelo más tarde.
  • No dudes en preguntar cuando te quedas atascado en Stack Overflow. Encuentro que, por lo general, mientras formulo una pregunta correctamente, descubriré la respuesta por mi cuenta antes de publicarla.
  • No te relajes, pero trata de aprender sobre tecnologías para hacerte la vida más fácil, ANTES de escribir tu código. Averiguar si existe un código existente que pueda reutilizar no es una tarea fácil.
  • Aproveche con entusiasmo las revisiones de código.

Tómese 8 horas de cada día para promover este propósito. No recomiendo hacer más que eso a menos que te sientas demasiado entusiasmado porque podría causar un agotamiento.

1 hora todos los días para leer un buen libro de programación. No leas tutoriales, no leas guías. Estos son algunos elementos esenciales: “Godel, Escher, Bach”, “Código completo (2ª edición)”, “Patrones de diseño”, “Introducción a los algoritmos”, “El programador pragmático”, “Javascript – Las partes buenas”. Algo de esta lista, realmente: recursos. ¿Cuál es el libro más influyente que todo programador debería leer? – Desbordamiento de pila

1 hora todos los días para leer el contenido publicado por empresas y personas influyentes en el campo que le interesa. Me gusta la programación web, sigo a algunos asistentes web y nunca me pierdo nada de lo que publican. Use esta hora también para construir una presencia social en las comunidades relacionadas con sus intereses. Haga algunas preguntas, responda a otras, escriba un blog, exprese su opinión, únase a la comunidad. Google Plus es un gran lugar para hacerlo, no dude en conectarse conmigo y compartiré algunos contactos con usted: Bruno Škvorc – Google+

Pase las 6 horas restantes por día en codificación. No revise tutoriales y aplicaciones de muestra, piense en un problema que necesita solución, algo con lo que no esté satisfecho, y resuélvalo. Te encontrarás con paredes, querrás rendirte, maldecirás, llorarás y te sentirás frustrado a veces, pero también tendrás momentos de epifanía y pura alegría cuando descubras algo por tu cuenta.

Lo importante es evitar tutoriales, guías para novatos, aplicaciones de muestra y cosas similares. Si realmente desea mejorar drásticamente, debe aprender de sus propios errores, no de muestras mediocres.

La programación es una de las habilidades más valiosas que puede adquirir en estos tiempos modernos, ya sea para las perspectivas profesionales o para estirar el cerebro y crear algo increíble. Si recién está comenzando su viaje de codificación, aquí hay diez consejos y recursos para comenzar con el pie derecho.

10. Averigua por qué quieres aprender a codificar

La dirección en la que vayas dependerá en gran parte de por qué quieres aprender a codificar en primer lugar y cuánto tiempo tienes para dedicar al aprendizaje. Si quieres ser un programador profesional, inscribirte en cursos universitarios podría ser tu mejor opción. (Google tiene una lista de habilidades y cursos sugeridos para los futuros ingenieros de software). Si desea crear sitios web o juegos por diversión (y posiblemente con fines de lucro) en su tiempo libre, los tutoriales interactivos podrían ser mejores. Bloc tiene una comparación de opciones de cursos en función de la carga de trabajo, el costo y la razón por la que está eligiendo la programación. Y si todavía está decidiendo una carrera tecnológica, Switch le recomendará una basada en sus intereses.

Las habilidades y cursos tecnológicos que Google recomienda para ingenieros de software

La ingeniería de software es una de las carreras más demandadas y mejor pagadas, pero aprender informática …

Lee mas

9. Elige el idioma correcto

No hay un “mejor” lenguaje de programación, y una vez que hayas aprendido uno, es bastante fácil elegir otro, así que no te obsesiones con elegir tu primer idioma. Dicho esto, algunos idiomas son más amigables para los principiantes que otros. El idioma con el que elige comenzar puede depender, nuevamente, de su propósito. (Por ejemplo, si desea escribir una aplicación para iOS, necesitará aprender Swift). Hay un caso para comenzar con C si es serio acerca de la programación, aunque los lenguajes de nivel superior, como Python, son más fáciles de saltar. en enseguida. Aquí hay una infografía que compara algunos lenguajes de programación populares.

Programador 101: enséñese cómo codificar

Siempre quiso aprender a construir software usted mismo, o simplemente preparar un ocasional …

Lee mas

8. Comience con poco (y sea paciente)

No importa qué idioma o método de aprendizaje elija, debe comenzar desde el principio (un muy buen lugar para comenzar). Cuando David Sinsky aprendió a programar en ocho semanas, por ejemplo, pasó un fin de semana aprendiendo Python y un fin de semana obteniendo una comprensión introductoria de Django: repasando el tutorial, eliminando todo el código del tutorial y trabajando en el tutorial de nuevo desde cero. Comience con lo básico y sea paciente consigo mismo a medida que avanza. Para tomar su primer proyecto de codificación de principio a fin, divida el proyecto en pasos simples. Y si un método de aprendizaje no funciona para usted (por ejemplo, libros), pruebe con otro método antes de darse por vencido.

Cómo me enseñé a codificar en ocho semanas

Para muchos no desarrolladores, aprender a codificar parece una tarea imposiblemente desalentadora. Sin embargo,…

Lee mas

7. Pruebe una aplicación para niños

Incluso los niños pequeños están aprendiendo a codificar en estos días. Eso es realmente una gran cosa para todos nosotros. Aunque muchos de los programas diseñados para enseñar a los niños a codificar son muy simplistas, muchos de ellos, como Scratch, son adecuados para todas las edades. No importa la edad que tengas; incluso las aplicaciones de animación para niños pueden ayudarlo a comenzar con los conceptos básicos de programación (edX tiene un nuevo curso sobre Programación en Scratch, por cierto).

Cómo y por qué enseñar a sus hijos a codificar

Ya sea que su hijo crezca o no para ser el próximo Zuckerberg, la programación es una habilidad muy útil …

Lee mas

6. Use sitios de capacitación en línea gratuitos

Los sitios gratuitos de capacitación en línea como Codecademy y otros participantes de la Hora del Código pueden ayudarlo a escribir su primer programa de computadora. Tutoriales de KhanAcademy, Codecademy, The Hour of Code is here !, y muchas otras organizaciones le presentarán los conceptos básicos de la programación, todo mientras crea un nuevo juego, sitio u otro proyecto. Encuentre los recursos que necesita según el idioma que esté aprendiendo con Bento. Estos son buenos puntos de partida, pero deberá tomar la iniciativa para avanzar o continuar su aprendizaje después de estas presentaciones.

Bento presenta los mejores recursos para aprender a codificar

¿Quieres aprender desarrollo web y programación? Bento te comenzará con el pie derecho …

Lee mas

5. Tome un curso de codificación

Los cursos de informática en línea ofrecen un poco más de experiencia educativa completa en comparación con los sitios de capacitación en línea que se centran en un idioma. Estos cursos están diseñados para enseñarle habilidades fundamentales durante varios meses en clases de nivel universitario. Personalmente, no puedo recomendar el CS50 de Harvard (que puedes tomar de forma gratuita), pero hay muchos otros que puedes tomar (muchos de los que figuran en nuestra serie Lifehacker U). Incluso puede construir una educación en informática a nivel universitario con esta selección de quince cursos en línea.

Introducción a la informática

Una introducción a las empresas intelectuales de la informática y el arte de la programación.

Leer en edx.org

4. Tome algunos libros de programación gratuitos

Cuando te quedas atascado en un problema o simplemente necesitas buscar algo, los libros de referencia son muy útiles. Hay una gran colección de más de 500 libros de programación gratuitos publicados en GitHub, y otra colección de libros electrónicos que cubren 24 lenguajes de programación.

Obtenga más de 500 libros de programación gratuitos de GitHub

Ya sea que esté aprendiendo a codificar o que ya sea un programador experimentado, este GitHub …

Lee mas

3. Jugar juegos de codificación

A menudo, la mejor manera de aprender es a través de juegos. Si bien muchos tutoriales de codificación te hacen construir juegos simples o complejos, un par de sitios de enseñanza son literalmente juegos: Code Combat y CodinGame son dos con los que te puedes divertir.

Game Maven te enseña a codificar mientras haces juegos

No hay escasez de recursos para aprender a codificar en estos días. Añadir a tu colección Juego …

Lee mas

2. Obtenga un mentor (o enseñe a alguien más)

La comunidad de programación está llena de personas dispuestas a ayudar a la próxima generación de programadores. Hack.pledge () es un sitio que lo conectará con un mentor, o puede registrarse para ser mentor de otra persona. Incluso solo planificar enseñar lo que has aprendido puede ayudarte a retener mejor la información.

1. Hackear el código de otra persona

Cuando realiza ingeniería inversa del código de otra persona, al probar cada línea para ver cómo funciona, obtiene una mejor comprensión del panorama general. Gracias a toneladas de código fuente abierto, puede aprender casi cualquier cosa y seguir aprendiendo a través del ciclo de piratería incremental. Solo recuerde compartir su código con la comunidad si mejora un programa.