¿Por qué estoy fallando en las entrevistas? He estado programando durante 2 años ahora. En las entrevistas no pude resolver problemas como ‘verificar si la matriz es única’. Leo muchos libros de programación, pero no veo progreso.

Primero, un descargo de responsabilidad:

Cada vez que una entrevista sale mal, es tentador encontrar una sola cosa que dijo o hizo, apúntela y diga “¡Eso es! Eso fue lo que salió mal”, pero debe revisar la experiencia en su conjunto:

¿Qué sucedió en los primeros minutos (uno de los momentos clave de formación de opinión)?
¿Qué tan nervioso estabas? (tenga en cuenta que algunos nervios son de esperar)
¿Cuánto afectaron tus nervios a tu comportamiento?
¿Cómo fue la conversación? ¿Fluyó, fue forzado?
¿Siente que el papel que estaba desempeñando fue un poco difícil o estaba un poco por debajo de lo que cree que debería poder hacer?
¿Se impresionaron los entrevistadores por otras cosas que usted dijo?
¿Te investigaron mucho en algo en particular?
¿Tu CV era demasiado prometedor?
Según lo que dijiste e hiciste, ¿cómo crees que estos completos desconocidos describirían tu personalidad?

Ahora, a la respuesta a su pregunta específica:

En lugar de leer libros de programación diariamente, le sugiero que pase ese tiempo practicando la resolución de problemas básicos, idealmente divertidos. Quedarse atascado no es un gran problema, cada vez que se topa con problemas, tómese un poco de tiempo para pensarlo (diría que medio día mínimo). Si todavía está atascado, conéctese y vea cómo otras personas lo abordan. Independientemente de cómo lo resuelva, debe reflexionar sobre lo que podría haberlo hecho quedar atrapado. ¿Fue por falta de conocimiento? ¿Se estaba centrando en una solución e ignorando una “mejor”? ¿Fue una optimización prematura (la raíz de todo mal)? ¿Estaba malinterpretando lo que se pedía?

En un entorno profesional, un buen algoritmo no será suficiente y le recomendaría que intente hacer que su código sea lo más legible posible mientras realiza estos ejercicios. Asegúrese de apegarse a las prácticas de codificación estándar de cualquier idioma (s) que esté utilizando y comente a fondo. “Escriba comentarios como si la siguiente persona en leer su código fuera un maníaco homicida que conoce la dirección de su casa”, citando a uno de mis antiguos colegas.

De todos modos, aquí hay algunas fuentes de problemas de práctica de codificación que estoy usando actualmente:

Advenimiento del código: te da un problema de dos partes para resolver cada día hasta Navidad, tendrás que hacer un poco de análisis de lo que se pide.

CodeKata: La idea de Code Kata me pareció bastante atractiva cuando escuché por primera vez sobre ellos, pero ahora parecen un poco innecesariamente rituales. Aún así, los problemas al final del artículo son una buena práctica.

Además, si no está contribuyendo a un proyecto de código abierto, le recomiendo encontrar uno. Esto le dará la práctica de trabajar en un equipo de desarrolladores, pruebas, tutorías, etc., así como la práctica de codificación mencionada anteriormente. También se ve muy bien en un CV.

Como entrevistador, generalmente buscamos competencia en estas áreas:

  1. Estructuras de datos ¿Conoce sus conceptos básicos sobre elementos como matrices, listas, conjuntos, mapas y gráficos y árboles? Sepa cuándo usarlos y sus propiedades básicas de tiempo de ejecución.
  2. Algoritmos Comprensión de algoritmos básicos para cada una de las estructuras de datos que describí, como mínimo.
  3. Habilidades para resolver problemas ¿Puede tomar un problema y resolverlo utilizando los algoritmos y las estructuras de datos anteriores.
  4. Codificación Una vez que haya encontrado una solución, ¿puede traducirla en código?
  5. Diseño del sistema Para puestos más altos, también queremos saber qué tan bien puede diseñar sistemas complejos para que sean robustos, utilizando patrones bien conocidos y mejores prácticas aceptadas.

También hay otras áreas, como sistemas distribuidos, diseño de bases de datos, teoría del sistema operativo y programación de concurrencia que también pueden quedar cubiertas. Pero las 5 cosas anteriores son una visión general muy amplia de lo que buscan la mayoría de las entrevistas.

No estoy seguro de lo que quieres decir con programación de libros, precisamente. ¿Son estos libros de algoritmos, o libros que le enseñan las características de un marco particular / lenguaje de programación? Si es lo último, sospecho que carece de capacitación en los fundamentos de la informática. Eso es lo que te enseñarán 4 años de universidad en CS .

