¿Qué tan preocupado debería estar por mi futuro en la industria del software en que, como desarrollador de software, soy un pensador más lento y necesito tiempo para pensar realmente las cosas y procesarlas?

¡No te golpees en la cara! No eres un pensador lento. Eres un gran pensador.

Aquí hay tres razones por las que crees que todos lo están matando, excepto tú.

1. Tienes menos experiencia

Cuando eres nuevo en el campo, probablemente aún no has cometido tantos errores como tus colegas, por lo que todavía tienes mucho que aprender antes de que puedas ser realmente bueno.

Debido a que tiene menos experiencia, necesita comprender algo antes de poder continuar e implementarlo.

Este proceso de pensamiento lleva algo de tiempo y te hace pensar que eres lento.

2. Eres un pensador crítico

Simplemente no saltas a la cama con una idea. Lo entiendo.

Desea sintetizarlo primero. Míralo desde todos los ángulos y observa si hay más de lo que parece.

Entonces, incluso cuando se le entrega una solución solo para que la implemente, se toma tiempo para comprenderla antes de comenzar a implementarla.

Pero en cambio, tus compañeros simplemente saltan y hacen que la pelota ruede un poco más rápido, de modo que imaginas que piensan tan rápido.

3. Estás intimidado

Cuando tienes la mentalidad de que todos los que te rodean son más inteligentes que tú y de ninguna manera puedes ser mejor que ellos, comienzas a sentirte intimidado.

De modo que incluso cuando ya tenga la respuesta lista, tiene miedo de entregar las tareas pensando que sus mayores criticarán su código y lo harán parecer un idiota.

Lo más probable es que a veces corrijas el error mucho antes de que puedan percibirlo, pero porque están más seguros de que parecen haber sido los primeros.

Solución…

Entonces, ¿cómo salir de este túnel oscuro solitario?

1. Date tiempo

Es solo cuestión de unos pocos años de experiencia en codificación y estará a la par.

Oye, ya tienes un título en matemáticas, eres “hierro”.

Asuma más proyectos para que pueda cometer tantos errores como pueda más rápido. Son estos errores los que te enseñan a ser más inteligente de lo que fuiste ayer.

2. Concéntrate en hacerlo

Solo concéntrate en hacer la tarea actual.

No pienses demasiado en el proceso o la solución.

Si se trata de un error, simplemente haga que funcione la función que falla y después de eso puede echar un vistazo al código para comprenderlo mejor u optimizarlo. Por cierto, ¡esto es lo que están haciendo tus compañeros! Entonces no es una táctica de sombrero negro.

3. Toma un respiro

No todos pueden ser iguales.

Cada persona tiene sus propias fortalezas y debilidades, así que concéntrate en tus fortalezas. Le dará la alegría que necesita para hacer frente a sus debilidades.

Sí, algunas personas serán más inteligentes que siempre en un área en particular, pero recuerde que podría ser más inteligente que ellos en otra cosa.

Así que no te sientas intimidado por ellos, solo relájate. Estara bien.

¿Cuál es el siguiente punto a partir de aquí?

¡Feliz codificación!

Como usted mismo ha mencionado que tiene el potencial, realmente no tiene que preocuparse. Yo también siento lo mismo en algún momento. Pero le aconsejaría que haga una programación competitiva durante 1-2 horas todos los días . Aumentará tu capacidad de pensar rápido, confía en mí. 1 hora sería suficiente Pero cuanto más, mejor.

Ahora, ¿qué es y cómo hacerlo? La programación competitiva es cómo usa algoritmos para resolver un conjunto de problemas con la mejor solución (una solución se considera mejor cuando usa la memoria y el tiempo mínimos). No tienes que ir a las competiciones reales si no quieres, pero debes practicar como si estuvieras preparado y vas a patear traseros.

Para practicar tienes una gran cantidad de sitios web disponibles. Por nombrar algunos de los mejores, Juez de Esfera en línea (SPOJ) (mi favor personal, debido a su simplicidad) aquí encontrará muchos grandes problemas. Resuelva los problemas que le parezcan interesantes y puede enviarlos para su evaluación. El juez en línea verifica contra su propio conjunto de casos de prueba y da los resultados al instante. Puede mejorar el rendimiento de su solución más adelante una vez que haya realizado un envío exitoso. También hay otros sitios web que hacen lo mismo, junto con ellos también organizan concursos en línea. Al igual que codechef.com, HackerRank, que organiza concursos cada mes. Codeforces de topcoder también hace lo mismo. Le aconsejaría que revise cada uno de ellos y decida con qué se siente cómodo.

