¿Por qué la mayoría de las personas que acaban de obtener su BS en Informática no pueden pasar las entrevistas de codificación?

Es interesante leer las respuestas, que en su mayoría (A) culpan al sistema / departamento / facultad / proceso de acreditación o (B) culpan al estudiante. Dado que un título es una credencial, me inclino hacia A y creo que si A se hiciera correctamente, las instancias de B disminuirían a medida que los estudiantes se auto-seleccionen.

En * most * grandes universidades de investigación de EE. UU., El profesorado se preocupa más por la investigación financiada y la publicación revisada por pares. Si han superado el obstáculo del doctorado, han tenido su cerebro tan empapado en este mundo que la mayoría nunca regresará a la tierra. Son estas mismas personas quienes imparten los cursos o son mentores de los estudiantes graduados avanzados que imparten los cursos. Son estas mismas personas las que tienen una gran influencia en los requisitos de acreditación (o eso supongo, nunca he participado en ese proceso yo mismo).

Para esas personas, la enseñanza es a menudo algo que debe evitarse cuando sea posible y minimizarse cuando sea inevitable. Una forma de minimizar el esfuerzo de enseñanza es dar conferencias desde powerpoints y realizar pruebas en lugar de adoptar un enfoque de aprendizaje basado en proyectos. Hay una gran diferencia entre aprender la teoría del compilador y tener que escribir un analizador sintáctico o un generador de código, o entre aprender sobre construcciones teóricas del sistema operativo que nadie usa, frente a tener que escribir un administrador de memoria o controlador de dispositivo.

Pero los proyectos requieren mucho más tiempo para calificar e idealmente también requieren tutoría experta. Los mejores proyectos tienen clientes reales en lugar del profesor como cliente falso. Así que aún más trabajo busca clientes y asegura que la relación sea productiva. Es mucho más fácil leer viñetas y hacer una prueba, o dar pequeños proyectos de programación de juguetes donde la relevancia para sistemas y entornos reales es inimaginable para el estudiante inexperto.

Los auto-didácticos funcionan bien porque no reciben mucha ayuda de la mayoría de las universidades. También porque hay excelentes herramientas y lugares en Internet donde puedes aprender y encontrar ayuda cuando la necesitas. Y también porque en informática, la base de conocimiento cambia con tanta frecuencia que siempre tienes que aprender nuevos idiomas, bibliotecas, modelos, vocabularios, etc., y debes poder aprender por tu cuenta con una asistencia formal mínima. . Por lo tanto, puede ser válido para los departamentos de CS exigir una cantidad decente de auto-didáctico por parte de sus estudiantes. Dejarles tener la credencial sin prueba de ello, o prueba de poder sumergirse en un entorno real de lenguaje / proyecto y resolver las cosas, es irresponsable.

La razón número uno por la que la mayoría de los graduados que tienen una licenciatura en Ciencias de la Computación no pueden aprobar entrevistas de codificación técnica podría sorprenderlo.

Todavía recuerdo la entrevista que me enseñó esta importante lección.

Mi colega Pete y yo nos habíamos preparado para una entrevista técnica para un desarrollador web de nuestro equipo. Tenemos dos preguntas listas, preguntas que les habíamos hecho a los candidatos varias veces antes.

El candidato entró y se sentó. Tenía un título en Ciencias de la Computación y una larga lista de credenciales que lo prepararían para un trabajo de nivel superior, y estábamos preparados para entrevistar un trabajo de desarrollador de nivel medio (un puesto para el que estaba sobrecualificado). Entró, se sentó y Pete le hizo una pregunta técnica.

Pete explicó la primera pregunta, le entregó al candidato un marcador de borrado en seco y le pidió que se acercara a la pizarra y comenzara.

Esta pregunta es demasiado fácil: he hecho este tipo de trabajo todo el tiempo en mi último trabajo. Podemos omitir esta pregunta.

Dijo el candidato, mientras le devolvía el marcador de borrado en seco a Pete. Pete se quedó sorprendido y en estado de shock: ambos habíamos entrevistado a muchos otros candidatos y nunca habíamos tenido a alguien que se negara rotundamente a intentar siquiera responder una pregunta técnica.

Continuamos discutiendo el problema con el candidato y finalmente conseguimos que el candidato lo intentara.

El candidato llegó a la pizarra y luchó para escribir un código simple en la pizarra.

El candidato tuvo problemas y finalmente abandonó la entrevista.

Cuando terminó la entrevista, Pete y yo discutimos lo que había sucedido y descubrimos una valiosa lección que me ha quedado grabada desde entonces.

Como entrevistador, es su trabajo identificar candidatos que sean inteligentes y hacer las cosas. Resulta que hay muy pocas personas que son ambas cosas que están entrevistando para puestos de programación.

El desarrollo de software es algo difícil y es por eso que los buenos programadores tienen demanda. Obtener las habilidades para convertirse en un programador en demanda en realidad no es tan difícil en absoluto.

¡Solo hay tres puntos para llevar que necesita para ser un desarrollador a pedido, independientemente de si tiene un título en Informática o no!

