regresion predicciones modelos modelo metodos logistica ejemplo clasificacion algoritmo python algorithm

python - predicciones - ¿Cómo aprendo algoritmos?



predicciones python (8)

¿Dónde empiezo a aprender algoritmos?

Me gusta mucho la Introducción a los Algoritmos de Udi Manber . A diferencia de los libros más populares, digamos Cormen Leiserson y Rivest, el libro de Manber se centra en la resolución creativa de problemas y en el proceso mediante el cual se crean los algoritmos. Entonces, en lugar de leer una enciclopedia de algoritmos que otras personas han inventado y de estar desconcertado sobre de dónde vinieron, aprendes a inventar algoritmos tú mismo, y en el camino reinventará algunos de los estándares que encontrarás en las enciclopedias. .

Creo que a la larga encontrarás que este tipo de capacidad de resolución de problemas te servirá mucho mejor que un conocimiento enciclopédico de los algoritmos de otras personas.

Breve historia: recién graduado de la escuela secundaria, aprendí un poco de python y C ++, no tengo amigos con ningún conocimiento informático útil. De todos los que conocí en mis años escolares, probablemente era el mayor nerd, pero nadie lo sabía. Me considero que tengo una gran cantidad de conocimientos sobre computadoras y tecnología que la persona promedio. Construí / arreglé toneladas de computadoras, y la capacidad de solucionar prácticamente cualquier problema que encontré.

Ahora que la escuela secundaria ha terminado, realmente he estado pensando en mi carrera. Amando, viviendo computadoras durante los últimos 13 años de mi vida, decidí tomar mis habilidades y tratar de aprender programación, por qué no empecé antes, no sé, parece ser un gran error de mi parte ...

Investigando un poco, llegué a la conclusión de que Python era el primer lenguaje de programación que debería aprender, ya que era de alto nivel y más fácil de entender que C ++ y Java. También sabía que para ser bueno en lo que hacía, necesitaba saber más de 2 o 3 idiomas, lo que no parecía ser un gran problema, ya que una vez que aprendí la forma en que Python funcionaba, la sintaxis cambiaba principalmente, y el resto vendría naturalmente. Miré un par de videos de YouTube, descargué algunos libros en formato pdf y busqué algunos tutoriales aquí y allá para saber qué hacer.

Habían pasado dos semanas enteras de tratar de entender la sintaxis, crear pequeños programas que usaban las funciones básicas y entender cómo funcionaba, creo que ya entendí el problema. Se descompone en lo que he estado lidiando todo este tiempo (aunque lo sabía) es que, entrada, salida, bucles, funciones y otras cosas derivadas de los datos de almacenamiento y recuperación de 0 y 1, etc. (A MUY BÁSICO IDEA). He podido crear pequeños programas, Hangman, almacenamiento de archivos, conversión de temperatura, decodificación / codificación Caeser Cipher, secuencia de Fibonacci y más, que puedo crear y entender cómo funciona cada uno.

Estando 2 semanas en esto, he aprendido mucho. Nada en absoluto comparado con lo que debería estar aprendiendo en los próximos años si me aferro a lo que estoy haciendo. Mientras hago estos programas, no me detendré hasta que haya terminado de hacer un problema de práctica en un libro, lo que es bastante vergonzoso y me llevará un par de horas dependiendo de su complejidad. Absolutamente no dejaré de lado el desafío hasta que esté completo, LO QUE PUEDE SER EXTREMADAMENTE DRENAJE, He intentado la mayoría de los problemas sin hacer trampa y he alcanzado el éxito, lo que me hace sentir extremadamente orgulloso de mí mismo después de completar algo después de mucho ensayo y error.