La idea aquí es ayudarte a pensar. Eso es lo que estos conjuntos de problemas te harán. Comenzará a analizar de una manera distinta a la programación orientada a objetos. Haga esto durante un par de meses y vea la diferencia en su estilo de pensamiento. Compruébalo y déjame saber cómo fue para ti.

Tengo que “ver” un concepto en mi mente antes de poder diseñar código para trabajar con él. Tiendo a pensar en código solo después de tener una imagen mental. A menudo dibujo diagramas, a veces muchos de ellos.

Aprenda a distinguir entre el dominio y los vehículos de implementación que encontrará en su trabajo. Tendrá que estar familiarizado con el conocimiento específico del dominio de vez en cuando. La industria de servicios financieros tiene un vocabulario técnico diferente al de los seguros o la manufactura. Es posible que necesite aprender algo de la terminología de la empresa para la que está creando sistemas. Eso puede llevar tiempo, pero vale la pena cuando está trabajando en un proyecto. Pronto debería aprender a distinguir entre preguntas de arquitecturas de sistemas lógicos versus técnicas. Reutilizarás mucho los patrones de arquitecturas lógicas. Las arquitecturas técnicas son mucho más dinámicas dada la rápida y constante evolución de la tecnología.

Si intentas pensar sin lenguaje, rápidamente verás lo unidos que estamos. Aprender a pensar en un lenguaje de programación es muy parecido a aprender un nuevo lenguaje natural y lleva tiempo. Hay modismos y coloquialismos con los que uno debe estar familiarizado para tener fluidez. También hay patrones y similitudes entre los idiomas y los problemas que están destinados a resolver. Aprenderlos a lo largo del tiempo acelerará su capacidad de adaptación.

Luego hay metodologías. Hay una abundancia de metodologías, todas con sus adherentes. Probablemente tendrá que aprender varios de ellos. Eso también llevará tiempo. Tendrá que estar familiarizado con uno o más de ellos para sobrevivir en un equipo moderno. Haga la tarea para familiarizarse con al menos una metodología OOA & D y sus herramientas. Su velocidad aumentará en proporción a su instalación con las herramientas utilizadas en su taller.

Aprenderá varios, quizás muchos, lenguajes de programación en una carrera profesional en el negocio de los sistemas de información, pero subyacentes a todos ellos están los conceptos con los que ya está familiarizado en su formación en matemáticas. Con el tiempo, comenzará a conectar los puntos y el tamaño de los “fragmentos” en los que pueda pensar se hará más grande y acelerará su aparente velocidad de trabajo.

En mi experiencia, la corrección siempre supera el volumen y la velocidad. De hecho, el número de defectos en un sistema de software es proporcional al número de líneas de código en ese sistema. Cuantas menos instrucciones se requieran para que una computadora haga correctamente lo que se requiere, mejor. Por lo tanto, a veces tienes que reducir la velocidad para ir más rápido a largo plazo.

La práctica perfecta hace la perfección. Ninguno de nosotros puede ser perfecto, pero es útil trabajar para hacer las cosas correctamente y evitar acostumbrarse a las malas prácticas. Por lo tanto, adopte la precisión y, si eso lleva a trabajar un poco más lento, será recompensado con excelencia acelerada.

Bueno, lo que cuenta al final es precisión y habilidad.

La velocidad de aprendizaje es una consideración secundaria siempre que pueda aprovechar las técnicas comprobadas establecidas en su proceso de diseño.

Esperamos que a medida que aprenda varios patrones de diseño, como OOP, su capacidad para unir los requisitos del producto con los diseños de código apropiados mejore en términos de velocidad y precisión.

Me llevó personalmente alrededor de 5 años de esfuerzo adicional autodidacta para llegar a ser muy competente en ingeniería de software. Se requirió un esfuerzo adicional más allá de mis responsabilidades laborales. Mi formación universitaria era física, química física y matemáticas. Estaba desprovisto de cursos de ingeniería.

Siempre que sea posible, aprender el diseño y las técnicas de codificación de los pares superiores es valioso. Todos aportan algo único a la mesa. Se observador. La escuela siempre está en sesión para aquellos que prestan atención.

Dicho esto, si uno pasa unos años sin una mejora sustancial, necesita ajustar el proceso de aprendizaje o intentar algo más en su carrera.

Entiendo tu frustración ya que he estado en la misma situación.

La terminología y el conocimiento específico también pueden ser un factor en esto. Si las personas que lo rodean usan mucha jerga o hablan de conceptos muy específicos que no le son familiares, por supuesto se sentirá “lento” o incluso incompetente. Esto también me ha pasado a mí.