Los desarrolladores que se centran en dominar estas tres habilidades tienen enormes ventajas en su carrera de programación. Esto es lo que realmente importa.

  • Los desarrolladores autosuficientes pueden lograr sus objetivos de codificación por sí mismos , lo que los hace inteligentes y capaces de hacer las cosas. Convertirse en un desarrollador autosuficiente dará sus frutos a largo plazo.
  • La tecnología cambia constantemente, pero dominar los conceptos de programación atemporales asegurará que tengas las habilidades para tener éxito – independientemente de los sabores de los débiles.
  • Los desarrolladores de nivel de entrada generalmente se contratan como una inversión en potencial en lugar de una recompensa inmediata : vaya a su primera posición como desarrollador con una mentalidad de crecimiento y siempre buscando mejorar su oficio.

Una vez que comprenda estos conceptos y trabaje para mejorar, descubrirá que es el tipo de desarrollador en demanda que puede pasar entrevistas de codificación con facilidad.

Si crees que mi respuesta fue útil, significaría mucho para mí si pudieras presionar el botón azul claro de votación a continuación.

Como respuesta de alto nivel, aquí está mi opinión.

TL; DR; Una licenciatura no te da ninguna experiencia en el mundo real. Es una descripción general de los temas del programa de estudios. Al ir directamente de la escuela, todavía no tendrá la experiencia para codificar realmente (a menos que ya lo esté haciendo en su propio tiempo, en cuyo caso ya está más allá de “tener su título”)

La historia de fondo:

La universidad, especialmente a nivel de pregrado, sigue siendo una especie de programa “introductorio”. Es como obtener tu cinturón negro de primer grado en un arte marcial. De alguna manera significa que has “dominado lo básico”. Estás listo para comenzar a aprender realmente ahora. No es que seas súper inteligente y hayas aprendido todo lo que necesitas saber.

Comencé la universidad directamente de la escuela secundaria, pero no tenía idea de lo que quería seguir como carrera. Así que obtuve 2 títulos de Asociado en programas generales (primero artes liberales, luego ciencias). Luego tomé un descanso de la universidad.

Cuando decidí regresar, había decidido terminar con un título de CS. Con mis dos títulos de Asociado, esto significaba que lo recogí como Junior (3er año) en la universidad.

Conseguí que A son mis últimos dos años de universidad. Nunca obtuve un puntaje tan alto en mi otra educación porque no estaba tan concentrado. El tiempo libre y ser mayor significaba que era más maduro y estaba preparado para poner la atención que necesitaba. Además, después de haber completado los primeros dos años, todo el requisito previo estaba fuera del camino y los años 3 y 4 se concentraron en temas reales de grado, por lo que estaba más interesado en lo que estaba aprendiendo.

Al punto:

Recuerdo haber tomado una clase de SQL. Aced la clase. Capaz de regurgitar toda la información que aprendería. Pero a pesar de que podía responder las preguntas, no todo había hecho clic.

Habíamos aprendido sobre los procedimientos almacenados. El código SQL escrito y guardado para ser reutilizado y se compila para que sea más rápido que generar el script en tiempo real.

Ayudé a la prueba. Pero realmente no entendía cómo se usaría.

“Bien, entonces escribo algunas cosas y las guardo, te creo cuando dices que es más eficiente hacer esto … ¿ahora que?”

Luego, cuando obtuve mi primer trabajo de desarrollador y comencé a usarlos de verdad, todos los temas que me presentaron en la universidad comenzaron a tener sentido.

La moral:

La única forma de pasar una entrevista de codificación es haber codificado.

La razón principal es que la mayoría de las universidades ya no enseñan CS como solían enseñar CS hasta principios de la década de 1990.

Con la excepción de unas pocas universidades estadounidenses, será muy difícil encontrar una clase en el lenguaje de programación C (por ejemplo). Lo que obtendrá en lugar de una clase de idioma, donde realmente aprende el idioma, es algo así como los fundamentos de la base de datos que usan C.

En otras palabras: el aprendizaje del idioma se deja como un ejercicio para el alumno.

Por lo tanto, la mayoría de los estudiantes solo aprenden lo suficiente sobre sus herramientas para sobrevivir en los ejercicios de laboratorio para una clase determinada.

Y muchas universidades enseñan en idiomas que son más fáciles de calificar y más fáciles de aprender porque son incapaces de expresar una cantidad de conceptos complejos de lenguaje. Frecuentemente veo personas que solo conocen Java, Python o, en algunos casos, ActionScript (Flash).

Entonces, realmente, no es un requisito que aprendan a codificar.


Esto se produjo debido a cambios en el plan de estudios para cumplir con los requisitos de acreditación de la Junta de Acreditación de Ingeniería y Tecnología, Inc. (ABET), que es el principal organismo de acreditación para los planes de estudios de CS en los Estados Unidos.

Estos primeros cambios comenzaron a ocurrir en 1984, y nuevamente en 1998, y a mediados de la década de 2000, los cursos estaban bastante diluidos, en comparación con lo que eran al principio.


