¿Cómo me convierto en un programador más autónomo y autosuficiente? [cerrado]

13

El factor más importante de lo que me impide ser un desarrollador estelar es mi confianza en los demás. Siento que hago demasiadas preguntas porque temo las consecuencias de romper todo y retener a todos. Así que soy demasiado cauteloso al hacer tantas preguntas que, básicamente, recibo las respuestas después de suficientes preguntas. He reconocido que eso es malo pero quiero detenerlo. Parte de esto es que hay veces en las que simplemente no conozco el código (o es una sucursal con la que nunca he trabajado o es un producto completamente nuevo), pero quiero confiar menos en los demás. Para comenzar, este tipo de preguntas no son sobre patrones o lenguajes genéricos: generalmente mis preguntas giran en torno a cómo codificamos en nuestra compañía y cómo hacemos que las cosas funcionen en nuestro ecosistema. Quiero poder tomar especificaciones y pasar con ellos sin tener que sentir que necesito ayuda en cada paso del camino. ¿Esto es normal? ¿Has pasado por esto y, si es así, cómo lo superaste?

    
pregunta acconrad 22.04.2011 - 04:38

6 respuestas

24

Veo que algunos nuevos desarrolladores entran en un trabajo e inmediatamente se sienten inadecuados. Hice lo mismo al principio de mi carrera. Creo que hay al menos dos problemas importantes que la mayoría de los chicos inteligentes deben superar: la percepción del tiempo y su propia capacidad natural.

Percepción del tiempo
Los chicos inteligentes están acostumbrados a resolver problemas con relativa rapidez. Recuerdo que me horroricé cuando tuve que pasar una hora en un solo problema de cálculo. Pasar 60 minutos en un problema ya no es nada. Esos días ya pasaron ... entiérralos y dile adiós. La complejidad y el tamaño de la mayoría de los programas actuales son indignantes. La gente no entiende todas las herramientas que tiene que usar para hacer las cosas por más tiempo. Uno de los hombres clave del lenguaje JavaScript, dijo Douglas Crockford,

"Misapplication of standard tools...is the new standard."

Simplemente no hay suficiente tiempo en el mundo para aprender todas las herramientas de desarrollo.

Habilidad natural
Su inteligencia, su capacidad de resolución de problemas y sus habilidades naturales le permitieron participar en todo el rol del desarrollador en primer lugar. Simplemente no hay espacio para nada menos en este campo. Entonces, ¿qué hace con 100.000 líneas de código, lenguajes y marcos que apenas conoce, diseñe patrones y paradigmas que la gente le está imponiendo, tipos que saben casi todo como la palma de su mano, clientes que lo quieren ayer y un jefe? ¿Quién espera el mundo tuyo? Freak out como tu habilidad natural falla.

Sí, eso es normal. Todavía me enloquece con algunas de las cosas que se me echan.

¿Qué se puede hacer?

Es hora de mejorar esas habilidades naturales con un buen trabajo a la antigua. Trabaja en dividir los problemas en partes más pequeñas. Y tenga en cuenta que a diferencia de muchas cosas que pudo haber hecho en el pasado, estos problemas toman mucho tiempo para resolverlos. Entonces, no se rinda después de solo 15 minutos de examinar un problema complejo. En su lugar, analice los problemas y deje de mirar el reloj. Después de un tiempo, 30 minutos de trabajar con un problema realmente no es lo que solía ser.

La confianza en uno mismo juega un papel importante en la capacidad de autogobierno. Lo mismo ocurre con el equipo, especialmente los mayores con más experiencia. Es bueno tener cuidado de no romper cosas, pero esto no significa que tenga que hacer un flujo constante de preguntas.

En su lugar, hacer uso del control de origen. Mientras no marque un cambio, no podrá romper el producto principal y enojar a otros desarrolladores. Además, haga cambios que pueda comprender y probar y asegúrese de probarlos bien antes de registrarse.

