websites used programming popular most languages examples programming-languages

programming languages - used - Hoja de ruta para un mejor programador



programming languages used in most popular websites (22)

  1. Aprenda su primer lenguaje de programación un nuevo paradigma de programación o un
  2. encuentra un mentor del que puedas aprender
  3. Aplica lo que has aprendido en un proyecto del mundo real.
  4. Aprende de tus errores y éxitos y ve al primer paso

El truco es saber qué aprender primero:

  • Lenguajes de programación: este es el lugar para comenzar, ya que no puede escribir software sin conocer al menos uno de estos. Después de haber dominado un idioma, intenta aprender otro.
  • Paradigma de programación: es decir, orientado a objetos, programación dinámica / funcional, etc. Trate de aprender uno nuevo con cada nuevo lenguaje.
  • Conceptos de diseño: SOLIDOS, patrones de diseño y conceptos arquitectónicos.
  • Habilidades de la gente - aprende a comunicar tus ideas.
  • Liderazgo de equipo: aprenda cómo barrer a otros y cómo convertirse en un equipo o líder tecnológico.

Después de eso el cielo es el límite.

Siempre se dice que cuanto más programa, mejor te vuelves. Suena bien y verdad. Pero me preguntaba si hay un camino comprobado para convertirse en un mejor programador.

Algo como:

  • Aprender un
  • Aprender b
  • Aprende c> ''Ahora eres bueno para quemar los motores''
  • Prueba cosas alrededor de tu aprendizaje.

La respuesta podría ser similar a la hoja de ruta de un curso de CS, pero quiero escuchar a programadores exitosos que quieran colaborar con algo notable.

Gracias


Además de ver el ''código de las últimas semanas'', hable con los usuarios de su trabajo después de la entrega, sea uno de ellos si es posible.

No es mi bolso, pero algunos de los mejores programadores que conozco han dedicado tiempo a soportar aplicaciones. La experiencia mejoró su producto, estoy seguro.


Además del resto de los buenos consejos que ya se dieron aquí, no tenga miedo de leer sobre codificación y buenas prácticas, sino que también tome todo con un grano de sal y vea qué funciona mejor para usted. Muchos consejos son de opinión.

Buenos sitios para leer: -thedailywtf.com -joelonsoftware.com -codinghorror.com -blogs.msdn.com/oldnewthing

Un gran lugar para practicar es la programación de sitios web de competencia. Esos lo ayudarán a aprender cómo escribir buenos algoritmos, no necesariamente un código que se pueda mantener, pero siguen siendo un buen lugar para comenzar a aprender. El que solía usar (cuando tenía tiempo) era: http://uva.onlinejudge.org/

Aprenda más de un idioma. Uno a la vez, definitivamente, pero en última instancia, debe ser fluido en una pareja. Creo que esto le dará una mejor perspectiva y lo ayudará a convertirse en un experto en programación, en lugar de ser un experto en un determinado idioma.

Conozca los entresijos de las computadoras en todos los niveles, hardware, sistema operativo, etc. Idealmente, debería poder construir su propio sistema, instalar múltiples sistemas operativos en él y diagnosticar casi todos los problemas que puedan surgir. Conozco a muchos programadores que no son "personas informáticas" y su incapacidad para entender lo que está sucediendo en cada nivel se convierte en un obstáculo importante para diagnosticar y corregir errores inusuales o problemas de rendimiento.


Aprender un lenguaje de programación es en muchos aspectos similar a aprender un lenguaje hablado. La única manera de hacerlo bien es hacerlo tan a menudo como sea posible. En otras obras

Practica, practica, lee y luego practica más.


Claro, hablando estrictamente, cuanto más practiques en la programación, mejor llegarás a resolver este tipo de problemas. ¿Pero es eso lo que realmente quieres?

La programación es una actividad humana más que tecnológica, en su corazón. Es fácil mejorar sus habilidades informáticas, no tan difícil mejorar sus habilidades interpersonales.

Lea "El viaje del profesional del software" por Hohmann. Uno de los conceptos que describe Hohmann es la "biblioteca cognitiva", que incluye tanto habilidades de programación como habilidades de no programación. Amplía tu biblioteca cognitiva, y tu habilidad de programación también mejorará.

