Cómo mejorar las habilidades de programación.

Comience por obtener el 20% de su tiempo para dedicarlo a desarrollar sus propias habilidades. Si es posible, será mejor que ese 20% provenga 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 para mejorar sus habilidades. Su productividad puede disminuir inicialmente (o podría no cambiar mucho si está reemplazando la navegación web u otras distracciones), pero el objetivo es hacer inversiones que lo hagan más efectivo a largo plazo.

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

  • Estudie el código sobre las abstracciones básicas 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 eres demasiado eficiente en tu editor de texto o IDE, pregunta a algunos de tus compañeros más efectivos si les importaría que los observes por un momento mientras están programando. ¿Están utilizando métodos abreviados de teclado o funciones de edición con las que no está familiarizado pero que los hacen mucho más eficientes? Si es así, aprende y practica. Busque sugerencias de productividad en Google para cualquier entorno de desarrollo que utilice. Cuando aprendí por primera vez a Emacs, 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 a través de cualquier material técnico, 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 según décadas de experiencia. Si su empresa no tiene recursos similares, Google abre algunas de sus guías: https://code.google.com/p/google….
  • Domina el (los) lenguaje (s) de programación que usas . Lee 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 básicas de idiomas. Asegúrese de que al menos uno de sus idiomas sea un lenguaje de scripting (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 una retroalimentación buena y reflexiva, en lugar de reducir la barrera para hacer que su trabajo sea registrado. Solicite una revisión más detallada de las implementaciones en las que no está tan seguro.
  • Inscríbete en las clases en las áreas en las que quieres ser más fuerte. Estos podrían ser los que se ofrecen en el campus de la empresa, en los campus universitarios cercanos o en línea. Muchas de las compañías tecnológicas más grandes incluso pagarán por tus clases. Si desea mejorar la programación, tome más clases prácticas sobre temas como los patrones de diseño o sobre algún lenguaje de programación.
  • Construye una buena lista de libros técnicos y comienza a leer. Su compañía puede incluso reembolsarle. Este es un comienzo: ¿Cuál es el libro más influyente que todo programador debe leer?
  • Trabaja en diferentes tipos de proyectos y úsalos como oportunidades de aprendizaje. Si siempre realiza 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 unos pocos ingenieros superiores de los que sienta que puede aprender. Si no lo eres, considera cambiar proyectos o equipos. Esto ayudará a aumentar su tasa de aprendizaje para el 80% restante de su tiempo.
  • Escribe más código. Si sientes que la programación es tu punto débil, dedica más tiempo a crear y escribir código, ya que no mejorarás a menos que practiques el oficio. En la medida en que pueda, desvíe el tiempo de otras tareas relacionadas con la ingeniería, como gestionar proyectos, corregir errores, asistir a reuniones, diseñar productos, etc.

¡Buena suerte!

¿Buscas 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 compañías de tecnología más importantes y con cientos de hábitos y técnicas 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 que mi respuesta sea breve, no sugeriré ningún libro, pero me limitaré a la descripción general de cada tema.

Cada tema es un gran tema de interés en sí mismo. Pero puedes intentar agarrar lo más posible gradualmente a largo plazo.

Lenguajes de programación

  • Nunca te limites a un solo idioma. Siga aprendiendo varios idiomas: uno de procedimiento, uno orientado a objetos, uno de scripting, uno funcional, etc.
  • Además, no intentes aprender demasiados idiomas en un lapso de tiempo corto. Poco a poco seguir aprendiendo un nuevo idioma cada año. Pero nunca olvides el viejo que aprendiste.
  • No te enfoques 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.
  • Tener un buen dominio de 3 o 4 idiomas le dará una muy buena idea acerca de estos idiomas, que le será útil.
  • Sigue practicando mucho. Casi a diario debes escribir un programa, incluso si es un programa de 10 líneas. Haz que sea un hábito que nunca muere.

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 cualquier idioma que conozca.
  • Comprenda las operaciones básicas (lectura, escritura, etc.) de complejidad de tiempo para esas estructuras de datos.
  • Comprender las fortalezas y debilidades de cada uno de esos.
  • Recuerde la estructura de datos compatible con las bibliotecas de idiomas (STL, clases, etc.).
  • Sigue jugando mucho con esos.

Algoritmos

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

Comprensión del sistema

  • Entender la naturaleza de su sistema operativo de destino. ¿Qué soporta tu SO? ¿Cómo se está ejecutando 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 nivel alto.

Herramientas [Opcional]

  • Elija un editor adecuado.
  • Prefiere compiladores, construye herramientas que sigan los estándares.
  • Aprender herramientas de análisis estático, herramientas de perfil.

Finalmente

  • Escribir un montón de código, compilar, ejecutar, depurar.
  • Leer muchos códigos creados 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.

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 la restricción dada. Así que mejor te diré cómo ser mejor en la resolución de problemas:

Lenguaje de programación y fundamentos de la informática : –
En primer lugar, debe dominar cualquiera de los lenguajes populares (C / C ++ / Java / Python), le recomendaré que elija entre c ++ o Java, ya que ambos son ampliamente aceptados en todas las competiciones de codificación y tienen mejores recursos para entrenarse Aparte de conocer el idioma
asegúrate de que eres bastante bueno en la depuración y prueba de tu propio código escrito
Con todos los escenarios.

Recursos: –
CS106A: Metodologías de programación (Stanford Java tutorial)
Tutoriales de Eclipse y Java
CodingBat Java (problema elemental en la programación en java para poner en marcha las cosas)
Coursera (curso de C ++)
Comprar el lenguaje de programación C ++ (Bjarne Stroustrup)
Página en stanford.edu (curso CS101 realizado por stanford university para estudiantes no cs / principiante en 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 debe 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 cada técnica 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: libro de estructura de datos y rompecabezas algorítmicos

Canal de Youtube:-

mycodeschool

escuela de saurabh

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

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

En este punto del tiempo, tendrías la suficiente confianza como para imaginarte qué técnica seguiré o qué algoritmo utilizaré para resolver un problema en particular. ¡Ahora es el momento de la práctica!
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 codificador superior 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 una preparación para la entrevista, comience a resolver problemas desde
Cracking the Coding Interview: 150 Preguntas y soluciones de programación
GeeksforGeeks – Un portal informático para geeks.

Conclusión: 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.

Gracias por la A2A, Vaidyanathan Pk.

Primer vistazo a la pregunta y lo único que me llamó la atención fue “7-8 meses”. Eso es mucho tiempo. Al realizar una programación competitiva, obtendrá la confianza para abordar los problemas que no se ven, lo cual es un activo importante durante las entrevistas. Al concentrarse simplemente en las estructuras de datos (DS) y los algoritmos, perderá la capacidad de generar 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 al que ayuda un DS, es posible que se le permita usar un STL DS). ).

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

