Lo más difícil en la programación es …
Realmente me gustó el hilo en Quora.com: ¿Cuál es la parte más difícil de aprender a programar? Nunca leí las 87 respuestas, pero seleccioné las que me gustaron en un artículo separado de 10 puntos. Este es un recuento gratuito de las opiniones de muchas personas diferentes. Si los lectores están interesados, continuaré.
1. La diferencia entre estándares altos y habilidades bajas
El artículo “Nadie le dice nada a los novatos” habla de un problema común de las personas que se dedican al trabajo creativo o intelectual. La programación es un tema complejo y suele ser abordado por personas capaces, ambiciosas y perfeccionistas. En la etapa inicial, no serán buenos en eso. Acostumbrados a la barra alta, se enojarán. Una voz interior susurrará constantemente: “Nunca tendrás éxito, es mejor que dejes este negocio”. En momentos como este, piensa que tu autocrítica es un signo de lo extraordinario, y cree que superarás este “período inepto”.
En cuanto a los extraordinarios beneficios de la programación, aquí están:
- Los problemas de código son fundamentalmente diferentes de los problemas del mundo físico. Puede reparar un código defectuoso solo con el poder de la mente, a diferencia de, por ejemplo, un automóvil averiado, que requiere la compra de piezas de repuesto costosas.
- Puede crecer profesionalmente solo en el límite de su zona de confort. Al hacer cosas desconocidas, cometerá muchos errores, pero también obtendrá conocimientos reales.
- Los errores de codificación no son puertas que se cierran frente a ti, sino claves para aprender.
2. Acepte el hecho de que la computadora siempre tiene razón y usted no.
Si algo salió mal, no culpe a la computadora o al programa. No arregle las cosas con ellos. Simplemente establezca una meta: “cómo solucionarlo”. Si desea resolver las cosas con lenguajes de programación, por qué tienen tantos errores y su programa falla, entonces ha elegido la especialidad incorrecta.
3. Prepárese para el peor de los casos
Espere las cosas más inesperadas de los usuarios del programa. Ingresarán números donde no pertenecen, insertarán párrafos de texto en el campo de nombre y harán un montón de otras cosas incómodas. No cree formularios en los que pueda especificar la edad de una persona en miles de años. Esté preparado para cualquier cosa, no confíe en los usuarios, anticipe los peores escenarios y construya protección contra ellos.
4. Controlar las emociones
La programación es a menudo una experiencia larga, difícil y frustrante. Sucede que estudias algún tema durante meses, luego durante muchos días escribes un código complejo y confuso que finalmente hace lo que necesitas. Y luego, un programador experimentado lo toma y lo reescribe en 3 minutos en 5 líneas. Y te sientes aplastado. Pase lo que pase, no se moleste.
5. Autosuficiencia
Muchos principiantes toman fácilmente varios cursos de programación, pero tan pronto como emprenden una tarea independiente, caen en un trance. O no hay ideas para escribir, o hay ideas, pero no se sabe cómo implementarlas, por dónde empezar. La cuestión es que los cursos te dan alfabetización sintáctica, parece que recuerdas diferentes comandos como len (), pero no puedes escribir tu propio programa. Y te empieza a parecer que el curso de formación fue un cableado para tontos, donde te enseñaron tonterías superficiales, y la esencia misma se mantuvo en secreto. Y esta esencia es la habilidad de pensar programáticamente.
La lógica de la programación es dividir una gran tarea en pequeñas subtareas e implementarlas secuencialmente, y luego unirlas. El programador no es quien imprime el texto del código para destilación con conocimiento de todos los comandos, sino quien piensa en la lógica del programa. Y cuando finalmente logras hacer algo tú mismo, por tu cuenta, este momento es increíblemente inspirador y recuerdas tu grandiosa idea, que recientemente parecía imposible y piensas: “¡Oh-ho, ahora puedo darme cuenta!” Aunque, por supuesto, todavía hay que crecer y crecer antes de su realización, el momento sigue siendo agradable.
6. Sin saber por dónde empezar
- No sabes qué idioma empezar a aprender: C, Python, Java, PHP, C ++, Ruby y un millón de otros lenguajes.
- No sabes dónde estudiar: de un libro, materiales en línea o inscribirte en un curso.
- ¿No sabe qué aprender: aplicaciones móviles, Android, iOS, web, frontend, backend, sistemas operativos, inteligencia artificial, aprendizaje automático, DevOps?
- No sabes cómo aprender: leer libros, el código de otra persona, llevar a alguien a una formación conjunta, programar de forma competitiva, en parejas, conseguir un trabajo como pasante.
Hay muchas de estas preguntas: “qué, dónde, qué, cómo,…. ? ”. Consultas con amigos, escuchas a profesionales, preguntas en los foros. Pero sus respuestas te confunden aún más.
El problema con el aprendizaje de la programación es que hay demasiada información sobre el tema. Y necesitas aprender a atravesar la jungla de este ruido. Elegir solo lo que necesita es muy difícil, pero su futuro depende de esta habilidad.
Para lidiar con esto, siga estos consejos:
- Encuentre un mentor (mentor), un programador de tecnología moderna con experiencia y con fluidez, que lo ayudará a crear un plan de aprendizaje.
- Obtenga comentarios sobre su código. Hay muchas formas de hacer algo y muchas más formas de hacerlo mal. Si bien Internet está lleno de grandes recursos, todavía no es perfecto. Por lo tanto, de vez en cuando, muestre su código al mentor para que confirme que está en el camino correcto.
- Practica la implementación de tus ideas. Seguir los tutoriales rápidamente se vuelve aburrido, así que tan pronto como se sienta familiarizado con la tecnología, comience a implementar algo interesante con ella. Esto aumenta la motivación y la autoestima. Recuerda que puedes hacer esto, es solo cuestión de tiempo y perseverancia.
Consejos para ingenieros:
- Explore toda la pila. Con el tiempo, domine toda la pila de tecnología. Por ejemplo, si eres un programador web, no te limites solo al front-end. Tenga una idea del backend, la base de datos, el servidor, la red. Con un conocimiento sólido del producto que se está desarrollando, puede convertirse en un ingeniero avanzado tomando las decisiones correctas.
- Sea autodidacta. El desarrollo de software es una de las industrias de más rápido crecimiento en el mundo. Si los principios fundamentales rara vez cambian, entonces las herramientas, casi todos los días. Es importante seguir todos los productos nuevos y poder dominar de forma independiente lo que es necesario para usted.
- Aprenda a comunicarse y colaborar. Si sabes hacer algo bien, entonces para tu empresa eres una unidad útil = 1. Pero si al mismo tiempo apoyas e inspiras a 10 personas más, entonces a los ojos de la gerencia te conviertes en = 11.
7. Muchas cosas relacionadas con la programación en sí
A menudo, un programador solo intenta crear y lanzar su producto al mercado. Aquí es donde comienza la parte más difícil.
Selección y soporte de diferentes plantillas, creación de iconos, logos, banners.
Registro en el mercado de juegos, tienda de aplicaciones, configuración de sistemas de pago, cumplimentación de formularios aburridos. Luego escriben que hiciste algo mal y tienes que rehacer todo de nuevo.
Solicitar publicidad en google-ads y buscar las mejores opciones, configurar canales de venta, y también este presupuesto limitado que te ata de pies y manos …
Codificar en su forma más pura ya parece fácil cuando no tienes que meterte en las agotadoras tareas de diseño y marketing.
8. Es imposible saberlo todo
Cada vez que, idealmente, haya dominado alguna habilidad, sabrá que ha aparecido algo nuevo, mucho mejor. Y surge la paradoja de Sócrates: “Sé que no sé nada”. Constantemente necesita dedicar mucho tiempo a aprender cosas nuevas y, dado que es imposible saberlo todo y ser un experto en todo, debe elegir constantemente prioridades: qué es lo más importante para usted en este momento, qué tecnología, qué enfoque.
Sí, puedes elegir una cosa y convertirte en un especialista en ella, pero luego te arriesgas mucho a que al mismo tiempo aparezca algo nuevo, muchas veces superior a tu tecnología, y ese algo conquistará el mercado, mientras te aferras a basura con ambas manos.
Por lo tanto, si le encanta aprender y aprender constantemente algo nuevo, entonces al elegir la programación no se decepcionará ni un segundo.
9. En la vida real, no todo es tan perfecto como en la escuela.
Durante sus estudios, juega con programas ligeros de varios cientos, como máximo, miles de líneas de código. Incluso en la universidad, en el departamento de informática.
Cuando ingresa a una empresa, puede encontrarse con una base de código de cientos de miles de líneas o incluso millones. Hay muchos errores, nombres de variables ridículos, rutinas complicadas sin documentación, diferentes patrones de diseño, almacenamiento en caché multinivel, etc.
Cuando todo esto tiene que entenderse y aprenderse en un marco de tiempo ajustado, obtiene la curva de aprendizaje más vertical que enfrentan muchos ingenieros de software.
10. Equilibrio entre teoría y práctica
Por un lado, puedes estudiar mucha teoría, leer algo durante años y pensar que sabes poco y no haces nada. Se vuelve aburrido y deja de ser útil en algún momento.
Por otro lado, puede comenzar a hacer algo sin conocer la teoría y rápidamente quedarse atascado o perderse en su código y sus errores. Muchas personas comienzan a hacer algo, confiando solo en las respuestas abruptas de los foros, sin comprender la imagen completa de su aplicación y adónde los llevará eventualmente el trabajo (por ejemplo, a un código no compatible y no actualizable).
Por lo tanto, es muy importante sentir este equilibrio entre la teoría mínima y la práctica posterior. Entonces lo que escribas será alfabetizado, y la teoría se asimilará muchas veces más rápido e interesante, y aprenderás armoniosamente mientras trabajas.
UPD
11. Lucha contra los Bugs
Los errores (errores) son errores en el programa. Si continuamos la metáfora con los escarabajos y los humanos, entonces para los principiantes es más probable algo subcutáneo, que pica, aterrador, porque es invisible y difícil de eliminar.
Lo más molesto es que aparecen cuando parece que has hecho todo bien y puedes proceder a otros logros. Pero, de repente, el programa deja de funcionar sin motivo aparente o no funciona como se esperaba. Y hay que renunciar a todo y pasar varias horas, o incluso días, buscando este error. Parece como si este tiempo fuera una pérdida (después de todo, usted no se dedica a crear lo “nuevo”, sino a hurgar en lo “viejo”). Se necesita una paciencia titánica para sobrevivir a este período.
Debes entender que, de hecho, durante este tiempo aprenderás muchas cosas nuevas, y lo harás con más motivación y un grado de memorabilidad que en las tranquilas condiciones de estudiar teoría. Arreglar cada error es, en primer lugar, eliminar su ignorancia en muchos temas, cuya existencia nunca antes había pensado. Hay una transición de la ignorancia inconsciente a la ignorancia consciente y su transformación en conocimiento. Con el tiempo, ambos crearán menos errores y aprenderán a trabajar con herramientas para corregirlos.
12. Ve rápido y rompe cosas
Debe desarrollar un almacén de caracteres especial en usted mismo, cuando no tenga miedo de seguir adelante, sin estar preparado de antemano para esto. Antiguo lema de Facebook: “Ve rápido, rompe cosas. Si no rompe nada, entonces se está moviendo lentamente “.