Soy un estudiante de informática de B.Tech. Escuché que las estructuras de datos y los algoritmos son muy importantes y se preguntan en cada entrevista, pero no me interesa ese tema. ¿Qué otras opciones tengo? (en informática)

Generalmente no respondo preguntas sobre Quora , pero para esta pregunta, tuve que hacer una excepción porque todas las otras respuestas que puedo ver aquí son completamente inútiles .

Ante todo –
“NO ENTRES AL CAMPO QUE NO TE GUSTA. NUNCA. PERÍODO”
Es como elegir a tu primera esposa, para toda la vida. Pasará más tiempo trabajando en su campo del que pasará con su esposa. Por lo tanto, elija su campo más en serio y sabiamente de lo que elegirá su esposa.

ACTUALIZACIÓN: Supongo que, por Estructura de datos y Algoritmos, te referías a la codificación competitiva. Si no es así, creo que no puede trabajar en ninguno de los siguientes campos mencionados. En ese sentido, la estructura de datos y los algoritmos lo son todo.

Ahora, regrese a su situación. Quien diga que la estructura de datos y los algoritmos es todo lo que puede hacer en informática es un idiota. Simplemente un idiota. La estructura de datos y el algoritmo seguramente es una parte importante de CS (Computer Science), pero compararlo con la rama completa de CS NO es del todo correcto. Voy a mencionar algunas de las muchas cosas que puede hacer en la rama CS que no sean Estructura de datos y Algoritmos.

1. Seguridad informática

Este es también uno de los campos más importantes en informática y mucho más divertido que la estructura de datos y los algoritmos. Mencioné esto porque solía trabajar en Estructura de datos y Algoritmo en la etapa inicial de mi vida de CS, pero luego salté a este campo y desde entonces nunca he mirado hacia atrás. Es mucho más divertido.
Y, en lo que respecta a las grandes empresas como Google, Facebook, Microsoft, todas quieren personas que trabajen en este campo e incluso pagan más dinero que un empleado estándar de SDE. Pero la situación es que estas compañías no han visto mucha gente trabajando en este campo desde la India, por lo que no esperan mucho de la India en este campo.

2. IA y aprendizaje automático

Este campo también es muy interesante. Tiene aplicaciones tanto en el lado de la investigación como en el industrial . Hoy, algunos de los mejores trabajos en informática se está haciendo en este campo. Y en lo que respecta a las oportunidades , este campo le dará la oportunidad de trabajar en ambos lados: investigación e industrial. Sé que Google contrata personas que trabajan en este campo y estoy seguro de que muchas otras grandes empresas también contratan . Además, en la actualidad hay muchas nuevas empresas en todo el mundo que realizan algunos de los mejores trabajos realizados en este campo, por lo que las oportunidades son infinitas en esta dirección.

3. Big Data, minería de datos

Este campo también es muy bueno. Pocos de mis amigos más inteligentes están trabajando en este campo. Incluso le pagará más que la mayoría de los trabajos de SDE en este nivel y es muy exigente entre las empresas. Este campo se ocupa de los últimos problemas que enfrenta el mundo en este momento. Muy buen trabajo.

Otros campos que son comparativamente menos interesantes para mí son: desarrollo web, aplicaciones móviles, pero aún así le darán algunas de las mejores oportunidades de su vida. Entonces, por fin, creo que la informática es la mejor rama que cualquiera puede obtener, le brinda muchas más oportunidades que cualquier otra rama.
Las oportunidades tocan solo una vez, solo tienes que aprovecharlas antes de que salgan de tu puerta.
Debo mencionarlo de nuevo,
“NO ENTRES AL CAMPO QUE NO TE GUSTA. NUNCA. PERÍODO”

Lo creas o no, un título en Informática te prepara para mucho más de lo que piensas en este momento. Fuera de mi cabeza, las siguientes opciones de carrera están disponibles para usted:

  1. Programador / Desarrollador / Ingeniero de Software / Ingeniero Frontend
  2. Director del programa
  3. Gerente de producto
  4. Ensayador
  5. Redes y seguridad, DevOps
  6. Release Engineering, Gestión de configuración
  7. Escritor Técnico / Documentación
  8. Gerente de TI
  9. SEO y, en general, optimización de conversiones
  10. Diseñador de UI / UX