Prepararse para colocarse implica mucho más que el conocimiento adecuado de los algoritmos y DS y la capacidad de producir el código correcto rápidamente. Implica una comunicación adecuada de lo que sabe, la capacidad de explicar su código correctamente y no confundirse con las trampas difíciles que plantean los entrevistadores. En mi opinión, muchos entrevistados no prestan atención a estos aspectos, lo que afecta negativamente el rendimiento 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 se compara con un reloj y use las salas de práctica para fortalecer sus áreas débiles. Luego diríjase a LightOJ de Jan para practicar problemas con el tema. Mejorar la programación competitiva implica práctica, práctica inteligente. No hay atajos.

Sin embargo, si su objetivo es no sudarlo, mejore la programación solo para ubicarse (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 tiempo y en encontrar la solución, encuéntrela ). Asegúrate de que lo entiendes correctamente. Dirígete a Ideone.com y pega la solución, borra el bloque de funciones. Intenta recrearlo. Crea casos de borde y ve si tu código lo maneja. Esto le ayudará a escribir código estricto y también a escribir casos de prueba, que también es un componente integral de las entrevistas. El inconveniente de que este proceso sea lento (pero tiene 7 a 8 meses, no debería preocuparse) es muy efectivo.

¡Todo lo mejor!

Enfócate en el problema y no en la ceremonia de herramientas alrededor de él . No sigas la manada y el bombo. Cuando se le presente un problema, continúe explorando el problema hasta que quede absolutamente claro para usted y luego solo trabaje en la solución.

Meta hábito : aprender a adoptar diferentes hábitos para diferentes situaciones. Con eso en mente, algunas técnicas que he encontrado útiles para varias 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 apunta a la carne del programa. main.cc es usualmente pequeño e inútil para encontrar tu camino.
  • Un solo paso a través del programa con un depurador, comenzando en el bucle de distribución principal. Aprenderás mucho sobre el flujo de control.
  • Busque estructuras de datos, particularmente las que se pasan en muchas funciones como parámetros. La mayoría de los programas tienen un pequeño conjunto de estructuras de datos clave; Encuéntralos y orientándote al 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 en realidad cómo funciona el código.