Lee muchos libros que no están programados y observa el mundo que te rodea. Crear metáforas útiles es una habilidad esencial para el programador exitoso. ¿Por qué los restaurantes hacen las cosas como lo hacen? ¿Qué compensaciones está haciendo el departamento de basura cuando recogen la basura cada pocos días en lugar de cada día? ¿Cómo afecta la escala la forma en que una tienda de comestibles hace negocios? Ser un humano inquisitivo para ser un mejor programador.


Encuentre un programa que le intrigue, uno que resuelva un problema o uno que simplifique muchas de sus tareas. Intenta escribir algo similar. Llegará a la velocidad muy rápido y se divertirá haciéndolo al mismo tiempo.


Hay dos tipos de aprendizaje: 1. Informal (como aprendió a funcionar en la sociedad) a través de la interacción con sus compañeros y familiares. 2. Formal (como su entrenamiento en la escuela secundaria) a través de la instrucción planificada.

Si desea un trabajo de programación de nivel de entrada, la capacitación formal a través de una licenciatura en Ciencias de la Computación / Ingeniería es el camino a seguir. Sin embargo, si desea convertirse en un desarrollador estrella de rock, lo mejor es hacerlo mediante una capacitación informal: cometa errores involuntarios y haga que los desarrolladores senior le maldigan, aprenda un patrón de diseño porque una aplicación que está actualizando lo usa, casi llora porque un mal el desarrollador escribió un enorme programa desordenado que carece de documentación y mejores prácticas y ahora tiene que hacer varias actualizaciones a la brevedad posible; cosa de estas naturaleza.

Es difícil para alguien darle una lista de todo lo que necesita saber. Varía según el área (por ejemplo, un desarrollador web vs. un desarrollador de escritorio) y varía según la compañía (por ejemplo, Microsoft que vende software vs. General Motors que principalmente lo usa solo en sus autos). hacer mi trabajo mejor y obtener un ascenso es su mejor apuesta en mi opinión.

Para demostrar mi punto, todos aquí tienen grandes respuestas, pero todas difieren. Pregúntele a un desarrollador de estrellas de rock cómo aprendió algo o cuándo, por qué; Puede que no sepan, las cosas simplemente suceden.


La creencia misma en la existencia de la hoja de ruta bloquea el camino hacia la perfección.


Me gustaría mejorar aproximadamente en este orden, en iteraciones con cada edificio en el anterior:

  • Conceptos de programación. Entender cosas como la gestión de memoria, punteros, pilas, alcance variable, etc.
  • Idiomas Trabajar en el dominio de varios idiomas modernos.
  • Conceptos de diseño. Aprender sobre patrones de diseño. Practica su uso.
  • Comunicación. A menudo se pasa por alto. Solo puede convertirse en un Ingeniero de Software altamente valioso si puede comunicarse de manera efectiva con personas que no son de tecnología. Aprenda a escuchar y comprender las necesidades que las personas están expresando, tradúzcalas en un conjunto de requisitos y un diseño técnico, pero luego explique lo que entendió (y diseñó) de nuevo a ellos, en términos que ellos puedan entender, para su validación antes de codificar. Esto no es fácil de dominar, pero es esencial.
  • Conceptos arquitectónicos. Aprenda a comprender el panorama general de sistemas grandes y complejos.

Mi principal consejo sería: no tenga miedo de volver a escribir su propio código. Mira las cosas que escribiste incluso hace un mes y verás fallas y querrás reescribirlas.

Asegúrese de que comprende algunos aspectos fundamentales: colecciones, igualdad, hashcodes, etc. Estos son útiles en casi todos los idiomas modernos.

Dependiendo del idioma que use, use herramientas de pelusas y métricas y ejecútelas sobre su código. No todas sus sugerencias serán aplicables, pero aprender cuáles son importantes y cuáles no es importante. Por ejemplo, FindBugs, PMD, etc para Java.

Sobre todo refina y sigue refinando tu trabajo. ¡No trates tu trabajo como abandono!


No es cierto que la práctica haga la perfección.

Es perfecta la práctica que la hace perfecta.

Si todo lo que hace es seguir repitiendo las mismas malas prácticas una y otra vez, solo hará posible crear un código incorrecto más rápido.