De lo anterior, solo un pequeño porcentaje de programadores necesita aprender o implementar conceptos comúnmente enseñados en BTech Data Structures and Algorithms. La mayoría de las empresas, incluidas Google, Facebook, etc., contratan para todos los puestos anteriores y más.

De hecho, probablemente conozca (o debería saber) suficientes DS y algoritmos para ser un buen candidato para el 90% de los trabajos disponibles en la industria.

  1. Si desea asignar una clave a un valor, ¿qué estructura de datos utiliza?
  2. ¿Cuál tiene orden: una lista o un mapa?
  3. ¿Cuál es la diferencia entre una matriz y una lista?
  4. ¿Qué es un conjunto?
  5. ¿Qué algoritmo se usa para reordenar una lista de elementos de acuerdo con algunos criterios?
  6. ¿Qué es el hash?

Para ser sincero, la mayoría de los ingenieros ni siquiera saben tanto y, sin embargo, tienen bastante éxito; que dice más sobre las empresas para las que trabajan que cualquier otra cosa.

Aquí hay algunos roles auxiliares donde un conocimiento de informática sería realmente útil:

  1. Recursos humanos
  2. Ingeniero de Ventas, Comercialización de productos de TI
  3. Entrenador
  4. Finanzas corporativas
  5. Diseño de producción para animaciones

Quizás quieras concentrarte solo en la programación. Bueno, lo que es más útil para la mayoría de los programadores es la lógica básica, la práctica suficiente para hacer conjeturas educadas que resulten correctas, la capacidad de depurar un programa y, finalmente, una buena dosis de programación orientada a objetos.

Yo diría que el mejor indicador de habilidad en un programador es simplemente la capacidad de leer, comprender, escribir y contar una historia; cuanto más detalle, mejor.

No considero la capacidad matemática o la capacidad de acumular mucha teoría como indicadores de potencial.

Si está interesado en un trabajo como ingeniero de software, definitivamente tendrá que ser competente en estructuras de datos y algoritmos porque casi todas las empresas a las que se postula tendrán al menos una ronda de estructuras de datos y algoritmos.

¿Por qué no te interesan las estructuras de datos y los algoritmos? Si eres débil en eso, es una señal de alerta porque eso muestra la falta no solo de conocimientos básicos de CS, sino también de habilidades para resolver problemas.

Como ingeniero de software, se encontrará con muchos problemas desafiantes que quizás nunca haya visto antes. En este punto, se espera que pueda analizar el problema, pensar en varios enfoques y llegar a una solución viable para el problema. En las entrevistas, las compañías quieren ver si podrá hacer esto o no. La forma más conocida de evaluar esto es preguntar sobre estructuras de datos y problemas basados ​​en algoritmos.

Sugeriría que para descifrar las entrevistas de codificación, la mejor opción es hacer la preparación de la entrevista:

  • Lea un libro: la mayoría de las personas recomendarán CLRS. Recomendaría el libro de Robert Sedgewick sobre algoritmos. El libro es menos matemático y se enfoca más en la implementación. Es más fácil de leer.
  • Tome un MOOC : De nuevo, recomendaría el MOOC de Robert Sedgewick en Coursera. El MOOC está basado en Java. Si no está familiarizado con Java, no se asuste. No es muy difícil entender lo que dice el profesor. De hecho, aproveche la oportunidad para aprender los conceptos básicos de Java.
  • Resolver problemas en jueces en línea : personalmente sugeriría SPOJ. Ordene los problemas en orden decreciente según el número de usuarios que resolvieron el problema. Resolver los primeros 100 problemas más o menos le dará suficiente práctica de codificación.
  • Prepárese de entrevistas : InterviewBit es una gran plataforma para prepararse para codificar entrevistas.
  • Topcoder : Muchos problemas de entrevistas se basan en la programación dinámica. Topcoder tiene probablemente el mejor conjunto de problemas DP.

