¿En qué punto puedo decir que "aprendí" un idioma?

67

En mis pocos años de programación, jugué con todo, desde Ruby hasta C ++. He hecho todo, desde solo aprender la sintaxis básica (Ruby) hasta completar varios proyectos importantes (para mí) que ampliaron mis habilidades con el idioma. Dada esta variedad (y el hecho de que el aprendizaje de una lengua nunca se detiene), ¿cuándo puedo decir que conozco (o he aprendido) una lengua?

    
pregunta SomeKittens 29.06.2012 - 16:05

9 respuestas

70

¿En qué momento puede decir que ha "aprendido" un idioma como el inglés o el francés? Creo que la mayoría de la gente aceptaría haber aprendido un idioma cuando puede usarlo para comunicarse . No tiene que saber cada palabra o entender cada idioma, pero debe conocer la mayor parte del subconjunto (bastante pequeño) del lenguaje que las personas usan en las conversaciones diarias. Al haber "aprendido" un idioma en esa medida, puede continuar aprendiendo más a medida que lo usa a diario y exponiéndose a más y más. Cuando mueras, todavía no sabrás todo lo que hay que saber sobre el idioma, pero nadie dirá que nunca "aprendiste" el idioma.

Así es, creo, con los lenguajes informáticos. Puede decir que "sabe" un idioma como C ++ o Ruby cuando puede escribir programas útiles en él. Si necesita cuantificar el grado en que sabe el idioma, use los mismos términos que usaría para un lenguaje humano. Diga "Sé un poco C ++" o "Sé conversacional C ++" o "Tengo fluidez en C ++" para indicar que usted sabe solo lo suficiente para pasar el rato, lo suficiente para hacer cosas útiles, o que eres un experto, respectivamente.

    
respondido por el Caleb 29.06.2012 - 16:34
25

Depende de quién pregunte

La persona que pregunta tiene cierta idea de qué nivel de habilidad se espera de alguien que dice que ha "aprendido un idioma".

Básicamente, encontré dos escalas arquetípicas, según las cuales las personas juzgan la respuesta a la pregunta "¿has aprendido X?"

Para la mayoría de los nerds, es una pregunta con truco para eliminar a los usuarios de la lista Esto ya está demostrado por las otras respuestas a su pregunta;). Si dices que lo aprendiste, no logras ver el alcance de la tarea, que es implícitamente "perfección" y, lo que es peor, fallas en la humildad.

Para la mayoría de los jefes, "lo has aprendido", si puedes resolver sus problemas , muchas veces ya se cumple un criterio si tu código se compila. Responder a su pregunta de manera humilde lo llevará a asignar la tarea a un usuario que también puede ser un familiar.

Entonces, ¿cuál es tu audiencia?

    
respondido por el keppla 29.06.2012 - 17:31
17

Creo que la gente se está centrando en la finalidad de la palabra "aprendí" porque está en perfecto tiempo significa que has terminado de aprender. Y como todos han señalado, los lenguajes de programación son entidades vivientes al igual que los lenguajes hablados. Por ejemplo, alguien que tenía un dominio completo de C # 2 vería C # 3 con LINQ, Lambdas, la palabra clave var , los inicializadores de objetos / colecciones y los métodos de extensión y encontraría que mucho ha cambiado con respecto a lo que aprendió en la versión anterior. Lo mismo ocurre con C # 4 con await , async keywords y otras construcciones de nuevos idiomas.

Y estamos hablando de sintaxis aquí. Olvidamos que la mayoría de los idiomas están emparejados con un marco . C # tiene el marco .NET, Java tiene su propio marco, al igual que Ruby, C ++, PHP y PERL. Pensar en el marco para un lenguaje como el vocabulario y el lenguaje en sí es solo una sintaxis. Saber el idioma significa que sabes cómo hacer una oración en el idioma. Conocer el marco significa que puedes expresarte bien en el idioma. Finalmente, una vez que conozca la sintaxis y el vocabulario, debe aprender los modismos para escribir el código como "hablante nativo".

Yo diría que hay varios niveles de aprendizaje.

  1. Hello World (puedes escribir los programas más rudimentarios)
  2. Competente (puede escribir programas básicos pero necesita consultar la ayuda en línea con regularidad)
  3. Fluido (puede escribir programas avanzados con alguna referencia necesaria).
  4. Hablante nativo (puede escribir programas avanzados con un mínimo de ayuda en línea, su código no se puede distinguir del código de otro hablante nativo).