Para ser completamente honesto, encontrar números duplicados en una matriz es un ejercicio de inicio / calentamiento. Sería parte 1 de un problema multiparte. El propósito de tener esta parte es tranquilizar al entrevistado, ya que esperaría que cualquiera con un título de CS pueda resolver esto en cuestión de minutos. Entonces, el hecho de que no puedas sería una gran bandera roja. Si tuviera que hacer esta pregunta, sería algo como esto:

  1. Determine si una matriz contiene entradas duplicadas.
  2. Ahora, ¿qué pasa si la matriz es muy grande y se tuvo que distribuir entre varias máquinas?
  3. ¿Qué sucede si la conexión de red entre estas máquinas es propensa a fallas?
  4. ¿Qué pasa si el hardware en sí no es 100% confiable y ocasionalmente puede dar respuestas incorrectas?
  5. Diseñe un sistema para que múltiples usuarios simultáneos necesiten actualizar esta matriz, mientras que usted necesita mantener la unicidad de sus entradas.

Debido a que dijiste que no podías resolver este problema, por eso sospecho que te falta capacitación en algoritmos y estructuras de datos. Te sugiero encarecidamente que consideres terminar tu título de CS. Hacerlo no significa necesariamente que no pueda trabajar en su aplicación al mismo tiempo.

Todos tienen diferentes habilidades y las personas crecen a ritmos diferentes en diferentes momentos de su carrera. Preparar y descifrar una entrevista es un proceso lento y muchas veces también implica un poco de suerte.

Cosas que puedes hacer para mejorar.

  1. Medida: siempre debe poder medir su progreso si siente que no va a ir a ninguna parte a pesar de poner todo el esfuerzo. Ejemplo: InterviewBit te registra cuando estás trabajando en un problema de programación. Intente escribir el código en un entorno no ide, péguelo en un IDE después de completar y cuente la cantidad de error de sintaxis que cometió.
  2. Entrevistas simuladas: muchas veces tener un amigo que te dé una entrevista simulada y una retroalimentación honesta ayuda. Además, realizar entrevistas a otros (por ejemplo, tu amigo) te da una perspectiva de lo que las personas del otro lado de la mesa buscan en un candidato.
  3. Habilidades de comunicación: a veces, pueden faltar habilidades de comunicación. Como parece que trabajó solo en su aplicación, puede faltar transmitir ideas de manera formal que otros entiendan.
  4. Consejos para la entrevista: la mayoría de nosotros no trabajamos en el mundo real de la manera que espera un entrevistador. Por ejemplo, en una entrevista, debe comenzar haciendo preguntas aclaratorias y no asumir nada, mencionar todos los enfoques que pueda pensar junto con su eficiencia y pros y contras, casos de prueba que cubran todos los escenarios, código de trabajo adecuado y luego realizar un seguimiento para garantizar todos los casos de prueba que se te ocurrieron pasaron.

Lo más importante, trate de disfrutar todo el proceso. Es más fácil decirlo que hacerlo. Cada vez que estoy entrevistando, recuerdo la cita de Jim Carrey de Kick-Ass 2 que dice algo así como …… “Trataremos de divertirnos, de lo contrario, cuál es el punto”.

Abandonar es una bandera roja. Estoy de acuerdo en que el sistema no es perfecto y tiene fallas. El plan de estudios no está actualizado y necesita revisión. Pero esto no significa que deba dejar de fumar y creer que está listo para los problemas del mundo real.

En el lado positivo, solo tiene 20 años y puede permitirse cometer errores. Pero solo son útiles si aprendes de ellos. Ahora en sus habilidades, si no puede verificar si la matriz es única o no, explica claramente que no está listo en absoluto. Olvídate de entrevistas o hacer aplicaciones. Simplemente no estás listo todavía.

Simplemente crees que lees libros de programación. Pero hay una gran diferencia en un libro y un buen libro. Necesitas revisar tus fuentes y leer buenos libros sobre programación definitivamente te ayudará. Introducción a los algoritmos es un libro realmente bueno. Si puede leer y resolver problemas solo en este libro. Esto mejorará mucho tus habilidades. Y este libro solo te llevará más de un año si profundizas en él. También le hará darse cuenta de cuánto hay que aprender sobre algoritmos y estructuras de datos.

“¿Pero quiero ser contratado o crear algunas aplicaciones geniales?”

Pero para esto necesitas aprender habilidades que necesitas para hacer el trabajo. Sus opciones son intentar volver a la universidad o la universidad y estudiar CS. aprenda todo lo que pueda y luego vuelva a intentar entrevistas.

Otra opción es comenzar a tomar MOOC’s. Hay mucho que uno puede aprender de los MOOC. Coursera, Udacity, EDX son las mejores fuentes. Pero necesita más compromiso consigo mismo para terminar los cursos en línea.

Practique habilidades de resolución de problemas en sitios como codeforces, topcoder. Sugeriré hackerrank como bueno para principiantes.

