¿Puede un programador autodidacta conseguir un trabajo sin conocer las estructuras de datos o los algoritmos?

¡No necesita ningún conocimiento de estructuras de datos o algoritmos ni ninguna codificación compleja para trabajos como Software Developer in Test (conocido como Automation Test Engineer)!

¡Debe conocer el conocimiento y la pequeña cantidad de práctica diaria que le permite obtener un trabajo de prueba a cualquier costo agregando su experiencia previa de desarrollo contada!

Por ejemplo, debe haber estudiado ingeniería de software, pero necesita habilidades como Pruebas de automatización (como ejemplo) para obtener cartas de oferta después de la graduación.

¡Digamos que conocer herramientas como Selenium Webdriver sería una elección perfecta! ¡Solo necesita implementar su conocimiento de java o .net para escribir scripts de automatización para Selenium!

Si cree que necesita comenzar desde algún lugar, le sugiero que lea un libro en lugar de mirar youtube, asistiendo a cualquier capacitación (intento costoso), por lo tanto, vale la pena revisar las siguientes lecturas:

¡Haga clic en Upvote para ayudar a otros lectores!

Er, algo así. Realmente no. Pero sí, absolutamente. Mi licenciatura está en inglés, y cuando me convertí en programador profesional no pude haber definido ninguno de los términos. Y ciertamente he visto un código “profesional” que no podría haber sido escrito por alguien que supiera lo que estaban haciendo en cualquier área.

Una mejor pregunta sería: “¿Qué necesito saber sobre las estructuras de datos y los algoritmos para ser un programador decente / bueno?” Y luego, “¿cómo hago para aprender esto?”

El curso que la mayoría de la gente llama Algoritmos es mejor conocido como Análisis de Algoritmos. Comienza simple y crece muy complejo y abstracto. Para la mayoría de los programadores, solo lo importante es importante, y ese es principalmente el orden de complejidad y cómo derivar la complejidad (informal) de un algoritmo. Si sabe cómo hacerlo y sabe que (en términos generales) O (1)> O (logn)> O (n)> O (nlogn)> O (n ^ 2)> O (n ^ m), usted ‘ re bien. Es útil saber un poco más, pero ¿necesita aprender a escribir su propio algoritmo de hash? No, y para la mayoría de los propósitos es una mala idea escribir la suya.

En cuanto a las estructuras de datos, debe saber cómo difieren una pila y una cola (LIFO frente a FIFO), y por qué se debe usar uno u otro. También debe saber qué es una matriz, qué es una lista, cómo una lista vinculada permite agregar y eliminar más rápidamente que una lista basada en una matriz, y qué es una tabla hash.

Enseñamos mucho más a los informáticos porque les damos más base en el campo de lo que necesitan para ser programadores básicos. ¿Por qué hacemos esto? Por la misma razón que los estudiantes de inglés que sueñan con ser editores tienen que tomar clases teóricas iluminadas; Expande la mente y enseña el pensamiento crítico profundo.

Claro, si quieres ser un programador corriente. (sin ofender a nadie, es solo una verdad generalmente aceptada)

Tendrás problemas para resolver problemas simples que un programador promedio podría resolver. Pronto se dará cuenta de que su código es lento, sucio y difícilmente se puede escalar o mantener.

Sin embargo, a fin de cuentas, no es necesario que seas un gurú de los algoritmos si no quieres. Debe saber qué hay ahí fuera, las estructuras de datos más utilizadas y su intercambio espacio / tiempo.

Es posible que se aleje por un tiempo sin saber nada de esto, pero tendrá que hacer las paces con la idea de que sus habilidades siempre estarán en el extremo inferior del espectro.

Además, no te engañes creyendo que si aprendiste una tecnología sofisticada que te permite hacer cosas súper increíbles, eres un buen programador. La tecnología cambia rápido. Siempre tendrá que volver a aprender cosas una y otra vez en algún momento y casi cualquiera puede hacerlo.

Piense en las estructuras de datos (y los algoritmos eventualmente) para un programador como una caja de herramientas básica para un mecánico. Puede haber algunos martillos eléctricos increíbles, pero saber cómo usar un martillo antiguo siempre será útil.

PD: Siempre me sorprende cuando la gente hace este tipo de preguntas. Personalmente considero que las estructuras de datos y los algoritmos son uno de los aspectos más bellos y elegantes de la codificación. Si no te gustan estos, ¿estás seguro de que quieres seguir adelante con la programación? Solo se pondrá más feo a medida que avanza …

Claro, técnicamente soy un ingeniero calificado, pero he pasado mi carrera como programador, incluido el programador / investigador senior de juegos. El único algoritmo de clasificación que podría implementar sin acceso a libros o Internet es el bubbleort.

Pero por otro lado, he implementado cosas como árboles kd, octrees, árboles BSP, búsqueda A *, algoritmos genéticos, redes neuronales, motores físicos, motores gráficos, motores de juegos, raytracers, rasterizadores, etc.