Hay alrededor de una docena de universidades que ofrecen clases explícitas necesarias para obtener buenos codificadores, pero en casi todos los casos, el trabajo del curso es opcional, ya que la mayoría de las universidades ofrecen múltiples pistas que le permitirán obtener lo que llaman un título de CS, pero no todos los CS los grados son iguales

Por lo tanto, tiene que ir a la universidad o universidad correcta, y debe tomar el título correcto y las clases opcionales correctas, para obtener la misma educación que solía obtener hace un par de décadas.

Algunas de estas universidades son: Georgia Tech, Brown University, Rice University, MIT, Stanford y muchas otras.

Regla general: si no ofrecen un curso opcional en programación en lenguaje ensamblador y otro en programación en lenguaje C, es probable que esté solo .


Hay otras formas de obtener las habilidades y la experiencia lingüísticas necesarias que ya no obtienes en los programas de grado CS en la mayoría de los lugares en los EE. UU., Pero debes ser un autodidacta. Y enseñarte a ti mismo es mucho más difícil.

Puede obtener algo de apoyo al ser un gran contribuyente al proyecto Open Source de otra persona; los BSD son un buen lugar para obtenerlo, menos Linux, pero Linux sigue siendo fantástico, en comparación con lo que la mayoría de los colegios o universidades le ofrecerán, en términos de experiencia. Aquí minimizo a Linux, ya que la comunidad tiende a ser relativamente intolerante con los principiantes.

Es casi seguro que no lo obtendrá al iniciar su propio proyecto de Código Abierto , especialmente si usted es el único contribuyente o si solo hay un pequeño número de personas involucradas.


Para dar una analogía de la carpintería de la que soy aficionado (la carpintería solía ser educación vocacional ofrecida en casi todas las escuelas secundarias y escuelas secundarias / secundarias en los Estados Unidos en un momento):

Las clases modernas de CS en la mayoría de las universidades son como la teoría de la mesa de aprendizaje, o la teoría de la silla , o la teoría de la pajarera , o la teoría del estante de especias , etc.

Y luego obtienes un trabajo en el mundo real en una fábrica de muebles, y nunca has aprendido cómo usar las herramientas correctamente .

La primera vez que use la sierra de mesa, o la sierra de cinta, o un carpintero, o un torno, será su primera vez real en algunos de esos equipos.

Y, bueno … así es como la gente pierde los dedos .


Un artesano debe saber cómo usar sus herramientas, o no son artesanos .

Veo a mucha gente culpando a las instituciones o al entrevistador. Si bien pueden tener algunos puntos válidos, no estoy en ese campamento .

Si bien actualmente trabajo como ingeniero de software en una compañía Fortune 500, también tengo 10 años de experiencia en administración de ingeniería. Y tengo un buen historial de contratación de ingenieros de software. Incluso en mi trabajo actual, a menudo entrevisto candidatos. Y mis entrevistas son difíciles. Tal vez no sea duro con Google, porque no creo necesariamente que las entrevistas de Google identifiquen las mejores perspectivas. Pero se ha demostrado que tienen éxito en la identificación de ingenieros de software calificados.

Suficiente con los preliminares.

He entrevistado al menos a 300 candidatos para puestos de desarrollador de software en mi vida. Y he contratado quizás 20 de ellos. El 75% de ellos no tuvieron entrevistas de negocios y fueron literalmente una pérdida de tiempo, aunque todos estaban “calificados para currículum”.

¿Por qué no pudieron pasar una entrevista de codificación?

La respuesta es simple. No saben codificar. Estoy seguro de que los motivos varían, pero como posible empleador, no me importa por qué. Me importa si pueden hacer el trabajo que necesito que hagan.

En mi primer puesto directivo, precalifiqué candidatos con una prueba de aproximadamente 20 preguntas. Y mis preguntas no eran las típicas preguntas de la entrevista de “Google”. Realmente no me importa si puede implementar una lista doblemente vinculada en la pizarra blanca bajo la presión de una entrevista. El C ++ STL ya lo hace mejor que nunca en esas circunstancias y muy probablemente en cualquier circunstancia. Solo me importa si sabes cuándo necesitarías usar uno y cuándo lo haces, si sabes lo suficiente como para elegir la colección correcta.

Mis preguntas comenzaron de simples y progresaron a muy difíciles. No se esperaba que obtuvieras el 100%. Su punto de ruptura me indicó, el grado de su conocimiento. Si comenzó a faltar preguntas alrededor del 70%, hizo el corte y pasó al siguiente paso.

Menos del 75% superó el 50%. Y tenga en cuenta que estos no fueron problemas de pizarra. Eran simplemente de opción múltiple o completar las preguntas en blanco.

Aparte interesante

Un candidato me dijo: “No estoy tomando esta prueba. ¡Enseño esta mierda! ”Así que acordamos revisar las preguntas en mi escritorio. Y no estaba mintiendo. Lo sabía todo. Pero no lo contraté por otros factores.

Lo que realmente estaba buscando