Leer buenos libros sobre CS. Si no está seguro, pregunte a otras personas como “¿qué es un buen libro sobre orientación a objetos?” O busque en quora (ya hay muchas buenas recomendaciones).

Realice proyectos paralelos en el tiempo libre para practicar lo que aprendió. Crea una cuenta en github si aún no lo has hecho. Y suba algunos ejemplos de trabajos.

El trabajo duro definitivamente paga. Solo sigue aprendiendo.

Dos cosas necesitan ser discutidas,

En primer lugar, asistir a la universidad no es perder el tiempo. Por el contrario, le ayuda a comprender los conocimientos fundamentales necesarios y, lo que es más importante, la metodología de aprendizaje. Una vez que ingrese al mundo real de la industria, se dará cuenta de que la mayor parte del conocimiento que ha aprendido en la universidad es inútil, pero de la experiencia de aprender ese conocimiento inútil, aprendió a aprender. Hasta donde usted conoce esos métodos, es muy fácil adquirir una nueva habilidad. Usted mencionó que ha leído muchos libros pero que aún no puede resolver los problemas. Aquí está el por qué. Conoces A, pero no puedes obtener A ‘por ti mismo. Los entrevistadores no se preocupan por cuánto has aprendido, sino por cuánto y qué tan rápido puedes aprender en el futuro. Esa es una de las principales razones por las que ha sido rechazado.

En segundo lugar, no hay muchas personas que puedan tener éxito sin tener un grado decente. Bill Gates y Mark Zuckerberg son la excepción, pero debes saber que abandonaron la universidad de Harvard, lo que significa que tenían talento. Si abandonaste algunas universidades “nunca escuchadas”, mi sugerencia es ir a la universidad lo antes posible. Por otro lado, Bill y Mark son extremadamente afortunados, no importa crecer en una familia “correcta” o vivir en una era “buena” (lea un libro que presenta el desarrollo de dos compañías, y comprenderá el significado aquí), su éxito no solo se basa en su talento y trabajo duro, sino también en muchos aspectos impredecibles. Por lo tanto, debe comprender que hay muchos riesgos que debe tener en cuenta antes de abandonar la universidad y comenzar su carrera.

No pudo resolver una pregunta de codificación muy simple en su entrevista. Sin entrar en ninguno de los otros aspectos de su candidatura, eso solo es suficiente para que lo rechacen.

Las empresas quieren personas que sean buenas para escribir código. Si no puede resolver una pregunta tan básica, no es bueno escribiendo código. Lo siento.

A menudo, la falta de progreso es la falta de una metodología de aprendizaje efectiva, así que no se desanime demasiado si no está progresando, solo significa que tiene que cambiar la forma en que se acerca al aprendizaje del tema.

La programación se aprende principalmente a través del trabajo en proyectos. Sin embargo, parece que lo intentaste trabajando en una aplicación. Si eso no lo ha ayudado a adquirir una capacidad de programación significativa, tal vez lo estaba intentando antes de estar listo, tal vez antes de comprender los conceptos básicos de programación.

Recomendaría pasar por algunos cursos introductorios (y luego de nivel superior) de CS. No tiene que volver a la escuela si no quiere; puede encontrar los materiales del curso en línea.

Voy a ir a Anónimo aquí por mi propia cordura, pero probablemente daré suficientes detalles para descubrirme de todos modos.

Cuando tenía 20 años, ya había abandonado tres universidades diferentes. La primera fue una verdadera universidad, en la que decidí ser estudiante de arte porque había ganado varios concursos regionales de arte en la escuela secundaria. Mi novia de la secundaria dejó una beca completa para seguirme por todo el país, luego casi se suicidó. Descubrí que no podía vivir con un extraño y experimenté ansiedad extrema y temblores al estilo de Temple Grandin donde golpeé repetidamente mi cabeza contra los postes de la cama y necesitaba una caja de confort para calmarme. Las dos últimas universidades eran universidades comunitarias donde solo me estaba registrando para las clases para seguir siendo elegible para el seguro de salud bajo el plan de mi padre, pero las abandoné y las escuelas finalmente me echaron por retiros excesivos.

Dentro de otro año, estaba viviendo con mi mejor amigo de la escuela secundaria y otras dos personas en un apartamento de dos habitaciones y uno de nuestros compañeros de cuarto se volvió adicto a la metanfetamina, comenzó a invitar a amigos drogadictos sobre quién destruyó el lugar, y nos rompieron el contrato de arrendamiento. . Fui despedido de un trabajo por hora al mismo tiempo y estaba demasiado avergonzado para pedirles a mis padres que me llevaran de regreso, así que estuve sin hogar durante unas semanas hasta que decidí obtener un boleto de tren a la costa este y comenzar un viaje por completo. nueva vida. Llegué al fondo cuando fallé en una entrevista de trabajo en la que intentaba convertirme en conserje de turno de cementerio. ¿Crees que es un duro golpe para tu autoestima que te rechacen por un concierto de desarrollador? Intenta rogarle a alguien que te permita limpiar la mierda de un inodoro en medio de la noche por un salario mínimo y ni siquiera piensan que eres lo suficientemente bueno para eso.