Trabajo de rendimiento:

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

  • Antes que nada (incluso el perfil), cree un conjunto de puntos de referencia que representen el uso típico del mundo real. No deje que su rendimiento retroceda a menos que esté muy seguro de que está atascado en un máximo local y que hay 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 las cosas que normalmente no son necesarias
  • No ignore los factores constantes. A veces, un algoritmo con un rendimiento asintóticamente peor se desempeñará mejor en la práctica porque tiene una ubicación 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 característica que ponga.
  • Controla tus dependencias con cuidado. La biblioteca que adquirió para una función de utilidad puede haberle 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 para un equipo pequeño , deje que los problemas se acumulen y corríjalos todos a la vez (o elimine el código base y comience de nuevo). Al desarrollar para un equipo grande, nunca dejes que los problemas se acumulen; el código base siempre debe estar en un estado en el que un nuevo desarrollador pueda verlo y decir “Sé lo que hace esto 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, por lo que 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 vivo se deja como un ejercicio para el lector).

¡Espero eso ayude!

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

  1. Eficiencia – Esto viene principalmente con la práctica y el estudio de un idioma en particular. Cuanto más codifiques en un idioma, más rápido te irás porque te acostumbras a las funciones, el marco, las configuraciones, el IDE, etc. Esto sucede naturalmente. A menudo he trabajado con programadores que tienen solo 1 o 2 años de experiencia laboral pero el código es bastante rápido. En retrospectiva, yo era ese tipo de programador en mis primeros años. Pensé que todo es posible y mientras sea posible, podría escribir código rápidamente y hacerlo funcionar.
  2. Pragmática: este es el aspecto más importante de la habilidad de programación. Este aspecto depende de lo bueno que 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, debes aprender cómo lo hacen los maestros. Recomiendo leer algunos libros principalmente “El programador pragmático”. Este libro es todo acerca de la programación de la sabiduría. Ser pragmático significa que piensa con anticipación, planifica bien e identifica las fallas principales en su lógica y refina su algoritmo hasta un punto en el que está convencido de que no hay una laguna importante en su enfoque. Entonces 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 volver a trabajar en las características. Su código tiene solo algunos errores menores y sus características duran años porque lo escriben de manera que usted pueda construir características adicionales en la parte superior si lo hace y escalarlo. Escriben un código que se ve tan limpio y simple que cualquiera puede entenderlo fácilmente. No encontrará funciones o métodos complicados y largos que sean cientos de líneas de código. Todo se dividirá (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, igual que un administrador desglosa una tarea y los delegados). a los miembros de su equipo). No encontrará códigos de residuos en sus archivos, etc., porque los buenos programadores refactorizan y refactorizan a menudo .
  3. Usando las mejores prácticas – De nuevo, esto implica leer. En cualquier 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 seguirlas ciegamente y estar dispuesto a romper las reglas cuando realmente tenga sentido común.

Sin tener el proceso de pensamiento correcto, puede ser tan rápido como quiera y aún ser un programador de bajo rendimiento. Pero con el enfoque correcto, su eficiencia aumentará con el tiempo mientras se mantiene 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, el cofundador de overflow over stack, ha recomendado algunos libros que cree que todo programador debería leer:

Lectura recomendada para desarrolladores

Un buen programador con algunos años de experiencia sabe que cualquier lenguaje de programación tendrá las construcciones de programación básicas, tales como variables, sentencias condicionales (if-else, switch), iteraciones (for, while), etc. Todos los frameworks MVC son básicamente los mismos, Solo los detalles son diferentes. Todos los lenguajes OOPS tienen clases / objetos / métodos. De modo que puede elegir cualquier herramienta (idioma) y sentirse cómodo con ella en unas pocas semanas, si sabe cómo usar estas construcciones básicas muy bien 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 para aprender y adaptarse. Cualquier desarrollador experimentado sabe que siempre debe buscar formas de mejorar sus habilidades de programación. En esa nota, ya sea nuevo en la industria o veterinario, lo cubrimos con técnicas atemporales para la mejora continua.

1. Conoce tu estilo de aprendizaje

Todos aprendemos de manera diferente. Algunos aprenden mejor leyendo un libro. Algunos prefieren la experiencia práctica, o necesitan la estructura provista por un curso formal. Afortunadamente, hay una gran cantidad de 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 convengan. Si usted Aquí hay algunos grandes sitios para comenzar.

  • Código de la escuela
  • Udacity
  • Safari Libros en línea
  • Lynda.com
  • Pluralsight
  • Coursera
  • Confreaks.TV
  • Libros de programacion gratis

2. Aprender de los demás.

Una de las maneras 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 locales o el Desbordamiento de pila. Muestra tu código y solicita comentarios. Y no deje que el miedo a la crítica o la sensación de que está molestando a la gente le impida aprovechar uno de los recursos más poderosos disponibles para mejorar su conjunto de habilidades. Te sorprenderá lo ansioso que es ayudar a muchas personas a ayudar. Es halagador que se le pida que comparta su experiencia.

