2012-03-14 11 views
5

Estoy buscando una sugerencia de recurso/libro sobre software de escritura más eficaz. Acabo de terminar un par de cursos python, C++ y estructuras de datos, y conozco los conceptos básicos de cómo programar ahora, pero tengo margen de mejora. Yo diría que tengo alrededor de 100 horas de experiencia. Estoy buscando a dónde ir desde aquí ... el objetivo es construir mi habilidad de codificación.Sugerencia de recursos/libros para escribir de manera efectiva software para python/C++ beginner

No quiero un libro que sea solo para leer, sino un libro con ejemplos concretos del que pueda aprender. Creo que mi mayor problema es que he creado mis propias metodologías de diseño y he escrito todo mi código, y necesito expandir mis horizontes para ver cómo lo hacen otras personas.

Soy un programador principiante (python y C++), y creo que estoy pasando demasiado tiempo depurando y refabricando mi código y aprendiendo métodos de diseño. Mi proyecto más largo ha sido 500 LOC, y necesito un buen libro preferiblemente con ejemplos concretos, en lugar de reinventar la rueda yo mismo. Lo más importante que necesito es diseñar software. He escuchado varias charlas sobre la pandilla de los cuatro libros. ¿Es algo que debería considerar en este punto?

Estoy aprendiendo mucho con certeza, pero creo que mi progreso sería mucho más rápido si pudiera estudiar desde un libro bien escrito. Todo lo que he aprendido hasta ahora ha sido "para finalizar mi proyecto" para otras clases, y me gustaría ser más hábil en la codificación. Imagino que mi trabajo eventual involucrará aspectos significativos de la codificación.

Gracias por tomarse el tiempo para responder o discutir esta pregunta abierta.

editar: ¿hay una lista equivalente para python? - The Definitive C++ Book Guide and List

+2

Para C++, aléjese de GoF. El código de C++ está lleno de fugas de memoria, y ni remotamente es idiomático C++. Además, consulte [la lista definitiva de libros de C++] (http://stackoverflow.com/q/388242/485561). – Mankarse

+1

Esta pregunta está fuera de tema aquí (como indica su conocimiento, es abierta y dará lugar a la discusión); se menciona específicamente en [Preguntas frecuentes] (http://stackoverflow.com/faq) como inadecuado aquí. Votando para cerrar como "no constructivo". (También está claro que sabía que no era correcto preguntar aquí, si es consciente, no debería hacerlo. Ayúdenos a mantener este sitio como un recurso útil, no está diseñado para ser una sala de chat o un grupo de discusión, y no debería no se tratará como uno. Gracias.) –

+0

Excelente, lo comprobaré. Ahora no necesariamente quiero ser bueno en C++, pero la programación en general. He escuchado que C++ es para codificadores profesionales en situaciones donde la velocidad de ejecución es crítica para la misión. Por lo que quiero hacer, el tiempo de desarrollo es de misión crítica. Eso es lo que me condujo a Python en primer lugar. Busqué una lista equivalente para Python pero no pude encontrar una – SwimBikeRun

Respuesta

0

Cómo diseñar programas fue realmente útil para mí, y está disponible de forma gratuita en Internet (http://www.htdp.org). Utiliza esquema/raqueta, que es muy diferente de los lenguajes como C++ y python, pero los principios de diseño aún se aplican y afaik es un libro que se utiliza comúnmente en las universidades para cursos de diseño de software para principiantes e intermedios.

1

El diseño es importante. Muy importante. ¿Pero por qué? De modo que no se encuentre con problemas escalables más adelante, de modo que cuando salga de la organización, otras personas puedan captar y mantener fácilmente el código, y así sucesivamente.

Sin embargo, antes de ir a las cosas anteriores, lo que es realmente más importante es escribir buenos algoritmos & construyendo estructuras de datos escalables. Por lo tanto, incluso si tiene un código extremadamente bueno & bien diseñado, pero el algoritmo está por debajo del promedio, no sirve para nada, ya que no le está dando diseño a sus clientes sino grandes algoritmos. El diseño es para usted y su empresa & para el futuro. Nuevamente, la gente puede decir que una vez que haya un buen diseño de algoritmos de back-end, puede cambiar en cualquier momento. Eso no está bien Los desarrolladores son procrastinators (Lee las tres virtudes de un gran programador por el creador de Perl :)). Incluso Alex Stepanov, que creó C++ STL, escribió una rutina cuadrática para Algoritmo, que dice que fue enviada hasta el final con STL y estuvo de acuerdo en que, de no haber sido flojo, habría hecho cosas más complejas.

No digo que el diseño no sea importante (lea la línea de inicio de mi respuesta); sin embargo, todo, incluidos los algoritmos (con gran complejidad de espacio/tiempo), las estructuras de datos escalables van de la mano con Design. Estos dos deben dominarse o aprenderse bien y practicarse bien antes de entrar en el Diseño (y créanme que van a golpear los patrones anti mientras codifica y los convertirán a buenos patrones de diseño automáticamente). Durante el curso, usted mismo inventará patrones de diseño (sin embargo, libros como GOF o Head First Design Patters pueden darle un buen comienzo).

recomendaría como una primera lectura, un libro escrito por Jon Bentley titulado "Perlas de programación". Intenta escribir eso en Python si lo deseas. Resuelve esos problemas y ganarás mucho. Luego ve por cosas de diseño.

Cuestiones relacionadas