Muchos años después, ahora soy un ingeniero de software bastante rico. En aquel entonces, nunca había tocado una computadora, excepto para descargar imágenes pornográficas de Internet. No voy a dar una guía práctica. Esta ni siquiera era mi primera opción para saber qué hacer. De hecho, me uní al ejército, pero tuve que irme después de unos años debido a lesiones crónicas en la espalda. He fallado en la vida tantas veces, de muchas maneras únicas. Mi punto de decirles que esto es 1) es catártico, y 2) 20 años es demasiado temprano para declararse hecho. No tienes idea de lo que harás en una década. Quizás descubras estructurar mejor tu aprendizaje y ser más empleado como desarrollador de software. Quizás vuelvas a la escuela. Tal vez estarás haciendo algo completamente ajeno. Nunca me vi a mí mismo liderando hombres en combate cuando tenía 20 años (el 11 de septiembre aún no había sucedido) y nunca consideré la posibilidad de terminar trabajando en software.

Por cierto, mi amigo de la época que fue expulsado del viejo departamento conmigo se mudó a Los Ángeles desde Virginia Occidental, llevando todo lo que poseía en una camioneta, decidido a convertirse en escritor. Lo visité hace cuatro años y él había enmarcado un cheque por $ 500 de unos meses antes que representaba la primera vez en su vida, más de una década después, que alguien finalmente le pagó para que escribiera algo. Ganó un Emmy un año después y ahora es un escritor de televisión bastante rico.

Es posible que haya oído hablar de la historia de Bill Gate de abandonar Harvard y convertirse en la persona más rica del mundo.

Sin embargo, hay más detrás de escena.

  1. La madre de Bill, Mary Maxwell Gates, le presentó al CEO de IBM en ese momento, e IBM decidió contratar a Microsoft, una pequeña empresa entonces, para desarrollar el sistema operativo para su primera PC.
  2. Cuando Bill abandonó Harvard, había tomado suficientes cursos para graduarse y adquirió, si no más, tanto conocimiento como otros graduados. Simplemente decidió ahorrar su tiempo y abandonar de todos modos. Él mismo incluso aconsejó a las personas que no se retiren en una entrevista

Tal vez deberías dar un paso atrás y compararte con Bill Gates y preguntarte:

  1. ¿Qué hacen tus padres? ¿Recibes mucho apoyo financiero y empresarial de ellos?
  2. ¿Has aprendido más que otros graduados? ¿O simplemente crees que aprendes lo suficiente y esos cursos avanzados (como los algoritmos) simplemente no te sirven?

Volviendo a tu pregunta.

Usted dijo que no podía resolver un problema como “verificar si una matriz es única”. Ese es un gran problema, sinceramente hablando. Es posible que no tenga idea de la estructura de datos como conjunto, montón, mapa, etc., sin mencionar los algoritmos de clasificación y la programación dinámica. Quizás la aplicación en la que ha estado trabajando es relativamente fácil y no requiere complicaciones en la estructura de datos y el algoritmo. Sin embargo, a medida que avanza para diseñar aplicaciones más complicadas, o simplemente intenta expandir la aplicación actual para que sea más versátil, algún día tendrá que ponerse a tierra. Preguntas como “verificar si una matriz es única”, es posible que tenga que lidiar en su trabajo diario de desarrollo de una aplicación, y probablemente algunas más complicadas.

Mi sugerencia es que no es necesario que regrese a la escuela, pero es posible que desee retomar esos cursos en Internet que sus compañeros de clase están aprendiendo ahora. Especialmente estructura de datos y algoritmo, e ingeniería de software. Su experiencia laboral será bastante útil cuando esté tomando estos cursos, ya que comprenderá mejor cómo y cuándo aplicar cada concepto hablado en proyectos del mundo real.

Espero que aprecies la programación como una rama de la ciencia, que es mucho más que solo varios CÓMO-DOMINAR-XXX-EN-21-DÍAS.

1. La programación no se trata de leer, se trata de HACER.

¡Romper la cabeza sobre un problema al día es más útil que leer soluciones para diez de ellos! Comience a resolver.

2. El desarrollo de aplicaciones parece ser su punto fuerte: ¿por qué no opta por nuevas empresas que funcionan en el mismo dominio en lugar de empresas que le preguntan sobre matrices y algoritmos?

