¿Usar la documentación como desarrollador me hace parecer poco profesional?

Soy desarrollador junior y trabajo cada dos meses en una empresa de desarrollo de software como parte de mis estudios corporativos.

Aunque he estado programando durante casi 1 año (3 x 3 meses de experiencia laboral + proyectos paralelos), a menudo tengo que revisar la documentación y/o Stack Overflow durante mi jornada laboral. Me temo que esto me hace parecer poco profesional o más inexperto de lo que realmente soy (me siento bastante cómodo diseñando y creando software, pero a menudo tengo que buscar términos como "función PHP/JavaScript que hace XYZ"). En la mayoría de los casos, ya debería saber esto, ya que ya lo he usado antes, pero quiero verificar dos veces antes de cometer errores.

La razón para hacer esta pregunta es que se burlan de mí por usar Stack Overflow/documentación con tanta frecuencia, lo que hace que otros y yo mismo dudemos de mis habilidades. Para mí es una parte natural trabajar de manera más eficiente y ser más consciente del idioma. Alguien me dijo una vez algo como: “Un cirujano no puede leer sus libros cada vez que tiene que operar a un paciente”. Lo que en mi opinión es una tontería.

También estoy preguntando por el futuro; por ejemplo, si tengo que escribir código durante una entrevista para otro trabajo, supongo que no debería usar la documentación.

Soy un senior y generalmente tengo al menos 3 pestañas del navegador con desbordamiento de pila y 2 con documentación abierta en un momento dado.
“Profesional” no significa lo mismo que “memoria fotográfica perfecta”.
Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
The reason for asking this question is that I get mocked for using Stack Overflow/documentation so frequently which makes others doubt my abilities, pregunta estupida, quienes son los que se estan burlando de ti por usar SO y tal? Gerente, TI de la vieja generación que todavía reescribe el marco por su cuenta en lugar de usar los robustos existentes, ¿alguien más?
solo me preguntaba, ¿por qué crees que existe la documentación, si se supone que no debes usarla?
No está claro lo que estás preguntando. Si está preguntando solo sobre la documentación, debería ser obvio que la respuesta es 'no'. Si está incluyendo StackOverflow como 'documentación', consideraría que está cometiendo una falacia, y si está preguntando si se ve que usa StackOverflow mucho es profesional, es al menos una pregunta completamente diferente de una sobre el uso de la documentación. .
Asegurarse de que está haciendo algo correctamente, al verificar fuentes adicionales de información, de ninguna manera parece poco profesional. Al menos en mi opinión, uno querría un empleado que se esfuerce por asegurarse de que está haciendo su trabajo correctamente la PRIMERA vez.
@Erik, bueno, como estudiante de último año , sin duda has comenzado a perder la memoria....:-)
Fui ingeniero de software durante 40 años y durante ese tiempo escribí unas 250.000 palabras de documentación. Me molestaría bastante si nadie lo mencionara.
@3.1415926535897932384626433... No estoy perdiendo la memoria. Nunca tuve uno para empezar :(
¿Es peor ser burlado por consultar documentación o ser despedido por escribir código deficiente o no funcional? Recuérdale a cualquiera que se burle de ti que muy, muy pocas personas tienen una memoria fotográfica, e incluso si la tuvieras, el recuerdo de algo que ha cambiado desde entonces no es muy útil.
The Daily WTF está lleno de código obviamente escrito por personas que no leyeron la documentación.
Parece que es hora de encontrar una mejor empresa que emplee a personas más inteligentes.
revisa mi propio perfil de stackoverflow : visitó 2,399 días, escribió 224 respuestas. Entonces, como mínimo, estuve allí 2175 veces para ver si otras personas podían ayudarme con mi problema actual. Dado que normalmente lo hago varias veces al día, garantizo que la cantidad de veces que realmente necesité ayuda es mucho, mucho mayor. He estado programando durante 30 años. :)

Respuestas (15)

No te preocupes: eres un profesional y estás actuando como tal.

Los profesionales utilizan todos los recursos disponibles para realizar el trabajo, incluida la documentación, el código escrito por otros (bibliotecas), la ayuda de expertos, etc.

No es poco profesional necesitar consultar un recurso externo. De hecho, sería poco profesional no utilizar la documentación si no está seguro de cómo funciona algo.