Después de todo esto, he conocido al demonio, algoritmos que parecen ser clave para un código eficiente. Parece que no puedo entender algunos de los códigos de computadora que usan los números y, a veces, incluso las funciones básicas, he podido entenderlos después de un tiempo, pero sé que hay muchas cosas más complejas por venir. Al considerarme inteligente, las funciones que requieren códigos complejos realmente dañan mi cerebro. NADA EN LA VIDA, DUELO A MI CEREBRO ....... ni siquiera a las clases de matemáticas en la escuela secundaria, tratar de entender algunas de las cosas que la gente pone allí me hace sentir como si tuviera una desventaja mental jajaja ... aún sigo avanzando , cruzando mis dedos que vendrá la comprensión con el tiempo.

Lo siento, si es esto es mucho, solo deseo que alguien tome en cuenta todas estas cosas al responder mi pregunta. Incluso a través de todas estas desventajas, sigo esforzándome y continuando tratando de ser bueno en esto, sé que leer estos tutoriales no me hará ningún bien a menos que pueda volverme creativo y hacer los míos, entender los programas de otras personas, así que me lleva a la simple pregunta que podría haber hecho al principio ...

¿EN DONDE COMENZO EN EL MUNDO? He estado tratando de descubrir cómo entender algunos de los proyectos de código abierto, cómo puedo trabajar con programadores experimentados para aprender de ellos y ayudarlos, pero no creo que eso sea posible por la forma en que los conocimientos de las personas están lejos. Comparado conmigo, no tengo amigos de los que pueda aprender, alguien puede ayudarme y guiarme en la dirección correcta. Tengo una gran motivación para ser bueno en la codificación, cualquier información sería extremadamente útil.


Bueno, la mejor solución que se me ocurre es registrarme en sitios como codeguru.com y buscar prácticas o unirse a grupos de programadores en su área. De esa manera, puede adquirir tanto el vencimiento como el conocimiento que necesitará en el futuro.


Desde mi experiencia: problemas: lo guiará por el camino que ha elegido y los idiomas le ayudarán a verlo desde diferentes puntos de vista. Si solo usa uno o dos idiomas, podrá continuar, pero se perderá muchas cosas en su camino, lo que puede ayudarlo en el futuro, lo que puede darle algo de diversión, etc.
Y ... Hay muchas más cosas que puedes hacer además de la programación. No hagas "Quiero programar" como tu objetivo principal. Use "Quiero resolver el problema ..." y "Quiero usar la programación para hacer ...". (es decir, no hagas que las palabras sean tu objetivo)
Creo que he elegido este camino porque era lo más fácil de hacer. No hay necesidad de entrenamientos todos los días, no hay necesidad de hacer un trabajo repetitivo, no hay necesidad de estar listo para el viaje al día siguiente, no hay necesidad de preparar un montón de materiales, etc. Por supuesto, más tarde descubrí que algunas de esas cosas pueden existir incluso allí.


El trabajo de diseñar un curso de estudio en algoritmos, y las otras cosas que debe saber para ponerlos en práctica, especialmente el que lleva a una carrera en computación, es el trabajo de diseñar el programa de estudios de un curso universitario en computación. Ciencia. De hecho, sospecho que algunas universidades ofrecen poco valor, excepto para diseñar el programa y evaluar a los estudiantes; los estudiantes hacen casi todo lo demás por sí mismos. Si es posible, su objetivo debe ser prepararse para participar en un curso de Ciencias de la Computación, ya sea por medio de un estudio de tiempo completo o parcial.

La recomendación de mi libro sería "La práctica de la programación", de Kernighan y Pike, especialmente si planeas aprender haciendo. No profundiza mucho en los algoritmos, pero en unas pocas páginas debería informarle lo suficiente sobre el diseño y las pruebas para que cuando practique, encuentre, arregle y aprenda de muchos de sus errores y adquiera el hábito de escribir programas. que otras personas pueden mirar sin hacer muecas.


En mi enfoque de la programación, creo que la escritura recopilada de Brian Kernighan son los libros más influyentes sobre cómo pensar como un programador que he encontrado. En la portada de "La práctica de la programación" están las palabras:

  • Sencillez
  • Claridad
  • Generalidad

