En su día, ya publiqué una lista de los 10 libros sobre programación que, personalmente, considero que todo desarrollador debería leer. Esta vez, vía Slashdot, os traigo una lista votada por los miles de usuarios de Stack Overflow, EL sitio al que dirigirse cuando uno tiene alguna pregunta sobre programación. Me alegra saber que coincidimos en algún libro.
|
etiquetas: libros , programación
1. "Cómo negociar un salario digno".
2. "Relacionarse socialmente es fácil".
3. "Anatomía de la mujer".
1984
La divina comedia
La Odisea
El Conde de Montecristo.
El extranjero.
El gran Gatsby.
El ingenioso Hidalgo Don Quijote de la Mancha.
Fausto
La ciudad y los perros.
#4, me has dejado impresionado con lo culto que eres.
1. "Cómo negociar un salario digno".
2. "Relacionarse socialmente es fácil".
3. "Anatomía de la mujer".
Frankenstein de Mary Shelley
cordobacapital.olx.com.ar/libro-guia-del-programador-en-ensamblador-pa
1- Aplicable a cualquier currito español
2- Me relaciono socialmente, tengo amigos y muy buenos; gracias.
3- Tengo novia (no informática) y vivo con ella y, de hecho, somos pareja de hecho (valga la redundancia).
¿Podemos dejar ya los tópicos entonces?
www.amazon.com/Game-Programming-Gems-Adam-Lake/dp/1584507020/ref=pd_si
(tómatelo con humor )
Saludos
PD Y te lo dice un jeby friki rolero Gamer informatico ateo y de izquierdas, que también cumple con tus puntos, salvo que de hecho tengo pareja y de topicos solo me falta ser Rubia
por cierto:
El guardián entre el centeno
Trópico de capricornio
La peste
El hombre rebelde
Memorias del subsuelo
Noches blancas
El árbol de la ciencia
El túnel
Hijo de Satanás (libro de relatos)
El gran Gastby (lo comparto)
Es de Alfredo de Hoces : www.alfredodehoces.com/
Este es el enlace al libro, solo 94 páginas y se llama "FUCKOWSKI, MEMORIAS DE UN INGENIERO"
www.alfredodehoces.com/files/MemoriasDeUnIngeniero.pdf
Saludos!!
Cracking the Coding Interview www.careercup.com/book
la guia completa de la ley de Murphy
la biblia
Por lo demás, completamente de acuerdo. Un libro obligado.
Cita cantidad de estudios que demuestran eso que nos han contado tantas veces: Hacer las cosas bien desde el principio ahorra mucho tiempo y dinero.
Eso sí, es un libro muy centrado en la programación en sí, hace referencia a análisis, diseño, etc. pero sólo de pasada. También es verdad que muchas de las cosas que comenta para ser programador son "de sentido común" (poner nombres adecuados, métodos cortos y muchas más que no recuerdo) o por lo menos a mí me lo parecieron (hace muuuchos años que programo).
Como todos los libros técnicos muy recomendable subrayarlo y volverlo a leer tras terminar para asimilar mejor las "perlas".
El de compiladores es una grandisima referencia. En la ilustracion sale la nueva edicion pero antes tenia la portada del dragon rojo y el libro en si es muy famoso.
El de Patrones de diseño, si no lo quieres tener, por lo menos su contenido es realmente una de las cosas mas importantes de la programacion de hoy en dia.
El de algoritmia, una pasada. Muy interesante.
El de refactorizacion, no lo he leido pero concoer las practcias es muy inetresante. Viene ligado a patrones de diseño ya que el objetivo de ambas es en gran parte el mismo.
Basicamente si quieres ser un buen programador necesitas saber 5 cosas:
1. Metodologia basica.
2. Algoritmos y complejidad algoritmica. (MUY EXTENSO, desde ordenacion, permutaciones, busquedas... hasta compiladores e IA)
3. Estructuras de datos. (Bastante extenso)
4. Ingenieria del software y patrones de diseño. (INFINITO si se quiere profundizar)
5. Modelos de desarrollo software. (Interesante para poner en pactica. Metodos agiles y demas...)
En total, cerca de 7 años de experiencia para llegar a ser un programador decente. A partir de ahi, sin limite.
Anteriormente un software era de calidad si era robusto, rapido, consumia poca memoria, tolerante a fallos y demas.... Hoy en dia un SW no es bueno si no se han aplciado patrones de diseño de forma asquerosamente escrupulosa.
Y que luego me digan desde teleco o tios de fp o ccc que los ingenieros superiores no sabemos programar oque lo que saben ellos se equipara a lo de un ingeniero informatico superior... Realmente desde mi propia experiencia, se puede ser autodidacta en el mundo de la programacion pero para programar como un guru, no solo es practica y experiencia, tambien es necesario estudiar.
Muy buen meneo, me ha gustado mucho!
Kafka representó mejor que nadie los trabajos donde solo se reconocen los errores, sean tuyos o no, nunca el buen hacer.
Disuélvela en tu café mañanero.
me identifico contigo, un gran saludo!!
Algoritmos + Estructuras de datos + Romperse los cojones u ovarios + 2.000.000 de cagamentos + Stress = Programas
Cuando por hacer las cosas en plan chapu llegue una demo o una review y las cosas peten y el unico que haya hecho bien su trabajo sea uno. Cuando mas adelante haya ue hacer modificacioens a un codigo y las hagas en tiempo record. etc... entonces el jefe deberia valorarlo de verdad. Porque un buen programador, lo sepan o no las consultoras, es uno de los recursos humanos mas valiosos que puede tener una empresa y a la larga ese tipo de cosas se notan!
PD. No trabajo en empresa de momento intento crear una
El “The Mythical Man-Month” creo que es una colección de ensayos imprescindibles que aunque están escritos sobre los años 70 y 80 es increíble como siguen vigentes sin cambiar prácticamente nada.
También creo que haría falta alguno sobre ingeniería. Control de tiempos, toma de requisitos, gestión de proyectos y demás porque aunque no sea estrictamente labor de programación tener conocimiento de todas las partes implicadas en la creación de un programa(producto) completo creo que es indispensable ya que en un proyecto grande sólo el 10% es programación.
Podrás enmarcar en un balance cuanto eres lo que aportas a la empresa y ahí negocias la continuidad, por eso lo comerciales se llevan la pasta, ponen su trabajo en dinero, los programadores son lo que hacen que la mejor posibilidad de trabajo no se cumpla(tiempo, errores y demás).
"El Quijote" es un COÑAZO INSUFRIBLE. Lo siento, me considero un buen lector y con un abanico bastante amplio de gustos literarios, pero este lo he intentado un par de veces y el que se lo lea es simplemente por decir "por mis cojones que me lo acabo".
Pero como es un clásico español, desde pequeñitos nos dan la brasa con él, y mucha gente se siente obligada a decir "Si, si, me lo he leido"...
github.com/downloads/ieure/sicp/sicp.epub
Fuente: github.com/ieure/sicp
www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp/0
www.amazon.co.uk/Concepts-Techniques-Models-Computer-Programming/dp/02
Algunos otros:
- The little/seasoned/reasoned Schemer
- The Art of the Metaobject Protocol
- The Lambda Calculus: Its Syntax and Semantics
- Types and Programming Languages
- The Algorithm Design Manual
- Practical Common Lisp
- On Lisp
- Smalltalk-80: The Language and its Implementation
También hay un proyecto para 'traducir' el SICP a Clojure
sicpinclojure.com/
Pero se agradece la preocupacion
Ahora en serio alguien sabe algunos en Español? aunque viendo lo que cobra un programador, se te quitan las ganas, a no ser que ya sea casi por hobbie
Por tanto, no voy a ser yo quien diga que leer libros y formarse no es importante, pero de mi lista seguramente se caerían las obras de referencia Knuth, Design Patterns y compilers y las sustiuiría por obras dedicadas más al lado humano de la programación, tipo Peopleware o Death March. A veces nos olvidamos que la programación no es únicamente técnica y conocimiento, sinó que tiene un componente humano y de relación entre equipos que hay que conocer y poder gestionar.
Como decía leer libros está muy bien, pero para ser un buen programador hay una cosa más que es fundamental leer: código. Leer código escrito por otras personas, ver cómo estan aplicando los conocimientos técnicos y poder ser capaz de hacer un análisis en profundidad de lo que está pasando, interpretando en nuestra mente lo que nos dice el código nos hará también buenos profesionales. No se trata de copiar y pegar, sinó de hacer una lectura en profundidad del código, viendo qué hace, qué se puede mejorar.
Así pues, a la hora de formarnos como programadores estos libros son muy interesantes, pero no olvidemos que tenemos una fuenta casi inagotable de concimientos en el código fuente de los programas.
#59 creo que el estudio de patrones de disño es muy util, puedes consultar la propia wikipedia para tener mas referencias. De los veintitantos que son, al menos 6 o 10 son muy interesantes, seguro que muchos de ellos los aplicas inconscientemente a estas alturas. Es dificil hacer virguerias cuando estas contrareloj y menos uan cuando no se esta motivado pero a nivel personal es posible mejorar la tecnica poco a poco. Echale un ojo a las referencias de grasp y gang of four en la wikipedia. Hay cosillas interesantes como el bajo acoplsmiento y la alta cohesion, muy recomendables. Gracias por tu humildad, saludos
The Art of Unix Programming de ESR (catb.org/~esr/writings/taoup/)
que aunque el tipo en lo personal no me cae muy bien, sabe trasmitir la filosofía de la programación en Unix y aunque no sepamos programar, los primeros capítulos que son un repaso de historia y una declaración de intenciones, son muy instructivos.
Jeje, no recordaba las 'rules':
Rule of Modularity: Write Simple Parts connected by clean interfaces.
Rule of Clarity: Clarity is better than cleverness.
Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
Rule of Simplicity: Design for simplicity; add complexity only where you must
Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
Rule of Transparency: Design for visibility to make inspection and debugging easier.
Rule Of Robustness: Robustness is the child of transparency and simplicity.
Rule of Representation: Fold Knowledge into data, so program logic can be stupid and robust.
Rule of Least Surprise: In interface design, always do the least surprising thing.
Rule of Silence: When a program has nothing surprising to say, it should say nothing.
Rule of Repair: Repair what you can--but when you must fail, fail noisily and as soon as possible.
Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
Rule of Diversity: Distrust all claims for one true way.
Rule of Extensibility: Design for the future, because it will be here sooner than you think.
Muy de acuerdo contigo. Leer libros de patrones de diseño por ejemplo puede parecer un coñazo pero poco a poco te abre los ojos de una forma impresionante. Yo desde el momento que leí el GoF y luego alguno más como el Pragmatic programmer es cuando considero que realmente aprendí a programar, aunque llevaba algunos años haciéndolo antes...
#45 No me gusta el café... ¿vale también con el té rojo?
Una persona de formación puramente autodidácta, en la mayoría de los casos, es mucho (muchísimo) más limitada. Peude ser un crack en un campo, pero cojeará en lo demás.
Edito #80 lo explica mejor que yo
Se puede, pero rara vez se da.
¿Además, aburridos? Eso es relativo y depende de cada quién.
Si, depende de quién. Para algunos la IA es apasionante y se volcarán en ello, pero la arquitectura les parecerá un aburrimiento y no la mirarán. Para otros, la arquitectura será lo más interesante, mientras que las matemáticas no tendrán ninguna gracia.
No se si antes nos hemos explicado mal, no es que haya una materia aburrida que nadie quiera estudiar por su cuenta, si no que, dadas las preferencias personales, un autodidacta tiende a dejar de lado lo que a él, personalmente, no le interesa.
y la Trilogia Illuminatus
y el Almuerzo Desnudo de Burroughs
y de Joyce también el Finnegas Wake, por supuesto
y el Jerusalem de Alan Moore, cuando lo acabe
La mayoría de los que están realmente cualificados saben muchísimo más de lo que aprendieron en la universidad, si no no entiendo por qué demonios nadie quiere a jóvenes sin experiencia a pesar de cobrar muchísimo menos.
Hablo de estudiar como autodidacta, en tu tiempo libre, porque te da la gana, porque el tema te gusta y te interesa y, básicamente, porque de entretienes con ello. Eso implica, necesariamente, que en la inmensa mayoría de los casos no estudiarás cosas que estudiarías por obligación cursando una carrera. ES COMPLETAMENTE DIFERENTE que por estar trabajando de algo o porque para un proyecto, aunque sea personal, tengas que empaparte en una materia para poder hacerlo.
Solo para ver si esta vez se aclara lo que pretendo decir:
Yo trabajo de Project Manager (no diré en que área, porque no me da la gana). Por cuestiones de trabajo estoy aprendiendo sobre nuestro área de negocio. Pero resulta uqe me gusta programar, así que cuando llego a casa cojo libros que tengo de programación: IA, gráficos, redes neurales, algo de procesamiento de imagen... Y eso es lo que hago con (parte de) mi tiempo libre. No tiene nada que ver con:
ay del que ingeniero que pretenda ser superior sólo por haber acabado la carrera
Ni con:
si me meto en una empresa y veo que la estadística es importante pese que ahora mismo no me interesa lo más mínimo
Y, con todo respeto, creo que esto:
por que en unos años le daré mil vueltas
Dice mucho.
Y una cosa es ser aficionado y otra cosa es ser autodidacta, no se si comprendes el concepto, se trata de aprender algo por tus propios medios, pero no implica que tenga que ser en tu tiempo libre o sin pretensión de llegar a más. Yo puedo preferir pasar de la universidad y aprender por mi cuenta y no veo por qué nadie me tiene que decir que valgo menos que alguien que sí ha ido a la universidad cuando en muchos casos será al revés, que conozco a muchos que no entienden muy bien lo que estudian... De hecho, si hay una cosa por la que valoro el aprender por mi cuenta es por que aprendo más y en menos tiempo.
Por que pareces olvidarte de que el 60% de los alumnos con altas capacidades no llega sacar ni la ESO, que es fácil de cojones, por que se desmotivan, y no soy capaz de creerme que ninguno se busque la vida por otro lado y acabe sabiendo la tira.
Y por eso me parece estúpido desprestigiar a todos los que no han pasado exitosamente por un sistema educativo que ni de coña contempla a muchos tipos de personas con mucha capacidad y se centra en el grueso de pensamiento convergente e inteligencia media.
Y para colmo cuando no conozco ninguna carrera centrada en ser un guru de la programación, si lo que se busca es eso no tiene mucho sentido estudiar informática en la universidad donde todas las asignaturas están englobadas a otro tipo de tareas: www.uc3m.es/portal/page/portal/titulaciones_grado/infor/graduado
Aunque lo cierto es que, si bien igual no al 100% estoy bastante de acuerdo con lo que ha dicho, pero lo bueno es que hasta que no me lo has atribuido a mí, no había leído su comentario.
Precisamente en la parte en la que no estoy de acuerdo con él es en que ser autodidacta no es estudiar (y, de todos modos, no tengo nada claro que eso es lo que él quisiera decir). Era una pista el hecho de que te haya dicho que yo me considero autodidacta y que estudio temas de programación en mi tiempo libre, así que como ves estabas discutiendo conmigo a saco en un tema en el que estamos parcialmente de acuerdo, al parecer sin leer bien lo que decía y todo porque te habías encendido por un comentario que no era mio.
Lo que yo defiendo es que ser autodidacta es (o debería ser) una opción tan válida como cualquier otra, y puede haber autodidactas malos igual que ingenieros malos, pero alguien que aprende por su cuenta ya lo tiene difícil de por si como para que le digan que no puede llegar al nivel de un titulado, cuando puede llegar y superarlo si se lo propone.
Y es que me molesta mucho tener que elegir algo y gastar muchos años de tiempo para luego descubrir que podría estar mejor haciendo otra cosa, y ahora con Internet debería flexibilizarse mucho más, seguimos con un modelo anticuado.
Antes de decir tonterías mira la historia del chaval, que ha creado varios libros de programación y no esta haciendo publicidad de ninguno de ellos. Intenta ayudar, pone los enlaces, pone la noticia... ¿que mas da que ponga enlaces referidos?
Nada, todo resuelto. Como ves estamos esencialmente de acuerdo y, ale, ahora quedamos tan amigos para otra vez que "nos encontremos" por aquí.