¿Su nivel de confianza en la documentación muestra inexperiencia? Claro, hasta cierto punto. Pero eres inexperto . Después de solo unos meses en el trabajo, no sabrá tanto como alguien con muchos años de experiencia. Eso es solo un hecho, y es probable que nadie lo tenga en su contra.

Sin embargo, incluso los desarrolladores con 20 años de experiencia revisarán la documentación para algunas cosas. Esto siempre es parte del conjunto de herramientas de un desarrollador.

Las pruebas de programación son algo ligeramente diferente.

Dado que están diseñados para evaluar su propio conocimiento y capacidad, a menudo tendrá que completarlos sin documentación. Esto no se debe a que la documentación sea mala; es solo que, en el entorno artificial de una breve prueba que intenta evaluar su capacidad general, los recursos externos pueden confundir esa imagen.

Sin embargo, las pruebas típicas de programación son de naturaleza conceptual . Por lo general, se refieren a su capacidad para crear un algoritmo, diseñar una solución a un problema y seguir buenas prácticas de codificación. Estas no son cosas que obtendría de la documentación de todos modos. No es probable que un error de sintaxis menor ocasional afecte mucho su evaluación.

Gracias, esa es una respuesta bien escrita. También me dio una impresión de las pruebas de Programación, porque siempre temo algo así; cree un programa que doex X usando Language/Lib Y. También + para eliminar mis inseguridades :)
No hay nada peor que un programador escribiendo una solución con errores para un problema común.
@Chris Casi tan malo, sin embargo, es un programador (incluso peor si supuestamente tiene experiencia) que presenta una solución O (n ^ 3) u O (n!) Para algo que puede resolverse quizás incluso en O (n log n) , particularmente cuando el conjunto de datos de entrada puede tener un tamaño no trivial. La documentación puede ayudarlo a escribir bien el O (n ^ 3), pero no puede (tan fácilmente) ayudarlo a encontrar el enfoque O (n log n).
Does your level of reliance on documentation show inexperience? Sure, to a certain extent.- No, no lo hace.
@BЈовић Simplemente quise decir que un principiante tiene que revisar los documentos con más frecuencia que un experto.
Y después de más años de escribir software de los que quisiera mencionar, TODAVÍA consulto la documentación. (De hecho, tengo macros de editor que abrirán documentos en línea para cualquier cosa que tenga páginas de manual). Por un lado, hay muchas cosas que simplemente no existían cuando comencé: CUDA, MPI, OpenMP y probablemente cosas que alguien inventó el mes pasado y que quizás necesite pronto. Por otro lado, he descubierto que es mucho más útil saber dónde encontrar lo que necesito, que andar creyendo que lo sé todo :-)
Dan, bien dicho. No intentarías montar una lavadora sin el manual. eso es ridículo.
Esta es una buena respuesta. También agregaría que un desarrollador profesional supera constantemente los límites de sus conocimientos y habilidades. Si no necesita buscar cosas con frecuencia, significa que probablemente no esté trabajando fuera de su zona de confort con mucha frecuencia.
+1! "Confío en un médico que no tiene miedo de pasar vergüenza para elegir un libro para comprobar si el tratamiento que está prescribiendo es el correcto". Lo mismo ocurre con otros profesionales.
35 años de programación y sigo leyendo y aprendiendo cada día. Stack Overflow es una parte importante de mi trabajo y estoy muy orgulloso de usarlo y contribuir con él. los buenos programadores leen toda la vida. Los malos programadores se detienen después de un año o dos debido al ego y la arrogancia.
@Chris exactamente: así es como terminamos con PHP: D
En el desarrollo de software (¡y prácticamente en todos los oficios!), lo que sabía antes se vuelve obsoleto con el tiempo, por lo que incluso si recuerda cómo hacer algo, vale la pena comprobar si hay una nueva forma de hacerlo mejor.
@MichaelDurrant: 36 años y contando, y "yo también".
Un punto importante: ¡Cambios de software! - Espero que la mayoría de sus colegas con mucha experiencia no escriban software de la misma manera que lo aprendieron hace 10 años. Toda la experiencia del mundo no te ayudará a saber cómo funciona la nueva función que se lanzó la semana pasada... Desarrollar software moderno implica leer constantemente la API actual y las mejores prácticas. - Hasta con memoria fotográfica ;-)