3. Usa la regla de los 15 minutos.

Si ha estado atrapado en un problema por más de 15 minutos, ¡pida ayuda! Date la vuelta y pregúntale a un compañero de trabajo cómo resolvería el problema, o describe tu problema en detalle en Desbordamiento de pila. Independientemente de a quién pregunte, el simple hecho de describir su problema en detalle lo pone 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 desafiándote a ti mismo. Esto significa que siempre debe estar trabajando en un proyecto de codificación. Incluso si tiene un trabajo de programación a tiempo completo, puede que el trabajo no sea lo suficientemente desafiante como para desarrollar sus habilidades, así que encuentre algo que lo haga. Algunos de los mejores desarrolladores siempre tienen un proyecto paralelo en el que 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 sigue lanzando.

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. Echa un vistazo a su código fuente y estudiarlo. Al principio puede sentirse perdido, pero con el tiempo aprenderá a navegar en grandes bases de código, identificar patrones de diseño y entender el código rápidamente.

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, empaque 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 aprendes, sino que también demuestra tus habilidades a futuros empleadores y clientes. ¡También te hace sentir bien!

7. Hacer pequeñas mejoras diarias.

Nadie domina la programación de la noche a la mañana. Se necesita una práctica consistente y deliberada. Tómese unos minutos para reducir la velocidad y haga una pequeña mejora cada día. 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 atajo para una tarea común. Cuando se combinan con el tiempo, estas pequeñas mejoras diarias se suman a los principales avances.

8. Explorar

Tómese un descanso 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 un vacío. Encuentre de dos a tres fuentes de información nueva a las que recurrir regularmente para obtener inspiración. Sigue a los programadores que admiras en Twitter. Navega por Hacker News diariamente o semanalmente.

Resumen

No hay secretos para convertirse en un mejor programador. Se necesita paciencia, práctica y perseverancia. Mantén la curiosidad, diviértete y nunca te sientas orgulloso de pedir ayuda. La recompensa está en el viaje y disfrutando de cada parada en el camino. ¡Feliz codificación!

Fuente: 8 formas de perfeccionar tus habilidades de programación y convertirte 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 a entender es que no se pueden determinar las entrevistas mediante el robo de todas las preguntas importantes de las estructuras de datos y los algoritmos. Uno necesita practicar e implementar los conceptos de las 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 debe uno llevarse bien con la programación competitiva?

Comencé por resolver problemas de Codemonk – Hackerearth , en los que los problemas se clasificaban en función de varios DS y algoritmos. Sin embargo, las preguntas tenían un nivel de dificultad más alto y con frecuencia 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 parecían ser bastante fáciles.

Recientemente he descubierto 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, menciona artículos sobre dónde estudiar y luego contiene algunos problemas de práctica que podrían familiarizarse con la programación competitiva. Así que es un buen sitio para comenzar una programación competitiva. Además de esto, uno debería participar en los Concursos Largos de codechef. Y luego, una vez que finaliza la competencia, se debe tratar de resolver los problemas pendientes sin resolver con la ayuda de editoriales.

Para poder pasar la ronda de codificación de cualquier compañía, uno necesita resolver problemas en un tiempo específico . Así que la velocidad a la que resuelves un problema también importa. Esto podría lograrse participando en Concursos cortos de codechef.

Aparte de esto, uno debería 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 puede usar bibliotecas de otros idiomas.

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

Enlaces a los sitios mencionados –

Preparar | CodeChef

Página del concurso | CodeChef

Página del concurso | CodeChef

GeeksforGeeks | Un portal informático para geeks.

¡Todo lo mejor!

Creo que se pueden encontrar muchos buenos consejos aquí mismo con respecto a la misma pregunta. Por lo tanto, lo alentaría a que primero repase todas las preguntas relacionadas.

Volviendo a la pregunta, ¿podría compartir su situación actual para que podamos brindarle consejos que se ajusten a sus necesidades? Su pregunta es solo en general: cómo mejorar sus habilidades de programación. Todavía hay muchas respuestas generales. Los sacudirá por ti en puntos:
1) Practique más: haga proyectos de pasatiempos, comience un proyecto y COMPLETE. Bueno o malo, termínalo. Consíguelo revisado si es posible. Aprender de ello.
2) Vaya a github y verifique los proyectos que le interesan, lea y aprenda del código. Sí, lea un buen código y aprenda qué trucos se usan allí, comprenda e intente implementar el mismo
3) Mejore su comprensión con respecto a las computadoras y su funcionamiento, no solo aprenda un lenguaje de programación. Obtenga más información sobre las computadoras: su funcionamiento, redes, etc. Esto puede no mejorar su programación pero definitivamente lo ayudará a crecer.
4) Entender las diversas estructuras de datos y sus usos. Probar la resolución de problemas algorítmicos. Implementalos en el idioma que elijas.
5) Interactuar con personas con intereses similares. Comparte ideas y recibe comentarios.
6) Participar en hackathons y concursos si es posible. Será bueno tener un equipo para esto. Encuentra gente de interés similar.