3. Intenta finalizar tu aplicación. No poder terminar lo que ha comenzado definitivamente afecta su autoestima, lo que a su vez probablemente afecta el rendimiento de su entrevista.

4. Consigue ese maldito grado. Colaborar con otros estudiantes, asistir a conferencias realmente ayuda a construir su base y le presenta muchas ideas y conceptos nuevos. Además, las universidades tienen eventos como ‘Campus Day’ y es mucho más fácil conseguir un trabajo mientras eres estudiante, a través de los lazos que tu institución tiene con las empresas.

Buena suerte.

Leer libros realmente no ayuda mucho para aprender programación, excepto para proporcionar una fuente de información. Necesita practicar la codificación, sistemáticamente. Simplemente busque cosas como cómo invertir una cadena usando matrices o cómo verificar si una matriz contiene solo elementos únicos, y practique hacer que funcionen.

Familiarícese con algoritmos básicos y estructuras de datos como listas enlazadas, mapas hash y árboles. No es necesario leer “Algoritmos avanzados y volúmenes de estructuras de datos I-III” o lo que sea; solo aprenda las estructuras y algoritmos que se consideran fundamentales, haciéndolos funcionar usted mismo. Las listas, los mapas, los árboles y la clasificación te ayudarán mucho.

Unas pocas semanas pueden marcar una gran diferencia en su conocimiento de este tipo de teoría informática básica.

Algunas entrevistas tienen muchos conocimientos técnicos y puedes salir sintiéndote arrastrado hacia atrás a través de un seto. Otros tienen poco conocimiento técnico, por lo que es solo la suerte del sorteo.

Podría haber muchas razones para eso. No prepararse bien para la entrevista o no revisar los conceptos básicos podría ser una cosa.
Esto sucedió conmigo hoy. Estaba solicitando trabajo de instructor de laboratorio en mi propia universidad. Mis profesores fueron mis entrevistadores. Tenía tanta confianza como tuve una buena impresión en ellos. La primera pregunta era una pregunta tan básica sobre el polimorfismo y, en mi exceso de confianza, la mezclé con el concepto de sobrecarga de funciones. Más tarde me di cuenta de mi error, pero lo que se hizo, se hizo. Conceptos como el polimorfismo y la herencia son una cuestión de entrevista, por lo que al menos no debería haber confusión en ellos.
Entonces, a veces, incluso las cosas básicas que descuidamos, en nuestra confianza de que no hay posibilidad de error en ellas, pueden derribarnos.
Por lo tanto, una mejor opción sería prepararse bien para su entrevista. Revise los conceptos básicos y las preguntas de entrevista que encontramos en casi todas las entrevistas. Ten confianza pero no te confíes demasiado.
También complete su aplicación y practique la programación en papel también.

No leas Hacer. Ensucia tus manos con proyectos y desafíos de codificación. Visite codewars.com, HackerRank y comience a superar los desafíos. También leo muchos libros de programación, pero si no escribes el código tú mismo, este conocimiento es demasiado pasivo. Incluso seguir el código en el libro y escribirlo usted mismo solo lo llevará a la mitad. La única forma de progresar es ensuciarse las manos y comenzar a resolver problemas usted mismo leyendo la documentación, stackoverflow. Cada problema se puede dividir en problemas más pequeños, trabajar en ellos uno por uno y conectarlos para resolver el problema más grande. El enfoque es otra cosa que me faltaba hace unos años, limitar su aprendizaje a un área: front-end, back-end, móvil y solo seguir aprendiendo cosas en esa área. Pronto verá cuánto progreso más está haciendo. Además, vaya a Buscar a su gente – Meetup y comience a conectarse con otros desarrolladores en su área. Ayuda mucho. ¡Buena suerte!

Hola,

Cuando dice que no puede resolver problemas como “verificar si la matriz es única”, comprende que es simple y que debería haber sido resuelto por usted, también verificó si pudo resolver el problema anterior o uno avanzado antes o después de la entrevista , haciendo una especie de autoevaluación.

Si puede resolverlo, entonces la causa raíz podría ser el miedo a fallar (estar en el desarrollo de la aplicación o en las entrevistas) eliminar el miedo a fallar de usted, ir a leer libros positivos o meditar.

Además, dado que tiene 20 años, la mente será muy ágil, como puede ser, debería volver al desarrollo de aplicaciones nuevamente o tomar un trabajo o estudiar nuevamente, en lugar de aportar claridad a su pensamiento y ser terco para cumplir con eso.

Y recuerde que todavía tiene 20 años y que hay muchas cosas en su vida que puede lograr y logrará, así que no tome ninguna falla cerca de su corazón y evalúese a sí mismo, en lugar de identificar, enfocar y solucionar los problemas.

