En mis pocos años de programación, he jugado con todo, desde Ruby hasta C ++. He hecho todo, desde 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 verdadero aprendizaje de un idioma nunca se detiene), ¿cuándo puedo decir que sé (o he aprendido) un idioma?
programming-languages
Algunos gatitos
fuente
fuente
Respuestas:
¿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 que has aprendido un idioma cuando puedes usarlo para comunicarte. No tiene que saber cada palabra o entender cada idioma, pero debe conocer la mayoría del subconjunto (más bien pequeño) del lenguaje que las personas usan en la conversación diaria. Después de haber "aprendido" un idioma hasta ese punto, puede continuar aprendiendo más a medida que lo usa a diario y exponerse a más y más. Para 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 de computadora. Puede decir que "conoce" un lenguaje como C ++ o Ruby cuando puede escribir programas útiles en él. Si necesita cuantificar el grado en que conoce el idioma, use los mismos términos que usaría para un lenguaje humano. Diga "Sé un poco de C ++" o "Sé C ++ conversacional " o "Tengo fluidez en C ++" para significar que usted sabe lo suficiente para pasar, lo suficiente para hacer cosas útiles, o que es un experto, respectivamente.
fuente
using
en C # ob, a = a, b
y generadores en python. De lo contrario, +1.Depende de quién pregunta
La persona que pregunta propagablemente tiene una cierta idea de qué nivel de habilidad se espera de alguien que dice que ha "aprendido un idioma".
Básicamente, me encontré con dos escalas arquetípicas, por las cuales las personas juzgan la respuesta a la pregunta "¿has aprendido X?"
Para la mayoría de los nerds es una pregunta capciosa para eliminar a los posers. Esto ya está demostrado por las otras respuestas a su pregunta;). Si dices que lo aprendiste, fallas al ver el alcance de la tarea, que es implícitamente "perfección" y, mucho peor: fallas en la humildad.
Para la mayoría de los jefes, "lo has aprendido", si puedes resolver sus problemas , un criterio que muchas veces ya se cumple si tu código se compila. Responder su pregunta de una manera humilde lo llevará a asignar la tarea a un poser que también puede ser un pariente.
Entonces, ¿cuál es tu audiencia?
fuente
Creo que la gente se está enfocando en que la finalidad de la palabra "aprendido" es el tiempo perfecto, lo que significa que has terminado de aprender. Y como todos notaron, los lenguajes de programación son entidades vivientes al igual que los idiomas hablados. Por ejemplo, alguien que tuviera un dominio completo de C # 2 miraría C # 3 con LINQ, Lambdas,
var
palabras clave, inicializadores de objetos / colecciones y métodos de extensión y descubriría que mucho ha cambiado de lo que aprendió en la versión anterior. Lo mismo ocurre con C # 4 conawait
,async
palabras clave y otras nuevas construcciones del lenguaje.Y solo 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. Piense en el marco para un idioma como el vocabulario y el lenguaje en sí mismo es solo sintaxis. Conocer 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 poder escribir el código como "hablante nativo".
Yo diría que hay varios niveles de aprendizaje.
fuente
await
es de C # 5, lo más importante en C # 4 fuedynamic
.Rara vez puedes decir que has aprendido un idioma. Eso implica que has terminado de aprender sobre eso, lo cual es ... tonto.
Decir que sabes que un idioma está bien cuando puedes escribir código que no está rompiendo descaradamente las expresiones idiomáticas en el idioma (tal vez después de una semana de desconfiar del conocimiento) sin hacer referencia a una referencia de sintaxis.
fuente
Esto es más un factor basado en la opinión. En todos los términos técnicos "Aprendizaje" significaría tener un conocimiento completo de, ya que se espera que usted sepa TODO el idioma.
Sin embargo, en el mundo de la programación, creo que se trata más si puedes programar con fluidez en el lenguaje para completar un objetivo / tarea. Probablemente también signifique si te sientes cómodo con el idioma. Claro que podrías salir y obtener un título después de años y años de universidad, pero ¿eso es solo para que te den cuenta? Usted define cuándo puede decir que ha aprendido un idioma.
fuente
Cuando comienzas 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 cuán peor es se compara con tu idioma favorito hasta ahora). Yo diría que realmente no sabes un idioma hasta que estés muy consciente de las áreas donde falla.
fuente
Mi respuesta personal para esto es cuando,
A partir de ahí, no lo llamaría aprendizaje, sino dominio.
fuente
En el momento en que su aplicación o componente puede leer el correo, es decir, la ley de Zawinski , que establece:
Esto se actualizó cuando RSS se hizo popular para "... puede leer las fuentes RSS" y probablemente podría actualizarse en estos días a "... puede leer las fuentes de Twitter". ;-)
fuente
Creo que has aprendido un idioma cuando no lo ves. No ve los ciclos y los accesos a los datos, sino el flujo de trabajo del algoritmo.
No juegas trucos con el paso de parámetros y el procesamiento de matriz, macros mágicas. No piensa en su código como un material de auto marketing para mostrar a sus amigos y maestros, sino para expresar su comprensión de un problema y su voluntad a la computadora de la manera más legible.
Tiene hábitos que le ayudan a evitar muchos errores simplemente siguiéndolos, como: use bloques de código {} y () en expresiones incluso si está absolutamente seguro de que "será solo una línea" o "No soy tonto y sé orden de precedencia del operador ".
Dejas de contar cuántas clases, patrones y API de framework conoces. Esto es para lo que intellisense, las referencias y tutoriales, y para qué sirve Google Pero cuando observa un problema, inmediatamente sabe qué partes se pueden dividir y con qué herramientas y algoritmos lo resolverá.
Lo que haces funciona , es elegante y pequeño . Disfruta codificando y encuentra fácilmente sus errores. Sí, los maestros también hacen errores porque son humanos, pero los encuentran rápidamente porque su estructura de 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 lenguaje real es secundario, solo el cuadro actual de reglas y herramientas.
fuente