Claves para acelerar sus habilidades de codificación
La clave para acelerar sus habilidades de codificación
Claves para acelerar tus habilidades de codificación
Artículo de: http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/
La clave para acelerar tus habilidades de codificación La clave para acelerar tus habilidades de codificación
Cuando aprendes a codificar, llega un momento en el que todo empieza a cambiar. En Firehose, nos gusta llamar a esto el punto de inflexión de la codificación. Después de esta fase, la forma en que opera como desarrollador será dramáticamente diferente. Llegar al punto de inflexión es el proceso de volverse autosuficiente en programación, hasta el punto en que ya no necesite que lo tomen de la mano. Puede ser una experiencia frustrante, pero una vez que la dejas atrás, es increíblemente enriquecedora.
Cuando aprendes a codificar, llega un punto en el que todo empieza a cambiar. En Firehose nos gusta llamar a esto el punto de inflexión de la codificación. Después de esta etapa, la forma de operar como desarrollador será muy diferente. Llegar a un punto de inflexión es el proceso de lograr la autosuficiencia en la programación hasta que no se requiera más trabajo manual. Esta puede ser una experiencia frustrante, pero una vez que la dejas atrás, es increíblemente empoderadora.

En Firehose, nuestro objetivo no es solo enseñarle Ruby, cómo crear aplicaciones web o cómo escribir pruebas. Aunque enseñamos estas habilidades y más, nuestro objetivo principal es acelerar a los estudiantes más allá del punto de inflexión para que adquieran la capacidad de resolver cualquier problema que encuentren. Creemos que ser capaz de resolver problemas por tu cuenta es una habilidad invaluable y este método de enseñanza te llevará mucho más allá de simplemente aprender a crear un conjunto de aplicaciones. En Firehose, nuestro objetivo no es solo enseñarle Ruby, cómo crear aplicaciones web o cómo escribir pruebas. Si bien enseñamos estas habilidades y más, nuestro objetivo principal es acelerar a los estudiantes a través del punto de inflexión para que puedan resolver cualquier problema que se les presente. Creemos que ser capaz de resolver problemas usted mismo es una habilidad increíblemente valiosa y este enfoque de enseñanza le llevará mucho más allá de simplemente aprender a crear un conjunto de aplicaciones.
La fase de tutorial (3-8 semanas de codificación seria) Fase de tutorial (3-8 semanas de codificación seria)
Cuando empiezas a aprender a codificar, hay mucha información que aún no conoces. Esta información se llama conocimiento específico del dominio. Los ejemplos incluyen: saber cómo escribir un bucle en Ruby o cómo extraer algo de una base de datos usando Ruby on Rails. El conocimiento específico del dominio abarca los protocolos exclusivos de un determinado entorno de programación. Cuando empiezas a aprender a codificar, hay mucha información que aún no conoces. Esta información se llama conocimiento específico del dominio. Los ejemplos incluyen: Aprenda a escribir bucles en Ruby o cómo extraer contenido de una base de datos usando Ruby on Rails. El conocimiento específico del dominio consta de protocolos exclusivos de un entorno de programación particular.
El primer paso para convertirse en un desarrollador autosuficiente es aprender a realizar tareas específicas. Una vez que domines ciertas tareas, los rasgos generales de cómo encajan las piezas comenzarán a hacerse evidentes. Con el tiempo, comenzarás a reconocer patrones y, eventualmente, las cosas que inicialmente parecían confusas y extrañas se convertirán en algo natural. El primer paso para convertirse en un desarrollador autosuficiente es aprender a completar una tarea específica. Una vez que domines una tarea, descubrirás cómo encajan las piezas. Con el tiempo, comenzará a reconocer patrones y, eventualmente, lo que inicialmente parecía confuso y desconocido se convertirá en algo natural.
Para los estudiantes que comienzan, la habilidad más importante que deben adquirir es la atención al detalle.
Es importante prestar mucha atención a los detalles al revisar materiales como documentación o tutoriales. Incluso los errores tipográficos y ortográficos más pequeños generarán mensajes de error o errores. Ver mensajes de error es una experiencia frustrante al principio, pero es un paso crucial en el proceso de aprendizaje. Lidiar con mensajes de error y problemas en esta fase le enseñará una de las habilidades más importantes de la programación dentro de un entorno seguro: estar orientado a los detalles. Al explorar materiales como documentación o tutoriales, es importante prestar mucha atención a los detalles. Incluso los errores tipográficos y ortográficos más pequeños pueden generar mensajes de error o errores. Ver mensajes de error es una experiencia frustrante al principio, pero es un paso fundamental en el proceso de aprendizaje. Lidiar con mensajes de error y problemas durante esta fase le enseñará una de las habilidades más importantes para programar en un entorno seguro: estar orientado a los detalles.
Depurar mensajes de error es increíblemente importante. El quid de la cuestión es que los mensajes de error son sólo una parte de la programación: los ven tanto desarrolladores inexpertos como muy experimentados. La única diferencia es que cuanta más experiencia tenga lidiando con mensajes de error, menos tiempo necesitará dedicar a solucionarlos. He aquí por qué: La depuración de mensajes de error es muy importante. De hecho, los mensajes de error son sólo una parte de la programación: tanto los desarrolladores inexpertos como los muy experimentados ven mensajes de error. La única diferencia es que cuanta más experiencia tenga lidiando con mensajes de error, menos tiempo dedicará a solucionarlos. Las razones son las siguientes:
-
Con el tiempo, aprenderá a leer mensajes de error y extraer rápidamente los detalles relevantes del problema. La primera vez que vea un mensaje de error, le llevará un tiempo decodificar lo que realmente significa. Pero después de haber visto cientos de mensajes de error (¡y verá cientos!), podrá identificar la ubicación del problema y los detalles relevantes que necesita para solucionarlo. Con el tiempo, aprenderá a leer rápidamente mensajes de error y extraer detalles relevantes sobre el problema. Cuando vea un mensaje de error por primera vez, deberá tomarse un tiempo para comprender lo que realmente significa. Sin embargo, después de ver cientos de mensajes de error (¡y verá cientos!), podrá identificar la ubicación del problema y los detalles relevantes necesarios para solucionarlo.* Debes aprender de cada mensaje de error que resuelvas. No se limite a corregir el error y terminar de una vez; comprenda qué hay de malo en el código que está arreglando. Si aprende de cada uno de sus errores, la próxima vez que cometa el mismo error podrá solucionarlo mucho más rápido. Debe aprender de cada mensaje de error que resuelva. No se limite a corregir el error y solucionarlo; comprenda qué hay de malo en el código que está arreglando. Si aprende de sus errores, podrá corregirlos más rápido la próxima vez que cometa el mismo error.
-
Inicialmente, probablemente pedirá ayuda con cada mensaje de error que vea. Con el tiempo, aprenderá a pedir ayuda con menos frecuencia verificando su código y realizando búsquedas inteligentes en Google. Inicialmente, puede pedir ayuda con cada mensaje de error que vea. Con el tiempo, aprenderá a pedir ayuda con menos frecuencia al verificar su código y realizar búsquedas inteligentes en Google.
En la fase de tutoría, seguirás las instrucciones. Al principio, le resultará difícil seguir las instrucciones y aparecerán mensajes de error con frecuencia. Con el tiempo, desarrollará la habilidad de depurar errores y prestar más atención a los pequeños detalles, y podrá progresar mucho más rápido. A medida que finalice la fase del tutorial, notará que puede escribir código a un ritmo mucho más rápido. Durante la fase de tutorial, seguirás las instrucciones. Al principio, le resultará difícil seguir las instrucciones y aparecerán mensajes de error con frecuencia. Con el tiempo, desarrollará habilidades para depurar errores y prestará mejor atención a los pequeños detalles, y podrá progresar más rápido. Al final de la fase del tutorial, notará que puede escribir código mucho más rápido.
En este punto, algunas personas se sienten seguras, como si estuvieran listas para deshacerse de las ruedas de apoyo y comenzar a construir cosas sin una guía estructurada, y felizmente se sumergirán en el fondo. Otros estudiantes buscarán más tutoriales, tratando de obtener conocimientos más específicos de un dominio en busca de una “comprensión total”. Lamentablemente, los tutoriales sólo le llevarán hasta cierto punto y la verdadera confianza no se encuentra en los tutoriales ni en las guías. La verdadera confianza proviene de luchar contra un problema que no tienes idea de cómo resolver y descubrir una solución por tu cuenta. En este punto, algunas personas se sentirán seguras, como si estuvieran listas para deshacerse de las ruedas de apoyo y comenzar a construir algo sin una guía estructurada, y felizmente saltarán al fondo. Otros estudiantes buscarán más tutoriales en un intento de obtener conocimientos más específicos del dominio en busca de una “comprensión completa”. Desafortunadamente, los tutoriales sólo le llevarán hasta cierto punto y la verdadera confianza no se encuentra en un tutorial o guía. La verdadera confianza surge de luchar con un problema que no sabes cómo resolver y de descubrir tu propia solución.
**El pequeño y sucio secreto de la programación es… **El pequeño y sucio secreto de la programación es…
Nunca sabrás todo lo que necesitas saber para resolver todos tus problemas. Al emprender el viaje, probablemente se imaginó que eventualmente aprendería todo lo que necesitaba aprender y luego se arreglaría. Este momento nunca sucederá. Nunca podrás saber todo lo que necesitas saber para resolver todos tus problemas. En el proceso, podría imaginarse que finalmente aprende todo lo que necesita aprender y luego es liberado. Este momento nunca sucederá.
La programación es una experiencia de aprendizaje permanente. Los ingenieros de software experimentados buscan encontrar soluciones a problemas que aún no han resuelto porque les brinda la oportunidad de aprender más. Si estás esperando el momento en que finalmente sientas que sabes todo lo que hay que saber sobre codificación, debes saber esto: el día que estás esperando nunca llegará. Y eso es algo maravilloso. La programación es una experiencia de aprendizaje permanente. Los ingenieros de software experimentados buscan soluciones a problemas que aún no han resuelto porque les brinda la oportunidad de aprender más. Si estás esperando el momento en que finalmente sientas que sabes todo lo que hay que saber sobre codificación, debes saber esto: el día que estás esperando nunca llega. Esto es algo grandioso.