¿Usar la documentación como desarrollador me hace parecer poco profesional?

No, en realidad significa lo contrario... ya que no está molestando a sus mayores al hacer preguntas que se pueden encontrar fácilmente en Internet o mediante documentación.

La mayoría de nosotros, los desarrolladores, no podemos recordar miles de líneas de documentación... todo el tiempo, especialmente cuando cambiamos de tecnología.

También estoy preguntando por el futuro; por ejemplo, si tengo que escribir código durante una entrevista para otro trabajo, supongo que no debería usar la documentación.

A la mayoría de las empresas razonables les gustaría probar la lógica/estructura que encuentra en una prueba de codificación... no mucho sobre la sintaxis.

"No, en realidad significa opuesto... ya que no estás molestando a tus mayores al hacer preguntas que se pueden encontrar fácilmente en Internet o mediante documentación". Si bien, por supuesto, debe buscar sus propias respuestas a preguntas simples, creo que el tono de esto es incorrecto: sus compañeros de trabajo probablemente preferirían ser "molestados" con preguntas que tener que perder todo el día tratando de descubrir cómo obtener comenzado en una tarea. Así que no tenga miedo de pedir punteros/dirección, pero aténgase a los documentos para cosas como "¿cuál es el orden de los parámetros de esta función?".
@Mikkel, creo que te perdiste la parte que dice... "encontrar fácilmente en Internet o en la documentación"...
Como desarrollador de software profesional, es mucho mejor leer la documentación, encontrar documentación y comprender cómo obtener respuestas a partir de la documentación por sí mismo que vincular a otros compañeros de trabajo.
@Mathematics, creo que el punto en el que Mikkel realmente piensa es que comienzas a encontrar la solución en Internet porque crees que es fácil hacerlo, luego resulta que no lo es y te quedas buscándola todo el día porque olvidaste que puedes simplemente pregúntale a alguien más.
@Mikkel Si no puede obtener tracción, sí, pero consultar en Internet para encontrar soluciones obvias es un primer paso excelente (y, a menudo, el mejor). A menudo, este tipo de investigación inicial lo ayudará a formular mejor sus preguntas a los demás cuando se topa con una pared, lo que facilita que lo ayuden.
@Mikkel Hasta cierto punto. Sin embargo, la habilidad que usted como desarrollador necesita desarrollar es cierto nivel de autonomía. Por lo tanto, el enfoque debe ser intentar descubrirlo usted mismo y luego preguntar. Si preguntas con demasiada frivolidad, entonces no trabajas contra el conjunto de habilidades de resolución de problemas. Pero entonces, ¿cuánto es demasiado tiempo? Así que, por todos los medios, pregunte, pero no pregunte todo.
No estoy realmente en la industria del software, escucho regularmente de gerentes de proyecto/programadores senior que descubren que no pueden hacer mucho porque los programadores más nuevos continuamente están haciendo preguntas básicas. Siempre es un desafío de equilibrio, pero trabajar para garantizar que las respuestas simples no se pasen por alto y mejorar su propia retención son ciertamente vitales, tanto para cuánto se logra a corto plazo como para hacer que el programador sea un recurso más demandado a largo plazo. .

Alguien me dijo una vez algo como: “Un cirujano no puede leer sus libros cada vez que tiene que operar a un paciente”.

Quien te haya dicho eso no sabe cómo funciona la cirugía. A menos que sea un procedimiento muy común que el cirujano haya practicado cien veces, los buenos pasan mucho tiempo estudiando antes de cada paciente que ven. También pasan muchos años en la escuela de medicina estudiando un tema que no ha cambiado mucho en varios miles de años.

Estás en tu primer año en una industria donde cada semana se inventan nuevas formas de hacer las cosas. No tiene experiencia, por lo que se debe esperar que tenga que buscar cosas con frecuencia. Siempre que tenga las bases para saber si las soluciones que encuentra realmente resuelven su problema y que aprende de la experiencia, no hay nada de malo en esto. He sido ingeniero de software durante 15 años y todavía necesito buscar cosas casi todos los días. Un profesional utiliza todos los recursos que tiene disponibles para hacer el trabajo.

