¿Cómo convertirse en un experto en Python, PHP y Javascript? [cerrado]

8

Así que he estado programando durante aproximadamente 9 meses y me he enseñado algo de Python, PHP y Javascript.

Quiero mejorar en estos idiomas: puedo hackear algo, pero muchas cosas como OOP, usar listas de la manera más efectiva, etc., se me han perdido.

¿Cuáles son las mejores formas de convertirse en un programador "experto"? ¿Depende de los matices del lenguaje o es más general? ¿Hay alguna matemática que debería estudiar al lado? Obviamente, mucho depende de lo que quieras hacer con él; hasta ahora, principalmente he realizado aplicaciones internas a pequeña escala, así como programación web. ¿Cómo me entero del buen diseño del programa?

Jack Seskatchi
fuente
1
Hola Andrew, lamento que esto se haya migrado aquí innecesariamente, pero este es un alcance demasiado amplio como para adaptarse al estilo de Preguntas y Respuestas de Stack Exchange.
1
seguir pirateando durante unos 111 meses más ...
Steven A. Lowe

Respuestas:

16

La única solución es la experiencia . Se convertirá en un experto cuando haya codificado mucho (como realmente mucho ) en estos idiomas. Desarrollar proyectos te hará enfrentar problemas, por lo que tendrás que encontrar las soluciones, y un día habrás visto suficientes soluciones a los problemas que te llamarás un experto .

Codificación, lectura de código, revisión de código, todo esto lo ayudará a saber cómo codificar con un buen diseño. No puede simplemente confiar en un fragmento de código que ve en Internet para decir que sabe cuál es el buen diseño para lo que está tratando de lograr. Debe mirar a muchos de ellos para saber cuál sería la mejor solución a su problema.

talnicolas
fuente
10

La experiencia, como la amistad, es producto del tiempo. Mi cita favorita sobre el tema (se me olvida la fuente):

"El buen juicio es el resultado de la experiencia. La experiencia es el resultado del mal juicio".

Dedique las horas, estudie su oficio. Luche no solo por soluciones inmediatas, sino también por la belleza y la eficiencia.

sunwukung
fuente
1
+1 "no son soluciones inmediatas, sino belleza y eficiencia"
Raynos
1
+1 La cita resume perfectamente el significado de la experiencia. :)
Daveo
3

En primer lugar, es importante comprender la programación a nivel agnóstico. Conocer los principios, conceptos, metodologías y demás te ayudará a largo plazo. Aquí hay algunos enlaces a algunos buenos libros para ayudarlo:

Libros:

Solo recuerda que cuando besas también es mejor seca si quieres una relación más sólida con la programación. :)

Daveo
fuente
1

1) Estás en el lugar correcto. Los foros comunitarios como el intercambio de pila son una excelente manera de encontrar información.

2) Averigüe la POO antes de continuar. Es una necesidad antes de pasar de las secuencias de comandos a un desarrollo más avanzado. net.tutsplus.com es un buen sitio de referencia y encontré esta guía aquí: http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/

3) Una vez que haya aprendido POO y haya practicado su uso, descargue un marco con buena documentación y siga una guía de "Introducción" (un marco es una colección de herramientas que lo ayudan a desarrollarse más rápido en un idioma). Symfony es bueno para PHP y puede seguir la guía aquí: http://www.symfony-project.org/getting-started/1_4/en/ . También tienen un tutorial "Jobeet" para que lo sigas junto con

4) Junto con el n. ° 3, aprenda el patrón MVC (Model View Controller). Este es un patrón de programación popular que se utiliza en una variedad de marcos. Es imprescindible si quieres pasar de principiante a intermedio.

¡Buena suerte!