Estaba buscando estas cosas:

  1. Una base sólida : alguien que sabía lo suficiente como para no requerir el agarre de la mano. Alguien que pudo comenzar a correr. Este fue el propósito de la prueba. Eliminé los posers.
  2. Voluntad y capacidad de aprender : es un hecho que nuestras herramientas e incluso nuestros idiomas cambian con frecuencia. Ser un experto en un idioma pero ser incapaz de aprender un nuevo idioma reduce su valor para mí. Y tienes que estar dispuesto a aprender constantemente. Tienes que disfrutarlo.

    ¿Cómo juzgo eso? Al hacer preguntas sobre pasatiempos, lo que haces en tu tiempo libre, etc. Quiero ver a una persona que tenga una cuenta personal de GitHub que realmente tenga código. Quiero ver a una persona que compre y programe Arduinos por diversión. Quiero una persona que esté en él por amor y no por el dinero.

  3. Un jugador de equipo : estoy buscando una persona que entienda, cuando revise el código, aunque lo haría de manera diferente, funciona y si no hay una buena razón para cambiarlo, déjelo en paz.

    Estoy buscando a una persona que no se siente sola y piensa que todos los demás son idiotas. Porque déjame decirte que si estás en este trabajo el tiempo suficiente, te sentirás humilde. Todos serán humillados.

    Y no estoy buscando al gurú detrás de la puerta que “entra en la zona” y simplemente deslizas la comida debajo de la puerta mientras él resuelve todos los problemas. Este tipo fue referenciado en “The Mythical Man-month”. Él es inútil para mí.

  4. Una persona que se preocupa lo suficiente por escribir un código robusto : no es difícil hacer las cosas simples necesarias para hacer un código promedio, un buen código. Escribe un código defensivo. Usa buenos nombres de variables. ¡Haga que una función haga UNA cosa por el amor de Dios! Validar entradas. Nunca asumas que las cosas no pueden suceder solo porque el 99% de las veces no sucederán.

Hombre, he seguido. Pero lo hice porque me apasiona. He estado haciendo esto durante 30 años y todavía me encanta. Mira mis respuestas. Los escribo porque me encanta. ¿Por qué otra razón estaría sentado frente a mi computadora en un código de escritura del sábado por la noche que no tengo que escribir? Mi IDE casi siempre está abierto en la computadora de mi casa, listo para preparar algo.

¿Por qué los graduados de CS no pasan entrevistas de codificación?

Porque no aman lo mismo en lo que se han educado. No les apasiona.

Tengo dos líneas diferentes de pensamientos sobre esto.

La primera es que soy escéptico sobre la forma en que a menudo se realizan las entrevistas de codificación. A menudo son intentos de hacer que los estudiantes revelen un poco de conocimiento bastante ingenioso que es más parecido a un rompecabezas que a la programación real.

Por ejemplo, un sitio web sugiere esto como una posible pregunta de entrevista de codificación:

Ordenar una matriz de 0s, 1s y 2s | Práctica | GeeksforGeeks

Escriba un programa para ordenar una matriz de 0, 1 y 2 en orden ascendente.

Preguntas como esta me molestan. Mi cerebro me dice que puedes resolver este problema en tiempo lineal sin ningún tipo de clasificación. Simplemente cuente el número de ceros, unos o dos, y luego imprima el número apropiado de cada uno. Auge.

Pero creo que es una pregunta tonta. En primer lugar, parece artificial. ¿Solo 0, 1 o 2? ¿Estás seguro de que en algún momento el rango no se expandirá? El caso 0, 1, 2 sugiere que quizás solo mantengas tres contadores como variables diferentes. Pero si pudiera expandirse, quizás podría usar una matriz para almacenar los recuentos, utilizando básicamente una clasificación de radix. ¿Vale la pena codificar uno? En un lenguaje de nivel superior como Python, ¿sería más conveniente simplemente usar sort () para ordenar los elementos? ¿Este código forma la ruta crítica de su programa? ¿Qué tan grande es la matriz? Si es grande, ¿no sería mejor mantener los recuentos a medida que avanza, en lugar de almacenar esta matriz bastante redundante? O si lleva elementos de datos asociados con cada valor, ¿esto no hace que todo este intento de inteligencia sea discutible?

Tal vez piense que mi discusión sobre este tema es exactamente lo que un candidato debería poder decir durante una entrevista. Pero ciertamente conocí a otros programadores (incluso buenos) que probablemente no estarían de acuerdo y tendrían algún conjunto de “respuestas correctas” que estaban buscando. Y dado que la pregunta de programación probablemente no refleje el tipo de código que su candidato realmente escribirá, no estoy seguro de que sacar conclusiones basadas en sus impresiones (o francamente mías) sea una estrategia significativa.

Pero dicho eso …

La mayoría de las personas que acaban de obtener su BS no pueden concretar una entrevista de programación porque una gran cantidad de ellas en realidad no ha pasado tanto tiempo programando. Como la mayoría de las habilidades, básicamente aprendes a programar escribiendo programas. Aprende a depurar código depurando código. Aprende a trabajar en equipos con otros programadores al estar realmente en equipos con otros programadores. No hay un atajo real. Sí, puede comenzar bien las cosas con cursos y bootcamps. Pero desarrollar experiencia y destreza reales requiere tiempo y experiencia, y muy pocos graduados habrán invertido suficientes cantidades, incluso si son estudiantes razonablemente buenos.