Bonificación: pruebe Hackr.io para obtener excelentes recursos de programación

¡Todo lo mejor! 🙂

Tienes tres opciones.

1. Opción 1:

Si desea ser contratado por compañías de primer nivel como Google, Microsoft, Amazon y otras compañías basadas en productos, entonces no tiene otra opción que aprender Estructuras de Datos y Algoritmos.

Programa = Algoritmos + Estructuras de datos

Comience a aprender estos temas de los videos de MyCodeSchool. Luego tome cursos de coursera, udacity y khanacademy.

  • Academia Khan: Algoritmos del Prof.Thomas Cormen y Devin Balkcom.
  • Coursera: Algoritmos 1 (página en coursera.org) – por el Prof.Robert Sedgewick y el Prof.Kevin Wayne de la universidad de Princeton.
  • Coursera: Algorithms 2 (página en coursera.org) – por el Prof.Robert Sedgewick y el Prof.Kevin Wayne de la universidad de Princeton.
  • Coursera: Algorithms: Design & Analysis parte 1 (página en coursera.org) – por el profesor Tim Roughgarden de la Universidad de Stanford
  • Coursera: Algorithms: Design & Analysis parte 2 (página en coursera.org) -por el profesor Tim Roughgarden de la Universidad de Stanford

Recomendaciones de libros:

  • Estructuras de datos y algoritmos en Java por Robert Lafore [Fácil de leer]
  • Introducción a los algoritmos por CLRS [biblia]
  • Manual de diseño de algoritmos de Skiena

Recomendaciones de libros para la preparación de la entrevista:

  • Romper la entrevista de codificación por Gayle Laakmann McDowell
  • Entrevista de programación expuesta
  • Elementos de la entrevista de programación
  • Preguntas de la entrevista de codificación por Narasimha Karumanchi

Debe leer :

  • ¿Cuáles son los recursos más fáciles de aprender para aprender sobre algoritmos?
  • ¿Cuál es la mejor manera no aburrida de aprender algoritmos? He tratado de aprender algoritmos y estructuras de datos muchas veces, revisando libros y sitios, pero no he practicado constantemente.
  • ¿Dónde puedo encontrar problemas difíciles de algoritmo / estructura de datos?

Opcion 2 :

Puede probar algunas empresas de servicios.

  • La mayoría de las empresas basadas en servicios como TCS, Wipro e Infosys no hacen demasiado hincapié en preguntas complejas de estructuras de datos y algoritmos. [Lo digo porque comencé un blog de preparación de colocación INdiaGeeks, donde los estudiantes comparten sus experiencias de entrevista. He analizado sus preguntas de entrevista.]
  • En su mayoría, esas compañías hacen preguntas de lo que ha mencionado en su currículum.

Opcion 3:

Comience su propio inicio.

Si la informática es un juego de ajedrez, las estructuras de datos son piezas de ajedrez , los algoritmos son movimientos específicos. Entonces, convertirse en un buen jugador de ajedrez sin conocer las piezas de ajedrez o cualquier estrategia para sus movimientos, simplemente no suena bien.

Hay dos posibilidades:

1. Estás malinterpretando tu situación
Posiblemente, encuentre estructuras de datos y algoritmos demasiado difíciles de manejar en las etapas iniciales. Y es difícil, se supone que es difícil. Porque si fuera fácil, todos lo harían. Entonces, lo que realmente necesita es un poco de motivación y un buen maestro en este momento.

2. Realmente no te gustan las estructuras de datos y los algoritmos
Probablemente no elijas la informática por voluntad y termines con ella. Lo mismo sucedió conmigo, pero por suerte lo disfruto mucho. Las estructuras de datos y los algoritmos son el punto central del universo de la informática. Realmente no puedo pensar en nada interesante en informática que no toque estructuras de datos y algoritmos. Pero eso puede ser debido a mi conocimiento muy limitado. Sugeriría, en base a mi entendimiento, que pases algún tiempo descubriendo lo que te interesa (fuera del ámbito de la informática). Ser un estudiante de B.Tech en alguna X importante no significa que no puedas aprender lo que te interesa fuera de X.