… También, sigue codificando más. Expulsar proyectos. Para mejorar en algo, es solo práctica. Practica bien, toma tipcs.

Estas son solo cosas menores sin mucho detalle. Dar detalles si es necesario. Además, como se mencionó anteriormente, repase todas las preguntas similares. Esta es una parte esencial de aprender a programar, no hacer preguntas ya formuladas. Más bien, mire las soluciones provistas y, si no le conviene, haga una pregunta que haga justicia a su situación y explique por qué algo no funciona para usted. La gente te ayudará más entonces.

Se aprende haciendo .

Paso 1 : Olvida lo que está haciendo la universidad. Se están esforzando por completar el programa de alguna manera. No tengas tanta prisa. Más bien, trata de descubrir qué “poderes” obtienes realmente una vez que te conviertas en un gran programador. Vea cómo se usa la programación en varios campos, como resolver problemas, crear aplicaciones, crear juegos, etc. Una vez que comprenda que hay algo más que “obtener grandes calificaciones en los exámenes”, será mucho mejor que en el pasado. Inspírate para que todo comience.

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

Paso 3 : Practicar. Cuantas más horas / día dediques a escribir códigos y resolver problemas, mejor te volverás. Tan sencillo como eso. Aprender algoritmos, implementarlos. Para empezar, recomendaría practicar los problemas de SPOJ (Sphere Online Judge (SPOJ)) ordenados de fácil a difícil. También hay muchos otros buenos sitios web como GeeksForGeeks (GeeksforGeeks | Un portal informático para geeks) que deberías vigilar. Si está interesado , también puede participar en competiciones de programación realizadas en CodeChef (Competencia de programación, Concurso de programación, Programación de computadoras en línea) y otros sitios web similares. (Nota: hay varias formas diferentes de practicar la programación, y acabo de mencionar una de esas maneras, que es mejor para mí). Recuerda: cuanto más practiques, mejor serás. Tan sencillo como eso.

Paso 4 : Salir con otros (grandes) codificadores. Tal vez tus amigos de la universidad, personas mayores o simplemente en cualquier foro en línea. Cuanto más te reúnes 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 distinto. ¿Estás listo para comenzar?

– De ra al Ghul

El comienzo de batman

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

  1. Juega más de 20 concursos de hackers, y gana 10 medallas, incluye un oro. Documenté el viaje Primera medalla de oro en Hackerrank.
  2. Haga más de 30 preguntas de algoritmo sobre el usuario Jianmin Chen, y también responda algunas preguntas.
  3. Escribir blogs de codificación para documentar mi práctica de Leetcode. Acabo de aprender a leer las estadísticas y respetar el resultado. Hacer una cosa una vez, el blog de codificación de Julia: la práctica hace la perfección.
  4. El código revisó mi propio código hace 8 años, fue un momento difícil para leer mi propio código y ver tantos problemas en los que trabajar. Blog de codificación de Julia – La práctica hace perfecto.
  5. Pruebe varias actividades, como entrevistas simuladas, anoté mi entrevista simulada y seguí mi progreso. Blog de codificación de Julia – La práctica hace perfecto.
  6. Tener una buena deportividad. Aprenda a compartir su progreso sin importar lo pequeño que sea, y también aprenda de algunos deportistas profesionales. Aprendo mucho de los jugadores de tenis WTA y especialmente a través del video de práctica, entrevistas. Obtenga una buena comprensión de la resistencia mental y ayúdese a mantener la salud física y mental fuerte. 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 para conectarse al mejor talento del mundo. Solo practica diariamente, lee el código, escribe el código, comparte tu idea. Disfruta del 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 la A2A.

Imagina a alguien que conozcas que sea un programador increíblemente bueno.
Probablemente desearías poder ser como ellos. ¿Derecha?

