¿Cómo se aprende el marco / API / funcionalidad estándar de un idioma? [cerrado]

14

Entiendo cómo codificar. Sé cómo entender los conceptos básicos de los idiomas que uso regularmente. Sé cómo escribir expresiones regulares ligeramente por encima de lo básico, puedo hablar con bases de datos, puedo aceptar entradas, imprimir salidas, manejar archivos, etc. Estoy más o menos seguro de mi capacidad básica para escupir el código fuente para programa moderadamente complejo.

Mi problema es que nunca siento que sea suficiente. Siento que solo conozco una pequeña porción de la biblioteca estándar de mi idioma, y ​​que hasta que lo entienda todo, al menos de paso, no tengo derecho ni siquiera a tratar de conseguir un trabajo usándolo. Acabo de salir de la universidad (comunidad / junior / whathaveyou), y mis amigos están obteniendo trabajos en la industria, pero todavía me siento falso o falso y no soy lo suficientemente bueno.

¿Hay un marcador decente para "Sé lo suficiente" que podría usar para asegurarme de que puedo codificar? ¿Debo tomar el hecho de que al menos soy capaz de codificar un FizzBuzz como un indicador de que está bien solicitar algo? ¿Cómo puedo obtener más información sobre estas bibliotecas, marcos y / o API estándar con relativa facilidad? Codifico regularmente, leo libros, pero mi conocimiento todavía se siente muy superficial.

¡AYUDA!

Tirar a la basura
fuente
3
cuanto más aprendes, más te das cuenta de lo poco que sabes. +1 para una muy buena pregunta.
devnull
No estoy seguro de que valga la pena memorizar estas cosas. Después de todo, tiene una documentación de búsqueda, IDE inteligentes, etc. Es mucho mejor utilizar su cerebro para cosas importantes, para el conocimiento fundamental, manteniendo todas esas API volátiles al aire libre.
SK-logic
I feel like I only know a small portion of the standard library of my languageEsta frase debería ser el lema oficial de C ++ .
ZJR

Respuestas:

8

Mi recomendación amigo:

deja de pensar en binario (0/1, no saber / saber, analfabeto / alfabetizado) y comienza a pensar difuso (lo sé hasta cierto punto). Todos sabemos algo y hasta cierto punto. El conocimiento es un continuo y todos se colocan en algún lugar entre la persona más analfabeta y el hombre más sofisticado y conocedor. Puedes hacer el trabajo, pero a tu nivel y por debajo de eso . Esta es la regla No tengas miedo No espere un día en que haya aprendido todo sobre su marco, y en mi humilde opinión ese día nunca llegará. Incluso los desarrolladores de 20 años de experiencia todavía están leyendo para aprender cosas nuevas. La programación es tan amplia que no deberías (o no puedes) aprovecharlo todo.

Sumérgete en el entorno laboral y no tengas miedo. Todos tuvimos los días en que no podíamos hacer algo. Eso no es un crimen. Es parte de nuestro trabajo. No sabes, aprendes, intentas hacer el trabajo y lo haces.

Creo que lo que necesita tener ahora, no es más conocimiento. Más bien, es simplemente confianza en sí mismo.

Buena suerte

Saeed Neamati
fuente
Entiendo que todo es conocimiento borroso y algo de JIT-Learning de los detalles. Simplemente no sé cómo asegurarme de que incluso tengo una comprensión borrosa de los conceptos básicos. Me preocupa que me faltan algunas cosas realmente importantes por completo.
Desechables el
2

Creo que estás haciendo la pregunta equivocada aquí, y si me permites un poco de psicología injustificada, creo que es porque estás plagado de dudas y poca confianza en ti mismo.

Deja de compararte ampliamente con los demás

En primer lugar, no puedes compararte en un nivel amplio con otros programadores. Incluso las estrellas de rock a las que puedes admirar en este momento probablemente tengan problemas (descuido, otra forma de hacer las cosas y problemas de actitud), así que no te preocupes si te comparas con ellas. En cambio, su enfoque debe ser adquirir tantos mentores como sea posible, obtener todo el conocimiento posible y mejorar al observar e imitar a los expertos.