La calidad de los buenos programadores se mide por lo rápido, fácil, ordenado y sin errores que pueden hacer las cosas y qué tan bien funcionan bien en un equipo, no cuántos libros de algoritmos han leído.

Claro que hay muchos trabajos que no requieren un conocimiento profundo de estructuras de datos o algoritmos. El trabajo frontend como la programación web generalmente no requiere una comprensión profunda de los fundamentos de CS. Quizás el desarrollo de aplicaciones sería otro campo para explorar. Es probable que necesite saber cómo usar matrices, listas, tablas hash, etc., pero no se espera que las implemente desde cero, ni necesitaría saber cómo hacer un análisis big-O.

La mayoría de las grandes compañías tecnológicas prueban el conocimiento de CS, por lo que probablemente le resulte bastante difícil conseguir un puesto allí. Las empresas tecnológicas más pequeñas, las empresas no tecnológicas y el trabajo independiente son algunas buenas opciones para los desarrolladores sin una sólida base de datos / algo.

Esta pregunta necesita calificación. ¿De qué trabajo estás hablando? ¿Un trabajo como programador? ¿Qué tipo de programación? En la actualidad, la gente usa la palabra programación para todo tipo de cosas, como crear páginas web.
¿Qué quieres decir con saber ? ¿La capacidad de implementarlos sin libros de referencia o navegar por la web en busca de ayuda? ¿O simplemente la capacidad de elegir el tipo adecuado para la tarea, y tal vez extenderlos como sea necesario?
Mucha programación solo baraja información de A a B, asegurándose de que los datos de este campo entren en ese campo, etc. Si te refieres a este tipo de trabajos, podrías obtener solo conociendo las API y el marco relevantes.
Si desea algo interesante o el respeto de sus compañeros de trabajo, necesita estructuras de datos y algoritmos.

Absolutamente. Y sabes algoritmos. Quizás simplemente no avancen. Siempre hay necesidad de programadores tácticos que se ejecuten en el cableado de backend, frontend, etc. Y siempre se puede aprender el diseño de algoritmos, etc. necesitar.

Creo que depende de lo que quieras decir con “conocer estructuras de datos y algoritmos”. No es necesario un conocimiento profundo, pero un programador que no esté familiarizado con las estructuras de datos más comunes (matrices / listas, mapas / diccionarios, conjuntos, pilas, colas) y cuando tenga sentido usarlas, tendrá dificultades hora.

Sí, pero en algún momento se necesitará algún conocimiento de DS y Algoritmos. Así que mi consejo es leer después de conseguir el trabajo. Sin embargo, para conseguir un trabajo como ingeniero de software en una empresa como Google o Facebook, definitivamente se necesita conocimiento de DS y Algoritmos porque lo evaluarán durante su entrevista.

Probablemente no. Realmente depende ¿Pueden aprender cuando surge la necesidad? ¿O te refieres a no tener que saber nada más allá de las estructuras básicas de datos? Hay algunos nichos más nuevos donde es posible, pero en general, la mayoría de los trabajos de desarrollo de software requieren una comprensión de las estructuras de datos y algoritmos. Son la esencia de la programación, en el sentido de que permiten estructurar y manipular la información.

Sí, soy uno de los ejemplos vivientes … aunque me enseñaron estructuras de datos y algoritmos, nunca lo aprendí 🙂 y hasta ahora no lo estoy usando en mis 10 años de experiencia en programación.

More Interesting

¿Cómo deben asociarse los gerentes de producto y los gerentes de ingeniería?

Como solicitante de empleo, ¿cuáles son las mejores prácticas para responder a una presentación por correo electrónico a un posible empleador sin una oferta de trabajo específica?

¿Cuál es el mejor sitio web de orientación profesional para profesionales que trabajan?

¿Cómo es seguir MA (Economía) de IGNOU?

¿Cuánto se puede ganar después de hacer un MBA de los mejores IIM y cómo crece el salario durante años en comparación con el crecimiento de un ingeniero de software?

¿Qué habilidades blandas son importantes para los Contadores Públicos?

En el Reino Unido, si existe una discrepancia entre la correspondencia y un contrato de trabajo no firmado con respecto al período de notificación de trabajo, ¿puede el empleado cumplir con el período más corto?

¿Escribir una carta o correo electrónico a un congresista de EE. UU. Ayudaría en la colocación laboral?

¿Qué nivel de seguridad generalmente se requiere para los puestos del Departamento de Estado?

¿Cómo debo elegir un cuidador?

¿Cómo puede un ingeniero mecánico conseguir trabajo en Renault?

¿Cuál es el mejor título universitario para ayudar a una carrera en bienes raíces?

ISRO está ofreciendo un trabajo de científico / ingeniero en SC para candidatos no GATE. ¿Es falso o un trabajo a corto plazo?

¿Qué puedo hacer para vivir bien?

¿Qué se siente al sentarse para las ubicaciones y no ser preseleccionado para ninguna compañía del Día 1 / Día 2?