¡La mejor de las suertes!

Solo tiene una opción: desarrollar interés en DS y Algo. Practícalos bien. No es una buena idea huir de ellos.

“Estructuras de datos y algoritmos” es el tema favorito de las empresas entrevistadas. Puede comenzar con la resolución de problemas en estructuras de datos y libros de algoritmos.

“Resolución de problemas en estructuras de datos y algoritmos” es una serie de libros sobre el uso de estructuras de datos y algoritmos en la programación de computadoras. El libro es fácil de seguir y está escrito para el punto de vista de preparación de la entrevista . En varios libros, los ejemplos se resuelven en varios lenguajes como C, C ++, Java, C #, Python, VB, JavaScript y PHP.

Composición del libro
Este libro está diseñado para entrevistas, por lo que en el Capítulo 0 se proponen varios planes de preparación . Luego, en los capítulos 1, se explica una breve introducción del lenguaje de programación y el concepto de recursión. Se explican varios problemas basados ​​en recursividad y matriz.

Luego, en el próximo capítulo, analizaremos el análisis de complejidad. Luego analizaremos las técnicas de clasificación y búsqueda.

Luego estudiará las diversas estructuras de datos y sus algoritmos. Buscaremos en una lista vinculada, pila, cola, árboles, montón, tabla hash y gráficos.

Luego analizaremos el análisis de algoritmos, analizaremos los algoritmos de fuerza bruta, algoritmos codiciosos, algoritmos de división y conquista, programación dinámica y retroceso.

Al final, analizaremos el diseño del sistema , que proporcionará un enfoque sistemático para resolver los problemas de diseño en una entrevista.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos con C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

Tabla de contenido
Capítulo 0: Cómo usar este libro.
Capítulo 1: Introducción – Descripción general de la programación
Capítulo 2: Análisis de Algoritmos
Capítulo 3: Enfoque para resolver problemas de diseño de algoritmos
Capítulo 4: Tipo de datos abstractos
Capítulo 5: Búsqueda
Capítulo 6: Clasificación
Capítulo 7: Lista vinculada
Capítulo 8: Pila
Capítulo 9: Cola
Capítulo 10: Árbol
Capítulo 11: Cola prioritaria
Capítulo 12: Hash-Table
Capítulo 13: Gráficos
Capítulo 14: Algoritmos de cadena
Capítulo 15: Técnicas de diseño de algoritmos
Capítulo 16: Algoritmo de fuerza bruta
Capítulo 17: Algoritmo codicioso
Capítulo 18: Divide y vencerás
Capítulo 19: Programación dinámica
Capítulo 20: Retroceso
Capítulo 21: Teoría de la complejidad
Capítulo 22: Estrategia de entrevista
Capítulo 23: Diseño del sistema

Si eres un estudiante de informática, pero no te interesan los algoritmos y las estructuras de datos, ¿qué te interesa de la informática? Prácticamente todo gira en torno a algoritmos y estructuras de datos, desde compiladores hasta sistemas operativos, sistemas integrados, aprendizaje automático, bases de datos, juegos, inteligencia artificial, sistemas financieros y robótica para … la lista sigue y sigue. Wirth lo hizo absolutamente bien cuando tituló uno de sus libros “Algorithms + Data Structures = Programs”.