También a veces sin razón el entrevistador rechaza y sucede no solo con usted sino con muchos otros.

Para compartir un pensamiento de winston churchill:

“Si usted está pasando por un infierno, sigue adelante”.

El tema común de las soluciones mencionadas aquí es “hay algo mal con USTED y la forma en que maneja las cosas”. Es por eso que se le considera un fracaso.
El problema que siento está en algún lugar dentro de ti como también las respuestas.
Pregúntese con absoluta honestidad “¿Realmente me encanta codificar?” o
“Me siento atraído por la codificación de la computadora porque estaba en la perspectiva de las perspectivas brillantes y todos lo estaban haciendo”. Conoces el efecto del carro.
El consejo que se da antes, un consejo sensato de personas bien intencionadas, sin duda, funcionará solo si cree que la codificación es su primer y único amor. Hay muchas otras áreas asociadas con las computadoras que pueden interesarle. Algunas personas pueden codificar bien. Algunos pueden comprender bien los conceptos.
Sin embargo, si concluye que hay algo más que es su vocación, cambie. Recuerda esto
El fracaso es un verbo. El fracaso no es un sustantivo. Usted [correo electrónico protegido] algo. Tú no eres un fracasado. No permita que nadie lo marque como un fracaso.
Eres demasiado joven. Puede ser que haya cometido un error al elegir su carrera. Explora el mundo y a ti mismo. Hay inmensas oportunidades y posibilidades.
Que encuentres tu dicha.

Si ni siquiera puede resolver problemas como “verificar si la matriz es única”, me pregunto acerca de la complejidad de su aplicación que creía que valía la pena abandonar. No puede iniciar un negocio escribiendo una aplicación de calculadora simple.

Leía muchos libros de programación todos los días … No podía resolver problemas como “comprobar si la matriz es única”

Es bastante obvio que estás mintiendo o exagerando enormemente el hecho de que estás leyendo “muchos libros de programación todos los días”. Es como decir que lees muchos libros de matemáticas todos los días, y no ser capaz de resolver 10 veces 10.

Lamento si esto suena demasiado duro, pero creo que cada entrevistador al que fuiste (y la mayoría de las personas que leen tu publicación) se dan cuenta de que tu historia sobre abandonar la universidad solo por desarrollar tu propia aplicación es una mentira completa.

Mi consejo. SE HUMILDE. Deja de mentir en tus entrevistas. Solo admíteles que cometiste un gran error al abandonar y quieres otra oportunidad para volver al campo.

Mantenga sus expectativas realistas, es decir, no espere que le paguen sin calificación, habilidad y experiencia (todo lo cual no tiene).

Una forma de volver al mundo de la programación es hacer entre 3 y 6 meses de pasantía de desarrollador de software no remunerada. Tenga en cuenta que solo porque complete la pasantía no significa que obtendrá un trabajo remunerado. Tendrás que trabajar duro esta vez, tendrás que estudiar mucho, hacer que tu tiempo allí cuente.

Si no puede obtener un pasante desarrollador, otra ruta es trabajar como probador. Si tiene suerte, puede llegar a un puesto de prueba pagado (que podría no implicar ninguna programación). En su situación actual, dudo que le paguen incluso como probador. El último recurso es hacer una pasantía de prueba no remunerada, ya que hay algunos puestos que no requieren experiencia o habilidad de programación. Con suficiente compromiso, puede subir la escalera de ser probador a desarrollador.

Por último, recuerda, si no trabajas duro esta vez y culpas de todo este lío a la “mala suerte” o dejas que tu ego te saque lo mejor de ti “Soy demasiado bueno para el trabajo de probador”, ese es el final del camino para tú. He visto mi parte justa de personas delirantes y mentirosos en mis entrevistas, y es muy fácil ver a través de toda la tontería que evocan.

Le disparaste y no funcionó. Sucede. No es un gran trato. No eres el próximo Mark Zuckerberg. No es un gran trato. Eres el primero TU.

Las entrevistas son como una habilidad en sí mismas. Debe mostrar sus talentos técnicos en un tiempo limitado a personas con diversos dominios. Hay entrevista técnica, entrevista de codificación, entrevista de diseño, entrevista de negocios con un gerente de proyecto, algunos entrevistadores son presumidos, a veces estás nervioso; varios factores. La clave es seguir adelante.

Para la prueba de software / codificación en particular, debe prepararse con anticipación. Hay toneladas de libros que lo preparan para este tipo de preguntas de entrevista. Cómprelos, léalos, practíquelos y luego dé sus entrevistas. Lo mecerás.

Este es un buen sitio para comenzar Aprenda a codificar y ayudar a organizaciones sin fines de lucro