Como otros han escrito, esto no es gran cosa. Acepte que esta es la forma en que funciona y no tenga miedo de pedirle a la gente que aclare / reformule las cosas.

Mi “problema” es que necesito entender los fundamentos antes de comenzar a implementar cosas o aplicar mis conocimientos. Esto es algo que me ha seguido durante toda mi vida en todo lo que he aprendido. Desde las matemáticas hasta conducir un automóvil y aprender a programar una computadora.

En base a esto, me considero un estudiante lento y un pensador lento, pero no recuerdo una sola instancia en la que me hayan “acusado” de ser un pensador lento. Claro, algunas personas se han frustrado cuando no he podido dar una respuesta rápida, pero una vez que respondo su pregunta, después de pensarlo, a menudo están muy satisfechas.

Siento que lo que las matemáticas te brindan es darte cuenta de la necesidad de pensar las cosas en lugar de pensar en un nuevo concepto. De ninguna manera implica que todos los pensadores rápidos solo van con instinto, pero en la vida real con frecuencia vemos más conversadores rápidos que los pensadores rápidos reales.

Lo que realmente importa al final es pensar en conceptos integrales, la velocidad no importa siempre y cuando realmente termines de pensar en el tema, lo cual es bastante raro para la multitud en general. Muy pocos programadores de C ++ entienden TMP, muy pocos programadores de Ruby / Python aplican cómodamente las características de un lenguaje dinámico que pueden proporcionar, muy pocos programadores de datos entienden el aprendizaje automático más allá de la regresión logística, y muy pocos programadores entienden el compilador más que analizar la gramática libre de contexto.

Por supuesto, hay ventajas que tiene la gente de “solo hazlo”, pero eso no debería impedirte aplicar tu fuerza y ​​ver hasta dónde puedes llegar. Simplemente no se canse del proceso de “pensar detenidamente” y renuncie a la mitad del camino, entonces en realidad terminará con una comprensión más sólida de las cosas que sus amigos “pensadores rápidos”.

Más rápido no es necesariamente mejor. Ninguno de los dos es más lento. Mejor es mejor.

El ingrediente más importante en todo lo que haces es el cuidado. El cuidado no es algo que tomas. No es algo que haces. Es algo que inviertes.

El cuidado es el alma de la artesanía.

Camina tu propio camino. Tus talentos son solo tuyos. Es difícil no compararse con los demás, pero en algún momento, su camino será diferente y tendrá la satisfacción de competir con el único individuo de clase mundial con el que estaba destinado a competir: usted mismo.

Tuve este problema al crecer. Sin embargo, lo que no está considerando es la perspectiva que tiene de pensar más despacio. Toma esa perspectiva y úsala a tu favor. La tortuga siempre vence a la liebre. Disminuya la velocidad de los problemas y piense de manera más inteligente, no más difícil. No trate su identidad como inadecuada. Trátelo como diferente. Se sorprendería de la cantidad de problemas que puede resolver disminuyendo la velocidad de los problemas en lugar de aplicar solo lo que le han enseñado para tener velocidad.

Me describiría a mí mismo de la misma manera y me he ganado la vida con bastante éxito escribiendo software durante más de cuarenta años. Me tomo mi tiempo para entender las cosas, pero parece que las entiendo mejor que muchas una vez que lo hago. Los compañeros de trabajo me consideran el experto en varios campos. He sido el diseñador principal de software en diseños que ganaron premios y ganaron millones.

Realmente no me preocuparía por la velocidad instantánea. Es una situación clásica de Aquiles y la tortuga. Si puedes entender más profundamente, no importa cómo llegues allí.

Primero, nunca te compares con nadie. Entonces, no pienses que no eres capaz de lograr lo que otras personas tenían, porque la realidad es que eres muy capaz. Siempre piense que puede hacerlo, debe haber una clave o un patrón en la programación de la computadora que le sea desconocido (a partir de ahora), esforzarse por aprender esa “clave”. Práctica. Inspírate más a menudo y pronto podrás mirar hacia atrás y darte cuenta de que has hecho lo que querías. Dios bendiga

En primer lugar, estás en el equipo. Probablemente hay una razón por la que estás allí. Siempre trata de ser mejor, pero no compares tus dones con los de los demás.

La mayor lección que he aprendido desde que me convertí en profesional es reducir la velocidad y no cometer errores.

