¿Puedes creer a alguien que dominara C ++ en 2 años?

Puede estar bastante bien con C ++ en dos años. Quizás incluso muy bueno si trabajas como un loco. “Dominado” podría significar “básicamente dominado”, así que sí, esto es posible. Básicamente, puedes dominar C ++ incluso en un año.

Pero después de uno o dos años, es poco probable que tenga mucha confianza para abordar realmente los programas. Podrá escribir programas, pero es poco probable que sea bueno en eso.

Si alguien afirmó ser un maestro real de C ++ en dos años, bueno, eso es como alguien que afirma haberse convertido en un maestro pianista en dos años. Es muy poco probable que suceda.

Además, C ++ es tan masivo que es poco probable que alguien pueda entender cada parte importante de la sintaxis y sus peculiaridades en dos años; Si lograron aprender todo eso, probablemente habrían escatimado en escribir programas reales, que es el punto de C ++.

(Esto supone que alguien comienza por no saber programar; el problema básico es que la programación realmente bien y con confianza lleva años para aprender, y muchos años antes de que pueda comenzar a afirmar que es un “maestro”, aunque dudo que la palabra se use en ese sentido en la pregunta).

Estoy de acuerdo con lo que han publicado todos los que respondieron.

Además de eso, agregaría que hay una enorme variabilidad en lo que las personas definen como dominio. Depende completamente de los estándares.

En el verdadero sentido del significado, la respuesta solo puede ser no, y nadie puede dominar realmente C ++ por completo. No en dos años, no en diez años. Hablando rigurosamente, C ++ se ha convertido en un lenguaje que no se puede aprender ni enseñar. Incluso los investigadores y miembros del comité de normas suelen trabajar en aspectos pequeños y estrechos del lenguaje en cualquier momento. Dominar C ++ equivale a “dominar la literatura inglesa”. ¿Puede una persona estar familiarizada con todas las palabras en el lenguaje y todas las expresiones idiomáticas, y toda la literatura escrita en él? Yo dudo. También es un objetivo en movimiento, y “dominar C ++” debe incluir el conocimiento de las características propuestas actualmente para la estandarización en las futuras versiones del lenguaje, y poder discutir sus pros y sus contras, incluidas la complejidad del compilador y las consideraciones de rendimiento. Tendría que ser un experto en compilación, un experto en idiomas y un experto en arquitectura de computadoras.

Lo que he encontrado en años de entrevistar candidatos, a través del trabajo extenso y minucioso de elegir las preguntas correctas para la entrevista y recopilar y clasificar las poblaciones de respuestas, es que hay una correlación pobre o incluso negativa entre la habilidad real de las personas y su respuesta a “qué tan bueno eres en C ++ “.

El efecto Dunning-Kruger está ciertamente en juego. Hay candidatos junior que acaban de aprobar un curso de un semestre de C ++ y piensan que son semi-dioses; y luego hay candidatos con experiencia que han escrito analizadores parciales para C ++ y han visto “el borde del abismo”, y han regresado asustados y asustados, y piensan que están “apenas bien”.

Entonces, si alguien me dijera que trabajó durante 2 años en C ++ con consistencia y con un programa de estudios deliberado y que es competente y productivo en la mayoría de las áreas, podría creerlo, especialmente si esta persona tenía experiencia en informática.

Si alguien me dijera que “dominaron C ++ en 2 años”, sería una pista bastante informativa de que probablemente no saben de qué están hablando, y su familiaridad con el lenguaje es superficial.

El propio Bjarne Stroustrup no afirma haber dominado todos los aspectos de C ++ y es el creador original de C ++. Esto se debe a que C ++ es un lenguaje diferente para todos los que lo usan. El diseño del lenguaje es permitir abstracciones de bajo costo cuando sea posible. Algunas veces estas abstracciones son relevantes para algunos y no para otros. Sin embargo, en muchos casos, C ++ se puede dominar muy rápidamente en un dominio particular. Dado que uno de los aspectos principales de un buen C ++ es que sea legible y compacto, el uso de características que la mayoría de las personas conoce dentro de los 5 años de aprender C ++ es un buen hábito. La excepción a esto es cuando un bucle se puede reemplazar con una nueva llamada a la biblioteca estándar o una nueva función permite una mayor detección de errores en tiempo de compilación cuando se admiten nuevas versiones de C ++ como 11,14 y 17.

No.

Cuando apenas comenzaba a aprender a programar, probablemente en 2008, estaba aprendiendo de una persona que había estado codificando durante aproximadamente 10–12 años.

Era un programador experimentado, con un vasto conocimiento de la programación de sistemas. Solía ​​ir a campamentos de verano donde enseñaba a codificar a estudiantes de secundaria. Haríamos pequeños proyectos como hacer una calculadora y cosas similares como esas.

Al final del verano, nos hizo una pregunta: “Ahora que ya hemos terminado, dime ¿cuánto porcentaje de C ++ crees que has aprendido?”

Cruzó la habitación y pidió a todos que respondieran la pregunta.

Algunos dijeron 90%. Pocos dijeron 70%. En general, estábamos bastante seguros de que habíamos dominado el idioma.

Luego sonrió, con una pequeña sonrisa en su rostro, dijo: “¡Bueno! Eso es genial, pero si me haces la misma pregunta, diría que he aprendido sobre el 10% de C ++ ”.

Creo que esto lo resume todo. ¡C ++ es tan complicado que las posibilidades son infinitas!

Yo personalmente? No.

Creo que podrías ser competente, sin duda. Pero el dominio llevará más tiempo.

También es un poco sin sentido, de verdad.

Su espacio problemático tendrá mucho más impacto en el dominio que el idioma. Incluso si es excelente en C ++, intente escribir el procesamiento de C ++ para un escáner CT o el seguimiento de radar con eliminación de desorden. O incluso simplemente un muy buen procesador de textos.

¡Tus problemas de lenguaje palidecerán en comparación!

No. No tengo problemas para creer que alguien puede ser un programador de C ++ competente después de dos años, pero el lenguaje es tan complicado que nadie puede dominarlo en tan poco tiempo. Sería mucho más probable que crea que nunca han estado expuestos a alguien que sea un experto genuino en C ++, por lo que están juzgando mal su propio nivel de experiencia.

¿Te refieres a dos años de no ser programador o dos años después de haber sido programador durante 10 o 15 años?

Si comienzas desde cero, no puedes dominar ningún idioma en dos años. Ni siquiera puedes dominar la programación misma.

Si tiene una experiencia muy sólida con la programación, dos años con C ++ pueden ser suficientes para estar por encima del promedio. Pero aún no es suficiente para dominarlo.

TL; DR: no.

No le creas a nadie que dice tener cierta habilidad, pídele que lo demuestre. Intente darles una prueba de codificación C ++ o algo así. Esto no debería ser un problema para un maestro. Pídales que le muestren sus proyectos de programación y vean lo que han creado. Si fallan en una prueba simple o su trabajo no es del nivel maestro, entonces obviamente han mentido sobre sus habilidades.

Si esta persona realmente ha dominado C ++, entonces tal vez están mintiendo sobre el tiempo que les tomó. O tal vez no. Tal vez son tan brillantes.