La universidad te enseña muchas cosas valiosas sobre informática, pero la programación es una habilidad que requiere práctica.

Peter Norvig escribió un buen ensayo que resume muchos de los problemas y presenta algunas ideas sobre cómo puede convertirse en un buen programador.

Enseñate a ti mismo a programar en diez años

La entrevista es definitivamente una habilidad en sí misma, por lo que las personas necesitan practicar si desean obtener puestos en empresas altamente competitivas.

La razón principal por la cual muchos graduados universitarios recientes con experiencia en CS no pueden aprobar una entrevista de codificación es porque no han dominado el arte de las entrevistas.

La codificación de entrevistas es una excelente manera para que el entrevistador entienda cómo piensa y colabora con los demás.

Si bien es importante obtener la respuesta correcta, los entrevistadores valoran cómo aborda los problemas.

He oído hablar de muchos casos en los que los entrevistadores permitieron que el entrevistado se llevara el problema a casa para resolverlo y terminaron recibiendo una oferta.

Además de comprender cómo resolver los desafíos de codificación, debe ser bueno para venderse.

Muchos ingenieros extremadamente talentosos son muy modestos cuando hablan de sus logros pasados, lo que hace que algunos entrevistadores juzguen mal sus capacidades.

Hay una gran diferencia entre ser engreído y tener confianza.

Destaque sus puntos fuertes y el valor que aporta al equipo porque los entrevistadores solo saben tanto como usted les dice.

¡Recuerde practicar siempre y siempre mantenga la cabeza en alto!

Ayudar a las personas con un BS en Ciencias de la Computación a pasar entrevistas de codificación es una de las principales razones por las que comencé Outco. Outco tiene como objetivo dar a los ingenieros de software la ventaja para ayudarlos a conseguir el trabajo de sus sueños.

La mayoría de las personas a las que he visto entrevistar y quemar por completo en los últimos 12 meses han sido lo que llamaré “niños del guión”: graduados que prestaron suficiente atención para aprobar sus tareas, pero no lo suficiente como para comprender realmente lo que eran. aprendizaje. Entonces, cuando llegaron al “mundo real” o al “mercado laboral real”, aprendieron suficiente jQuery para superar el obstáculo del currículum y entrar en una habitación con un humano de carne y hueso, que luego los sometió a una entrevista Javascript completa los sopló fuera del agua.

En resumen: presta atención. Conoce tu mierda Los desarrolladores en el proceso de contratación pueden oler su insuficiencia. Puede engañar a RRHH, pero no puede engañar a las personas que han estado creando aplicaciones reales durante los 5 a 10 años.

Muchas universidades de cuatro años se concentran en la teoría. No se concentran en la estructura real del lenguaje de codificación.

Muchos estudiantes participan solo para el grado. Hacen lo que necesitan para completar y asignar y nada más. No hacen ningún intento de aprender habilidades adicionales fuera del aula.

El aprendizaje es un proceso que dura toda la vida, especialmente en TI, los profesionales de TI exitosos siempre están aprendiendo nuevas habilidades por su cuenta. Los estudiantes necesitan hacer lo mismo. El contenido en el aula no puede seguir la última y mejor herramienta. Se necesita tiempo para cambiar un plan de estudios. Además, lo que un estudiante aprendió como estudiante de primer año podría estar desactualizado para cuando se gradúe.

Los estudiantes deben codificar tanto como sea posible más allá de los requisitos de la clase para ayudarlos a destacarse en una entrevista.

No estoy seguro de que la afirmación sea cierta. ¿Es este un intento de promover los campamentos de entrenamiento?

Por lo que recuerdo, un título en informática tiene como objetivo producir científicos informáticos en lugar de programadores. Lo que aún debería ser cierto. Yo tampoco cambiaría nada. Mi profesor de CS 101 me dijo rotundamente que él no enseña C, pero los principios de programación en C. El programa de pregrado generalmente los enseñan profesores de CS que tienen más experiencia en investigación que experiencia en la industria para que pueda entender el gravitación hacia la enseñanza de los fundamentos y la preparación de los estudiantes para la educación de posgrado.

Admití que tuve problemas para codificar entrevistas después de la graduación porque las entrevistas eran para Java, mientras que solo había aprendido C en la escuela. En algunas entrevistas, ni siquiera pude hacer una clasificación adecuada porque no recordaba las rutinas de clasificación que aprendí en el segundo año dos años antes. Todas mis clases de 400 niveles no tenían tanta programación como en Ingeniería de Software / Sistemas operativos / Algoritmos. Así que hubo una brecha de dos años en la codificación casi.

Después de un par de malas entrevistas, me di cuenta de que tenía que ir a los libros para repasar los idiomas. Estaba feliz de que finalmente pasé mi primera entrevista. Sin embargo, nunca conseguí un trabajo en Java durante años, porque pensé que fracasé en los primeros fuera de la escuela. Sin embargo, años más tarde, finalmente asumí que era un experto en Java y encontré un trabajo en Java. Y ahora conozco Java que muchos de los llamados ingenieros / arquitectos senior de Java.