un tema que no ha cambiado mucho en varios miles de años ... ¿Qué? ¿La medicina no ha cambiado?
Me refería más al propio cuerpo humano. Pero tienes razón, la medicina ha cambiado bastante (aunque todavía no al ritmo de la TI).
Yo también me encontré concentrándome en esa analogía del cirujano que le habían dicho al OP que estaba muy fuera de contacto: si bien estoy seguro de que muchos cirujanos no se preparan lo suficiente para las cirugías, porque las personas generalmente son deficientes, diría que definitivamente es el caso que uno de los factores más importantes de lo que hace a los mejores cirujanos es que revisan de forma rutinaria el material relevante antes de cualquier procedimiento dado, y se esfuerzan por refrescar/actualizar sus conocimientos habitualmente.
La analogía del cirujano solo es válida en mi opinión cuando se hace "desarrollo en producción". La analogía es que si tarda demasiado o no implementa la solución a tiempo, su paciente muere. Incluso los cirujanos perfeccionan su arte en cadáveres antes de "operar en un entorno de producción".

Profesionalidad y conocimiento son dos cosas completamente diferentes.

Buscar cosas de fuentes de terceros significa que le falta conocimiento, no falta de profesionalismo. La falta de conocimiento es un tema en sí mismo, pero en general no hay una persona que lo sepa todo.

Si conoce su falta de conocimiento y la maneja buscando cosas en fuentes de terceros, esto significa que tiene una estrategia profesional para resolver su problema específico de falta de conocimiento.

No buscar cosas sin saber que las cosas no son profesionales, pero este no es tu caso.

Lectura adicional sobre un efecto que contrasta con su "estrategia de uso de la documentación": el efecto Dunning-Kruger

Creo que muchas personas, incluyéndome a mí, sobreestiman lo que saben sobre el efecto Dunning - Kruger

¿Usar la documentación como desarrollador me hace parecer poco profesional?

No. Recordar minuciosos detalles arbitrarios es una pérdida de recursos. Tendrías que recordar muchos de ellos tanto en PHP (al que le falta un poco de consistencia) como en el desarrollo web en general, si te familiarizas con varios lenguajes y una docena de marcos.

Se burlan de mí por usar SO/Documentación con tanta frecuencia, lo que me hace dudar de mis habilidades.

Esta puede no ser la forma más eficiente de resolver sus tareas.

¿Usas algún IDE? ¿Tus compañeros usan alguno? Porque la búsqueda de esos detalles minuciosos se puede delegar en la función de autocompletar de IDE. Usar autocompletar es más eficiente que cambiar su atención al navegador y buscar una respuesta allí.

Si sus colegas usan el autocompletado de su IDE y usted usa Google en su lugar, eso podría parecer poco profesional, no porque consulte documentos sino porque lo está haciendo de manera ineficiente.

Si sus colegas confían en su memoria y usted confía en el autocompletado, podrá superarlos en tareas que usan algún marco con el que ninguno de ustedes está familiarizado, lo cual no es tan raro en la web.

Domina tus herramientas y muestra el rendimiento, eso es profesional.