Aprende a aprender

Además, el mejor enfoque para convertirse en un mejor programador y aprendiz en general no es aprender cosas específicas o comprender de memoria. En mi opinión, la memorización de memoria es la forma más baja de aprendizaje. Es como un programa al que le falta el paso crucial de "procesamiento" de Entrada-> Proceso-> Salida. Enséñese conceptos como los que mencionó en su pregunta. Una amplia comprensión de la programación es donde proporciona el mayor valor. Aprender un nuevo idioma dentro de los paradigmas con los que está familiarizado es sencillo en comparación con aprender a resolver problemas.

Y ahora, por algunos malos consejos de alguien solo un poco mayor que tú

Uno de los errores más grandes que cometí cuando era joven fue que tomé las decisiones de todos los demás por ellos asumiendo que no era lo suficientemente bueno y que mi tiempo y talento no valían su tiempo y dinero. Constantemente subestimé mis habilidades y mi talento, aunque era escaso en ese momento. Esto fue un enorme error.

Lo que debe comprender es que incluso un programador moderadamente decente parece un mago para promediar los trabajos cotidianos. Puede que te odien, pueden cansarse de tener que preguntarle siempre a un nerd local cómo encender su computadora, pero debido a que carecen de conocimiento y comprensión de lo que haces, no importa lo trivial y simple que te parezca, es imposible a ellos

La gente le pagará por su tiempo, su talento y su energía. Hay suficientes programadores absolutamente terribles en nuestra industria que están haciendo un asesinato simplemente porque pueden sentarse en un asiento y (posiblemente) escribir programas básicos. Juegue bien sus cartas desarrollando cierta confianza en sí mismo a través del logro, practique su habla y lenguaje corporal, continúe dominando su oficio buscando siempre cosas que no sabe y corra hacia esas cosas para buscar una mayor comprensión y, finalmente: deje de minimizar las habilidades que has desarrollado

Jordán
fuente
2

"Sé lo suficiente" y "Soy bueno para este trabajo" son completamente diferentes.

La OMI "Soy bueno para este trabajo" está más cerca de "Sé lo básico, y sé qué aprender / dónde buscar / a quién preguntar / qué leer, para completar mis tareas".

(Esto no significa que lo contratarán si necesita 1-2 meses para aprender, por ejemplo: escribir / leer en archivos XML. Espero que entienda lo que quiero decir).

Además, no creo que ningún programador diga "Sé lo suficiente". (tal vez "suficiente para conseguir el trabajo", "suficiente para ser rico", "suficiente para ...", pero no "suficiente" :))

EDITAR: cuando digo "básicos" quiero decir

  1. Conceptos básicos de programación (bit, byte, variables, funciones, parámetros, bucles, condiciones, recursividad)
  2. Conceptos básicos del lenguaje de programación con el que trabajará (cómo compilar un programa, cómo depurar un programa; cómo usar el IDE; 90% de las palabras clave y saber qué hacen, cuándo usarlas, cómo usarlas; variable tipos; cómo usar las cosas de 1 en el idioma; bibliotecas más útiles; manejo de errores)
  3. "Conecta 1 y 2 con tu sangre" :)

(Posiblemente necesitará usar 2-3 idiomas en su trabajo)

Estoy de acuerdo con Saeed, sumergirme en el trabajo, trabajar es la mejor manera de aprender cosas, trabajas con personas que saben más que tú, aprendes de ellos, ves cómo funcionan, pero comenzaron como tú (o tal vez comenzaron con menos conocimiento del que tienes ahora).

e-MEE
fuente
No me llevaría un mes leer y escribir archivos XML, aunque sigo pensando que probablemente me lleve un día. ¿Puedes dar más detalles sobre "lo básico"? Este es el objetivo principal de mi pregunta en realidad, ya que no sé si sé lo básico. Definitivamente conozco algunos de los conceptos básicos, pero realmente me preocupa que me faltan algunas lagunas realmente fundamentales.
Desechables el
1