**Estarás listo para saltar a la siguiente fase de tu viaje cuando: **Estarás listo para saltar a la siguiente fase de tu viaje cuando:
-
Has visto suficientes mensajes de error como para que ya no te sorprendan. En cambio, sabes cómo descifrar lo que significan y dónde buscar los problemas en tu código. Has visto suficientes mensajes de error que ya no te asustan. En cambio, sabes cómo descifrar su significado y dónde buscar problemas en tu código.
-
Eres un profesional buscando soluciones en Google. Cuando estás trabajando para agregar una función o ves un mensaje de error confuso, sabes qué buscar para encontrar la información que necesitas. Eres un experto en buscar soluciones. Cuando agrega una función o ve un mensaje de error confuso, sabe qué buscar para encontrar la información que necesita.
-
Puede hacer referencia al código que ha escrito en otras partes de su aplicación y seguir patrones dentro de ellos, en lugar de buscar siempre instrucciones paso a paso. En lugar de buscar siempre instrucciones paso a paso, puede consultar el código que haya escrito en otras partes de su aplicación y seguir los patrones.
El punto de inflexión (2-4 semanas con la mentalidad adecuada)El punto de inflexión (2-4 semanas con la mentalidad adecuada)
La etapa del punto de inflexión es una de las etapas más frustrantes de aprender a codificar, pero en muchos sentidos es la única etapa que importa. Es el punto en el que dejas de usar tutoriales y comienzas a resolver problemas para los que nadie ha encontrado una solución para ti. La etapa del punto de inflexión es una de las etapas más frustrantes del aprendizaje de la codificación, pero en muchos sentidos es la única etapa que importa. Ese es el punto en el que poco a poco dejas de usar tutoriales y empiezas a resolver problemas para los que nadie tiene una solución para ti.En algunos puntos, sentirás que no estás listo para abordar esta fase y que quieres volver a construir algo con un esquema de qué hacer exactamente. No caigas presa de esta mentalidad. La razón por la que te sentirás frustrado es: En algún momento, sentirás que no estás preparado para afrontar esta fase y querrás replantearla de forma clara. No seas víctima de esta mentalidad. Las razones por las que puede sentirse frustrado son:
Durante la fase de inflexión, codificará entre 10 y 20 veces MÁS LENTO que en la fase anterior.
Durante la etapa del punto de inflexión, su codificación será entre 10 y 20 veces más lenta que la etapa anterior.
Puede que empieces a cuestionarte y a preguntarte si realmente eres capaz de convertirte en programador. Los sentimientos de inseguridad y duda son comunes en esta etapa. Quizás empieces a cuestionarte si realmente eres capaz de ser programador. Los sentimientos de inseguridad y duda son comunes durante esta etapa.
A pesar de que sentirás que estás aprendiendo y logrando cosas a un ritmo mucho más lento, en realidad estás logrando las cosas que más importan. Si bien su conocimiento de un dominio específico chirría, todo lo que esté aprendiendo será sobre conocimiento de procedimientos. Aunque parezca que estás aprendiendo y completando las cosas mucho más lentamente, en realidad estás haciendo las cosas más importantes. Si bien será difícil poner en práctica sus conocimientos específicos de un dominio, todo lo que aprenda estará relacionado con el conocimiento de procedimientos.
El conocimiento procedimental es la capacidad de aprender por sí mismo lo que no sabe en el camino. Cuando necesitas implementar una nueva función, ¿qué tipo de búsqueda en Google debes hacer? En este momento, se sentirá como si estuviera “a oscuras” en lo que respecta a muchas de las cosas que desea lograr. Aprender a encontrar la luz por tu cuenta es fundamental porque nunca podrás saber todo lo que hay que saber, por lo que debes poder aprender por ti mismo cómo resolver el problema en cuestión. El conocimiento procedimental es la capacidad de aprender por sí mismo algo que no sabe. ¿Qué tipo de búsqueda en Google debería realizar cuando necesite implementar una nueva función? En este momento, cuando quieres lograr mucho, puedes sentir que estás “en la oscuridad”. Aprender a encontrar la luz por ti mismo es crucial porque nunca podrás saberlo todo, por lo que debes poder aprender por ti mismo cómo resolver el problema en cuestión.
La mayoría de las personas no se dan cuenta de que para aprender a codificar, es necesario adquirir conocimientos tanto específicos del dominio como de procedimientos. La mayoría de las personas no se dan cuenta de que para aprender a codificar, es necesario aprender tanto conocimientos específicos del dominio como de procedimientos.**
Por el resto de tu vida, sal de tus límites todos los días Por el resto de tu vida, sal de tus límites todos los días
Algunos ingenieros de software permanecen dentro de su zona de confort una vez que encuentran su equilibrio. Este tipo de programadores se conocen como programadores de mantenimiento, algo que no debes esforzarte por ser. En cambio, debes esforzarte por superar tus límites todos los días. La razón más común por la que los programadores renuncian a sus trabajos es porque “ya no es un desafío desde que resolví todos los problemas interesantes”. Algunos ingenieros de software permanecen en su zona de confort una vez que encuentran su equilibrio. Este tipo de programadores se denominan programadores de mantenimiento; no es algo que debas esforzarte por ser. En cambio, debes esforzarte por superar tus límites todos los días. La razón más común por la que los programadores renuncian a sus trabajos es: “Ahora que he resuelto todos los problemas interesantes, ya no es un desafío”.
En lugar de intentar llevar proyectos de codificación a su zona de confort, debería buscar problemas que estén fuera de su conjunto de habilidades actuales. Ésta es la única manera de desarrollar y ampliar sus habilidades. En lugar de intentar llevar proyectos de codificación a su zona de confort, debe identificar problemas fuera de sus habilidades existentes.
En palabras de un estudiante de Firehose al pasar su punto de inflexión:
¡Todavía siento que estoy en el fondo! ¡Me siento cada vez más cómodo sabiendo que ahí es donde tengo que estar! ¡Todavía me siento como si estuviera en el abismo! ¡Me siento mucho más cómoda sabiendo adónde voy!
En el desarrollo web, en realidad hay dos puntos de inflexión que se unirán. En el desarrollo web, en realidad existen dos puntos de inflexión.
El punto de inflexión del desarrollo web es el punto en el que eres capaz de crear cualquier aplicación basada en bases de datos que desees. Esto significa poder crear una aplicación web con muchas páginas que almacene y recupere información de una base de datos simple. Los desarrolladores web llaman a esto: “dominar CRUD”. En esta fase, también debería poder integrarse con cualquier biblioteca de terceros (una gema Ruby, por ejemplo) simplemente siguiendo la documentación proporcionada en GitHub o una publicación de blog. El punto de inflexión del desarrollo web es el punto de inflexión en el que puede crear cualquier aplicación basada en bases de datos que desee. Esto significa poder crear una aplicación web con muchas páginas que puedan almacenar y recuperar información de una base de datos simple. Los desarrolladores web llaman a esto: “Dominar CRUD”. En esta etapa, también debería poder integrarse con bibliotecas de terceros, como Ruby Gems, siguiendo la documentación o las publicaciones de blog disponibles en GitHub.
El punto de inflexión del algoritmo y las estructuras de datos es un punto de inflexión menos superficial, pero en realidad es más importante. Alguien que haya conquistado este punto habrá dominado el lenguaje de programación en el que está trabajando, además de dominar los fundamentos de la programación y tener un conocimiento profundo para resolver desafíos complejos de codificación. La inflexión de algoritmos y estructuras de datos es un punto de inflexión menos superficial, pero en realidad es más importante. Las personas que superen esto tendrán dominio del lenguaje de programación que estén utilizando, además de dominar los conceptos básicos de programación y un conocimiento profundo para resolver desafíos complejos de codificación.Las personas que hayan conquistado el punto de inflexión de los algoritmos y las estructuras de datos podrán: Las personas que superan el punto de inflexión en algoritmos y estructuras de datos pueden:
- Escribir algoritmos de clasificación Escribir algoritmos de clasificación
- Implementación y listas invertidas Implementación y listas invertidas
- Comprender y escribir programas que aprovechan pilas, colas y árboles. Comprender y escribir programas que aprovechan pilas, colas y árboles.
- Escribir programas de computadora usando soluciones recursivas o iterativas. Escribir programas de computadora usando soluciones recursivas o iterativas.
En resumen, una vez que supere este punto de inflexión, habrá dominado la manipulación de datos y comprenderá las implicaciones de rendimiento de sus decisiones de código. Los títulos tradicionales en informática se centran exclusivamente en hacer que los estudiantes superen el punto de inflexión de los algoritmos y las estructuras de datos. Muchas universidades enseñan esto con lenguajes de programación que generalmente no se utilizan en la industria, como Scheme, Racket o LISP. En resumen, una vez que supere este punto de inflexión, dominará la manipulación de datos y comprenderá el impacto en el rendimiento de sus decisiones de codificación. Los títulos tradicionales en informática se centran en hacer que los estudiantes superen el punto de inflexión de los algoritmos y las estructuras de datos. Muchas universidades imparten este curso en lenguajes de programación que no se utilizan habitualmente en la industria, como Scheme, Racket o LISP.
En la mayoría de las entrevistas técnicas, el entrevistador asumirá que ha superado el punto de inflexión del desarrollo web, dado que es más fácil de hacer, y centrará sus preguntas en evaluar su habilidad en algoritmos y estructuras de datos. Estas preguntas generalmente se centrarán en los temas que mencionamos anteriormente: ordenar algoritmos, invertir listas vinculadas y usar pilas, colas y árboles. *En la mayoría de las entrevistas técnicas, el entrevistador asumirá que ha superado el punto límite en el desarrollo web porque es más fácil de hacer, y centrará las preguntas en evaluar sus habilidades en algoritmos y estructuras de datos. Estas preguntas generalmente se centran en los temas que mencionamos anteriormente: algoritmos de clasificación, listas de enlaces inversos y uso de pilas, colas y árboles.
Una vez que un desarrollador ha superado tanto el punto de inflexión del desarrollo web como el punto de inflexión del algoritmo y las estructuras de datos, tiene las llaves del reino.
Estos desarrolladores podrán resolver desafíos que los cruzan: algoritmos complejos que deben construirse en el contexto de aplicaciones web avanzadas. Esto es la esencia de lo que hacen los desarrolladores web profesionales todos los días. Estos desarrolladores podrán resolver desafíos en ambas áreas: algoritmos complejos que deben construirse en el contexto de aplicaciones web avanzadas. Este es el núcleo de lo que hacen los desarrolladores web profesionales todos los días.
Consecuencias del punto de inflexión Consecuencias del punto de inflexión
La mayor consecuencia del punto de inflexión parecerá un poco contradictoria cuando la escuches por primera vez. Respire profundamente: Cuando escuchas por primera vez sobre el punto de inflexión, su mayor consecuencia puede parecer un poco contradictoria. Respira hondo:
Al aprender a codificar, el conocimiento de un dominio específico no importa en el gran esquema de las cosas. Al aprender a codificar, el conocimiento de un dominio específico no importa en el gran esquema de las cosas.**
Sí. No estoy bromeando, realmente no importa mucho. Una vez que pase el punto de inflexión, estos conceptos se traducirán de manera fluida con solo una o dos semanas de tutoriales, ¡tal vez incluso días! Sí. No estoy bromeando, realmente no es gran cosa. Una vez que pase el punto de inflexión, los conceptos se traducirán sin problemas en una o dos semanas de tutoriales, ¡tal vez incluso en unos pocos días!
Lo que realmente importa en última instancia es: Lo que realmente importa es:
- Tienes un conocimiento sólido de un marco de desarrollo web Tienes un conocimiento sólido de un marco de desarrollo web
- Tienes un sólido conocimiento de la escritura de código algorítmicamente complejo en cualquier lenguaje de programación.
Los gerentes de contratación quieren desarrolladores con sólidas habilidades de algoritmos y desarrollo web. Los gerentes de contratación quieren desarrolladores con sólidas habilidades en algoritmos y desarrollo web.
Mientras trabajaba en PayPal, mi equipo contrató a un desarrollador senior de Rails que no tenía experiencia en Rails; había estado codificando mucho en Python, LISP y Perl. En un par de días, ya estaba causando un gran impacto. Y en cuestión de semanas: un impacto enorme. Rápidamente ascendió hasta convertirse en el líder del equipo técnico y fue una de las mejores decisiones de contratación en las que he participado. Cuando trabajaba en PayPal, mi equipo contrató a un desarrollador senior de Rails sin experiencia en Rails; escribió mucho código en Python, LISP y Perl. En cuestión de días, ya estaba causando un gran impacto. En unas pocas semanas: un impacto enorme. Su rápido ascenso a líder del equipo técnico fue una de las mejores decisiones de contratación en las que he participado.
No te preocupes. Mucha gente dirá cosas como “AngularJS está de moda estos días”, “JavaScript está en aumento” o “la última moda es…” Mi respuesta a eso es: “¿entonces?” Cuando estás aprendiendo a programar, tu objetivo singular debería ser encontrar el punto de inflexión y aniquilarlo. Una vez que lo hagas, aprender esa nueva y sexy moda no será una tarea nada difícil. No te preocupes por la pila. Mucha gente dirá: “AngularJS está de moda últimamente”, “JavaScript está en aumento” o “la última moda es…” Cuando aprendes a programar, tu único objetivo debe ser encontrar el punto de inflexión y eliminarlo. Una vez que hagas esto, aprender moda nueva y sexy no será una tarea difícil.Vuélvete autosuficiente. Tener la capacidad de aprender nuevas habilidades de codificación sin una guía estructurada significa que ya no tendrás que esperar a que nadie te ayude. Esto significa que para la mayor parte de lo que necesita aprender, simplemente puede buscar en Internet y leer el material variado sobre lo que necesita saber. *Conviértete en autosuficiente. *La capacidad de aprender nuevas habilidades de codificación sin una guía estructurada significa que ya no tendrás que esperar la ayuda de nadie. Esto significa que para la mayor parte de lo que necesita aprender, simplemente puede buscar en Internet y leer diversos materiales sobre lo que necesita saber.
Esto no significa que “sabes” todo inmediatamente, sino que ahora todo es “descifrable”, por lo que, en esencia, eres imparable. Esto no significa que “sabes” todo de inmediato, sino que todo se puede “resolver” ahora, por lo que, en esencia, eres imparable.
Las habilidades que desarrollarás durante el punto de inflexión
Como desarrollador de software, el mejor material de referencia es un código similar que ya haya escrito. Cuando comprenda completamente el código que ha escrito, no necesitará memorizar todos los detalles. Esto significa que *la primera pregunta que debe hacerse al crear una nueva función es: “¿He creado algo similar antes?” ahora?" Como desarrollador de software, el mejor material de referencia es un código similar que ya haya escrito. Cuando comprenda completamente el código que está escribiendo, no necesitará guardar todos los detalles en la memoria. Esto significa que al crear una nueva función, la primera pregunta que debe hacerse es: “¿He creado algo similar antes?” Si la respuesta es sí, entonces eche un nuevo vistazo al código y revíselo mentalmente línea por línea. Vuelve a explicarte qué está haciendo y pregúntate: “¿Puedo usar el mismo método ahora?”
Los videos no explican los detalles específicos del dominio porque tardan mucho en verlos. Supongamos que desea integrarse con la API de Google Maps. Una vez que haya experimentado hacerlo una vez, puede tomar menos de un minuto abrir el código en GitHub, copiarlo y pegarlo en un nuevo proyecto. Los vídeos, por otro lado, a menudo pueden tardar entre 10 y 30 minutos en volverse a ver. Los videos son terribles para explicar áreas específicas de detalle porque tardan mucho en verlos. Supongamos que desea integrarse con la API de Google Maps. Una vez que tenga esta experiencia, le llevará menos de un minuto abrir el código en GitHub, copiarlo y pegarlo en un nuevo proyecto. La reproducción del vídeo, por otro lado, suele tardar entre 10 y 30 minutos.
Estrategias para pasar el punto de inflexión de la manera más eficiente posible Estrategias para pasar el punto de inflexión de la manera más eficiente posible
Debido a que pasar el punto de inflexión es la parte más importante de aprender a codificar, debes prepararte para que el proceso sea lo más fluido posible. Esto significa que debes comenzar a prepararte mientras estás en la fase de tutoría y mantener la mentalidad adecuada durante este período de tiempo. Debido a que pasar el punto de inflexión es la parte más importante del proceso de aprender a codificar, debes hacer que el proceso sea lo más fluido posible. Esto significa que debes comenzar a prepararte durante la fase de tutoría y mantener la mentalidad adecuada durante este tiempo.
*Durante la fase de tutoría, tómate un descanso para repasar el material estructurado y plantéate problemas desafiantes a lo largo del camino.
-
Por cada pocas lecciones, intenta hacer algo que esté fuera del alcance del tutorial que estás siguiendo. Si los tutoriales que está siguiendo ofrecen “desafíos” o piezas “autodirigidas”, hágalos todos. Resolver desafíos no guiados le brindará la importante experiencia de hacer cosas sin una guía estructurada. Si el tutorial que estás siguiendo ofrece una sección de “desafío” o “autoguiada”, hazlo todo. Resolver desafíos no directivos le brindará una experiencia importante al hacer cosas sin una guía estructurada.
-
Intenta utilizar los tutoriales lo menos posible. En Firehose, a menudo explicamos a los estudiantes cómo integrar ciertas gemas o hacer cosas utilizando la documentación proporcionada. En lugar de simplemente seguir las instrucciones explicadas en los tutoriales dirigidos a personas que recién comienzan, muchos estudiantes seguirán la documentación y utilizarán los tutoriales como respaldo. Ten en cuenta que la documentación te tratará como a un desarrollador que ha superado el punto de inflexión. Sentirte cómodo leyendo y siguiendo la documentación en GitHub te dará una ventaja cuando estés solo. Utiliza tutoriales lo menos posible. En Firehose, a menudo instruimos a los estudiantes sobre cómo integrar ciertas gemas o hacer algo utilizando la documentación proporcionada. En lugar de simplemente seguir las instrucciones de un tutorial para aquellos que recién comienzan, muchos estudiantes seguirán la documentación y utilizarán el tutorial como respaldo. *Tenga en cuenta que la documentación lo tratará como un desarrollador que ha superado el punto de inflexión. * Leer y seguir fácilmente la documentación relevante en GitHub te dará una ventaja cuando trabajes solo.
-
Centrarse en lo esencial y utilizar la repetición. Aprenda a hacer cosas comunes, como poner en marcha una aplicación desde cero, enviar una nueva aplicación a GitHub y Heroku y crear una migración de base de datos desde el principio. Aprenda a hacer cosas comunes, como crear una aplicación desde cero, enviar nuevas aplicaciones a GitHub y Heroku y crear migraciones de bases de datos con anticipación.
Superar el punto de inflexión puede ser un desafío. He aquí algunos consejos que le ayudarán a superarlo: Superar el punto de inflexión puede ser un desafío. A continuación se ofrecen algunos consejos que le ayudarán a superarlo:* Comprenda que este es un proceso difícil y sea amable consigo mismo. Además, establezca expectativas realistas. No puedes comparar tu velocidad de nivel “superman” al seguir tutoriales con tu velocidad de “caracol” al aprender cosas por tu cuenta. Tenga en cuenta que está aprendiendo mucho, pero en esta fase está aprendiendo una nueva habilidad para descubrir cosas nuevas por su cuenta. Además, establezca expectativas realistas. No puedes comparar tu velocidad de aprendizaje de nivel “sobrehumano” con tu velocidad de autoaprendizaje de nivel “caracol”. Recuerde, ha aprendido mucho, pero en esta etapa está aprendiendo un conjunto de habilidades completamente nuevo y descubriendo cosas nuevas por su cuenta.
- Si tienes problemas con la confianza en ti mismo, debes saber que lo que sientes es completamente normal. Sigue trabajando. Si continúas teniendo dificultades, intenta hablar con alguien que haya superado recientemente el punto de inflexión. Podrán identificarse con la posición en la que se encuentra y le asegurarán que lo que está experimentando es sólo temporal. solo prolongará el tiempo que dedica a llegar al punto de inflexión. Si tiene dificultades con su confianza en sí mismo, sepa que lo que siente es completamente normal. Sigue trabajando. Si todavía tienes dificultades, intenta hablar con alguien que acaba de pasar su punto de inflexión. Podrán identificarse con la posición en la que se encuentra y asegurarle que lo que está experimentando es sólo temporal. Sigue trabajando, pero no trabajes demasiado. En esta etapa del juego, debes saber que solo puedes trabajar un máximo de 6 horas al día. Trabajar desde un estado de agotamiento sólo prolongará el tiempo que le lleva llegar al punto de ruptura.
La mejor manera de ganar confianza en esta etapa es resolver cualquier duda que tengas. Es posible que sus emociones empiecen a sentirse como una montaña rusa. A veces te sentirás ardiendo, pero después de 15 horas de luchar con el mismo problema, es muy común sentir el polo opuesto. La mejor forma de ganar confianza en esta etapa es superar las dudas. Quizás estés en una montaña rusa emocional. A veces te sientes como si estuvieras ardiendo, pero después de luchar con el mismo problema durante 15 horas, normalmente sientes lo contrario.
Puede ser frustrante no tener idea de si algo le llevará 5 minutos o 5 horas, pero cada vez que avance e implemente con éxito una nueva característica, la oleada de confianza será todo lo que necesita. Después de resolver un puñado de problemas difíciles sin ayuda, te volverás adicto a la sensación de construir cosas fuera de tu zona de confort. Puede ser frustrante no saber si algo le llevará 5 minutos o 5 horas, pero cada vez que trabaje duro e implemente con éxito una nueva característica, esa oleada de confianza será todo lo que necesitará. Después de resolver algunos problemas difíciles sin ayuda, te volverás adicto a la sensación de construir algo fuera de tu zona de confort.
Cómo saber cuándo has pasado el punto de inflexión
La etapa final del proceso del punto de inflexión es la aceptación. Aceptación de que el desarrollo de software es un proceso de aprendizaje continuo. Aceptación de que la sensación de haber aprendido todo con éxito simplemente significa que debes empezar a pensar en resolver problemas más complicados. La etapa final del proceso del punto de inflexión es la etapa de aceptación. Acepte que el desarrollo de software es un proceso de aprendizaje continuo. Aceptar la sensación de que has aprendido todo con éxito significa que debes empezar a pensar en resolver problemas más complejos.
¿Ya has experimentado el punto de inflexión? Comparte esta publicación e inicia una conversación con tus amigos; te sorprenderá saber cuántas personas han alcanzado y superado este momento. ¿Alguna vez has experimentado un punto de inflexión? Comparte esta publicación con tus amigos para iniciar una conversación; te sorprenderá saber cuántas personas han alcanzado y superado este momento.
¿Qué quieres decir con que hay DOS puntos de inflexión? ¿No es un punto de inflexión donde todo empieza a tener sentido? Si una parte del desarrollo empieza a tener sentido, ¿por qué la llamas punto de inflexión? ¿No hay manera de unificar estos “puntos de inflexión” en algo más concreto? ¿Qué quieres decir con que hay dos puntos de inflexión? ¿No hay un punto de inflexión en el que todo empieza a tener sentido? Si una determinada parte del desarrollo empieza a tener sentido, ¿por qué llamarla punto de inflexión? ¿No hay alguna manera de unificar estos “puntos de inflexión” en algo más concreto?
¡Gran pregunta! Básicamente existen dos claves para ser un desarrollador web sólido: ¡Gran pregunta! Básicamente existen dos claves para convertirse en un desarrollador web confiable:
- Creación de una aplicación basada en base de datos. Los desarrolladores llaman a esto “crear aplicaciones basura”. Esto insertará datos en una base de datos, tal vez se integrará con algunas gemas, etc. Una vez que codifique suficientes aplicaciones web, notará que hay un patrón/fórmula que lo ayudará a completar el 90% de las cosas que cree. *Construir una aplicación basada en base de datos. Los desarrolladores llaman a esto “crear aplicaciones basura”. Una vez que escriba suficientes aplicaciones web, notará que hay un patrón/fórmula que le ayudará a realizar el 90% del trabajo de construcción.
- Resolver algoritmos es un poco diferente. Básicamente, en lugar de seguir un patrón, normalmente implica mucha prueba y error antes de que las cosas funcionen como se espera.
- *El algoritmo de resolución es un poco diferente. Básicamente, a diferencia de seguir un patrón, generalmente se requiere mucha prueba y error antes de que las cosas funcionen como se espera.
Los dos eventualmente se cruzan al crear aplicaciones complejas en el mundo real. Los dos eventualmente se cruzan al crear aplicaciones complejas en el mundo real.Por ejemplo, si está creando un juego de ajedrez, almacenando información del juego, inicio de sesión de usuario, todas las cosas estándar involucradas en la creación de una aplicación CRUD. Pero hay algoritmos más complicados que también deberás admitir. Piense: determinar si un usuario está en jaque o jaque mate. O si una jugada es válida. Por ejemplo, si está creando un juego de ajedrez, almacene información del juego, inicios de sesión de usuarios y todo el material estándar involucrado en la creación de una aplicación CRUD. Sin embargo, también es necesario admitir algoritmos más complejos. Considere: Determinar si el usuario está marcado o no. O si una acción es válida.
Los algoritmos de resolución no le ayudan a crear un formulario ni solicitarle cosas al usuario. Preguntar al usuario y almacenar cosas en una base de datos no le ayuda con cosas algorítmicamente desafiantes. Cuando dominas los patrones que usarás el 90% del tiempo y los algoritmos que necesitas el 10%, puedes resolver la mayoría de los desafíos que enfrentas. Resolver algoritmos no le ayuda a crear formularios ni solicitar comentarios a los usuarios. Preguntar al usuario y almacenar los datos en una base de datos no ayuda a resolver los desafíos algorítmicos. Cuando haya dominado los patrones que utilizará el 90% del tiempo, necesitará los algoritmos necesarios para resolver la mayoría de los desafíos que enfrenta.
Parece que nunca supero la etapa de conocimiento procesal y específico del dominio. ¿Por qué? Parece que nunca supero las etapas de Conocimiento específico del dominio y Conocimiento procesal. ¿Por qué?
Superar la etapa procesal y específica del dominio es un poco difícil. Primero, debe sentirse cómodo leyendo y comprendiendo cosas como documentación y cosas destinadas a programadores “intermedios” en lugar de “principiantes”. Una vez que pueda leer y utilizar la documentación, tendrá una buena manera de aprender nuevos temas por su cuenta. Pasar por áreas y etapas de proceso específicas es un poco difícil. Primero, debe poder leer y comprender fácilmente contenido, como documentación dirigida a programadores “intermedios” en lugar de “principiantes”. Una vez que pueda leer y utilizar estos documentos, tendrá una excelente manera de aprender un tema nuevo.
Entonces debes estar dispuesto a salir de tu zona de confort y estar bien pasando tiempo resolviendo las cosas por tu cuenta. Encuentra un problema que te entusiasme y ¡adelante! Entonces debes estar dispuesto a salir de tu zona de confort y tomarte el tiempo para resolver el problema por tu cuenta. Encuentra un problema que te entusiasme y ¡hazlo!
¡Sigue codificando, Chris! 🙂
Realmente no sé qué decir sobre este artículo o este “Cómo sabrás que estás listo para empezar a trabajar como desarrollador web” Realmente no sé qué decir sobre este artículo o este “¿Cómo sabes que estás listo para empezar a trabajar como desarrollador web?” Fue directo a mi cerebro como si mientras leía me estuviera mirando en un espejo. Fue directo a mi cerebro y fue como si me estuviera mirando en el espejo mientras leía. Que artículo tan excelente y brillante. Probablemente puedas llamar a esto Psicología para desarrolladores. Qué artículo tan maravilloso. A esta mentalidad se le podría llamar desarrollador. Todavía me siento raro después de leer esto (en el buen sentido). ¿por qué? Después de leer esto todavía me siento raro. ¿Por qué? Actualmente soy bioquímico con algunos años en el campo. Sí, hago biología molecular de ADN y ARN, es divertido y todo eso, pero… no paga bien (actualmente por debajo y cerca de 40 000). Actualmente soy bioquímico y llevo varios años trabajando en el campo. Sí, hago biología molecular de ADN y ARN, lo cual es muy interesante, pero… el salario no es alto. (actualmente unas 40.000 personas) Este año decidí cambiar completamente mi carrera por una de desarrollador que realmente amo. En 11-12 meses (de hecho, comencé en serio en enero-febrero de 2015), comencé desde 0 (cero, nada) y aprendí HTML, CSS, JS, algo de jQuery, algo de C#, algo de Android. Ahora sé cómo crear un sitio web (responsive, por supuesto) y estoy desarrollando mi propia aplicación web ASP.Net MVC. Este año decidí cambiar completamente mi vector y convertirme en un desarrollador que realmente disfruto. En 11-12 meses (en realidad comencé en serio en enero-febrero de 2015), aprendí HTML, css, JS, jQuery, c#, android desde cero. Ahora que sé cómo crear un sitio web (responsive, por supuesto), estoy desarrollando mi propio ASP. Aplicación web NetMVC.
¿Algunos de ustedes dirán que hace un año y todavía no están en el campo? bueno tengo 3 hijos y …40 años. Algunos me han dicho que llego tarde a esto. pero aún así creo que puedo lograrlo, pero es difícil (pero aún así no estoy seguro y, de hecho, si solicitara un trabajo me sentiría como un impostor) ¿Algunos de vosotros diríais que hace un año y todavía no habéis empezado a trabajar? Tengo tres hijos…40 años. Algunas personas me dijeron que llegué tarde. Pero todavía creo que puedo hacerlo, pero es difícil (pero todavía no estoy calificado, de hecho, me sentiría como un fraude si solicitara un trabajo)
Este artículo realmente describe algunos de los puntos en los que me siento ahora o la sensación de que no estoy preparado cuando probablemente ya lo estoy. gracias por esto
Este artículo realmente describe algunos de los sentimientos que estoy sintiendo en este momento, o tal vez estoy listo, pero aún no estoy listo. gracias
¡Probablemente estés más preparado de lo que crees, Ernest! ¡Sigue con el increíble trabajo en tu viaje de codificación! ¡Sal de tu zona de confort! ¡Puede que estés más preparado de lo que crees, Ernest! ¡Sigue con el buen trabajo en tu viaje de codificación! ¡Sal de tu zona de confort!
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home