¿Qué debo aprender primero, desarrollo de Android o algoritmos?

Su pregunta y los detalles son confusos. Ver último párrafo. El siguiente es más para alguien que recién comienza.

Realmente no deberías verlo como dos cosas diferentes. Necesita algoritmos (y en realidad estructuras de datos en combinación con algoritmos) para cualquier tipo de programación. Incluyendo “Desarrollo de Android”. Es literalmente como preguntar: “¿Debería aprender matemáticas primero o comenzar directamente con estadísticas?” ser capaz de razonar acerca de hacer cualquier cosa específica de una forma u otra, organizando datos de una forma u otra. Lo mismo que un estadístico no necesita saber cada idea matemática que se haya inventado, pero sería difícil hacer algo si no tiene ningún tipo de conocimiento al respecto.

Mi sugerencia sería utilizar el Desarrollo de Android como el tipo de ejemplos de programación que practicas para aprender algoritmos y estructura de datos. Por ejemplo, en lugar de la consola habitual, hace algunas preguntas: calcule el resultado, muestre y repita, hágalo en un emulador móvil. Cada vez que lo domine, intente también mejorar sus habilidades de interfaz de usuario; por ejemplo, la próxima vez, en lugar de solo un diálogo con entrada, intente un diseño impulsado por eventos. Lo más difícil cuando comienzas es encontrar ejemplos que te interesen, y dado que tu objetivo es usar Android, ¿por qué no enfocarte en eso específicamente cuando aprendes algos?

Si quiere decir que solo puede encontrar un curso en Android y otro en Algos, ambos exclusivos, entonces necesita buscar un poco más. Puedo creer que los Algos no siempre están orientados a Android (es decir, se enfoca en algo más o de naturaleza más general), pero un curso de Android que no incluye ningún algoritmo no vale la pena mencionarlo como curso. La única posibilidad es que dicho curso de Android esté destinado a programadores de nivel intermedio a avanzado y simplemente muestre los detalles involucrados, es decir, tiene un requisito previo de que los alumnos necesiten comprender los algoritmos y las estructuras de datos (en cuyo caso usted tiene tu respuesta).

Sin embargo, usted declara: “Conocimiento sólido de Java, C #, Python, Bases de datos”. ¿Qué quieres decir exactamente con esto? ¿Realmente has hecho algunos programas usando esos? ¿Cómo pudiste hacerlo sin ningún conocimiento de algoritmos? Para eso es lo que “es” la programación, diseñe algunos algoritmos para operar en algunas estructuras de datos que luego codifica utilizando algún lenguaje. El lenguaje en sí es mucho menos importante que los algoritmos y las estructuras de datos que diseña. Incluso el diseño de la interfaz de usuario es de mayor importancia que el lenguaje, al menos si va a hacer programas interactivos para el usuario (lo que probablemente sea porque pregunta sobre Android). Entonces, si ha realizado alguna programación seria antes, es probable que tenga al menos una comprensión aceptable de los algoritmos. ¿Cuánto es algo que solo tú puedes responder? Y si eso es suficiente para ir con un curso de Android de nivel intermedio, es una situación de “depende”.

Aunque no es necesario, pero si está inclinado hacia el Desarrollo de Android, entonces es necesario aprender los conceptos básicos de Algoritmos, específicamente en el caso del Algoritmo de firma digital (DSA).

Te sugiero que pruebes la aplicación Algo.Ninja que es una aplicación de juegos de aprendizaje algo interesante para entenderla rápidamente. Aprender aquí o practicar aquí durante unos 10 días dedicando al menos 30 minutos al día seguramente mejorará sus habilidades para crear una aplicación rápida. Le ayudará a comprender la optimización y la viabilidad de la tarea.

Lo mejor de Algo.Ninja es que se puede ejecutar fácilmente tanto en teléfonos inteligentes como en PC y sus juegos están diseñados de tal manera que se hace mucho más fácil aprender algos aquí en lugar de esos libros de teoría.

