Soy ingeniero electrónico en mi licenciatura y tenía las mismas preguntas cuando me gradué. Curiosamente, sabía que aparecería para una entrevista con una compañía de software ya que ninguna compañía central visitó mi campus (incluso si lo hicieran, agruparon el reclutamiento donde aparecerían 200 candidatos y solo se seleccionarían 2–3, sin esperanza alguna). situación puesta en breve) y, sin embargo, fui informal sobre la programación. Volviendo a mi entrevista con la división de TI de un banco de inversión, pensé que si conocía JAVA y / o C ++, haría el corte. Aunque SQL me hubiera dado una ventaja además de conocer los lenguajes GP, no pude leerlo debido a la falta de tiempo y recursos, y que soy más tonto.
Mi entrevista: escribe y explica
- un pseudocódigo para la clasificación rápida, de burbujas y de cubos
- ¿Cómo iterarías un árbol binario?
- ¿Cómo programarías potencialmente un robot de desplazamiento del laberinto?
Entonces, mientras invertí unos 25 días de mi tiempo leyendo punteros, STL, enchufes, subprocesos, herencia múltiple y única en C ++ aquí, literalmente, no me preguntaron nada al respecto. Sin embargo, tenía algo de sentido común en lo que se me pidió y, dado que mi entrevista fue lo suficientemente considerada como para darme 30 segundos para pensar, podría responder las preguntas satisfactoriamente, si no perfectamente. Fue como estudiar para un examen donde todas las preguntas estaban fuera del programa prescrito. De alguna manera, apenas pasé esta entrevista y conseguí un trabajo. Salvó el día, pero grandes sorpresas estaban esperando para desarrollarse.
- Cuando un reclutador pregunta por una brecha de desempleo de 2 años después de la graduación, ¿qué debe responder?
- Si me rechazan para un puesto en Facebook, ¿puedo volver a presentar una solicitud para un puesto diferente de inmediato? ¿O se aplica la regla de espera de 1 año?
- ¿Debo incluir 'Líneas de código' en mi currículum para mis proyectos?
- ¿Es obligatorio afeitarse antes de presentarse a SSB?
- ¿Cuáles son las preguntas de la entrevista de Python que generalmente se hacen de manera más reciente?
Avanzando rápidamente para unirme a la empresa, pensé que ahora es el momento en que mi nivel “experto” de conocimiento de C ++ podría utilizarse. Día 1 – Entendí una mierda en el código escrito. No entendía por qué uno usaría punteros en un lugar y referencias en el otro. No podía contemplar por qué las cosas se declararon constantes, o por qué se usaban funciones recursivas. A pesar de toda la herencia y el polimorfismo y la abstracción y la encapsulación que había “estudiado” (bueno, algo así como más bien de memoria), no pude entender cómo se estructuraron las clases. Continuando, pensé que podría haber algo más simple que mi cerebro pudiera comprender y recurrí a SQL (ya me había entrenado en SQL) y vi los desencadenadores PL SQL y CLOB y BLOB y la diferencia entre procedimientos y funciones parecía tan grande. claro como la cima de una colina en el monzón, básicamente mi primer día fue el día en que aprendí algo importante: los idiomas no importan las sentadillas. Hoy en día, tengo conocimientos prácticos con aproximadamente 7–8 lenguajes (C, C ++, C #, JAVA, Python, Batch scripting + power shell, PL SQL, Angular JS + HTML 5, algunos conceptos básicos de F #) inspirados (bastante mortificados) Mi experiencia el primer día. Lo que realmente importa es el concepto de programación en sí.
Tenía un instructor de JAVA antes de unirme al piso de la empresa y no recuerdo mucho de lo que Advanced JAVA me enseñó, excepto por un concepto no específico del idioma que cambió mi forma de ver cualquier programa y fue esto, palabra por palabra – cada lenguaje de programación está construido sobre una construcción común y esta construcción es que cada programa tomará una entrada y salida de algo. El comportamiento se define dentro de los módulos que se denominan funciones (ya que le ofrecen una “función”). Para que cada función se comporte de cierta manera, necesita un “tipo” de entrada y devuelve un “tipo” de salida. Por lo tanto, mañana si elige algún idioma, descubra qué necesita la función y qué devuelve . Una clase solo te ayuda a unir funciones relacionadas y un espacio de nombres solo marca tu clase a cierto grupo, eso es todo lo que hay que saber sobre la programación en su conjunto.
Al principio no tenía mucho sentido, pero cuando descifré su significado y empleé algo de él, me sentí como caminar después de gatear (en realidad apenas deslizándome por el piso) en el mundo de la programación.
Entonces, para responder a su pregunta después de esta historia bastante poco interesante e increíblemente larga sobre, lo que quiero decirle es que no importa qué lenguaje de programación aprenda. O para responder a su pregunta usando palabras de su pregunta: puede dominar (el dominio es una ilusión. Conozco personas con 34 años de experiencia que todavía aprenden) todos los lenguajes de programación que puede en el tiempo que tiene, y ninguno de ellos lo ayudará. completamente (tal vez solo hasta cierto punto) porque se espera que los ingenieros de software creen programas en idiomas adecuados para la aplicación en lugar de crear todo tipo de aplicaciones en un solo idioma. por ejemplo, desearía crear una aplicación de cálculo numérico en F # o R o Python debido a las características que ofrecen para estas operaciones; no significa que no pueda usar otros idiomas, sino que estos se crean teniendo en cuenta tales operaciones. Intente centrarse en el flujo del edificio, la lógica, los pseudocódigos, los algoritmos, etc.
Sin embargo, no diré que no aprendas lenguajes de programación. ¿Cual? Se reduce a qué dominio desea ingresar y qué implica la posición que está solicitando: web, servicio, algoritmo, computación matemática, computación HP, etc. Para la web necesitaría JAVA, Angular JS, HTML 5, C # .NET, CSS y algunos más. Pero el conocimiento del lenguaje de programación de propósito general en C / C ++ y / o JAVA facilitará las cosas. Algunos sitios que encontré muy útiles: Tutoriales de bases de datos, Java y tutoriales de tecnologías asociadas, Tutoriales multilingües, Tutoriales para lenguajes de programación de computadoras, cppreference.com, The C ++ Resources Network
Después de aburrirte durante la mayor parte de los 10 minutos, ¡todo lo mejor para tu entrevista!