Greg H
fuente
Ah, y una advertencia justa: un principiante no podría aprender muchos de estos artículos que he enumerado en un día. Tomará algo de tiempo y práctica, así que no se desanime.
Greg H
No estoy de acuerdo con el punto 3. Aconsejar a alguien que revise y use un marco no los ayudará a aprender la programación en sí. Con respecto al punto 4, solo MVC como concepto tiene sentido en la web, pero no como un patrón.
Daveo
Es cierto que un marco no lo ayudará a mejorar en el lenguaje en sí, pero lo ayudará a mejorar en el desarrollo en general. También proporciona una manera de aprender los estándares de la industria para el desarrollo web.
Greg H
1
Y php y python se usan principalmente para tecnologías web, así que supongo que aquí es donde está comenzando. Es un patrón arquitectónico que es bueno aprender si vas a hacer desarrollo web.
Greg H
@Daveo a framework es una guía para mantenerte encaminado. Al principio es difícil escribir el código correcto sin utilizar algún tipo de mecanismo de guía. Un marco es el reemplazo de un pobre por un mentor real. Son tus ruedas de entrenamiento en tu bicicleta, una vez que te sientas cómodo dejas de usar el marco y lo haces correctamente
Raynos
1

Trabaja en un proyecto de código con programadores que sean mejores que tú

Protip: ¡esto parece funcionar para cualquier cosa en la que quieras mejorar, no solo para el código!

Pero en serio, si puede encontrar personas talentosas que estén dispuestas a decirle cuándo lo está haciendo mal, intente trabajar en un proyecto con ellas.

Lee cosas escritas por programadores que son mejores que tú

Daveo vinculado a algunos buenos libros. También puede encontrar muchos blogs escritos por personas que se preocupan por convertirse en mejores programadores (y generalmente son programadores bastante impresionantes).

TehShrike
fuente
0

Ser un programador experto es probablemente una habilidad general para razonar y resolver problemas de programación, tanto tareas comunes como poco comunes. Probablemente esto sea independiente del lenguaje, pero yo diría que también debes ser muy fluido con al menos un par de lenguajes de programación y sus herramientas.

No hay una receta mágica para convertirse en un experto, excepto con el trabajo duro: leer tutoriales, buscar mucho en Google, escuchar a expertos, trabajar en problemas, codificar mucho, trabajar en proyectos existentes con otras personas y, en general, adquirir mucha experiencia en el mundo real .

Todo esto es un consejo independiente del idioma.

Andres F.
fuente
0

Por supuesto, hay varios enfoques que conducirán al éxito. Como ya se dijo, la experiencia es la más importante, pero depende de cuánto tiempo necesites para llamarte experto. Sin embargo, el intervalo de tiempo se medirá en años o incluso décadas.

Comencé a aprender programación hace 15 años, y creo que las mejores mejoras en mis habilidades se debieron a las siguientes razones:

  1. La presión es mala. Mantén un buen estado de ánimo y olvida los problemas irresolubles hoy solo para volver a ellos mañana (y preguntándote por qué parecía tan complicado el día anterior).

    Comencé a programar cuando era niño y nadie me obligó a aprender nada. No me malinterpreten: no es necesario comenzar como un niño para dominar un lenguaje de programación. Su propia motivación, sin obligarse a alcanzar una meta poco realista en un período de tiempo demasiado corto, será la clave del éxito.

    Tampoco tendrá que escribir su propio sistema operativo como lo hizo Linus. Tampoco nadie espera que un sitio web exitoso sea visitado por cientos de usuarios al día. Extractos simples de sus proyectos mostrarán (su jefe, su cliente, sus colegas ...) que sabe lo que hace.

  2. Apégate a un tema hasta que (casi) lo domines. Aprende lo básico.

    El dominio es algo que no se puede lograr. Es poco probable que lo sepa todo. Pero asegúrese de aprender los conceptos básicos y no subestime los conceptos de lenguajes de programación, paradigmas o ciertas reglas sintácticas o mejores prácticas.

    Pero por favor: no lo acepte solo si escucha o lee NUNCA o SIEMPRE. Cada vez que alguien habla de nunca hacer algo, no dude en preguntar por qué. Hay una razón por la cual hay reglas. Pero solo la razón le dirá si es algo bueno para su situación o no. Lo que es bueno en un idioma puede ser problemático en otro.

  3. Seguir avanzando.

    No te quedes en el mismo tema durante décadas. Después de 10 años de Javascript, habrá muy pocas personas que puedan enseñarle algo nuevo. Pero en 10 años nadie hablará de Javascript ... ¿por qué? ah ahora me tienes Las predicciones sobre el futuro siempre son propensas a errores;)

    Sin embargo, después de algunos meses o años de recopilación de experiencia en un campo, verá que las cosas que aprende no serán tanto como al comienzo de su "misión". Habrá un momento en que las personas comenzarán a pedirle ayuda cuando tengan problemas (problemas reales, no los de hacer mi tarea).

    Este es un buen indicador de que te has convertido en una especie de experto. En este punto, pregúntese si todavía existe el potencial de desarrollarse. O tal vez hay algo nuevo sobre lo que quieres poner tus manos, pero nadie te lo permite porque eres el pollo perfecto para esta jaula.

  4. Sal con tus amigos, esposa, perro ...

    Le dará un descanso a tu mente. Problemas como Android vs. Iphone, Flash vs. Silverlight, App vs Program ... se convertirán en una cuestión de lo que es mejor para sus necesidades y no el centro de su existencia.

    Tener una vida social (aunque no confunda con Facebook) también ayudará a mantener o incluso mejorar sus habilidades sociales. Si sabe cómo lograr que sus colegas acepten la mejor solución (no necesariamente su), puede valer más que conocer cientos de lenguajes de programación.

  5. Usa tu cerebro

    No me escribas una carta en 10 años diciéndome que arruiné tu vida. Si está satisfecho con una estrategia totalmente diferente o descubre que convertirse en agricultor o presidente de los Estados Unidos vale la pena pasar el resto de su tiempo: hágalo.