Si quieres mejorar en algo – Practica.

  • Empieza 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 las 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 de escribirse desde cero, lo que ayuda mucho con esas habilidades que solo se aplican a programas grandes.
  • Encuentre algunos buenos mentores y permítales revisar su código, e intente hacer un poco de programación de pares con ellos. Esto le ayudará a aprender su enfoque hacia la programación y le ayudará a comprender sus deficiencias.
  • Encuentra algunos compañeros con los que puedas revisar tu código. Personas de niveles de habilidad similares pueden enseñarse mucho entre sí.
  • Amplía tu 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 el código completo, El programador pragmático.
  • Adquiera el hábito de entender el dominio del problema. Trate de crear un mapa mental para el problema. Una vez que entiendas la lógica detrás del código, podrás escribirlo. Puede consultar el libro de Raj Bapna para comprender los mapas mentales.
  • Participar en varias comunidades de codificación en línea. Obtendrás conocimiento de calidad en estas plataformas.
    Aquí hay enlaces a las mejores 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
  • Práctica de estructura de datos, algoritmos y problemas relacionados con el diseño. Cuando intentas resolver un cuestionario en particular con tu programación, terminas con una solución. Debe ejecutarse más rápido, usar menos memoria y seguir siendo preciso.
  • Siempre que enfrente un problema particular, puede compartirlo 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 puedes leer El pequeño libro del talento de Daniel Coyle, esto te ayudará a nutrir y mejorar las habilidades.

Constantemente encuentra pequeños problemas que le interesan que pueden resolverse programáticamente y practicar, practicar, practicar. Si tener una solución a esos problemas creará valor para usted, entonces será más probable que persevere. Si tiene un objetivo concreto, sabrá exactamente cuándo lo ha alcanzado y sabrá qué partes faltan en el camino. Aprenderá por casualidad miles de cosas útiles e interesantes que no formaban parte de su proyecto original, pero que siempre serán útiles en el futuro.

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

Ignora 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 una 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 que tu código afecte al 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 al pulsar un botón.

Compre un reloj inteligente Pebble y haga una esfera de reloj sencilla que muestre la hora. Haga que muestre el clima de su código postal utilizando una API web pública, aunque eso se haya hecho mil 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 de forma gratuita y comience por crear aplicaciones increíblemente sencillas utilizando sus scripts C #. No tienen que calificar como juegos. Haz que las esferas se disparen al vacío al hacer clic en el botón del ratón. Añadir sonido. Añadir física. Juega con una aceleración similar a un cañón donde se lanza el proyectil y se propulsa por el aire utilizando el impulso antes de caer. Crea una pared de cajas mediante programación (¡arreglos anidados!) Para disparar a tus esferas. Haz que las cajas cambien de color dependiendo de la fuerza que experimenten.

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

Si sientes que naciste con código, el proceso de mejorar se hará cargo de sí mismo. Simplemente elimine todas las distracciones que pueda, elija algo interesante y comience a escribir.

Aprende algunos idiomas con ideas y filosofías diferentes y construye 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 saber qué trabajos ganan, ten esto en cuenta.