Por todos los medios mantener la codificación. Pero al mismo tiempo ser crítico con todo lo que haces. Siempre tenga un ojo con ictericia que busque maneras de hacer mejor las cosas. Lee mucho para obtener nuevas ideas. Hable con otros sobre cómo hacen las cosas. Mira el código de otras personas, bueno y malo.

No hay una forma "segura" de aprender nada de lo que yo sepa. Si lo hubiera, cualquiera podría dominar esto.


No estoy seguro de si el OP estaba buscando consejos generales sobre cómo ser un buen programador, sino algo más específico.

Sé que estoy reviviendo este hilo, pero lo encontré porque estaba tratando de ver si alguien ya había hecho esta pregunta.

Lo que tenía en mente era, ¿podemos llegar a un "mapa de conocimiento" de conceptos de programación similares al mapa que usa la Academia Khan ?

Como programador, quiero poder visualizar las dependencias y las relaciones entre las diferentes ideas, de modo que pueda entender en qué nivel de habilidad me encuentro actualmente; lo que necesito saber antes de abordar un tema desafiante; y poder visualizar mi progreso.


Para mí, tiene que haber una razón para aprender algo nuevo ... es decir, a menos que tenga un proyecto en mente o algún problema que deba resolver, no hay esperanza. Si se cumple ese requisito previo, entonces generalmente trato de que "Hola, mundo" funcione, y después de eso, el cielo es el límite. Gran parte del desarrollo en estos días es solo aprender nuevas API. Ocasionalmente, hay algún tipo de cambio de paradigma que te hace volar la mente, pero eso no es tan común como a la gente le gusta pensar, IMHO.


Práctica práctica práctica.

Una vez que haya superado la joroba básica de poder programar, también puede leer libros útiles (por ejemplo, Código Completo, Java Efectivo o equivalentes, etc.) para obtener ideas sobre cómo mejorar su código.


Primero y ante todo escribir código. Escribe todo lo que puedas. Afrontar problemas difíciles. Si quieres ser un muy buen programador, necesitas meterte en las entrañas de lo que estás haciendo. Pase mucho tiempo en depuradores viendo cómo funcionan las cosas. Si quieres ser un buen programador que realmente entiende lo que está pasando, necesitas ponerte al día y escribir código altamente asíncrono, aprender sobre cómo funcionan los procesadores y por qué es tan impresionante el SSE. Comprenda los primitivos de subprocesos y sea capaz de escribirlos, así como describir lo que realmente está sucediendo en el procesador. Podría seguir yendo aquí, pero entiendes la idea.

En segundo lugar encuentra a alguien que sepa mucho más que tú y aprende. Esta relación funcionará mejor si ya estás profundamente inmerso en la escritura de muchos códigos.

Tercero, pase algo de tiempo en una gran base de código fuente abierto de alta calidad. Aprendí un montón de los códigos Quake I y Quake II. Me ayudó a ser un mejor programador.

Cuarta toma en problemas difíciles. Empuje sus límites. Construye cosas que creías imposibles. Ahora mismo estoy escribiendo un compilador especializado. He aprendido mucho trabajando en esto durante los últimos meses.


Puede intentar aprender una cosa realmente bien y luego expandirse a las áreas de programación asociadas con las cosas que ha aprendido, para poder ofrecer soluciones completas a los clientes.

Al mismo tiempo, dedica parte de tu tiempo a explorar cosas fuera de tu zona de confort.


Tómese tiempo para aprender acerca de todo tipo de técnicas de codificación, herramientas y conocimientos de programación. Esto me ha parecido crucial para mi desarrollo. Es muy fácil simplemente codificar y sentirse productivo. ¿Qué pasa con lo que podría ser si tuvieras más conocimientos / armamento bajo tu cinturón para tocar el siguiente widget?

Conocimiento / saber como es nuestra moneda real. Cuanto más sabemos, más podemos tomar una mejor decisión sobre cómo se debe hacer algo y hacerlo más rápido.

Por ejemplo, aprender acerca de:

• Prácticas de desarrollo, diseño de software, estimación, metodologías Diseño de base de datos de análisis de negocios (hay muchos libros excelentes y recursos en línea)