¿Cómo te ayudaría el autocompletado (una característica que personalmente detesto) a descubrir qué hace una función en particular o cuáles son sus argumentos?
@jamesqf, cuando la finalización se restringe a variables con tipos compatibles para el argumento en el cursor, entonces puede simplemente mezclar el teclado y obtener un código viable en poco tiempo después de todo. También puede especular sobre los nombres de las funciones y ver si la finalización genera una lista de candidatos no vacía. Otra vez; triturar, triturar, construir y enviar. ¡La codificación es tan fácil!
@jamesqf con un lenguaje inconsistente como php en particular, solo obtener sugerencias de nombres y órdenes de parámetros es un gran alarde: imgur.com/a/lVFmA
@jamesqf > ¿Cómo lo ayudaría el autocompletado a descubrir qué hace una función en particular ? Esa no es la pregunta de OP. OP tiene que lidiar con cosas como esta y esta y busca en Google "Función PHP que hace XYZ" regularmente. Bueno, simplemente comience a escribir lo que recuerda sobre el nombre de la función y la función de autocompletar ofrecerá opciones. En cuanto a los argumentos esperados, generalmente también se enumeran.
@Steve Esto solo ayudaría si ya recordara vagamente el nombre de una función y, en particular, con qué comienza el nombre (como en su ejemplo). Como comparación, suponga que está programando en C++ y ha olvidado el nombre de la función que convierte un carácter de minúsculas a mayúsculas. La respuesta es 'toupper', pero si has olvidado este hecho, el autocompletado no te ayudará en absoluto.
@Brandin Escribo upper(en un archivo PHP) e IDEA ofrece 3 opciones: ctype_upper, mb_strtouppery strtoupper. Ninguno de ellos comienza con "superior", pero todos son relevantes. ¿Estás seguro de que el autocompletado para C++ es mucho peor?
@Daerdemandt Solo quiero decir que depende del nombre de la función. El punto es que puede que no haya razón para que recuerdes parte del nombre. Tal vez un mejor ejemplo es strpbrk. Si aún no sabía el nombre, probablemente no haya forma terrenal en la que piense en ese nombre. El hecho de que tenga "str" ​​tampoco es útil, porque docenas de funciones también lo tienen.
@Brandin wow, ese es un nombre confuso que refleja compensaciones que son irrelevantes en la actualidad. ¿No hay algún paquete de alias ampliamente aceptado para esos nombres crípticos? Alguien debería hacer algo al respecto, en lugar de aguantarlo todos los días. De todos modos, aunque no hay una bala de plata y a veces será necesario verificar los documentos, pero el IDE configurado correctamente ayudará a OP a saber que debe htmlentitiescodificar y html_entity_decodedecodificar.

Otros han brindado respuestas sólidas, pero nadie realmente aborda esto de frente; el énfasis en negrita es mío:

La razón para hacer esta pregunta es que se burlan de mí por usar Stack Overflow/documentación con frecuencia , lo que hace que otros duden de mis habilidades.

¿Quiénes son estas personas que se “burlan” de ti y cómo sabes que “…hace que otros duden de [tus] habilidades?”

Todo esto suena como una variedad de jardín (también conocido como común) para mí. Si usted es un desarrollador junior, naturalmente se encuentra en una jerarquía en la que otros lo pondrán a prueba y presionarán botones como parte de su propio comportamiento de novatadas. Esto sucede tanto si son conscientes de ello como si no; es sólo parte del curso.

Al final del día, todas las personas del mundo utilizan herramientas de referencia para realizar su trabajo. Diablos, ¿los abogados y los médicos no tienen toneladas de referencias y libros a los que se refieren constantemente? La programación no es diferente.

Tu trabajo como programador es unir los deseos de un proyecto con la realidad del código mismo. Tu trabajo no es memorizar tonterías arcanas. y si llega al punto en que puede recordar, e incluso visualizar, tonterías arcanas, ¡entonces felicidades! Pero eso no sucede de la noche a la mañana y, a veces, no sucede en absoluto para algunos.

FWIW, he estado trabajando en la computadora durante más de 20 años y solo en los últimos años puedo, literalmente, visualizar soluciones en mi cabeza sin escribir una línea de código. Es una habilidad en la que uno crece y no se puede exigir que alguien tenga a pedido.

Si bien esto no lo hará parecer poco profesional para un profesional (la gran mayoría de las veces), es posible que desee tener cuidado frente a un cliente o gerente ingenuo. Así como usted, con casi un año de experiencia en programación, no está seguro de si los profesionales necesitan buscar cosas, las personas con una experiencia aún menos relevante también pueden no estar seguras.

De hecho, he defendido a otros desarrolladores en algunas ocasiones cuando un cliente de un compromiso de consultoría dijo algo como "¿por qué estoy pagando un buen dinero por alguien que ni siquiera puede escribir código sin buscarlo en Internet?"

Esto ha sido raro, pero por supuesto no sé cuántas personas tuvieron una mala impresión pero permanecieron en silencio.