Elija un lenguaje funcional como Clojure, Racket o Haskell para obtener exposición a la pureza funcional, la administración del estado y los datos inmutables. Definitivamente, eche un vistazo a un lenguaje basado en ML (F #, OCaml, Haskell) aunque solo sea para ver qué es tan increíble acerca de los tipos de datos algebraicos y la escritura fuerte.

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

Elige JavaScript porque está en todas partes.

Construye cosas que se adapten al lenguaje que estás usando. Por ejemplo, hacer 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ía crear un juego (tal vez un roguelike) en cada uno de sus 3 o 4 idiomas, teniendo cuidado de observar cómo se desempeñan las propiedades de cada idioma en el diseño.

La vista general: si crea 10 cosas en 3 idiomas (30 cosas), será un programador más capacitado que el que creó 30 cosas en 1 idioma. Definitivamente no extrapolaría que construir 1 cosa en 30 idiomas sea una vez más mejor, ya que toma un tiempo dominar un idioma. Concéntrese en 3 o 4 idiomas hasta que sienta que ha aprendido todo lo que tienen para ofrecer. Estimo que no menos de 2 años por idioma, por lo que 3 o 4 idiomas deben tomar de 6 a 8 años, como mínimo.

Yo diría que para llegar a ser realmente avanzado como programador, se deben conocer al menos 4 idiomas, sin contar lenguajes falsos como HTML y CSS. Solía ​​pensar que era un programador bastante bueno programando profesionalmente en COBOL por un tiempo y luego en .NET durante mi carrera de más de veinte años. 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 las que había visto en mi trabajo de consultoría. Eso me abrió el apetito por los lenguajes de programación. 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.

El verdadero abridor de ojos, 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 la FP: ¡lea todo! Si lo asimilas todo, estarás codificando a un nivel completamente nuevo.

Me parece que estás experimentando algo que muchos desarrolladores experimentan … la visión de Tunnel.

Como desarrollador de software, su trabajo no es escribir código, sino investigar para descubrir qué código se supone que debe escribir. La investigación generalmente es 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 para completar la tarea en cuestión y no perderán tiempo investigando tecnologías generales o áreas que son nuevas.

Nunca crecerás como desarrollador si eliges solo aprender los hechos que necesitas aprender para resolver el problema que tienes por delante, porque hay algunas cosas muy importantes que nunca pensarás en 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 la parte inferior de esa lista lo que le impedirá convertirse en un mejor desarrollador de software. Nunca se encontrará con un problema en su trabajo cotidiano que lo llevará 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 moverá a la ranura de “saber que no sabe” y puede buscarlo cuando lo necesite. necesito.

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

  • ¿Sabes lo que es AngularJS?
  • ¿Sabes lo que es TypeScript?
  • ¿Conoces los entresijos de la programación multiproceso?
  • ¿Sabe cómo aplicar patrones de diseño asíncrono a la programación de múltiples subprocesos, pero también a situaciones en las que está esperando recursos externos como una secuencia de un disco o la respuesta de un servidor web?
  • ¿Sabes qué son las expresiones regulares? ¿Sabes si hay alternativas para ellos que podrían funcionar mejor?
  • ¿Sabes qué son los diferentes algoritmos de búsqueda?
  • ¿Sabes qué son los diferentes algoritmos de ordenación?
  • ¿Sabe cómo crear un objeto que lance sus propios eventos a los que otros objetos pueden suscribirse?
  • ¿Sabes lo que son MENOS y SASS?
  • ¿Sabe acerca de Bootstrap, Skeleton, and 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 lo que es una máquina de estado?
  • ¿Estás familiarizado con un Arduino? ¿Qué pasa con una frambuesa pi?
  • ¿Sabes cuáles son los diferentes tipos de bases de datos NoSQL? ¿Comprende para qué se puede usar una base de datos gráfica o para qué beneficios podría usarse una base de datos de valor clave?
  • ¿Sabe qué son las bases de datos en memoria y puede pensar en alguna razón para usarlas?
  • ¿Alguna vez has oído hablar de la segregación de consultas de comando y la obtención de eventos?

La idea es forzarte a ti mismo para aprender sobre tecnologías que no necesitas conocer, incluso si nunca las usas, incluso si olvidas lo que lees, porque en el futuro comenzarás a notar que tienes una 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 conocías!

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

  1. Ejecuta cada código : debes ejecutar cada código que escribas porque solo así obtendrás la alegría de la codificación.
  2. SIEMPRE trate de hacerlo usted mismo : Siempre trate de resolver el problema usted mismo antes de tomar la ayuda de otros.
  3. NUNCA intente copiar el código de otros sin entenderlo : si se queda atascado en un punto, puede ver el código de otras personas para referencia. Pero, nunca intente copiar el código de nadie a ciegas sin entenderlo.
  4. SIEMPRE borre sus conceptos : Antes de pasar a la siguiente parte de un lenguaje de programación, debe entender la parte actual muy bien porque están relacionadas entre sí.
  5. Practique LO QUE 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 está sucediendo dentro de la computadora : Siempre trate de pensar que lo que realmente está sucediendo dentro de la computadora cuando escribe una línea de código en particular. Esto te ayudará a entender mejor los lenguajes de programación.
  7. SIEMPRE intente las cosas MALAS : siempre trate de ver qué pasará si programa el programa incorrectamente (por ejemplo, intente averiguar qué pasará 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é no puede C tener dos funciones principales?). Esto te hará entender mejor el funcionamiento de un lenguaje de programación.
  8. Haga preguntas : siga haciendo todas las preguntas que pueda hasta que haya entendido bien el tema.

Y tratar de aprender C muy bien. Porque, una vez que entiendas completamente C, te resultará muy fácil cuando aprendas 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: Aprender

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.
  • Thinking in Java de Bruce Eckel es un buen libro para principiantes.
  • C # 4.0 La referencia completa de Herbert Schildt
  • Varios cursos están disponibles en Aprender a codificar. Regístrate.

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

PASO 2: Practica

Mejore su velocidad y precisión en la codificación al participar en varias situaciones en línea. Inscríbase 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

Forma un grupo de estudio y sigue practicando diariamente. Intenta desarrollar tus propios algoritmos / aplicaciones; Intenta responder algunas preguntas en Stack Overflow.

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

Feliz hacking

  • Mientras que en realidad estás construyendo algo, aprende lo que no sabes. Búscalo en línea y RTFM.
  • Ser un experto en una tecnología a la vez. Incluso con una pequeña API con la que está trabajando … piense leyendo las instrucciones y entendiendo realmente el diseño y la funcionalidad del mismo. Lea un libro sobre el lenguaje de programación que está utilizando, de principio a fin. Encontrarás que incluso puedes enseñar a los expertos una o dos cosas sobre las cosas que has dominado.
  • Si alguno de sus “superiores” se toma el tiempo de educarlo, aproveche la oportunidad y aprenda todo lo que pueda. Si no entiendes algo, búscalo más tarde.
  • No seas tímido para 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 se afloje, pero trate de aprender sobre tecnologías para hacer su vida más fácil, ANTES de escribir su código. Averiguar si existe un código que pueda reutilizarse 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 entusiasta 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. Aquí hay algunos elementos esenciales: “Godel, Escher, Bach”, “Code Complete (2ª edición)”, “Patrones de diseño”, “Introducción a los algoritmos”, “El programador pragmático”, “Javascript – Las partes buenas”. Cualquier cosa 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 las empresas influyentes y las personas en el campo que le interesa. Me gusta la programación web y sigo a algunos magos 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 excelente lugar para hacerlo, siéntete libre de conectarte conmigo y compartiré algunos contactos contigo: Bruno Škvorc – Google+

Pase las 6 horas restantes por día en la codificación. No siga los tutoriales y las aplicaciones de muestra; piense en un problema que deba resolverse, algo con lo que no esté satisfecho, y resuélvalo. Te encontrarás con muros, querrás rendirte, maldecirás, llorarás y te frustrarás a veces, pero también tendrás momentos de epifanía y alegría pura cuando descubras algo por tu cuenta.

Lo importante es evitar tutoriales, guías para principiantes, aplicaciones de muestra y cosas similares. Si realmente desea mejorar drásticamente, necesita 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 de carrera 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 se dirija dependerá en gran parte de por qué quiere aprender a codificar en primer lugar y cuánto tiempo debe 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 posibles ingenieros de software). Si desea crear sitios web o juegos para divertirse (y posiblemente obtener beneficios) en su tiempo libre, los tutoriales interactivos podrían ser mejores. Bloc tiene una comparación de opciones de cursos basadas en la carga de trabajo, el costo y la razón por la que está seleccionando la programación. Y si aún está decidiendo una carrera en tecnología, Switch recomendará una basada en sus intereses.