Pasaste por la universidad. Eres lo suficientemente inteligente como para entender algunas matemáticas avanzadas. Eres lo suficientemente agradable como para ser contratado en un equipo. Si disfruta el proceso de ingeniería, probablemente esté preparado para ello. Si sientes que eres un “pensador lento”, entonces tal vez sea tu fuerza.

No, no deberías preocuparte. Ya has demostrado que estás a la altura de las habilidades para obtener tu título. Algunas cosas que pueden ayudarlo de inmediato son las siguientes:

– Un montón de descanso, sin horas extra : la gente subestima esto, algunas personas piensan que pueden trabajar 10-12 horas al día, definitivamente no es productivo. Nunca necesité más de 1 hora extra para completar mis tareas, generalmente no trabajo horas extras y trato de desconectarme cuando estoy en casa. A mí me funciona bien: en algún momento en Uni solía trabajar toda la noche, sin dormir, sin encontrar una solución, y cuando dormía, la próxima vez que me despertaba veía la solución de inmediato. Así que descanse bien.

Sea organizado, tome notas : en esta industria hay tantas cosas que suceden e infraestructuras complejas para recordar. Simplemente trate de tener un bloc de notas frente a usted todo el tiempo y tome notas de lo que está haciendo, cuando esté cansado o esperando un cálculo, puede olvidar lo que estaba haciendo. Las notas lo ayudarán a realizar un seguimiento de lo que hace y, a veces, simplemente volver a mencionar el problema lo ayudará a mirarlo con ojos nuevos.

Pedir ayuda : no hay nada vergonzoso en pedir ayuda. Si trabaja en un equipo, su equipo trabaja hacia un objetivo común, lo que significa que su problema es un problema de todos, si no están de acuerdo con esto, entonces tienen algún problema para trabajar en un equipo.

En mi experiencia, generalmente es mejor llegar a la solución correcta lentamente que alcanzar cualquier solución rápidamente, en el desarrollo de software. Para las operaciones de la computadora o la administración de la red, lo contrario podría ser cierto, pero para el desarrollo de software, aunque la velocidad es importante, no lo es todo. Esto se debe principalmente a que toma de 10 a 20 veces depurar un código que escribirlo.

“Practice Practice Practice” es la solución para esto.

Cuando practicas tanto que se convierte en una parte de tu vida y la velocidad estará allí automáticamente, como cualquier otra de tus actividades habituales.

Nota: ¡El requisito principal para que usted logre lo anterior es amar lo que hace!

A menos que y hasta que ames lo que haces, no puedes hacer justicia por la práctica que haces.

Entonces, finalmente, es el interés, la pasión y la práctica lo que lo lleva allí.

Pensar lentamente las cosas es esencial para el desarrollo de software. Siga así, pero trate de posicionarse para estar en entornos donde pueda trabajar por su cuenta, sin sentir la sensación de competencia de sus compañeros de trabajo.

El trabajo remoto es muy común en la industria del software, y es algo que debe considerar, al menos un par de días por semana, donde puede pensar en los problemas en los que está trabajando y encontrar soluciones a su propio ritmo.

More Interesting

¿Qué lenguaje de programación debo aprender para obtener un trabajo bien remunerado?

¿Cuál es el trabajo de un nadador de rescate aéreo de la Marina de los EE. UU. Y qué tan difícil es convertirse en uno?

Tengo una entrevista para un trabajo. Quiero este trabajo ¿Hay algo que deba usar, decir, hacer o llevar conmigo para asegurarme de que me hagan una oferta?

¿Cuáles son los criterios necesarios para convertirse en auxiliar de vuelo?

¿Es Australia el lugar adecuado para estudiar para estudiantes indios?

¿Cuál es el camino a seguir para trabajar en los Estados Unidos como ingeniero de software?

¿Qué tipo de trabajo de desarrollo debo mostrar en mi cartera?

¿Cuánto tiempo se tarda en convertirse en un enrutador y conmutador de red certificado por Cisco desde cero?

¿Cuáles son las ventajas de EEE sobre ECE?

¿Cuál es la diferencia entre un estudiante de ciencias de la computación y aquellos que aprenden codificación en línea?

¿Cuáles son algunos consejos útiles para convertir un pasatiempo de pintura abstracta en una profesión?

¿Cambiar al dominio de SAP ayudará en el crecimiento profesional de una persona con 10 años de experiencia en mainframe y análisis de negocios?

¿Cómo se adelanta una persona con habilidades de programación mediocres en Silicon Valley?

¿Es la nueva posición del "ingeniero de software front-end" una trampa?

Estoy trabajando en un juego de terror que recuerda a Silent Hill 1-4. ¿Qué partes de esos juegos daban miedo y qué partes eran estúpidas?