Como programador novato, ¿realmente necesito conocer toda la documentación de un lenguaje o marco de programación para comenzar, o lo aprenderé acumulativamente mientras trabajo en un proyecto pequeño?

Has combinado dos cosas muy diferentes.

Lenguajes de programación:

Necesita saber lo suficiente de un lenguaje de programación para poder hacer lo que quiere hacer al menos de una manera. Si no lo hace, se referirá constantemente a la documentación, o pasará mucho más tiempo luchando con los errores y advertencias que suceden, en lugar de programar.

Esto supone que, incluso si no conoce el lenguaje específico en particular, sabe lo suficiente acerca de la programación en general que puede manejar la “programación, necesito hacer esto”, por lo que puede extraerlo de la referencia del lenguaje, si tienes que hacer algo oscuro

Marcos:

Me parece que estoy bastante de acuerdo con Brian Mielke: debe saber lo suficiente sobre las capacidades de un marco, incluso si tiene que extraer detalles de la documentación, para saber que el marco respaldará lo que está haciendo.

Un gran ejemplo de alguien que no comprende las limitaciones de un marco antes de usarlo en su código son los controladores de impresora en Square, Inc. [US].

Utilizaron un marco de un proveedor de impresoras de cinta de caja registradora en particular, en lugar de tener un marco de impresión general, y envolvieron el marco del proveedor como una instancia que implementa su marco genérico.

Debido a esto, sus sistemas de punto de venta (POS) solo pueden usar impresoras, y clones de esas impresoras, de un proveedor de impresoras en particular.

Esto es excelente, si usted es un vendedor de impresoras, que quiere marcar sus impresoras, porque saben que, si está utilizando un sistema Square POS, el cliente de Square tiene que comprarle a usted: ¡beneficios inesperados!

Esto no es tan bueno, si usted es un cliente de Square y desea comprar la impresora más barata posible que funcione con su sistema Square POS, porque no hay opciones baratas: todas están marcadas, porque son su única opción .


Entonces en resumen:

  • Idiomas: entienda la mayor parte de lo que necesita entender para hacer lo que necesita hacer, de modo que su falta de conocimiento no se interponga en el camino de lograr su objetivo: se supone que un idioma es una herramienta, no un fin en sí mismo.

    Un ejemplo de la música podría ser el músico que quiere tocar música en un piano: el objetivo es crear música, pero si no puede tocar un piano, tendrá un tiempo increíble para lograr su objetivo, incluso Si eres un brillante oboe.

  • Marcos: comprenda esas capacidades, si no los detalles de cómo lograr los resultados; siempre y cuando los resultados que desee lograr estén dentro de las capacidades del marco: está bien. De lo contrario, elija un marco diferente.

    Un ejemplo de la música podría ser componer música para tocarla en un instrumento que usted mismo no toca. Si no sabe si puede emitir una nota en particular, en una octava en particular, probablemente debería investigar un poco. Si resulta que es incapaz de producir la nota por completo, es posible que desee elegir un instrumento diferente, o utilizar más de un instrumento para acompañar el instrumento que está apuntando.

Espero que esta analogía tenga sentido para ti.

Su pregunta incluye tanto el lenguaje como el marco. En mi humilde opinión, la respuesta a cada uno de estos son ligeramente diferentes. Para la documentación del marco, debe leer lo suficiente para saber que el marco puede soportar la implementación de todos sus requisitos. Una vez que haya determinado que sí, lee lo suficiente de la documentación para poder implementar esos requisitos. Para el lenguaje de programación en sí mismo, suponiendo que comprenda los conceptos generales de programación que son independientes de cualquier lenguaje específico, deberá estudiar el lenguaje hasta que pueda implementar el código lo suficiente como para resolver el problema que está tratando de resolver, utilizando las mejores prácticas. del idioma dado. Con casi cualquier lenguaje de programación, hay múltiples formas de implementar una característica / tarea / requisito. Sin embargo, normalmente hay “mejores prácticas” de cada idioma en cuanto a cómo se hacen las cosas. Mi consejo para usted es asegurarse de comprender estas mejores prácticas y cómo usarlas de manera adecuada, especialmente si está trabajando en un proyecto con otros programadores. El uso de las mejores prácticas para el lenguaje hará que su código sea más legible (especialmente para otros programadores) y, por lo tanto, su código será más fácil de mantener.

Vamos a tomarlo con calma y tratar de adivinar la respuesta a mi siguiente pregunta:

  1. ¿Qué es 2 + 2?
  1. 4 4
  2. XYZ
  3. Ninguna de las anteriores.
  4. Todas las anteriores.
  • ¿Cuál es el significado de la palabra pneumonoultramicroscopicsilicovolcanoconiosis?
    1. Enfermedad pulmonar .
    2. Una palabra inventada.
    3. Ninguna de las anteriores.