Ahora, es posible desarrollar software en un lenguaje de alto nivel sin saber mucho o pensar mucho sobre algoritmos y estructuras de datos, pero es increíblemente limitante. Es como ver el mundo como una habitación muy pequeña. La exposición a las estructuras de datos y los algoritmos asociados con ellas abre un gran mundo de posibilidades. Saber qué se puede hacer, saber qué enfoques son más eficientes que otros (y por qué), saber qué se ha intentado y no funciona bien (y por qué), y saber cómo hacer que el software sea más flexible y escalable, todo esto es muy valioso para un empleador y para sus propios proyectos. En mi experiencia tanto en el trabajo en ingeniería de software como en la enseñanza de ingeniería de software, la introducción de estructuras de datos dinámicas, algoritmos y análisis de algoritmos abre un nuevo mundo de posibilidades, así como una mejor comprensión y apreciación de cómo funciona el software complejo. (y por lo que las bibliotecas, el STL, etc. pueden hacer por nosotros).

En el lugar de trabajo, tratamos con algoritmos y estructuras de datos todos los días. Si entender cómo representar, organizar y manipular datos de manera eficiente no es algo que le interese, puede considerar diferentes principales.

La pregunta más importante aquí es ¿qué quieres hacer después de desmayarte?
Si está interesado en la codificación / programación, debe comprender DS y Algo. Sin embargo, la buena noticia es que no es el fin del mundo si no conoce DS & A.

Echemos un vistazo a algunas opciones alternativas de carrera:

a) Ingeniero de pruebas : He trabajado durante un año y medio en el dominio de las pruebas; las pruebas manuales son específicas. Todo lo que necesita saber es MS-Excel, un poco de SQL y algunos software privativos. Así que supongo que si te aventuras aquí estarás a salvo. Además, creo que esto es aplicable solo para empresas basadas en servicios.
Las pruebas automatizadas también son similares. Necesita codificar un poco y conocer algunos softwares como loadrunner.

b) Escritor técnico : si está interesado en la tecnología y la escritura, la escritura técnica es la intersección de esto. Debe escribir reseñas y análisis de los últimos acontecimientos en el mundo de la tecnología.

c) Redes : hay algunas áreas de redes que requieren poca o ninguna codificación. El tipo de trabajos en los que puedo pensar aquí se incluyen principalmente en la categoría de Pruebas de red, sin embargo, puede haber otras actividades que desconozco.

Además, hay una gran cantidad de opciones disponibles para usted una vez que pasa su BE
Puedes optar por un MBA.
Puede seguir su M.Tech y pasar de los campos básicos a los campos de la ciencia interdisciplinarios como Geoinformática, Bioinformática, etc. Se requiere un poco de conocimiento de programación para un estudiante de CSE en estas áreas.

Si no está seguro de lo que quiere, obtenga un trabajo no relacionado a tiempo parcial o completo (no demasiado agitado) después de completar su curso e intente descubrir qué es lo que realmente le interesa. Una vez que se dé cuenta, puede actuar en consecuencia.

Espero que ayude
Todo lo mejor

Debes haber leído otras respuestas. Todos eran diferentes, pero más o menos tienen la intención de convencerlo de que aprenda algoritmos.
De hecho, todos están utilizando un enfoque diferente e innovador para ARREGLO … hechos, suposiciones, axiomas, con el fin de alcanzar un objetivo DEFINITIVO de convencerlo. (Incluyéndome a mí.)
Como puede ver, TODO lo que sucede en este mundo es una “sopa” de CREATIVIDAD y PROCEDIMIENTO. Un procedimiento puede conducir a la creación y, a veces, la creatividad también puede dar lugar a un procedimiento.
Cualquier secuencia ordenada, de algunas creaciones y algunos procedimientos, que lleguen a una conclusión bien definida se llama Algoritmo. TODO ALREDEDOR DE NOSOTROS. DIOS ES UN PROGRAMADOR. Créame.

Ahora, ¿puedes huir de los Algoritmos, como lo que piensas hacer? La respuesta más genérica a esto podría ser que, o haces tus propios Algoritmos (y por lo tanto tomas los pasos ordenados para alcanzar un Objetivo definido que TÚ mismo has elegido), O alguien más lo estaría haciendo por ti … más o menos como en el caso de animales En resumen, NO quieres hacer eso.

