¿Puedo convertirme en ingeniero de software sin conocer las estructuras de datos y los algoritmos?

No puedes ser un programador real sin conocer las estructuras de datos y los algoritmos, porque el programador debería ser capaz de resolver problemas.

Estos son los conceptos básicos para resolver problemas de manera matemática y estructural, además de su papel en la resolución de los problemas de tiempo de implementación y rendimiento.

Por lo tanto, le aconsejo que aprenda a codificar programas simples en cualquier idioma, antes de comenzar a aprender algoritmos y datos estructuras, lo que parece ser un tema fresco, trivial y complejo, pero de hecho muy importante.

Si desea entrar en este tema, le recomiendo un libro llamado: Introducción a los algoritmos.

El libro aborda incluso los algoritmos de tiempo exponencial como Knap-sack y otros.

Pueden ser necesarios en pequeñas y grandes empresas por igual.

Como puede ver, cuantos más problemas tenga, más descubrirá que necesita volver a lo que aprendió sobre la estructura de los datos y los algoritmos de sus operaciones.

Aunque la mayoría de estas estructuras y algoritmos se han incluido de una manera fácil de usar en lenguajes de programación encapsulados, no se pueden usar sin saber por qué se usan y cómo se usan realmente.

Para ser un verdadero programador, debe llamar la atención sobre:

Estructuras de datos.

Algoritmos

Resolviendo problemas.

Complejidad.

En Holberton School puedes aprender todo sobre estructuras de datos y algoritmos, te enseñarán de manera moderna paso a paso.

Sí, puede hacer muchas cosas sin tener un conocimiento profundo de las implementaciones de estructuras de datos y detalles de algoritmos clásicos.

Esto significa que estará limitado a usar las existentes, pero hay un montón de buenas implementaciones y es simplemente incorrecto reinventar la rueda cada vez.

Los algoritmos de clasificación, el equilibrio de estructuras de datos, etc. están muy lejos de la programación común del día a día. Es casi como la diferencia en saber cómo funciona un motor y conducir. Hoy las computadoras son extremadamente rápidas y rara vez se necesita la mejor solución. Y siempre puedes pedir ayuda para que alguien más.

La desventaja es que pierdes una ocasión para un buen ejercicio mental y para tener una idea clara de cuándo y por qué, por ejemplo, un árbol de hash puede ser mejor que una lista vinculada (o lo contrario).

Es como aprender a tocar la guitarra y nunca aprender a leer la música. Esto significa que eventualmente encontrarás algunas barreras en lo que puedes hacer.

Creo que comenzar a programar mediante el estudio de algoritmos clásicos no siempre es el camino ideal, especialmente si estás ansioso por hacer algo de código. Comencé a programar “libremente” y años más tarde volví a estudiar la clásica “base”.

Muchas entrevistas de trabajo de hoy requieren habilidades algorítmicas básicas, si está buscando trabajo, eventualmente puede encontrar un problema allí.

También puede ser un problema en la forma en que se presenta el material en ese curso específico (que no sé): puede probar uno diferente o algunos videos de YouTube, blogs con esos mismos argumentos hasta que encuentre uno que haga clic con usted.

En mi opinión, el contenido con el que estás luchando es de vital importancia. Sugeriría probar cursos que cubran estructuras y algoritmos por separado, y comenzar con la parte de estructuras del curso, que tiende a ser un poco más fácil que la parte de algoritmos.

El curso del algoritmo tiende a ser un poco más riguroso e involucra algunas matemáticas con las que puede o no estar familiarizado.

Puede ser que el ritmo de los cursos de Coursera sea demasiado alto. Tim Roughgarden tiene un curso de algoritmos en youtube que puedes seguir a tu propio ritmo.

Finalmente, esas estructuras y cursos de algoritmos en Coursera suponen que conoce al menos un lenguaje de programación realmente bien. Ni siquiera intentaría ninguna de esas clases si no cumpliera con ese requisito.

Malas noticias: necesitas aprender estructuras de datos y algoritmos

Buenas noticias: en realidad es bastante fácil una vez que dominas los fundamentos

En serio, tómese un tiempo para volver a repasar todos los conceptos básicos del idioma. ¿Estás seguro de saber qué son las estructuras de control?

Vuelva a aprender estos

  1. variables
  2. Tipos de datos
  3. Si
  4. Más
  5. Si no
  6. Mientras
  7. Hacer mientras
  8. por

Y piensa en cómo trabajan juntos. Si puede escribir un programa simple en main usando esos, puede envolverlo en un algoritmo.

Ni siquiera piense en tocar las estructuras de datos hasta que se sienta cómodo escribiendo los algoritmos de búsqueda y clasificación en las matrices (la única estructura de datos que debe mirar). Luego estudie la programación orientada a objetos

Luego estudia los fundamentos nuevamente

Después de todo eso, las estructuras de datos quedarán claras

¡Buena suerte!

DS y Algorithms (Algo) son básicos de CS, estas 2 cosas deben mejorar su habilidad lógica y analítica para resolver problemas en CS.

Sí, se convertirá en SE sin conocer DS y Algoritmos, pero hay una diferencia en SE que conoce DS y Algo y que no conoce DS y Algo. La diferencia viene en términos de resolver el problema.

Hay 2 formas de resolver el problema, una es la forma codiciosa y la otra es la forma óptima.

Si SE conoce a DS y Algo, siempre resuelve el problema teniendo en cuenta la complejidad del tiempo y el espacio, lo que lleva a un resultado en términos de rendimiento y mantenimiento del código en el futuro.

espero que esto ayude

El mundo del desarrollo de software es mucho más grande que solo la ingeniería de software. Si espera ser un buen ingeniero de software, entonces probablemente debería saber esas cosas, pero bueno, tal vez eso no sea lo suyo. O tal vez no debería ser tu primera prioridad.

Probablemente pueda encontrar una opción para usted dentro de esta industria masiva. Trabajo en “Frontend” y definitivamente soy ingeniero de software, pero trabajo con propietarios de productos, diseñadores de control de calidad, UX y UI, partes interesadas de negocios y mucha gente creativa.

Si resuelve problemas todos los días creando bien el software, entonces es un ingeniero de software. No dejes que Robert Sedgwick y Kevin Wayne te enfrenten en lo que puedes hacer y escriban software útil. Por favor escribe pruebas.