Un par de cosas que me llevé. El fracaso conduce al éxito. Cuando fallas temprano, aprendes una sensación de humildad y trabajas más duro para concentrarte. Solo recuerda la historia de Tom Brady, quien lloró por ser reclutado bajo en el draft del 2000. Mira dónde está ahora. Las primeras entrevistas de codificación no predicen el éxito posterior

Creo que codificar entrevistas puede ser una farsa. Pueden usarse como excusas para eliminar a las personas que no les gustan. He visto a personas lanzar preguntas difíciles ridículas para hacer que la gente se vea mal. Luego se dan la vuelta y contratan personas que no cumplen con los mismos estándares. Muchos programadores de medicore fueron contratados por conocer a alguien o incluso por su apariencia. Sucede en todas partes. Nunca tomes una mala entrevista de codificación arruinando un buen día.

Debido a que un BS en compsci solo lo ayudará si se ayuda a sí mismo, de lo contrario, ¡felicidades por unirse al inútil club de la deuda! (Yo NO incluido).

La informática, como cualquier STEM, es extremadamente amplia, incluso más que otras grandes especializaciones. 4 años de 30 horas a la semana no es MIERDA cuando se trata de crear una base para una carrera de 40 años en el campo más amplio de la tierra. Pero si realmente te interesan las ciencias de la computación, las 30 horas a la semana de un experto que te enseña y te asigna tareas es un excelente, si no el mejor, complemento para tus proyectos personales y tu trabajo externo, y te ayudará a guiarte hacia tu nicho en software ya sea seguridad o desarrollo web o lo que sea.

Un BS en compsci te preparará un poco más que codecademy. Obviamente, el título es más completo que la codecademy, pero ambas son herramientas de aprendizaje útiles que aún requieren que llenes enormes brechas en tu educación por tu cuenta antes de estar listo para el trabajo. Sin embargo, la habilidad para llenar huecos realmente es una de las más importantes en ingeniería, por lo que tal vez sea algo por diseño.

Estudié Prótesis y Ortesis en Uni graduándome con honores de segunda clase. No brillante pero contento de haber perseverado para obtener el título. La razón por la que no lo hice mejor fue porque a mitad del curso me di cuenta de que no quería hacer esto como trabajo. Desde mediados del año 2 comencé a estudiar .net con gran pasión y entusiasmo mientras seguía presionando mi curso. Ahora son 15 años después y todavía estoy tan entusiasmado y entusiasmado con la programación que el primer día que abrí un libro de desarrollo. Así que soy completamente autodidacta y me las he arreglado para vivir de la programación a lo largo de los años.

En mi opinión, si un desarrollador no puede ser proactivo en el aprendizaje solo sin que nadie lo alimente con cuchara, entonces carece de un requisito vital, especialmente en este día moderno de información y capacitación en línea accesible. ¡No hay excusa para no aprender realmente porque todo está ahí!

Estudiar para aprobar un examen es una mentalidad totalmente diferente de estudiar con pasión para dominar su oficio. Ser un buen desarrollador es ser capaz de pensar fuera de la caja y leer leer leer y aprender aprender de un amplio espectro de fuentes y codificar el código de código porque lo desea, no porque lo necesite.

Cuanto más aprendo, más me doy cuenta de cuánto hay que aprender. Parece que nunca termina, pero eso es lo que hace que el desarrollo sea tan interesante y desafiante. \ U0001f60a

Los grados en informática se centran en la teoría y la base, las entrevistas de codificación se centran en habilidades prácticas.

Los títulos de CS son otorgados por grandes y pesadas instituciones que no tienen la esperanza de mantenerse al día con la tasa vertiginosa de cambio en las tecnologías y marcos de desarrollo. Entonces, en cambio, le enseñan a pensar como un científico de la computación y otros fundamentos útiles en temas tales como sistemas operativos, compiladores, estructuras de datos, algoritmos, teoría, arquitectura de computadoras, etc. Aprender las cosas prácticas depende de usted; Es por eso que los proyectos paralelos son críticos. La codificación de entrevistas también requiere una práctica específica, porque hacen ciertos tipos de preguntas, que a menudo involucran estructuras de datos, algoritmos y habilidades para resolver problemas. Reconocer que necesita tomar esos pasos adicionales, independientemente de su título, es fundamental.

Existe una gran discrepancia entre el contenido que se enseña en las salas de conferencias universitarias y lo que se espera en una entrevista de codificación. En un entorno universitario, el énfasis está en la teoría y las tareas que son fáciles de calificar para los profesores, no en proyectos complejos que reflejan con precisión el trabajo del mundo real de TI. Debido a la naturaleza exigente de sus cursos, muchos estudiantes de ingeniería y ciencias de la computación no dedican mucho tiempo fuera de completar las tareas y estudiar para los exámenes para practicar código o realizar pasantías o trabajos a tiempo parcial que les darían experiencia en codificación. La vida social y otras experiencias universitarias, además de obtener buenas calificaciones, tienen prioridad sobre la experiencia laboral. Esto es solo un hecho, la mayoría de los estudiantes no van a pasar su precioso tiempo libre practicando codificación si sus clases no lo exigen. Pasar tiempo con amigos y hacer los “recuerdos universitarios” por excelencia son más importantes.