Alex
fuente
0

Sugiero que se haga miembro de sitios como Topcoder o Usacogate , donde puede aprender paso a paso y resolver problemas algorítmicos. Por ejemplo, completar la capacitación de Usacogate no lo convertirá en un profesional en ciencias de la computación, pero le brinda mucha habilidad para abordar muchos problemas de la vida real. Te enseña a probar y requiere que proporciones soluciones eficientes.

Otra opción más para ganar más experiencia es aprender un lenguaje de un paradigma diferente. Por ejemplo, Haskell es un lenguaje de programación funcional. Aprenderlo puede ayudarlo a abordar los problemas desde un punto de vista diferente, incluso en otros idiomas. Por ejemplo, Python se puede programar en un estilo muy funcional.

Timo
fuente
0

Contrariamente a algunas de las respuestas, la experiencia no es el único requisito para convertirse en un "experto". Creo que la mayoría de las personas en todas las industrias (no solo la programación) no se convierten en expertos en su campo. Se vuelven competentes y eficientes, pero no llegan a ser tan buenos como podrían ser.

La razón es que la experiencia no es suficiente. Necesitas consejos de expertos. Debe aprender a hacer cosas de alguien que sea un experto.

Afortunadamente para nosotros, hay muchos recursos para que los programadores se conviertan en expertos. Probablemente el mejor es libros. Otro recurso destacado son los programadores. StackExchange.

Pase la mayor parte de su tiempo escribiendo código, pero también dedique parte de él leyendo e integrando el conocimiento de libros como Clean Code http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 . Puede encontrar los mejores libros analizando las reseñas en Amazon, revisando este sitio y Stack Overflow.

Si invierte suficiente tiempo para aprender y usar la información en 2 o 3 libros por año, aumentará en gran medida su habilidad. Además, encuentre una manera de grabar y recordar todo lo que aprende. De lo contrario, será difícil saber realmente y utilizar la información.

Presta atención a los temas que interesan a los programadores expertos: patrones de diseño, pruebas unitarias, elección de carrera, etc. Mira el mundo (o al menos tu trabajo) desde la perspectiva de un programador experto.

Cuando se le asigne una tarea para codificar, deténgase y piense en ello por un momento. Hazte algunas preguntas. ¿Qué he aprendido que pueda ayudarme? Cuales son los riesgos? ¿Cuál es el mejor enfoque? ¿Cuáles son algunos algoritmos diferentes que puedo usar? ¿Cuánto tiempo llevará ejecutar el programa? ¿Cuál es probable que sea el cuello de botella de la CPU? ¿Qué funcionalidad podría cambiar o agregarse?

Espero que esto ayude.

B Seven
fuente