• Código de lectura: los proyectos de código abierto son un buen lugar para esto. Leer blogs de programación

• Trate de participar en proyectos de código abierto.

• Busque grupos de usuarios de programación en su ciudad y / o alguien que pueda ser su mentor.

Y sí, como se menciona la práctica. No solo lea, haga y observe cómo mejorará. :)


Todas las preguntas son retóricas y están destinadas a estimular el pensamiento.

Piezas técnicas:

  • Patrones de diseño: probablemente haya algunos específicos de un dominio, pero en general son formas útiles de iniciar partes de una aplicación. ¿Conoces MVC o MVP?
  • Puntos de inicio del algoritmo básico: dividir y conquistar, programación dinámica, recursión, creación de tipos de datos especiales como un montón, codicia, etc.
  • Habilidades de resolución de problemas: ¿Con qué facilidad puedes saltar y encontrar dónde está un error? ¿Se te ocurren varias soluciones al problema?
  • Modelado abstracto: ¿qué tan bien puede usted imaginar cosas en su cabeza en términos de código o clases cuando alguien describe un problema?
  • Nivel alto versus nivel bajo: ¿qué tan bien entiendes cuando alguien quiere algo alto o bajo? Esto es algo que soltaría a medida que estos términos se difunden mucho, como una visión de alto nivel de algo o un lenguaje de bajo nivel.

Procesar partes:

  • Agile: ¿Conoce Scrum, XP y otros enfoques nuevos para administrar proyectos de software? ¿Qué hay de los principios como YAGNI, DRY y KISS? ¿O principios como SOLID? ¿Ideas como Broken Windows?
  • Entorno de desarrollador: ¿Qué tan bien conoce el IDE que utiliza? ¿Fuente de control? ¿Integración continua? ¿Conoce los cuellos de botella de su máquina en términos de productividad?
  • xDD: ¿Conoce TDD, BDD y otros desarrollos basados ​​en un paradigma?
  • Refactorización: ¿vuelve a revisar su código anterior y lo mejora o tiende a escribir una vez y luego abandona su código?

Habilidades blandas

  • Inteligencia emocional: puede ser útil para presentaciones y trabajar con otros en su mayoría.
  • Pasiones / Motivación: ¿Sabes qué es lo que hace que fluyan tus jugos y simplemente te das una patada en términos de ser productivo? ¿Sabes lo que te gustaría hacer durante muchos años?

Una pequeña adición a estas buenas respuestas. Cuando trabajo en el código de otra persona, generalmente compro algo nuevo. Si tiene la oportunidad de trabajar con otra persona que tenga una habilidad igual o mayor, notar su estilo de programación puede enseñarle toneladas.

Por ejemplo, en C ++ y Javascript ya no uso las sentencias if () sin llaves. La razón es que es demasiado fácil de decir erróneamente:

while (true) { if (a > b) print a print b }

Este es un error obvio, pero muy fácil de introducir, especialmente si está editando el código existente. Simplemente lo llamo programación defensiva en mi mente, pero pequeños trucos como este son valiosos para mejorarte.

Por lo tanto, busque un compañero o mentor y trabaje en su código.


Una vez que hayas aprendido algo, trata de aprender algo un poco más difícil. Lea y practique mucho sobre cosas que parecen confusas a la primera (funciones lambda, subprocesos, manipulación de matrices, etc.). Tomará su tiempo, pero una vez que haya practicado lo suficiente, lo que le pareció confuso al principio, le resultará familiar y fácil.


come aliento, sueña con el lenguaje de programación que estás usando (no, en serio, ayuda)


  • Práctica, individual y colectivamente.

  • Mantenga una mente abierta, siempre aprenda cosas nuevas, no se limite a lo que es familiar. No solo desde una perspectiva tecnológica, diseño de interfaz de usuario, habilidades de personas, ... No tengas miedo de las novedades

  • Revisión por pares, hable con la gente sobre su código, permita que la gente le hable sobre su código, todos tienen una manera única de ver un problema y aprenderá mucho de sus compañeros

  • Codificación de amor. Si amas lo que estás haciendo, poner mucho tiempo parece sin esfuerzo. Cada codificador necesita la unidad!