¿Cómo debo ser un estudiante brillante en programación?

1.Decida por qué quiere convertirse en un buen programador: ¿es porque quiere un trabajo, preferiblemente en una empresa de software bien remunerada? Excelente. Entonces estás listo para llegar a NINGUNA PARTE. Todos los buenos programadores que conozco son buenos porque les encantó lo que hicieron. Desarrollar interés en la programación. Vea, la programación es la única rama en ingeniería donde puede aplicar de inmediato lo que aprende. Es posible que tu papá tenga un auto, pero ciertamente no te permitirá modificar el V2 ni cambiarlo por un v6 solo para ver qué sucede. Pero con las computadoras puedes hacer lo que quieras. ¿Quieres simular un virus? Bueno. Instale un SO virtual y ejecútelo. Luego, cuando haya terminado, retire el disco duro virtual. Si eres bueno en lo que haces, te pagarán y seguramente obtendrás el trabajo soñado. Sí, incluso quiero trabajar en una gran empresa de software. Pero eso no es por el sueldo gordo. Es por el trabajo que hacen. Debido a la exposición que tendré. ¿Alguna vez se ha molestado en averiguar qué hacen todas estas empresas y las tecnologías habilitadoras detrás de sus productos o el tipo de I + D que realizan? Los trabajos vendrán. No te hagas un imbécil para uno. Sachin no es un gran jugador de cricket hoy porque decidió jugar al cricket para ganar dinero y obtener docenas de endoresements.

2. Lenguajes de programación: muy a menudo las personas equiparan las buenas habilidades de codificación con el número de idiomas de programación conocidos. Eso es malditamente falso. Si bien conocer mucho lenguaje de programación es bueno y, a veces, incluso, esencial; Es más importante que conozca muy bien uno o dos idiomas. ‘Lo sé’ y he usado más de una docena de lenguajes de programación y, sin embargo, C y Java son con los que me siento realmente cómodo. Eso es triste, por supuesto. Realmente quería ser bueno en la Asamblea y Lisp también. Nunca tuve el tiempo o la oportunidad de desarrollar esas habilidades. Ser bueno en un idioma lleva años (al menos 2 años). Ser bueno en un idioma significa que entiendes dónde se usa mejor y dónde usar ese idioma no tiene ningún sentido. Por otro lado, conocer un idioma lleva de 3 días a una semana. Si eres principiante, aprende C primero. No compre Yashawant Kanetkar. Compre el libro “El lenguaje de programación C” de Brian W Kernighan y Dennis M Ritchie (si no sabe quiénes son, haga esto 1. Bofetada 2. Busque en Google sus nombres). Este libro no es el más fácil pero es el mejor. Es un libro pequeño pero es el más poderoso. Se han criado generaciones de programadores. Y si crees que este libro es difícil para ti, por favor, no guardes ningún deseo fuera de lugar de ser un buen programador y no pierdas tu tiempo leyendo más esta publicación. La programación es un arte (no una ciencia. Sí, lo has leído correctamente) y, como cualquier arte, requiere un esfuerzo minucioso.

Algunas personas sugieren Python como el primer idioma que se aprende. Python es ciertamente un buen lenguaje y también es fácil. Pero tendrá que depender principalmente de Internet para obtener ayuda, ya que no muchos conocerán Python. También C tiene el uso más amplio entre todos los lenguajes de programación. Además, por favor NO use Turbo C. Está tan anticuado. Utiliza GCC. Si está en Windows, descargue Dev C ++. Tiene CCG

Lea este ensayo (pequeño) de Peter Norvig Enséñese a programar en 10 años. Nuevamente, haga una búsqueda en Google [] y descubra quién es Peter Norvig.

3. Algoritmos: cualquier buen programador tiene una buena comprensión de los algoritmos. No es necesario que conozca cada algo de memoria (de hecho, los buenos programadores nunca aprenden cosas de memoria), pero debe comprender cuándo usar qué. Algos ampliará su comprensión y le dará nuevas formas de abordar los problemas. Otra cosa importante son las estructuras de datos. Es más importante que algo. Una vez que haya elegido (o desarrollado) la estructura de datos correcta, el algoritmo se vuelve evidente. Para algo, lea el libro “Introducción al algoritmo” de Thomas H Cormen et al. También puede referirse a “Estructuras de datos en C y C ++” de Andy Tanenbaum. Además, si desea participar en concursos de codificación (los respetables), “The Art of Programming Vol I to V” de Donald E Knuth son obligatorios. También puede ser “Matemáticas concretas” de Donald Knuth. Una vez más, leer no significa recordarlo todo. Solo trata de entender lo que está escrito.