Esto está cambiando lentamente, ya que algunas actitudes hacia la importancia que realmente tiene un título universitario en lo que respecta a TI, pero por ahora, es un problema que enfrentan los gerentes de contratación que buscan incorporar a los recién graduados.

Una buena manera para que los estudiantes que trabajan en su BS en CompSci o graduados recientes para aumentar su ventaja competitiva al solicitar trabajo es practicar la codificación de entrevistas y codificación en su tiempo libre. Las plataformas en línea como Pramp y InterviewCake son recursos fantásticos para esto. Pueden escribir código en diferentes idiomas, identificar con qué partes luchan más, recibir comentarios de otra persona y ver una entrevista grabada de ellos mismos. Esto puede mejorar drásticamente su desempeño en una entrevista de codificación para su primer trabajo posterior a la graduación.

para mí es bastante obvio y está directamente relacionado con todas estas preguntas “¿por qué necesito CS para conseguir un trabajo?” También está directamente relacionado con las quejas sobre las entrevistas en la pizarra. La gran mayoría de los estudiantes universitarios que estudian CS simplemente no están preparados para ello. No tienen la curiosidad ni la determinación. Quiero ser claro, que de ninguna manera estoy juzgando a estas personas … miren, todos son diferentes y las personas necesitan trabajo. Un título de CS de una escuela decente probablemente te llevará de una forma u otra.

Sin embargo, tienden a copiar todas sus tareas, y no tomar clases que son “difíciles” o tienen exámenes de alto riesgo. Lo creas o no, la academia ha estructurado sus departamentos de CS de una manera tan esquizofrénica, que realmente no hay forma de saber de una transcripción si esta persona es curiosa y persistente y le encanta pensar en problemas difíciles, o si simplemente se deslizaron tomando Clases fáciles.

Muchos graduados de CS no pueden pasar una entrevista algorítmica porque no tomaron la clase de algoritmos o no la entendieron. Muchos estudiantes no pueden escribir un árbol de búsqueda binaria equilibrado (no es que este sea un buen problema de entrevista) porque en realidad no atravesaron el dolor y las noches, lo hicieron ellos mismos, descubrieron cómo funcionan los punteros, etc., cuando tuvieron una oportunidad en su clase , y en su lugar solo lo copié de un amigo.

Oye, es un mundo difícil, la gente necesita sobrevivir y no todos tienen que ser científicos informáticos o buenos programadores. Sin embargo, es un poco molesto que haya tanta ‘pulpa’ flotando alrededor que puede ser un poco oneroso para el resto de nosotros, que siempre necesitamos “ayudarnos” y, literalmente, demostrar que tenemos las chuletas para obtener un trabajo, incluso cuando tienes años y años de experiencia relevante.

Por otro lado, honestamente, nunca quiero trabajar con alguien (tuve que hacerlo una vez … estremecerme) que no sabe qué es un árbol de búsqueda binario.

Hay una serie de razones: primero, los planes de estudio de CS (con razón, en mi opinión) no enfatizan las tecnologías de moda, sino que se centran en una sólida base en los principios. Las pilas de tecnología y la moda del lenguaje cambian tan rápidamente que no tiene sentido. Quizás un aprendizaje para posibles codificadores los expondría a las herramientas que necesitan para ponerse al día. Quizás.

El verdadero problema probablemente radica en los entrevistadores. Los entrevistadores de software en general no son conocidos por su habilidad para elegir candidatos de cualquier nivel de experiencia. Sospecho que hay una buena cantidad de ego involucrado. Una de las cosas sorprendentes sobre el desarrollo de software es que no necesitas un título para prosperar en la carrera, pero sospecho que las personas sin títulos están amenazadas por los graduados. Combine esto con la falta de experiencia en la entrevista de la mayoría de los graduados, y tiene la tormenta perfecta: falta de empatía, egos amenazados y el hecho de que la entrevista técnica es un desastre en el mejor de los casos, y no es sorprendente en absoluto Los recién graduados tienen dificultades para conseguir sus primeros trabajos.

Me siento calificado para responder a esto, después de graduarme (literalmente hace un par de semanas) con mi BS como estudiante a tiempo parcial, desarrollador a tiempo completo:

El problema radica en la desconexión entre la teoría de la enseñanza y la aplicación del mundo real de esas teorías.

La teoría del aprendizaje es fundamental, pero los profesores a menudo estructuran las tareas de tal manera que los estudiantes trabajan continuamente para completar los proyectos.

Estos proyectos pueden ser buenos para enseñar un concepto de alto nivel como el recorrido de gráficos, pero, en mi caso, nunca se discute realmente la aplicación real de este concepto. En cambio, se lo pidieron al alumno para que comprenda por qué es importante saber un concepto en particular (fuera de las preguntas de la entrevista de la pizarra).

Si el estudiante no tiene la iniciativa de aprender esto por su cuenta, tendrá dificultades para poner en práctica la teoría, por lo que fracasarán en las entrevistas.