Depende en gran medida de lo complicado que sea el código. ¿Consulta la documentación estándar de la biblioteca? (¡Genial!) ¿Consultar ejemplos de una asignación variable después de años de usar el lenguaje? (Hmmm....) ¿Un desarrollador de base de datos que copia y pega SQL de una respuesta de un voto encontrada en Stack Overflow después de minutos de búsqueda, solo para hacer una "selección distinta" en algunas columnas? (¿Qué diablos está pasando?) (Nota: todos estos son ejemplos reales. Y sí, me refiero a un desarrollador de base de datos ) .
" "¿Por qué estoy pagando un buen dinero por alguien que ni siquiera puede escribir código sin buscarlo en Internet?" "-" un tonto y su dinero pronto se arruina... "
Porque no tienes la base suficiente para entender lo que se dice en internet o no tienes tiempo para hacerlo.
Personalmente, tengo una tendencia a escribir lo que sea que estoy usando de SO. Principalmente para que lo haya escrito al menos una vez, lo que ayuda a recordarlo la segunda vez que necesito buscarlo.

Ciertamente, no es poco profesional buscar cosas cuando no está familiarizado.

Sin embargo, si no retiene ese conocimiento y busca continuamente las mismas cosas , entonces podría haber un problema. Eso es ineficiente. Te hace más lento y esa podría ser la causa de las burlas. Debe aprender los conceptos básicos de su profesión hasta el punto en que no necesite buscarlos cada vez.

Diría que tener documentación fácilmente disponible hace que las personas memoricen menos de lo que está disponible en la documentación. Es como "bueno, esa función se llamaba algo como... sí, aquí está su descripción con todos los detalles que necesitaría".
Es cierto, aunque con la gran cantidad de marcos, idiomas, paquetes, módulos, etc. disponibles, es realmente imposible recordar todo. Incluso si he creado canalizaciones de agrupamiento de k-means una docena de veces en MATLAB para varias fuentes de datos, no significa que pueda implementarlo de inmediato para un cliente en Python sin consultar los documentos.
¿Dije saberlo todo? Dije saber lo básico (cosas que usas con frecuencia).

Es mucho más profesional leer la documentación y obtener el código correcto que adivinar y equivocarse. Esto es especialmente cierto en un lenguaje como PHP, donde la biblioteca estándar está diseñada al azar, es difícil de memorizar y está llena de trampas.

Tomemos, por ejemplo, la mail()función. Sabías…

  • additional_headersno tiene protección de inyección de encabezado de correo. Por lo tanto, los usuarios deben asegurarse de que los encabezados especificados sean seguros y solo contengan encabezados. es decir, nunca inicie el cuerpo del correo poniendo varias líneas nuevas.

    Si no está al tanto de esa advertencia, terminará introduciendo una vulnerabilidad de seguridad .

  • Al enviar correo, el correo debe contener un encabezado De. Esto se puede establecer con el additional_headersparámetro, o se puede establecer un valor predeterminado en php.ini.

    Eso significa que el comportamiento de su aplicación podría depender de una configuración global. Es útil saberlo, para que pueda evitar escribir código que parece funcionar correctamente en una máquina, pero que no es portátil para otra.

  • El $toparámetro debe cumplir con RFC 2822 .

    Has visto miles de correos electrónicos, así que crees que sabes cómo es una dirección de correo electrónico aceptable, ¿verdad? Lea las especificaciones; probablemente se sorprendería.

Claro, es posible que pueda generar más código si no lee la documentación detenidamente, pero probablemente no sea un código de calidad profesional . No tiene por qué avergonzarse de comprobar la documentación con frecuencia para asegurarse de que está utilizando el idioma y las bibliotecas correctamente.

No hay vergüenza en consultar la documentación, es cierto. Simplemente es vergonzoso usar PHP. :D

Buscar cosas de las que no está seguro ahorra tiempo y también le permite buscar mejores formas de hacer algo. Quedarse atascado haciendo lo mismo una y otra vez de manera ineficiente cuando hay una mejor manera simplemente comprobando que la red no es buena.

Como otros respondieron, no existe la falta de profesionalidad para verificar la documentación, especialmente considerando que es junior, especialmente considerando que la programación es amplia y siempre hay un detalle que puede olvidar y tiene la misión de que su código sea correcto.

Sin embargo, hay casos que consideraría abusos de documentación.

Tengo un colega que a veces no puede encontrar su propia solución a un problema determinado. Por lo tanto, a veces procede a consultar la web sobre cómo resolver su problema. La última vez, por ejemplo, comprobó cómo un marco web estaba estructurando validadores y contadores de errores porque tenía una característica aparentemente similar para diseñar.