Incluso tengo un pequeño proyecto de prueba que utilizo para escribir programas únicos y sencillos, por lo que no tengo que preocuparme por todos los acontecimientos en la aplicación principal.

Finalmente, recuerde que cada decisión viene con un cierto nivel de toma y daca. No se puede avanzar sin hacer algún tipo de sacrificio en algún nivel. No te esfuerces por la perfección, esfuérzate por lo genial y ten en cuenta tus acciones. Porque siempre debe estar preparado para recibir críticas y explicar sus ideas y por qué las hizo. Siéntete orgulloso de las decisiones que tomes. Incluso cuando están equivocados, hay mucho que aprender.

    
respondido por el P.Brian.Mackey 22.04.2011 - 05:21
12

Lo primero es no tengas miedo de hacer preguntas. He visto a incluso arquitectos de alto nivel hacer preguntas sobre el código. No se espera que sepan todo; se espera que sepan lo suficiente como para hacer el trabajo y para poder averiguar el resto.

Probablemente las mejores tácticas serían:

  • Aprenda cómo investigar en Google. Puede encontrar respuestas a casi cualquier cosa con un poco de trabajo de investigación. El desbordamiento de pila funciona de maravilla para esos problemas difíciles de resolver.
  • Aprenda a depurar. He pasado horas entrando en código de empresa profundo y peculiar, solo para encontrar que la variable X es 3 en lugar de 7. Ser capaz de leer código y depurar es probablemente la mejor manera de hacerlo. ser autónomo.
respondido por el ashes999 22.04.2011 - 05:15
5

No tenga miedo de hacer preguntas "generales"

Solía intentar encontrar la pregunta más pequeña que podía hacer y aún así poder continuar con mi trabajo, por temor a que me consideraran incompetente si hiciera preguntas amplias a las que todos los demás parecen conocer la respuesta. No entendía la diferencia entre ignorancia e incompetencia. La ignorancia simplemente significa que no has aprendido algo todavía, y es perfectamente aceptable siempre y cuando no persista. Pretender no ser ignorante es mucho peor.

Si está descubriendo que las respuestas de las personas solo lo están llevando tan lejos, debe pedirles que le enseñen a pescar en lugar de entregarle otro pez. Pregunta cómo encaja tu parte con el todo. Si su pregunta parece tan básica como "lo que es SQL de todos modos", pregúntele más temprano que tarde. Puede que parezcas un poco tonto ahora, pero te verás mucho más tonto más tarde.

Date un período de espera

No hagas preguntas tan pronto como las tengas. Dependiendo de la complejidad, dedíquese de media hora a un día para intentar resolverlo por su cuenta. Muchas veces lo resolverás tú mismo. Si no es así, podrá decirle a su colega lo que no funcionó, lo que puede ayudarlo a darle una mejor respuesta.

Además, si su colega no sabe la respuesta de la cabeza, preste atención a cómo llega a ella. Muchas veces no necesitas tanta ayuda como piensas. Si no tengo tiempo para hacer una pregunta, a menudo señalaré a alguien en una dirección vaga y les diré que haré un seguimiento cuando llegue un minuto, y generalmente lo han resuelto para cuando llego.

Tira algunos borradores

  

Siéntate y baja todo lo que   entra en tu cabeza y luego eres un   escritor. Pero un autor es aquel que puede.   juzgar el valor de sus propias cosas, sin   Lástima, y destruye la mayor parte.
  Sidonie Gabrielle Colette

No tenga miedo de escribir un código que nunca se convertirá en una versión. Cuanta más experiencia tengas, más pronto podrás decir que vas por el camino equivocado, pero que sigue por el camino equivocado. Muchas veces, el valor de una solución no es aparente hasta que lo has visto hacer el camino incorrecto primero.

    
respondido por el Karl Bielefeldt 22.04.2011 - 07:13
1

La autosuficiencia vendría con

  • Mayor experiencia y exposición en el dominio.
  • Mayores habilidades de observación y habilidades analíticas para comprender los sistemas existentes y su comportamiento, dependencias.

