¿Cuál debería ser el enfoque para aprender lo básico y debe saber cosas (como la estructura de datos – algoritmos) relacionadas con la programación desde cero después de desmayarse de una rama que no es CSE?

Gracias por el A2A.
Parece que tienes algunos conocimientos de programación con respecto a iOS.
Simplemente siga estos pasos de manera casual.

  • Como tiene un buen control sobre iOS, puede aprender JAVA / Python / C fácilmente. Pruebe primero cualquier idioma.
  • Luego, puede comprar CLRS – Introducción al libro de Algoritmos o Algoritmos de Robert Sedgewick.
  • Hay clases en línea para estructuras de datos y algoritmos en MIT OCW / COURSERA, que le enseña exactamente el contenido de los libros antes mencionados.
  • Más tarde, intente implementar un pequeño proyecto utilizando lo que ha aprendido en el idioma que le interese. (Cualquier aplicación. Proyecto lo hará inicialmente)
  • Luego, busque algunas contribuciones de código abierto en el área de idioma / problema con la que se sienta cómodo.
  • Finalmente, puede comenzar a resolver problemas desde TopCoder, Codechef, etc., comenzando por el fácil.

Espero que les sea útil.

Soy un desarrollador de iOS, me desmayo de la rama de Electrónica en Ingeniería, lo que he hecho en los últimos cuatro años solo en aplicaciones relacionadas con iOS en las que he leído solo sobre conceptos básicos objetivos de C y he desarrollado habilidades para resolver problemas solo relacionadas con iOS .

Subrayé la declaración anterior porque parece que no aprecias el valor de lo que sabes. En el mundo de hoy, ¿nadie conoce correctamente ningún sistema operativo y usted desarrolló habilidades para resolver problemas? Eso es enorme. Deberías estar orgulloso de ti mismo allí mismo.

Gracias a esto me he convertido en un desarrollador monótono

¿Has estado trabajando en iOS durante los últimos cuatro años y aún eres un desarrollador monótono? O no te estás empujando en la dirección correcta o has agotado todas las vías para mostrar tus habilidades. De cualquier manera, debe comenzar a buscar diferentes desafíos.

Si estás aburrido de trabajar en Objective-C, prueba Android. Es lo suficientemente diferente como para enseñarle un enfoque diferente para el diseño de aplicaciones, pero no tan difícil como para que se dé por vencido. También puede probar otras áreas, como el desarrollo web con HTML5 y CSS3. Son bastante interesantes también.

El motivo principal de los ejercicios anteriores es alejarte de tu zona de confort. Solo puedes crecer si te mueves fuera de tu zona de confort.

cuando veo a otros estudiantes que “saben” todo lo que siento me deja fuera

Esta es la mayor declaración de BS que leí aquí. Nadie lo sabe todo. Puede parecer que lo hacen, pero muy pocos de ellos pueden crear aplicaciones (como usted) que cambian fundamentalmente la forma en que trabajan las personas. Ahora, eso es más valioso que el conocimiento de DS / Algo que te falta.

Si quieres aprender los conceptos básicos de CS, entonces hazlo por todos los medios, pero no lo hagas porque lo hacen otras personas.

Si todavía está interesado en aprender sobre los fundamentos de CS, le sugiero que comience con Computer Systems: A Programmer’s Perspective (2nd Edition). Es fantástico, ya que le da una idea de lo que sucede dentro de la máquina cuando su código se ejecuta en el procesador.

Una vez que haya leído este libro, le sugiero que comience a trabajar en estructuras de datos y algoritmos (hay muchos consejos sobre Quora para eso). Solo trabaje lo suficiente para que los conozca lo suficientemente bien. Nadie espera que seas un maestro programador competitivo. Después de trabajar en estos temas, debe ser lo suficientemente fuerte en la base de la informática para perseguir sus propios intereses.

En cuanto a casarse, creo que solo tendrás que administrar tu tiempo en consecuencia.

Espero eso ayude. Gracias por el A2A.

More Interesting

¿Qué lenguajes de programación vale la pena aprender y por qué?

¿Cuál es la mejor manera de contactar a los desarrolladores en grandes compañías de software para ser un orador invitado en un curso universitario?

¿Cómo evaluamos la calidad de un diseño de software?

Si los requisitos del cliente cambian continuamente como probador, ¿cómo va a gestionar la situación?

¿Cómo uno, programáticamente hablando, crea un juego como 'No Man's Sky'? ¿Qué tipo de problemas deben resolverse?

¿Cuáles son algunas oportunidades de carrera que exploran la intersección entre el desarrollo de software y el cine?

¿Qué software de registro de eventos debo usar?

¿Cómo aborda la arquitectura del software el riesgo de falla del proyecto?

¿Qué tipo de ingenieros de software tienen una gran demanda?

Cómo mostrar el nombre del paquete de una clase usando UML

¿Cuánto impactará el código abierto en la educación? ¿Existe un mayor alcance para las empresas privadas a largo plazo o las universidades avanzarán hacia tecnologías de código abierto y un menor uso de productos edtech?

¿Cuáles son los proyectos interesantes de Apache con los que todos los desarrolladores deberían estar familiarizados?

¿Hacia dónde avanza la industria del software en India?

¿Cuántos desarrolladores y cuánto tiempo tomaría escribir una GUI sólida para Linux desde cero para que coincida con la calidad de Windows y Mac OS?

¿Cómo se rastrea la velocidad de apertura de procesos en Linux?