Las habilidades técnicas y los cursos que Google recomienda para los ingenieros de software

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

Lee mas

9. Elija el idioma correcto

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

Programador 101: Enséñate a ti mismo cómo codificar

Siempre ha querido aprender cómo construir software usted mismo, o simplemente crear ocasionalmente …

Lee mas

8. Empezar pequeño (y ser 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 codificar en ocho semanas, por ejemplo, pasó un fin de semana aprendiendo Python y un fin de semana adquiriendo un entendimiento introductorio de Django: repasando el tutorial, borrando todo el código del tutorial y estudiando el código. Tutorial de nuevo desde cero. Comience con lo básico y sea paciente consigo mismo a medida que avanza. Para llevar a cabo 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), intente con otro método antes de rendirse.

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

Para muchos de los que no son desarrolladores, aprender a codificar parece una tarea increíblemente desalentadora. Sin embargo,…

Lee mas

7. Prueba una aplicación para niños

Incluso los niños pequeños están aprendiendo a codificar 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 comenzar con los conceptos básicos de la programación (por cierto, edX tiene un nuevo curso sobre Programación en Scratch).

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. Utilice sitios de entrenamiento en línea gratis

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

Bento presenta los mejores recursos para aprender a codificar

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

Lee mas

5. Toma 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 centrados en un solo idioma. Estos cursos están diseñados para enseñarle habilidades fundamentales durante varios meses en clases de nivel universitario. No puedo recomendar personalmente el CS50 de Harvard (que puede tomar gratis) lo suficiente, pero hay muchos otros que puede tomar (muchos enumerados en nuestra serie Lifehacker U). Incluso puede crear una educación en informática de 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. Agarra algunos libros de programación gratis

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.

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

Ya sea que estés aprendiendo a codificar o ya seas 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 hay muchos tutoriales de codificación que te permiten crear 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 cómo 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. Obtener un mentor (o enseñar a alguien más)

La comunidad de programación está llena de personas que están 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 planear enseñar lo que aprendió puede ayudarlo a conservar mejor la información.

1. Hackear el código de otra persona

Cuando realiza la 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 las toneladas de código de código 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.