Ahora, en términos de su carrera, un “concepto” social que, en la mayoría de las naciones privadas de alimentos, generalmente obliga a los jóvenes a disfrutar de una “carrera de ratas” ciega (por ejemplo, la horda de ingenieros no calificados en la India) en lugar de escuchar sus corazones. Ahora, como he dicho, aquellos que tienen formas algorítmicas son “más humanos” y por eso la fortuna brilla sobre ellos. Ya sea el campo de S / W o de lo contrario. (Tenga en cuenta de nuevo que los Algoritmos y DS no son solo en CS). El resto puede tener que conformarse con un compromiso. (¿Quién dice que los hombres son iguales en democracia?)

Por lo tanto, su objetivo principal es ser más “Algorítmico”, no importa si significa cambiar su campo. De lo contrario, no se preocupe, el destino lo guiará eventualmente.

Te puedo dar un par de opciones. Pero recuerde, de una forma u otra, es mejor para usted aprender DSA.

  1. Industria de servicios de TI : me he sentado en algunas entrevistas y nunca me han preguntado nada remotamente cercano a DSA. Parece que prefieren personas que pueden escribir correos electrónicos y aprobar pruebas de aptitud, en lugar de personas que realmente pueden codificar.
  2. Diseño web / Freelancing : a menos que desee trabajar para una startup de gran envergadura, las posibilidades de que se perfore en DSA en las entrevistas es remota. O puedes intentar trabajar independientemente. ¡Olvídate de las entrevistas!
  3. Trabajos de control de calidad / pruebas : no necesitará ningún conocimiento en DSA, pero será mejor que sea bueno en Linux, Bash, Selenium y otros marcos similares.
  4. Inicio : dado que no será bueno en DSA, mejor contrate a algunas personas inteligentes y comience su propia empresa. Las aplicaciones móviles parecen estar de moda en estos días.
  5. Opte por MTech : aunque tener un control sobre DSA le ayudaría, puede intentar optar por especializaciones que lo hagan sin ellas. Tal vez la seguridad? O AI?

Tengo que ser honesto. Si no fuera por DSA, ¿de qué crees que se trata Computer Science?

¡Si! lo escuchaste bien La informática se trata de resolver problemas. Para resolver los problemas, debe manejar los datos para poder extraer información como solución. así que creo que estructurar datos en ciencias de la computación es tan importante como la respiración es importante para vivir. Por lo tanto, sin una estructura de datos no podrá “sentir” la informática. Mientras que Algorithm mejora sus habilidades analíticas y de resolución de problemas.

¿Qué pasaría si condujera un automóvil en este lugar?

¿Cómo te sentirías al conducir el automóvil en este tráfico?

Imagine la dificultad de buscar un libro de esto.

¿Y cómo resolverías el problema con esto?

Imagine lo problemático que es abordar el tren de esta manera:

Pero puedes resolver el problema con esto:

Entonces, piense qué sucedería si coloca sus datos sin seguir ningún orden o estructura. ¿Cómo podrá buscarlos o manipularlos? Sin datos, ¿qué otras opciones puede tener en informática?

Entonces, comience de nuevo, intente y siga adelante. Confía en mí, cuanto más relacionas el tema con el mundo real, más te encantará.

Creo que otras respuestas son suficientes para los recursos que necesita para aprender los conceptos.

¡¡La mejor de las suertes!!

Si no eres bueno en programación, lo que interpreto como no poder escribir un buen código de trabajo para los problemas que se te presentan, entonces puedes ir a otros campos relacionados donde las habilidades de programación son menos críticas. Algunos de esos podrían ser:

  1. Análisis de datos : que necesita buenas habilidades lógicas y analíticas
  2. Red / Seguridad Cibernética : que necesita conocimiento de cómo funcionan las redes y la comunicación
  3. Academia : donde puedes enseñar temas teóricos de informática como Teoría de la Computación, programación de paradigmas de idiomas, bases de datos, redes, etc.
  4. Gestión de programas : donde debe coordinarse entre diferentes equipos tecnológicos y equipos de productos que trabajan juntos en una empresa en términos de sus requisitos, tecnologías, tareas diarias, gestión de equipos, etc.