Este es un caso en el que lo que está buscando es demasiado abstracto para que Internet lo ayude. Peor aún, podría encontrar soluciones que aparentemente encajan, pero de hecho no lo hacen, porque se aplican a un caso de uso diferente. Al tratar de tomar algún código/arquitectura/patrón prefabricado, tendría más o menos código inyectado en nuestra base que podría haber funcionado, pero que sería difícil de mantener porque lo escribió otra persona para un propósito diferente.

No miro la documentación a menudo porque escribo código que usa principalmente funciones de lenguaje central (sin marco) y tengo una memoria confiable cuando se trata de código, pero uso el documento cada vez que estoy atascado en algo trivial. . Sin embargo, si estoy atascado en algo de nivel superior, lo bueno que puedo hacer es buscar ayuda de un colega con más experiencia, obtendrá una respuesta mucho mejor.

Hay una diferencia entre "profesional" y "con conocimientos". Si hay alguna información que necesito saber, y tengo que elegir entre sentarme estúpidamente en mi silla y quedarme atascado, o revisar la documentación, entonces reviso la documentación. Eso es absolutamente profesional.

Si esa información es algo que una persona bien informada en mi posición debería saber, entonces buscarla puede mostrar que no tengo tantos conocimientos como debería, pero aún así es completamente profesional, ya que la alternativa es no saberlo y no aprendiendo Lo cual (la parte de no aprender) es completamente poco profesional.

Sería tonto suponer que sabes todo lo que deberías saber, porque todos los días habrá algo nuevo que deberías saber, que no estaba allí ayer. Incluso si sabes algo, ¿cómo sabes que tu conocimiento es el mejor posible? Consulta la documentación para averiguar si hay algún conocimiento mejor sobre el mismo tema.

Es raro que haya un problema que no pueda resolver por mí mismo. Pero lleva tiempo. Dada la opción entre tomarme una hora para resolverlo yo mismo y cinco minutos usando Google, pasar la hora no es profesional.

Ya tienes algunas buenas respuestas, pero déjame agregar un pequeño giro...

Me gusta que la gente utilice la documentación y es una gran señal de tu profesionalidad.

No usar documentación

Conozco suficientes programadores que se tambalean sin un plan real durante largos períodos de tiempo, probando esto y aquello por casualidad, seleccionando código fuente antiguo donde lo que quieren lograr parece que ya se ha hecho (pero no del todo) y así. en. Francamente, detesto este tipo de enfoque. Nunca llegan muy lejos, a menudo tienen que preguntarle a la gente, rara vez aceptan consejos y prefieren continuar así para siempre, aparentemente.

¿Solo tutoriales?

Las personas que buscan en Google con frecuencia tutoriales o fragmentos de código, incluido SO, sin consultar nunca la documentación, me irritan muchísimo. Este comportamiento es una gran trampa, en mi opinión. Conduce a una especie de programación alimentada por un "conocimiento" arbitrario, asistemático y a medias. Esos programadores tienden a terminar con muchos prejuicios. Aquí es donde vienen las pepitas como "nunca usar git rebase", "nunca usar not inen SQL", "siempre hacer XXX", "nunca hacer YYY". Les resultará muy difícil pensar fuera de la caja, generar nuevas ideas, desarrollar la intuición sobre cómo estructurar sus aplicaciones y todo eso que hace a los grandes desarrolladores.

Le insto a que resuelva cualquier problema primero mirando la documentación/referencia, y luego busque SO u otros fragmentos.

Por supuesto, hay excepciones. Si su problema es obviamente algo así como un error, o algo muy, muy, muy especial que es poco probable que se maneje en ningún tipo de documentación (por ejemplo, una combinación especial de bibliotecas/módulos, etc.), entonces vaya directamente a SO.

Si es algo que podría resolverse fácilmente mediante documentación/API, entonces sugeriría sentarse y trabajar en esa parte particular de su lenguaje de programación/bibliotecas, etc. para que su conocimiento sea más estricto.

Documentación

El mejor tipo, para mí, es un programador que, cuando se encuentra con un tema nuevo, se toma el tiempo para realmente sentarse, profundizar en él, obtener una buena visión general y una buena comprensión técnica. Esto se logra la mayoría de las veces (nuevamente, en mi experiencia, con los muchos lenguajes de programación con los que tuve contacto) leyendo la buena documentación anterior, incluidas las referencias de API, etc. En mi opinión, esto nunca puede ser reemplazado por nada más.