4. Concursos de codificación: los concursos de codificación son buenos para desarrollar tus habilidades algorítmicas y te hacen pensar rápido. Es una buena idea participar en ACM ICPC o donde funciona el mundo. Luego están los concursos de codificación (como Sun’s Code for Freedom, Google’s Summer of Code, Microsoft’s Imagine Cup) donde se desarrolla un software completo. Tales concursos se extienden por muchos meses. Ambos requieren diferentes tipos de habilidades. Puede ser bueno en uno y malo en otro y, sin embargo, podría ser un buen programador. Los concursos como ICPC requieren mucha práctica, pensamiento rápido y se espera que mantengas algos en el fondo de tu mente. CFF, GSoC, por otro lado, requiere creatividad y enfoque extendido durante un largo período de tiempo. No tiene que encontrar soluciones demasiado rápido y no tiene que atrapar algos. ICPC es como T10, mientras que CFF, GSoc e Imagine Cup son como Test Matches. Te sugiero que participes en ambos tipos y luego decidas si quieres concentrarte en uno o en ambos.

5. Participación en proyectos de software libre: DEBE participar en algunos proyectos de software libre. Hay demasiados Estoy trabajando en SCALASCA en este momento y luego pasaré a Sun Grid Engine y Sun xVM Hypervisor y contribuiré con el código allí. Aprendes mucho de esto. Puedes ver mucho código y aprender las mejores prácticas. Y lo mencioné, también se ve bien en tu CV. La mayoría de las personas se resfrían cuando pasan por algunas de las prerrequisitos de tales proyectos. Tome Thunderbird por ejemplo. Necesitaría saber mucho C / C ++ y Javascript (para desarrollar módulos). Ahora no espere hasta el día en que sea un experto en estos idiomas antes de contribuir. La programación es un arte, no pierdas el tiempo afilando tu lápiz cuando deberías dibujar. Puedes pedirme direcciones.

6. Patrones de diseño: cualquier arte se aprende emulando. Y por lo tanto, debes emular lo mejor. Los patrones de diseño son soluciones arquitectónicas probadas y comprobadas (del tipo de software) para algunos problemas de diseño de software comúnmente encontrados. Y, por lo tanto, se necesita un conocimiento básico de algunos patrones de diseño comunes si planea desarrollar algo que es incluso moderadamente complejo. Sugiero “Head First Design Patterns” de Oreilly como primer paso.

7. Aprendizaje por emulación: emula lo mejor. Y esto es posible leyendo libros escritos por los mejores y / o revisando el código de algunos de los mejores proyectos de software libre. Instaría a cualquier persona seria acerca de la programación a leer el libro “The Art of Unix Programming” de Eric S Raymond (no se olvide de abofetearse primero por no saber quién es Eric Raymond y luego buscar en Google su nombre). No eres un programador si no has leído ese libro. Período.

Ahora déjame abordar algunos urogallos comunes

a. No encuentro ningún interés en las computadoras y quiero hacer un MBA: principalmente una declaración que los estudiantes de segundo año (segundo año) repiten a menudo. Ese es realmente tu problema. No te pedí que tomaras computadoras ni siquiera te unieras a Ingeniería. No sabía ni se molestó en averiguar en qué se estaba metiendo cuando asumió esta rama de la ingeniería y estoy bastante seguro de que tampoco se ha molestado en averiguar qué le espera en un curso de MBA. También estoy bastante seguro de que 2 años después de un MBA (si no antes) también dirá más o menos lo mismo sobre su trabajo. Bien, qué puedo decir. Todo lo mejor

si. No me gusta leer los libros (o cualquier otro libro) que mencionaste anteriormente: Bueno, este todavía no es el mundo de Matrix, donde puedo alimentar las habilidades de programación en tu cerebro. No te obligues a leerlos. No puedes Hazlo solo si quieres. Y si no, olvídate de ser un buen programador. Puede ser el momento de utilizar la excusa mencionada anteriormente (punto a).

C. Dame un lenguaje de programación que haga todo: no hay ninguno. Cada uno tiene un propósito diferente. Y así es como las cosas seguirán siendo amigos.