respondido por el Michael Brown 29.06.2012 - 17:16
7

Rara vez se puede decir que has aprendido un idioma. Eso implica que has terminado de aprender sobre eso, que es ... tonto.

Decir que sabes que un idioma está bien cuando puedes escribir código que no rompa flagrantes los idiomas en el idioma (tal vez después de una semana de desoxidar el conocimiento) sin hacer referencia a una referencia de sintaxis.

    
respondido por el Telastyn 29.06.2012 - 16:32
3

Esto es más un factor basado en la opinión. En todos los términos técnicos, "Aprendidas" significaría tener un conocimiento completo de, ya que se espera que conozca TODO el idioma.

Sin embargo, en el mundo de la programación, creo que se trata más sobre si se puede programar con fluidez en el lenguaje para completar un objetivo / tarea. Probablemente también signifique si te sientes cómodo con el idioma. ¿Seguro que puedes salir y obtener un título después de años y años de universidad, pero eso es solo para que te des cuenta? Usted define cuándo puede decir que ha aprendido un idioma.

    
respondido por el Alec 29.06.2012 - 16:17
2

Cuando empiezas a notar sus defectos. Una vez que comienzas a aprender un idioma, por lo general todavía estás ocupado aprendiendo a hacer cosas o estás muy involucrado en él para notar dónde falla (por supuesto, esto es a menos que comiences a aprenderlo desde un punto de vista negativo solo para ver qué tan peor es se compara con su idioma favorito hasta ahora). Yo diría que realmente no conoces un idioma hasta que estés muy consciente de las áreas en las que falla.

    
respondido por el Ivan Voras 01.07.2012 - 01:40
2

Mi respuesta personal para esto es cuando,

  1. Sé lo básico para escribir un programa simple de nivel de producción.
  2. He pasado al menos 3 horas seguidas resolviendo un problema que parecía simple pero  no era.

A partir de ahí, no lo llamaría aprendizaje, sino dominio.

    
respondido por el dukeofgaming 29.06.2012 - 17:12
1

En el momento en que su aplicación o componente pueda leer el correo, es decir, ley de Zawinski , que estados:

  

“Cada programa intenta expandirse hasta que pueda leer el correo. Aquellos   Los programas que no pueden expandirse son reemplazados por los que pueden expandirse ".   Acuñado por Jamie Zawinski (quien lo llamó la "Ley de Software   Envolvente ”) para expresar su creencia de que todos los programas verdaderamente útiles   Experimenta la presión para evolucionar hacia kits de herramientas y plataformas de aplicaciones.   (la cosa del correo, dice, es solo un efecto secundario de eso).

Esto se actualizó cuando RSS se hizo popular para "... poder leer feeds RSS" y probablemente podría actualizarse en estos días para "... poder leer feeds de Twitter". ;-)

    
respondido por el dodgy_coder 01.07.2012 - 15:05
0

Creo que has aprendido un idioma cuando no lo ves. No ve los ciclos y accesos de datos, sino el flujo de trabajo del algoritmo.

No juegas trucos con el paso de parámetros y el procesamiento de matrices, macros mágicas. No piensas en tu código como un material de marketing personal para mostrar a tus amigos y maestros, sino para expresar tu comprensión de un problema y tu voluntad para la computadora de la manera más legible.

Tienes hábitos que te ayudan a evitar muchos errores con solo seguirlos, como: usar bloques de código {} y () en expresiones, incluso si estás absolutamente seguro de que "será solo una línea" o "No soy engañar y saber el orden de precedencia del operador ".

Usted deja de contar cuántas clases, patrones y APIs de marco conoce. Para esto está intellisense, las referencias y tutoriales, y para Google. Pero cuando observa un problema, inmediatamente sabe qué partes se pueden dividir y con qué herramientas y algoritmos los resolverá.

Lo que haces funciona , es elegante y pequeño . Usted disfruta de la codificación y encuentra fácilmente sus errores. Sí, los maestros también hacen errores porque son humanos, pero los encuentran rápidamente porque la estructura de su código los lleva al lugar correcto.

Y finalmente, date cuenta: has aprendido a pensar, analizar y resolver problemas; en comparación con ellos, el idioma real es secundario, solo el cuadro actual de reglas y herramientas.

    
respondido por el Lorand Kedves 13.07.2012 - 23:37

Lea otras preguntas en las etiquetas