No me parece descabellado leer, por ejemplo, los viejos clásicos de C++ (buen artículo antiguo), los patrones de diseño de Gang of Four, la (versión en línea del) manual "Programming Ruby", las páginas de manual de Perl extremadamente bien hechas, el Libro Git, ciertos RFC, HTML/XML/etc. especificaciones y así sucesivamente de adelante hacia atrás. Lo haría y lo he hecho incluso en mi tiempo libre y, francamente, lo esperaría de cualquier programador que se precie (dependiendo de con qué esté trabajando, obviamente). También soy plenamente consciente de que estoy (al menos en las empresas en las que trabajé, en las últimas décadas) bastante solo con esta opinión.

(NB: Obviamente, no necesita memorizar grandes listas de referencias de API, pero al menos páselas por alto para ver qué hay disponible y cuál parece ser el "espíritu" de la API).

Después de sentirse completamente cómodo con el tema, entonces es el momento de mirar el código de terceros en busca de inspiración, o de mirar las preguntas anteriores de SO (o hacer nuevas preguntas usted mismo).

También puede encontrar que cuando ha absorbido un campo como este, es muy fácil encontrar respuestas haciendo zoom directamente en el lugar donde obtiene su documentación (páginas de manual, etc.). En este punto, la finalización automática de su editor también podría ser suficiente. Y también podría saber muy pronto cuándo algo no es posible con la herramienta con la que está trabajando, ahorrando una gran cantidad de búsquedas inútiles.

él ? Only tutorials?Coincido con ese y no estoy en ninguna parte de la pandilla This is where nuggets like "never use git rebase", "never use not in in SQL", "always do XXX", "never do YYY" come from. Pero estoy de acuerdo en que hay bastantes desarrolladores que solo buscan "cómo hacer X" y obtienen el código sin entender lo que están haciendo. Esos no son especialmente un "Único tutorial", sino más bien unIt works on my computer and I don't give a shit about the rest
Exacto, @Walfrat. Traté de formular esa parte de mi respuesta con bastante fuerza, pero no en términos absolutos, espero que puedas vivir con eso. ;)

Su habilidad como programador se trata de cómo puede ver la imagen completa y diseñar soluciones efectivas, no cuántas API puede memorizar. El objetivo es hacer el trabajo de manera correcta y eficiente. Si tuviera que buscar cada API y cada detalle, diría que tiene algunos problemas. Esperaría que un buen desarrollador esté completamente familiarizado con todo lo que se usa con frecuencia, recientemente y de forma rutinaria, pero que no desperdicie su capacidad intelectual en cosas que se usan con poca frecuencia cuando se pueden buscar fácilmente. Si visitó stackoverflow más o menos una vez al día, no hay problema; si está en él la mayor parte de su día laboral típico, eso sería un problema.

Me burlan un poco por usar Stack Overflow/documentación con tanta frecuencia

Las opiniones de otras personas sobre ti no te definen a ti , solo las definen a ellas.

¿Usar la documentación como desarrollador me hace parecer poco profesional?

No... parte de ser profesional es la competencia para hacer el trabajo. Se burlan de ti porque tus colegas son acosadores, no por algo que estés haciendo mal.

“Un cirujano no puede leer sus libros cada vez que tiene que operar a un paciente”.

¿Por que no? Soy escéptico de esa afirmación a menos que haya una escasez de tiempo inusual. Usar material de referencia solo lleva unos segundos.

si tengo que escribir código durante una entrevista para otro trabajo, supongo que no debería usar la documentación

Depende de las reglas de la entrevista, algunas lo permiten, otras no. En particular, si se trata de una prueba, puede permitirse. ¡Es una buena idea comprobar primero!

Esta respuesta no agrega nada nuevo a las respuestas ya existentes. Por favor, recuerde no repetir otros .
@DavidK No estoy de acuerdo. ¿Dónde dice alguien más que "las opiniones de otras personas sobre ti no te definen a ti, solo las definen a ellas"?
@BradThomas Tómalo de alguien que también ha sido criticado por respuestas repetitivas... la sabiduría anecdótica no se considera información adicional, cuando es mejor dejar algo como comentario, déjalo como comentario,