re. Quiero un proyecto ‘real’: eso es genial. Puedes hacer dos cosas: 1. Comience uno de los suyos 2. Únase a un proyecto de software libre. Pero la mayoría de la gente no está contenta con esto. Esperan que les ‘dé’ un proyecto, uno que sea fácil (leer, no debe incluir nada más que C y los únicos archivos que debe incluir deben ser stdio.h, conio.h (sí, la gente aquí todavía usa Turbo C) y puede ser string.h y math.h) y debería decirles qué aprender. Cuando la gente dice esto, esperan ir en un piloto automático.

mi. Aprenderé el lenguaje de programación X en esta sem / año / década: no hay forma de que puedas sentarte con un libro y aprender un idioma. Necesita hacer un trabajo real con él, desarrollar un software real y no solo hacer esos ejercicios en el libro (eso es necesario, por supuesto, pero no suficiente). La mayoría de los idiomas que he aprendido se deben a que me vi obligado a hacerlo como parte de algún proyecto. Simplemente tome lo básico en un día o dos y luego aplíquelo a un proyecto de la vida real. ¿Necesitas ideas? Ven a mi.

Finalmente, como dice Larry Wall en Programming Perl: “Lo alentaremos a desarrollar las tres grandes virtudes de un programador: pereza, impaciencia y arrogancia”.

Pereza: para que haga un gran esfuerzo para reducir el gasto total de energía. Te hace escribir programas para ahorrar trabajo que otras personas encontrarán útiles, y documentar lo que escribiste para que no tengas que responder tantas preguntas al respecto. De ahí la primera gran virtud de un programador.

Impaciencia: el enojo que sientes cuando la computadora está siendo perezosa. Esto te hace escribir programas que no solo reaccionan a tus necesidades, sino que realmente las anticipan. O al menos pretenderlo. De ahí la segunda gran virtud de un programador.

Hubris: Orgullo excesivo, el tipo de cosas por las que Zeus te mata. También la calidad que te hace escribir (y mantener) programas sobre los que otras personas no querrán decir cosas malas. De ahí la tercera gran virtud de un programador.

Así que prepárate para convertirte en un gran programador, como Richard Stallman, Rithcie, Brian, Raymond, Torvalds. Todo lo mejor

Fuente: internet

La programación necesita más práctica, así que use el método “Aprender haciendo” para aprender a programar.

  • Practique más programas de ejemplo e intente comprender. Otra habilidad importante para los programadores es la resolución de problemas. Aprende a crear buenos algoritmos para resolver problemas.
  • Elija sus favoritos entre las tecnologías de software e intente aprenderlas profundamente. Por ejemplo, mi lenguaje de programación favorito es Python, el sistema operativo es Linux, RDBMS es PostgreSQL, etc.
  • Hacer proyectos ayudará a aprender más cosas. Porque tienes que combinar muchas tecnologías de software para terminar el proyecto.
  • Tenga cuidado con las nuevas tecnologías, así que siga actualizando sus conocimientos en tecnologías de software.

Esto va a ser un poco filosófico más que técnico.

Quieres ser un estudiante brillante, dices. Permítanme explicar primero lo que se necesita para ser algo brillante, no solo la programación.

No puedes ser brillante en algo si no te gusta, si no disfrutas hacerlo, si no puedes pensar todo el día simplemente haciendo eso en lugar de lo que sea que estés haciendo.

Entonces, si quieres ser brillante en la codificación, primero debes saberlo si te gusta hacerlo. Si lo haces, serás brillante en eso, no importa qué, y si no disfrutas la codificación, nunca serás brillante en eso, no importa qué.

Solo practica, busca nuevos recursos para aprender cosas nuevas sobre programación. Y lo más importante, cree algo útil para otro o para usted mismo mientras aprende, ya que evitará que se aburra, ya que solo aprender continuamente puede ser aburrido a veces.

Solo hay una cosa que puedes hacer …
Practica … y haz la práctica correcta …
La programación tiene que ver con la lógica … Solo tienes que desarrollar tus lógicas … y se vuelve divertido cuando comienzas a obtener los resultados para que sigas mejorando cada vez más 🙂

No aprendiéndolo. La programación de aprendizaje es algo muy aburrido. Crea algo que disfrutarás cuando tu código haga algo en el mundo real. O resolver problemas en jueces en línea participar en la competencia se siente bien.

Solo una palabra de respuesta para ti.

Sigue practicando y nunca pienses que has aprendido programación.