Si no tienes ese título, tienes que recuperarlo en alguna parte. Estaba / estoy en una situación similar. Mi consejo asume que tiene un cierto nivel de competencia técnica básica. Si no lo haces …… este consejo puede no servirte bien. Estas son algunas de las cosas que creí que me ayudaron a encontrar mi camino.

  1. Aprende a matar tu entrevista.
  1. Trate su entrevista como el primer día en el trabajo. Durante su entrevista, trate de entender un proyecto y haga preguntas perspicaces que lo ayuden a resolver un problema persistente para su cliente / empleador. Para cuando termine la entrevista, el empleador / cliente debe tener una idea de cómo planea resolver el problema en cuestión y cómo facilitará su vida. A la gente le gusta sentirse segura de tu habilidad para tomar el toro por los cuernos y llevar un proyecto a la línea de meta. Si puede transmitir ese sentimiento de confianza, obtendrá trabajo constantemente.
  2. Aprende a venderte a ti mismo. Esta es una de mis habilidades innatas, suponiendo que me apasione un proyecto. Sin embargo, si no tienes esta habilidad, recoge algunos libros de ventas y aprende un poco sobre las ventas. Mire a Trump … Escuche la confianza que el tipo exuda, sus inflexiones de voz. No soy fanático de Trump, pero admiro la capacidad de los chicos para involucrar a las personas emocionalmente. No estoy sugiriendo crear respuestas que carecen de razón. Pero observe el lenguaje corporal y la confianza de los chicos.
  • Mantente en tu carril. No dejes que tu ego se adelante a tu coeficiente intelectual. Hay muchas posiciones en tecnología que son satisfactorias y le permiten ganar mucho dinero y agregar un gran valor. Lo mejor de todo es que no es necesario tener el coeficiente intelectual de Zuckerberg o Gate para tener éxito. Encuentra esos carriles y domínalos. Estudie usted mismo y comprenda su punto dulce. Esto se trata más de aprender a ti mismo. Todos tendrán un punto dulce diferente. Necesitas encontrar el tuyo. Quizás eres un mejor gerente de proyecto. Quizás sea mejor en Tecnología de la Información que escribir código OS.
  • No dejes que las personas con mentalidad de empleado te hagan sentir mal por ser un tipo emprendedor. Sí, hay muchas fallas, pero si te apegas a ellas, encontrarás el camino. Si realmente eres un emprendedor, no puedes desactivarlo. No puedes trabajar para otras personas. Trabajar para los demás te deprimirá y te hará sentir insatisfecho. Simplemente no estás viviendo tu vida para ser “exitoso”, estás viviendo tu vida para sentirte realizado, sin importar cuán loco pueda parecer tu camino a los demás. Entonces, si eres un verdadero emprendedor, es probable que tengas dificultades para mantener un trabajo, porque trabajar para otros te deprimirá Encuentra tu camino, haz lo que necesitas hacer, sé quién debes ser y no te importa un comino sobre lo que piensan otras personas. Ten en cuenta que el camino que elijas puede no ser fácil, pero nunca te arrepentirás, aprenderás mucho sobre la vida y cumplirás tu propósito interior.
  • Encuentre su nich técnico que le dará flexibilidad para ser el emprendedor que quiere ser. Tienes suerte de entender la tecnología. Como resultado, siempre debe poder ganar algo de dinero mientras trabaja en su sueño. Tal vez debería tomar un trabajo técnico “fácil” pero menos prestigioso para pagar las facturas mientras trabaja en el próximo proyecto.
  • Reduzca el tamaño de su proyecto final. Hay toneladas de compañías millonarias basadas en software que simplemente no fue tan difícil de escribir. Asegúrese de no escribir algo más allá de su conjunto de habilidades cuando pueda escribir fácilmente un código que resuelva una necesidad comercial más simple pero que sea necesaria para más personas. O quizás lo necesite un nicho de mercado que pagará más por el producto.
  • Comprenda que existe demasiado riesgo. Hay muchas personas que alientan a las personas temerosas a correr más riesgos. Para algunas personas, como yo, correr el riesgo nunca fue mi problema. Necesitaba ser paciente y aprender a tomar riesgos calculados. Realmente no mejoré manejando esto hasta que tuve un hijo y tuve que producir x dólares al mes. Esta gestión forzada del riesgo, me hizo desacelerar un poco y me hizo un poco más paciente y comencé a reducir mi riesgo y centrarme en lo que era bueno en lugar de lo que quería hacer. Dejé de saltar en cada oportunidad arriesgada que se me ocurrió por una descarga de adrenalina. Si tiene poco más de 20 años, esto puede no ser un problema. Asuma el mayor riesgo posible: conocer sus límites es parte de la vida. Pero a medida que comience a acercarse a los 30, puede considerar ser un poco más cauteloso y elegir riesgos que sean más calculados.
  • Está fallando la entrevista porque no aporta nada valioso para el empleador.

    1. Abandonado de la universidad: indica falta de autodisciplina hasta que se demuestre lo contrario
    2. La aplicación de desarrollo propio no funciona bien, nada positivo, indicativo de arrogancia
    3. No puedo responder una pregunta algorítmica bastante básica: no he realizado un autodescubrimiento de algoritmos comunes y funcionalidad básica
    4. Programación durante dos años: no significa nada a menos que tenga un producto de trabajo para mostrar.

    Cómo mejorar tus posibilidades:

    Primero, (si aún no lo ha hecho) publicar la aplicación, no es necesario que sea un éxito o incluso bueno, pero solo haber publicado implica algunas habilidades valiosas.

    Segundo: deja de leer los libros, en realidad codifica. Cada día. Trabaja un tutorial a ciegas, solo da lo mejor de ti. Luego, vuelva a hacerlo con la guía del libro para aprender un enfoque diferente (o exitoso), luego hágalo usted mismo sin el libro para solidificar el principio. Cuando te quedes sin libros que te enseñen conceptos básicos, ve a jugar en los sitios que las personas han sugerido en otras respuestas.

    Tercero: vaya a explorar la comunidad de código abierto, encuentre un proyecto interesante que busque ayuda, intente proporcionar esa ayuda. El aprendizaje abstracto es difícil, la mayoría de las personas necesitan una meta o tarea específica para progresar. Alternativamente, si eres el tipo de persona solista, escribe otra aplicación.

    Cuarto: si no puede encontrar un proyecto interesante que respalde e incluya su contribución, examine si desea continuar en el brazo de codificación / desarrollo puro de esta profesión, hay muchas áreas donde las habilidades tecnológicas son importantes, pero la codificación en bruto no es Es la tarea principal.

    No dejes que la gente te diga que cometiste un error al abandonar la escuela. Es muy posible que lo haya hecho por todos los motivos correctos y, de ser así, debería estar orgulloso de esos motivos. Ese es tu juicio, no el de ellos.

    Los entrevistadores lo juzgarán de todos modos. Tendrá que aprender a aceptar esto con gracia y racionalizar sin sonar como si estuviera a la defensiva. Sé capaz de decirle a otras personas por qué hiciste la elección que hiciste y prepárate para demostrar que fue una buena elección.

    En cuanto a las entrevistas en su conjunto, tome el libro Cracking the Coding Interview. Lea y practique la totalidad del libro hasta que sea bueno en eso. Practica codificar y describir tu propia experiencia de desarrollo en el espejo y frente a otros desarrolladores. Practique los problemas de codificación en una pizarra.

    Si está recibiendo entrevistas, prepárese para fallar en algunas o muchas de ellas hasta que sea bueno en la habilidad de entrevistar para puestos de desarrollo. Es un conjunto de habilidades que no utilizará en el trabajo hasta que esté entrevistando a candidatos de desarrollo o buscando otro trabajo, pero es necesario aprenderlo para obtener el trabajo que desea.

    Para completar su educación autodidcatica, aprenda algoritmos y estructuras de datos, patrones de diseño, programación funcional, refactorización, tecnologías de bases de datos, diseño de sistemas, etc. Recoja libros. Léalos detenidamente al menos una vez. Haz todos los ejercicios. Luego, cree proyectos propios que incorporen al menos uno de los nuevos conceptos que aprenda. Es probable que los libros de texto universitarios sean los más importantes para abordar primero.

    Programa mucho. Construye tus propios proyectos. Contribuir al código abierto.

    También debe recordar continuar este tipo de aprendizaje de forma permanente a lo largo de su carrera. Aprender más sobre cómo programar bien es la mitad de tu trabajo, hasta que te jubiles. No termina en su primer trabajo o en su décimo año de trabajo.

    Bueno, no te daré ejemplos de Mark Zuckerberg o Bill Gates … 😛 .

    Estuve en la misma situación hace unos días. Fui rechazado por 5 buenas compañías en 5 días consecutivos. Me sentí realmente horrible y pensé que era tan malo.

    Te puedo dar algunos consejos.

    Cuando alguien te pregunta “¿qué estás haciendo?”

    Si responde “Estoy leyendo programación”.

    Entonces algo está mal aquí. Debería comenzar a escribir códigos para programas simples de sitios web como Hackerearth y hackerrank o desde cualquier lugar. Para esto, debe conocer los conceptos básicos como los tipos de datos, la matriz, if … else y los bucles.

    Una vez que haces eso, después de un mes más o menos.

    Cuando alguien te pregunta “¿qué estás haciendo?”

    Su respuesta será “Estoy escribiendo un programa”.

    Créame para entonces, seguramente lo seleccionarán en compañía.

    Feliz codificación … 🙂.