que dado su notable interés en Python se lee como la forma corta de PEP 20 . Los algoritmos son un medio para un fin como lo son las recetas en la cocina. Si bien es cierto que no se puede hacer pan sin saber sobre el cuidado y la alimentación de la levadura, el objetivo es saber que uno quiere pan en primer lugar. A pesar de que los libros de Kernighan pueden parecer obsoletos, sus temas unificadores del artesano hablan con una elegancia que pocos escritores técnicos aspiran a hacer.

Las máquinas se están volviendo tan rápidas que el estudio formal (por ejemplo, Knuth) de algoritmos puede constituir un mecánico competente, pero esa es la parte fácil. Lo que el aprendiz de hoy debería esforzarse es el arte del campo porque es donde los humanos están realmente en su mejor momento.


En primer lugar ... creo que deberías darte algo de tiempo. No se deje llevar por muchas cosas a la vez, ya que aprender a programar puede ser un proceso largo. Como primer paso, recomendaría estudiar un lenguaje de programación (como usted ya lo hace en python) y aprender los conceptos de programación (oo, recursión, bucles, funciones, variables, etc.) tan bien como pueda.

Como segundo paso, debe intentar responder a la pregunta "¿qué es exactamente lo que quiero hacer con la programación?" y esto es, por supuesto, lo más importante, es realmente diferente cuando haces gráficos, cuando haces aplicaciones DSP y cuando haces desarrollo web. Por lo tanto, aprender algoritmos en general sin tener un objetivo específico a veces puede ser realmente frustrante.

Así que los elementos más importantes pueden ser la paciencia y la concentración, después de todo Roma no se construyó en un día ... buena suerte


No te daré muchas sugerencias de "hazlo y hazlo", pero algunas cosas:

  1. Aprendiste Python por ti mismo, felicitaciones, especialmente cuando nadie a tu alrededor está haciendo esto. Así que ya tienes algo de lo que sentirte bien. Sigue aprovechando esas cosas para aumentar tu base de conocimientos.

  2. Usted dijo que tenía 13 años. Python podría tener libros para satisfacer su nivel de complejidad, pero definitivamente no algoritmos. Los algoritmos son un asunto serio. Hay un buen nivel de matemáticas en y alrededor del dominio de los algoritmos. Y no hay manera de endulzar eso. Además, los libros sobre algoritmos son conocidos en toda la industria como libros difíciles de descifrar. Pregúntale a Bill Gates y Don Knuth.

Así que diría, si quieres aprender computadoras porque te encanta aprender y añorar el conocimiento, entonces sugeriría, por un lado,

Estás en el camino correcto, para ser franco, no espero que un niño de 13 años sepa sobre los algos. Usted está explorando Py, tengo planes con C, C ++, diría, ¡genial!

Fortalece tus matemáticas. Hasta que no desee implementar diferentes tipos de algos, y no rascar profundamente, puede hacerlo. Pero los algos no son solo eso. Por lo tanto, si desea controlarlo, debe aprender matemáticas discretas. Las matemáticas discretas no vendrán a ti en 1 mes, 2 meses o incluso 1 año. Prepárate para esperar y ofertar tu tiempo. Mientras tanto, ataca las matemáticas que están justo al borde de tu competencia.

Lo mismo con los algos. Prepárese para visitar este dominio dos o tres veces en los próximos cinco años. Cada vez que su base de conocimientos existente complementará mejor su búsqueda de algoritmos.

Hasta entonces, Soham


bien por usted.

¿Has considerado algunos cursos universitarios? usualmente puedes tomar algunas clases de tipo de algoritmo allí.

Encuentro que una sólida formación matemática es muy útil, tanto en la resolución de problemas como en las habilidades básicas de manipulación de números. Muchas de las cosas que haces en la programación se basan en fundamentos matemáticos. Los tipos de programas que desees escribir conducirán los algoritmos que terminarás utilizando o creando.