No aprende ‘algoritmos’ como un conjunto fijo de rutinas que todos los programadores tienen que aprender: el algoritmo significa ‘forma de hacer algo’, por lo que, por supuesto, debe aprender diferentes formas de hacer cosas para escribir programas. Eso significa algoritmos (al menos lo que significa la palabra y algunos simples) primero, luego programar, luego programar en un entorno particular (como Android).

Si tiene un conocimiento sólido “sobre Java, C #, python” (dudo que pueda escribir un programa completo en SQL; ya sabe cómo hacer lo básico con las bases de datos), ya sabe acerca de algoritmos, porque los usa en programas de escritura en esos idiomas (Si no lo hace, aún no está en el nivel de entrada en esos idiomas; incluso los principiantes de rango usan algunos algoritmos).

Entonces, viendo que ya conoces algoritmos y Java, aprende el entorno de Android y comienza a escribir.

Todo descubrimiento en informática se trata de algoritmos. Como Algoritmo juega un papel central en informática.

Entonces, también la informática es un tema muy amplio. Siempre depende de lo que realmente te interese más.

Las estructuras de datos y los algoritmos son de suma importancia en la programación. Sin embargo, apréndalos solo después de poder programar sin problemas en al menos un lenguaje de programación. Los algoritmos proporcionan visiones más abstractas para escribir programas correctos y efectivos. Para tareas básicas, realmente no las necesita. Sin embargo, para tareas no triviales, los algoritmos nos ayudan mucho.

Esta es una mala pregunta, porque compara manzanas y naranjas. Si el idioma es el idioma mismo, entonces el entorno (android / escritorio / servidor web / etc.) es la cultura, y los algoritmos son la gramática. No importa en qué cultura se encuentre, debe conocer la gramática y el lenguaje adecuados para expresarse de manera significativa.

Realmente desconfío de su nivel de programación si dice que tiene un ‘conocimiento sólido’ de Java, C #, Python y bases de datos (?!) y aún no comprende esto.

Entonces, para responder a su pregunta, algoritmos.

Te sugiero que primero aprendas algoritmos porque es el tema que debes aprender en informática.
Si pudiera aprender el diseño orientado a objetos (mi recomendación), le resultará más fácil aprender cualquier tecnología a partir de ahí.
¡Buena suerte!

No creo que eso importe. Ninguno de los dos es un requisito previo para el otro. Tomé mi primera clase de estructuras de datos simultáneamente con mi primera clase de desarrollo de Android, luego tomé una clase de algoritmos el siguiente semestre.

AKA

Es una pregunta difícil, pero si estuviera en su lugar, me concentraría en el desarrollo de Android, una vez que tenga un conocimiento rudimentario de los algoritmos que podrían utilizarse para ayudar.
Luego buscaría en Google una implementación de código abierto del algoritmo, o un trabajo académico al respecto, y lo escribiría (con muchos casos de prueba). no necesita entenderlo al 100%, solo asegúrese de que funcione (trátelo como una caja negra).

También pasaría un poco de tiempo (digamos 5-10%) aprendiendo sobre algoritmos (el curso es genial de esa manera).

primero aprenda el algoritmo, tener un concepto seguramente ayudará a codificar programas de manera más rápida y eficiente

Haría ambas cosas al mismo tiempo.

Aprende los conceptos básicos de Android y haz algo simple. Pon un algoritmo genial en la aplicación. Luego regrese y aprenda más sobre el marco para que pueda crear un algoritmo más complejo o mostrarlo de una manera única.

Los algoritmos probablemente sean más útiles para conseguir un trabajo en una empresa de marca, pero aprender a aprender un API / Framework le permitirá destacarse en el trabajo y probablemente sea más práctico para lo que hará día a día.

Algos Si tienes eso abajo, cualquier tipo de desarrollo será mucho más productivo.

algoritmos es la base de todo desarrollo