¡Tienes una gran actitud! Uno de los factores fundamentales para tener éxito es nunca ser complaciente. Nunca conformarse. Nunca te comprometas. Dicho esto, es muy difícil discernir cómo hacer eso exactamente (por ejemplo, conocer la 'mejor práctica' para hacer la tarea X no es tan simple como buscarlo en Google porque todos tienen su propia opinión).

Es mejor aprender cómo identificar un buen código y la razón detrás de él ( cómo y por qué ). Para esto, recomendaría leer blogs de profesionales acreditados en nuestro campo, ya que esto lo expondrá al tipo de mentalidad que debe buscar. Contribuir a un proyecto de código abierto también es una forma de saltar al extremo profundo, sin embargo, le dará la oportunidad de aprender de los demás a medida que avanza actualmente .

JK
fuente
Gracias. No creo que me di cuenta de cuánto necesitaba escuchar tantos elogios.
Desechables el
0

Creo que la mayoría de nosotros hemos estado en esa situación en algún momento tarde o temprano en nuestras carreras. Y cada vez que elige un nuevo idioma, todo comienza de nuevo. Entonces, el primer consejo de mí sería: No se desespere, no está solo. Y: probablemente eres mejor de lo que piensas, aunque solo sea por el hecho de que te reflejas. Recuerde el viejo adagio: los tontos se apresuran donde los ángeles temen pisar.

Hoy en día, la mayoría de los idiomas tienen bibliotecas estándar que son simplemente demasiado grandes para que un individuo las sepa de memoria. Agregue marcos y API en la parte superior, y posiblemente no pueda saberlo todo. Lo mejor que puede hacer es conocer los conceptos básicos y luego averiguar dónde obtener más información. Mejora con la experiencia, por lo que el mejor consejo es probablemente: ¡solo ve y usa las cosas!

No hay un único marcador "decente". Todo depende del medio ambiente. Lo que sería lo suficientemente perfecto para una empresa / proyecto, puede estar muy lejos para otra. Si realmente puedes hacer lo que dices, te clasificaría como un junior bastante decente y no deberías tener problemas para encontrar un trabajo decente.

wolfgangsz
fuente
[Copiar / Pegar de mi comentario en el comentario de @ e-MEE anterior] No me llevaría un mes leer y escribir archivos XML, aunque todavía creo que probablemente me lleve un día. ¿Puedes dar más detalles sobre "lo básico"? Este es el objetivo principal de mi pregunta en realidad, ya que no sé si sé lo básico. Definitivamente conozco algunos de los conceptos básicos, pero realmente me preocupa que me faltan algunas brechas realmente fundamentales.
Desechables el
0

Según lo que escriba en su pregunta, en realidad puede codificar y está dispuesto a mejorar sus habilidades y conocimientos.

Todos, en cada trabajo, tienen que comenzar poco, como novatos, y luego crecer con experiencia.

La rapidez con que tu crecimiento depende de ti, todos crecen a diferentes velocidades, lo único importante es que no te pidas demasiado ahora.

Si siente algo que todavía no comprende, no se preocupe. Pronto podrás hacerte una idea.

Es posible que desee comenzar a trabajar en la industria lo antes posible. Como ya puede codificar, ya puede comenzar a trabajar. Esto se debe a que la teoría no es lo suficientemente buena, necesita práctica y problemas del mundo real para resolver.

En cuanto a las preocupaciones sobre el conocimiento del código de la biblioteca, llegará con el tiempo, siempre que lo estudies, leas la documentación y practiques su uso. Sitios como este también son muy útiles y aprenderá más rápido si hace y responde activamente preguntas relacionadas.

Un consejo personal: si realmente desea destacarse de las muchas personas que hacen código de espagueti, llamándose a sí mismos programadores, aprenda las mejores prácticas. No importa con qué idioma o biblioteca esté aprendiendo o codificando, aprenda las mejores prácticas. Esto le ahorrará mucho tiempo, errores, problemas técnicos, dolores de cabeza y lo ayudará a sentirse un mejor programador.

Jose Faeti
fuente