Hacer preguntas con frecuencia conllevaría el riesgo de demostrar que careces de ambas.

Si cambia su dominio, tecnología, plataforma, idioma, vuelve al punto de partida (casi, sin contar su mayor capacidad para abordar problemas similares y conocimientos transferibles)

No hacer preguntas cuando realmente se necesitan perderá mucho tiempo de producción valioso.

Podría funcionar a su favor al decir una palabra sobre su suposición sobre el posible daño si lo hace mal. o lo que Piensas podría romperse para obtener una evaluación real de tus suposiciones. Muchas veces te permite descubrir los puntos y el ángulo que te has perdido.

Ser cauteloso es bueno. Pero es mejor que empieces a determinar la naturaleza de tus preguntas. Es mejor si lo escribe en un papel y examina su dificultad / valor.

  1. Es algo que puedes resolver con google / forums o trabajando en ello durante más tiempo
  2. ¿Es algo con lo que puede salir o arreglarse sin mucho costo si se equivoca?
respondido por el Aditya P 22.04.2011 - 05:24
0

Diría que mire las cosas en las que está trabajando y comience a tomar decisiones usted mismo (por supuesto, dentro de las especificaciones de la aplicación). A estas alturas, debe tener una buena sensación de lo que es un cambio de gran alcance y lo que es un cambio simple. Comience con los simples. Si crees que lo que estás haciendo es correcto, hazlo.

Usted WILL comete errores y esos son invaluables. Aprende todo lo que puedas de ellos cuando ocurran, ya que son lo que te hará hacer un mejor trabajo la próxima vez.

Una vez que se sienta cómodo con las decisiones más pequeñas, comience a tomar las más grandes. Deberá decidir qué tan lejos irá con esto en función de su proyecto / entorno / equipo.

Ese es el lado de la toma de decisiones. La otra cosa que debe hacer es seguir alimentando su cerebro para que pueda ayudar a guiar sus decisiones. Siga los sitios que cubren su tecnología. Hay tutoriales en línea de casi todo lo que cubre todo, desde lo simple a lo extrañamente complejo. No tenga miedo de preguntar a las personas por qué toman ciertas decisiones: como buscadores de información, no para ser confrontativos. La mayoría de las personas están más que felices de explicar las cosas y usted puede aprender bastante de ellas.

Una vez que tenga el conocimiento técnico, el resto es sabiduría y confianza y los que vienen con experiencia.

    
respondido por el Dave Wise 22.04.2011 - 05:35
0

Cuando era un novato que hacía preguntas, siempre intentaba obtener una respuesta parcial a la cosa por mí mismo, usando las herramientas disponibles; y cuando llegué tan lejos como pude, descubrí exactamente cómo formular mi pregunta para que fuera lo más clara y concisa posible, bajo el supuesto de que la persona a la que acudía en busca de ayuda estaba ocupada. Con este poco de preparación, no creo que a nadie le haya importado hacerles preguntas y, de hecho, tengo la impresión de que lo disfrutaron. Más tarde, cuando me convertí en el experto en dominios, también disfruté ayudando a las personas que dejaron en claro que respetaban mi tiempo.

La otra cosa que hice fue, todos los días, seleccionar la arquitectura del sistema. Otros carteles han comentado lo que es una empresa masiva, los sistemas modernos, lo difícil que es llegar a un acuerdo. Así que me gustaría hacer recorridos por el código: comenzar en algún punto de entrada razonable, luego rastrearlo, anotar notas sobre cómo funcionó, hacer preguntas que a veces respondería por mí mismo, a veces preguntar a otras personas. Este tipo de familiaridad general y competencia en el dominio lleva tiempo, pero puede acelerarlo; y cuanto más haga, antes será autosuficiente en las formas que desee.

    
respondido por el shanusmagnus 22.04.2011 - 07:08

Lea otras preguntas en las etiquetas