¡Buena suerte!

No sé si hay otra forma. Pero, puedes comenzar con programas simples. Puede resolver problemas sencillos de sitios de programación competitivos como Competencia de programación, Concurso de programación, Programación en línea, Juez Esfera en línea (SPOJ), etc. y luego abordar los problemas difíciles.

Al principio, no es intrigante ya que no es fácil de aprender. Pero, una vez que te involucres, lo encontrarás interesante. Mi consejo es no competir con tus amigos porque si pierdes tus niveles de testosterona disminuirán (efecto perdedor) y perderás interés en él.

Eche un vistazo al siguiente video, uno de los principales programadores de sitios de programación competitiva que resuelve los problemas y se motiva.

No se demore y simplemente comience a codificar.

Las estructuras de datos y los algoritmos son realmente muy importantes, pero aquí hay un secreto a voces: la mayoría de las empresas no implican que implemente estas cosas por su cuenta. Muchos podrían hacerle preguntas sobre estos temas en las entrevistas, pero eso no significa que implementará su propia lista o árbol vinculado una vez que comience a codificar. La mayoría de las compañías tendrán sus bibliotecas ya construidas y bien probadas. La mayoría de los idiomas modernos también proporcionan sus bibliotecas para lo mismo. Por lo tanto, puede salirse con la suya sin saber mucho sobre esto. Dicho esto, recomendaría que, al menos, comprenda bien algunos de los conceptos básicos sobre estos temas. Estoy aprendiendo personalmente sobre lo mismo, a pesar de que he estado codificando durante más de 9 años. Me arrepiento de no haber aprendido más sobre estos temas, pero he podido (y tener un buen desempeño) en lo que he estado trabajando, ya que las bibliotecas base ya estaban disponibles.

Una cosa positiva para usted : es posible que no todas las secciones de un software requieran que conozca DS y Algos. Podría estar equivocado aquí, pero trabajé en la implementación de GUI usando C # y WPF y no tuve absolutamente ninguna necesidad de ninguno de los DS y Algos comunes. Si estoy creando paneles UI usando XAML o algo así como Blend para Visual Studio, no escribo mucho código para el mismo y, por lo tanto, no necesito mucho DS y algoritmos. Del mismo modo, las actividades de DB y DBA pueden no requerir mucho conocimiento de DS y Algo. El aprendizaje automático, los marcos de Big Data, etc., tendrán su propio conjunto de algoritmos, pero puede (o no) encontrarlo más fácil que los convencionales, intente probarlo.

Por lo tanto, definitivamente puede ingresar y sobrevivir en la industria del software sin un conocimiento profundo de DS y Algos al desarrollar las habilidades que se adaptan a los roles que mencioné anteriormente. Si el entrevistador para un rol de GUI todavía le pregunta cómo encontrar el LCA de dos nodos en un árbol, ¡diría que es su mala suerte! 🙂

Buena suerte, dedique algo de tiempo para aprender al menos algunos de los conceptos básicos de estos temas.

Pasé 11 años en la industria del software. Sobreviví con éxito sin saber cómo hacer un recorrido transversal de una lista enlazada o una búsqueda binaria o encontrar un BST equilibrado o no. Pero estaba trabajando con el 50% del salario que gana un programador junior en las principales empresas de tecnología.

Una vez que comencé a aprender sobre algo y DS, descubrí cuánto no sé. Dejé de presentarme como ingeniero de software. Ser un estudiante de informática de Btech y no conocer DS y algo es como un carpintero que no sabe cómo usar una sierra.

No se trata de obtener el mejor trabajo o el mejor salario, sino de hacer bien su trabajo.

Por ejemplo, hemos implementado una solución y funcionó bien hasta que gracias y durante la semana de agradecimiento el rendimiento se derrumbó. Tomó alrededor de 30 segundos para responder a una solicitud donde el SLA fue de 1 segundo. La causa raíz era que el bucle tenía n ^ 4 iteraciones. Si el conocimiento básico del tiempo de ejecución no existe, es probable que ocurran este tipo de errores.

