Tropecé con esta cita de Bill Gates: "Definitivamente deberías enviarme un currículum si puedes leer todo". Él estaba hablando de los libros de El arte de la programación ... Así que tenía mucha curiosidad y quería leerlo todo, pero honestamente, no lo entiendo en absoluto I'm really not that highly
intellectual being
... Así que esta debería ser la razón por la que no puedo entenderlo. , pero estoy ansioso por aprender ... Actualmente estoy leyendo el volumen 1 sobre algo fundamental ... Entonces, ¿hay algún libro que sea amigable para personas novatas / lentas como yo? Así que puedo construirme y espero poder leer el libro de Knuth en el futuro.
si se define a sí mismo como not a highly intellectual being
entonces, se está estableciendo con bajas expectativas. Tienes que romper esa mentalidad si quieres hacer algo que valga la pena. No debe haber ninguna duda en su mente de que puede lograr algo. Además, lograrlo no significa que lo lograrás fácilmente.
Las cosas que vale la pena perseguir son las que son difíciles ... y eso no es un cliché. En software, ingeniería, en la vida en general, si quieres lograr algo, tienes que ir por las cosas que son difíciles, las cosas que la gente evita y no conformarte con los denominadores comunes más bajos de las cosas.
Primero, no está claro cuál es su experiencia en CS. El libro de Knuth requiere un cierto grado de madurez. Pocas personas con un título de CS pueden superarlo con facilidad. No esperaría que un estudiante de CS que acaba de terminar su primer curso de algoritmos pueda leer incluso un solo libro de Knuth. La madurez necesaria para obtenerla simplemente no está allí, y eso no tiene nada que ver con la capacidad mental del estudiante.
Necesitas tener tus algoritmos básicos fríos y claros, y necesitas tener una buena cantidad de programación (trabajo y / o escolástica) en tu haber - Yo diría, 40 créditos en programación al menos. También necesita tener sus matemáticas CS en terreno firme.
No puede avanzar mucho sin tener una buena comprensión de las matemáticas discretas (y posiblemente la teoría de la computación).
No es que necesite ese conocimiento para trabajar en los problemas de Knuth, sino que necesita una madurez para poder atravesar ese tipo de material.
Primero elija un libro y un solo libro (el libro de CLRS como se sugirió anteriormente), y trabaje de principio a fin. Cuando sea posible, haga programas que implementen los algoritmos. No use Java o C #, ni siquiera C ++. Vaya a los huesos desnudos C y tenga la sensación de construir cosas a partir de restos de metal desnudos.
También obtenga el libro de Knuth sobre "Matemáticas concretas" si no ha realizado un curso de matemática discreta y teoría de la computación. Sería bueno para ti leer ese libro también.
Luego aborde la enciclopedia de Knuth, un tomo, un capítulo a la vez. No vaya a otro capítulo sin tener una buena comprensión del primero.
Te sugiero que primero revises el volumen I (algoritmos fundamentales), luego el volumen III (búsqueda y clasificación). Esos deberían ser tus objetivos inmediatos. Luego, más tarde (mucho más tarde), aborde el volumen IV (Algoritmos combinatorios) y luego el Volumen II (Algoritmos semi-numéricos).
No te sientas mal si no lo entiendes al principio. He estado tratando de pasar el volumen I y III durante años (10 años ahora).
Y tampoco deberías ponerle tanto peso. No lo hagas para demostrar algo a alguien o a ti mismo. Hazlo porque estás intelectualmente interesado en hacerlo. Puede dominar los algoritmos simplemente usando el libro de CLRS (o cualquiera de los excelentes libros de nivel de posgrado).
Sé pragmático y date un descanso. Trate de leer el libro de Knuth como una ambición personal a largo plazo, no como una prueba inmediata de que usted es material de CS;)
Hay otras cosas más importantes (en cuanto a la carrera) para suicidarse;)