También hay una tendencia de los maestros a proporcionar información a los estudiantes para ayudarlos a completar el proyecto para una calificación aprobatoria, lo que simplemente no sucederá en las entrevistas del mundo real.

He tenido la suerte de tener varios profesores que insisten en obligar a los estudiantes a encontrar las respuestas por su cuenta a través de insinuantes indicios vagos. Es posible que haya pasado horas reflexionando y quejándome sobre las respuestas de una sola oración de los profesores sobre un problema particularmente difícil, pero siento que me ha beneficiado a la larga.

No estoy seguro de comprar que la mayoría de las personas que acaban de obtener un BS no pueden pasar una entrevista de codificación.

Sin embargo, si esto es cierto, sospecharía ante todo sus habilidades de entrevista. Se necesita tiempo para desarrollar habilidades de entrevista, especialmente para entrevistas técnicas. Es más que saber codificar, es saber colaborar en el entorno antinatural que proporciona una entrevista. Es poder pensar sobre sus pies bajo estrés y narrar lo que hasta entonces ha sido una actividad en solitario en gran parte silenciosa.

La segunda cosa que sospecharía es que las personas no pasan suficiente tiempo haciendo sus propios proyectos en CS en la universidad. La universidad es, entre otras cosas, una gran oportunidad para profundizar en las cosas y aprender lo que quieras. Es una gran oportunidad de obtener miles de horas de experiencia en programación, si tiene la motivación para hacerlo.

En cualquier caso, me encantaría ver algunas estadísticas que comparan la tasa de éxito de los nuevos graduados en entrevistas ahora vs. hace 25 años. Me sorprendería si cambiara mucho.

La mayoría de los institutos educativos solo reciben dinero de los estudiantes en estos días y esperan que aprendan la mayoría del aprendizaje a través de lo que llaman (Aprendizaje autodirigido o SDL). Ahora se espera que los estudiantes pongan la mitad del tiempo del curso en SDL sin tanta orientación del tutor o instituto.

Muchos de los cursos obligatorios en un título no tienen nada que ver con el área particular que un estudiante desea estudiar, sin embargo, se ven obligados a tomar estos documentos obligatorios como parte del título.

La mayoría de las cosas que un estudiante sabe se debe a su propio aprendizaje autodirigido y su disposición a aprender.

Puedo hablar por experiencia, ya que estoy en mi último año de estudios en informática.

EDITAR: De acuerdo con una respuesta anterior con respecto a las presentaciones de PowerPoint de 60 páginas, la mayoría de las páginas que son tediosas e irrelevantes, como la historia de un cierto aspecto.

Con mi experiencia, diría que faltaría conocimiento práctico para la mayoría de ellos. Leer teoría y responder preguntas teóricas en los exámenes universitarios no es la medida de la practicidad.

Como estudiante de ingeniería, la practicidad es muy importante. Es como leer, observar las mejores prácticas sobre cómo nadan las personas pero no meterse en la piscina.

Las personas que hacen cosas, se ensucian las manos tendrán mucho más conocimiento práctico y están más en forma para hacer las cosas.

More Interesting

¿Por qué fallaste en tu entrevista técnica de software?

¿Qué tipo de preguntas se hacen en la primera prueba escrita de Barclays?

¿Cómo evitan los programadores las líneas de código de más de 80 caracteres?

¿Cuáles son algunas de las preguntas importantes de la entrevista técnica relacionadas con la estructura de datos del montón?

Mientras codifica en una pizarra blanca durante una entrevista, ¿está bien usar nombres de variables cortos y / o sin sentido?

¿Cuáles son las preguntas que uno podría esperar al entrevistar para un rol de "Evangelista de plataforma de desarrollador" en Microsoft?

¿Cuáles son las buenas preguntas de la entrevista técnica de Google?

¿Cuál según usted debería ser una buena manera de contratar programadores?

En una entrevista técnica, ¿debo implementar las estructuras de datos auxiliares o usarlas de la biblioteca estándar?

En entrevistas tecnológicas, ¿cómo podemos escribir un código que sea limpio, conciso, optimizado en tiempo y espacio y que cubra todos los casos básicos y de borde de una vez?

Programación de acertijos: Te dan n dados cada uno con caras numeradas del 1 al m. Lanzas los n dados y anotas la suma de los números en los n dados. Te dan un número x. Considérelo una ganancia si la suma obtenida es mayor que x. Encuentre la probabilidad de ganar dado n, m y x.

Cómo mejorar mi proceso de pensamiento para las entrevistas de codificación

¿Por qué hay una gran diferencia entre las preguntas de algoritmos en una entrevista técnica y el desarrollo de software real?

¿Las personas con experiencia se prepararán mucho para las entrevistas? En caso afirmativo, ¿qué tipo de habilidades buscan las empresas en los ingenieros superiores frente a los de primer año?

Le dije a mi reclutador que me gustaría usar C ++ en mi entrevista técnica para un puesto de ingeniero de software general. Dado que la compañía también usa Java, ¿está bien cambiar de idioma durante la entrevista, dependiendo de la pregunta, si es más claro / más rápido para la pizarra?