¿Qué es una alternativa a no conocer DS algo y la industria del software para asumir un rol que no sea de TI como control de calidad, operaciones o rol de scrum master?

Además de las empresas que contratan para el puesto de desarrollador de software, hay consultados, que no solicitan la estructura de datos y todo el material informático. Y ofrecen una muy buena compensación.
Te comprobarán habilidades analíticas como

  1. Aptitud
  2. Razonamiento (verbal, no verbal)
  3. Habilidad de comunicación
  4. Habilidad para resolver rompecabezas

Así que prepara bien estas cosas, practica tanto como puedas.

Sea fuerte en los fundamentos de todos los temas principales como OS, CN, DB, etc., y en los conceptos ‘C’. No todas las empresas de productos se centran en estructuras de datos y algos en sus entrevistas, intentan practicar programas básicos que generalmente se solicitan en empresas de servicios o de productos.

No intente con compañías como Amazon, Google, Inmobi, etc. (solo hacen hincapié en algos en las entrevistas).

Si puede lidiar con listas vinculadas, Sockets, Estructuras, puede intentar para las empresas de redes.

PD: Después de ingresar a cualquier empresa, el trabajo no se puede comparar entre empresas de servicios y productos. La complejidad real del trabajo depende del proyecto con el que está tratando, pero no del tipo de empresa en la que se encuentra.

Para mí, las estructuras de datos y los algoritmos son académicamente esenciales para CS Curriculum. Y es un gran tema para disfrutar. Y también en el mundo corporativo, en la perspectiva del trabajo.

Si desea ser parte de un desarrollador de desarrollo de aplicaciones en una organización (es) como Microsoft, Google, Adobe y todos los gigantes corporativos, debe tener buenos conocimientos en DS.

Pero puede tener muchas otras formas de seguir adelante, depende de su interés.

Otras opciones incluyen:

Big Data

Redes,

.

.

.

Debo haber llevado una existencia muy protegida. Tengo un diploma en Tecnología de la Información y un BSc (Hons) en Sistemas de Información. En ningún momento de ninguno de esos estudios cubrimos “algoritmos” o “estructuras de datos”.

Cubrimos temas como programación 3GL y 4GL, diseño y desarrollo de bases de datos, SQL, análisis de sistemas (incluido UML), análisis de requisitos, gestión de proyectos, IP y derecho contractual, Big Data / NoSQL, gestión y teoría de sistemas.

En otras palabras, fui entrenado para hacer las cosas prácticas que la mayoría de los desarrolladores de software, analistas de negocios y gerentes de proyectos hacen diariamente en sus trabajos.

Este tipo de preguntas de entrevista excluye a las personas con este tipo de formación académica.

La informática está llena de teoría que es irrelevante para la industria. Pero debido a que el sistema educativo estadounidense se ha centrado en gran medida en la informática teórica, las preguntas de las entrevistas en las empresas estadounidenses giran en torno al tipo de cosas que los estudiantes estadounidenses aprenden en las universidades estadounidenses. Los estudiantes con una educación práctica más directamente relevante están excluidos.

Ahora sé sobre estructuras de datos y algoritmos, pero eso no se debe a nada de lo que aprendí en educación o en el trabajo. Todo fue un trabajo especial que tuve que hacer para prepararme para las entrevistas de trabajo y nada de eso lo he usado fuera de las entrevistas de trabajo.

Hermano también estoy haciendo b.tech (cse) .Me tampoco tenía ningún interés en la codificación, algoritmo, estructura de datos.

No se preocupe, hay una gran opción para nosotros.

El marketing digital es la opción alternativa para hombres como nosotros, es totalmente táctico sin ningún conocimiento de codificación.

El marketing digital está en auge en los próximos años, si no me puede creer, busque el tema del marketing digital en los tiempos de la India.

Hace un mes, estoy aprendiendo que el marketing digital es bueno, interesante.

La mejor de las suertes.