Resultados 1 al 8 de 8

Tema: Camino a seguir para aprender a crear apps?

  1. #1
    Sin vida social Avatar de punteral
    Ubicación
    Extremadura
    Edad
    36
    Mensajes
    423

    Predeterminado Camino a seguir para aprender a crear apps?

    Hola a todos.


    Me gustaría aprender a programar apps para móviles (inicialmente Android) de manera autodidacta. Antes de intentar nada quería consultar a compañeros del foro que tengan conocimientos sobre el tema para valorar si es un objetivo factible y empezar a planear como llevarlo a cabo.

    En principio no lo hago por tema laboral, simplemente me gustaría alcanzar con el tiempo un punto en el que pueda crear apps de cierta complejidad por mí mismo y también poder mantenerlas actualizadas y funcionando, solucionar los problemas que puedan surgir, etc.

    Mis conocimientos de programación son básicos, aunque ya he trasteado varias veces a lo largo de mi vida con la programación, pero sólo a nivel aficionado y por curiosidad. No tengo problema con el tema de operaciones lógicas, bucles, variables, etc., pero nada más. Programación orientada a objetos, bases de datos y otras cosas apenas los conozco.

    He buscado información y por lo que veo las apps de android se programan con Java, pero el lenguaje que supuestamente lo está reemplazando y se utilizará en el futuro es Kotlin. Creo que este Kotlin está relacionado con Java y que resulta sencillo para la gente que ya sabe programar en Java.

    Con esta información la elección sería fácil. Tengo que aprender Kotlin. Pero el problema es que hay mil veces más información y ayuda en internet para Java que para Kotlin, por lo que es un punto a tener muy en cuenta si mi plan es aprender de forma autodidacta.


    Entonces mi principal duda es, ¿empiezo por Java, o estaría perdiendo tiempo y esfuerzo en un lenguaje que pronto no me va a servir? ¿Podría aprovechar esos conocimientos de Java para dar el salto a Kotlin en el futuro?


    Otra duda que tengo es qué otro tipo de conocimientos serían necesarios a parte de la programación pura. Sé que en los estudios relacionados con programación hay muchas asignaturas que se estudian de forma paralela pero no tengo muy claro cuáles son y cuales serían las realmente útiles para mi objetivo.


    Otra cosa que me resultaría muy útil sería tener alguien a quien consultar las dudas y que me asesorara un poco sobre el camino a seguir. He estado buscando un poco y no he encontrado ningún tipo de plataforma/web donde se puedan contratar clases particulares orientadas a lo que yo necesito. Quería preguntaros si conocéis alguna manera de contratar a alguien con experiencia para pagar alguna clase particular online cuando fuera necesario. Sé que los foros son muy útiles en este sentido, pero me gustaría poder tener a alguien a quien preguntar sin sentirme como un pesado que pregunta lo mismo varias veces hasta que le queda claro, aunque tenga que pagar.


    Y ya para terminar, ¿creéis que es posible alcanzar el nivel para crear aplicaciones avanzadas por mi mismo de forma autodidacta? Invirtiendo un rato cada tarde durante un par de años se podría conseguir un nivel mínimo?


    Os agradezco por adelantado cualquier información o ayuda que podáis ofrecerme y disculpad por el tocho.
    Un saludo a todos.

  2. #2

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    No soy un experto, ni de lejos.
    Soy un aficionadillo que, al igual que tú, va aprendiendo cosillas de programación por puro ocio. Así que lo que te diga tómalo simplemente como lo que es, mi opinión en base a mi experiencia subjetiva.

    Kotlin está escrito sobre Java (usas sus librerías, corre sobre la JVM, etc..) y su intención es agilizar la sintaxis de Java, para hacer lo mismo pero con menos líneas y añadiendo más versatilidad al lenguaje.
    Sí, es una maravilla, y quizás acabe sustituyendo a Java. O no, porque no es el único que pretende lo mismo (Groovy, Scala,..)

    Sin embargo, quizás para aprender y comenzar de cero (o casi cero) no sea la mejor opción. Algunos aspectos de su sintaxis pueden costar entenderlas y se digieren mejor si ya se está más versado en programación (sea con el lenguaje que sea).

    Java en cambio es más fácil familiarizarse con su sintaxis y como tú mismo ya has comprobado, hay miles de ejemplos y tutoriales en la web, mucho más que para Kotlin.
    A Java se le critica que su sintaxis es muy "verbosa". Que se necesita teclear demasiado para programar ciertas acciones.

    Esto es relativo. Si se compara con Kotlin, pues sí.. Pero Kotlin reduce tanto la "verbosidad" que por eso puede resultar más durillo para comenzar a aprender programación.

    Si se compara con C++, uno de los lenguajes más importantes de todos los tiempos, pues no resulta tan verboso.

    De hecho, esa es otra ventaja de Java. Al ser pariente de C++, se parece a él en muchas cosas y luego puede resultar más sencillo aprender C/C++ y también CSharp (C#), este último es también muy interesante para programación bajo Windows o si un día quieres meter mano a Unity y hacerte un jueguecito.

    Con Java, es más fácil aprender programación y adquirir fundamentos. De hecho, uno de los pilares de su diseño era hacer un lenguaje POO lo más simple posible. Por eso cogieron gran parte de C++, quedándose con lo mejor y quitando lo "complicado" (como la aritmética de punteros) y lo que son funcionalidades de bajo nivel.

    Pero bueno, esto no significa que no se pueda aprender con Kotlin. Se puede, pero será un poco más difícil.
    Por otra parte, cierto que Kotlin está en buena posición porque Google lo ha nombrado lenguaje oficial junto a Java para Android. Pero quien sabe si pasado un tiempo acaba pasando de moda en favor de otro lenguaje.

    Si miramos el indice Tiobe, a fecha de hoy, Java está en el segundo puesto (va alternando siempre de primero a segundo, de segundo a primero...)
    Groovy, otro lenguaje que funciona sobre la JVM de Java, está en el puesto número 12.

    Kotlin..., no sale en la lista

    A lo que voy es que puede que dentro de un año o dos, Kotlin si esté en la lista o en cambio nadie hable ya de él.
    Pero Java, seguro que seguirá estando ahí, con toda su verbosidad...
    Así que aprender Java, no creo que pueda considerarse nunca una pérdida de tiempo.

    Insisto, esta es mi opinión, de un inexperto que no se dedica a la programación, ni sabe que se cuece en el mercado ni nada.
    A ver que opinan gente que sí está metida en el ajo.
    • Ryzen 3700X
    • MSI MPG X570 Gaming Edge Wifi
    • Corsair RGB 3200 2x8GB DDR4
    • KFA2 GTX1070

  3. #3
    Sin vida social Avatar de punteral
    Ubicación
    Extremadura
    Edad
    36
    Mensajes
    423

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    Hola Kabuto. Lo primero que quiero hacer es agradecerte tu respuesta. Una gran respuesta por cierto, muy muy útil y muy completa. Aprecio mucho el esfuerzo, de verdad. No es habitual obtener respuestas tan completas en los foros.

    No te preocupes, entiendo que todo lo comentado proviene de tu opinión subjetiva. Aún así se nota que tus conocimientos son mucho más avanzados que los míos y considero tu respuesta bastante fiable.

    Mi principal duda (Java o Kotlin) queda casi resuelta. Ya estaba más a favor de intentarlo con Java que con Kotlin, pero tras leer tu respuesta casi me he decidido. Ahora sólo me falta averiguar si el objetivo que tengo en mente (crear apps Android) es asequible con el tiempo y los recursos disponibles.


    Muchísimas gracias por la ayuda.
    Un saludo!

  4. #4

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    Hola Punteral.

    Kotlin es el futuro de Android sin lugar a dudas y Google está apostando fuerte por él. Kotlin simplifica y optimiza el código Android pero eso no implica que Java no sea utilizable. Java sigue siendo totalmente válido para desarrollar apps Android y aún hay mucho margen para aprender conceptos de Android con Java sin necesidad de usar Kotlin.

    Tu mismo comentabas que estás aprendiendo de manera autodidacta y no tienes muy controlada la POO (Programación Orientada a Objetos). Creo que por ahí es por donde debes empezar y Java es uno de los mejores lenguajes para ello. Yo empezaría aprendiendo Java puro y duro. No te lo tomes como un paso atrás, ya que tu objetivo es hacer aplicaciones Android.

    Piensa que estás adquiriendo una base sólida que te va a servir luego para aprender más rápidamente no sólo Android, sino otros lenguajes. En esto de programar, tener la habilidad de aprender tecnologías nuevas y nuevos conceptos es esencial pero si tienes una buena base será todo más fácil. El hecho de que tanto el compañero como yo te recomendemos Java tiene otros motivos detrás. Java es, si no el que más, uno de los lenguajes de programación más extendidos por el mundo. La comunidad que tiene detrás y la cantidad de ejemplos que vas a encontrar por internet es abrumadora. Hay muchísimos problemas y dudas resueltas en foros y el archiconocido stackoverflow. Además de ello hay miles de librerías a disposición de los desarrolladores que pues usar libre y gratuitamente en tus proyectos. Cualquier duda que tengas con Java prácticamente ya la tendrás resuelta por internet. No conozco Kotlin, nada en realidad, pero dudo que con el poco tiempo que tiene en el mercado y su utilidad casi reducida a Android le haga tener más recursos a disposición de los programadores que Java.

    Una vez que ya tengas una base de Java adquirida ya empezaría con Android, usando Java para hacer las apps. Cuando tengas una base más sólida, tengas los conceptos de Android asentados y te hayas hecho unas cuantas apps y peleado con muchas cosas... ahí, en ese punto, es cuando empezaba a trastear con Kotlin. Tendrás más conocimientos para asimilar las ventajas que te proporciona Kotlin y apreciarás mucho más las ventajas que seguro proporciona a desarrollar apps Android.

    Java no sólo te servirá para Android, también te puede servir para proyectos personales y oye, si algún día te quieres dedicar a esto de programar pues mira, es el lenguaje de programación más demandado de España.
    Última edición por elgranmalkav; 19/02/2021 a las 18:45
    PC: Ryzen 9 3900x - Corsair H115i Platinum - Asus Crosshair VI Hero - G.Skill TridentZ 2x16GB 3200 CL14 - EVGA 1080Ti FTW3 -Samsung nvme 970 Evo Plus 500Gb - 2x SSD Samsung 950 EVO Plus 500Gb - PSU Corsair RM850i - Corsair Obsidian 750D

    Laptop: Asus Rog Zephyrus G15 - AMD Ryzen 7 4800HS - 16GB 3200 - 512GB SSD - RTX2060 - 15.6" IPS 144Hz

  5. #5

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    Cita Iniciado por punteral Ver mensaje
    Ahora sólo me falta averiguar si el objetivo que tengo en mente (crear apps Android) es asequible con el tiempo y los recursos disponibles.
    Una vez dominas Java, y por dominar no me refiero a que alcances nivel Gurú Coder Fucking Boss.. , si no a que tengas claro cómo se estructura un programa escrito en Java, qué es una clase, qué es un objeto, la herencia entre clases, el polimorfismo (esta palabra da miedo la primera vez que la oyes pero luego resulta ser un concepto la mar de simple).
    Es decir, una vez te sientes a gusto con Java, te sorprenderás lo fácil que es hacer tus primeras cositas en Android.

    La estructura del programa es algo distinta, y hay que aprender algunos conceptos nuevos... pero nada difícil.
    Tendrás que familiarizarte un poco con lenguaje de marcas XML, porque es como habitualmente se diseña la interfaz de la app Android. Pero vamos, para saber lo básico de XML, en una tarde te sobra..


    Todo esto de la programación es más sencillo de lo que la gente cree, pero si requiere paciencia. Empezar por lo básico y no querer dar saltos de gigante.
    La impaciencia nos acucia a todos, porque queremos hacer "cosas guapas" pero al principio vamos a pasar mucho tiempo haciendo programitas para la consola de texto, nada de ventanitas con botones, formularios y colorines...
    Pero es primordial pasar por ese primer ciclo, que te da unos cimientos para luego asimilar y aprovechar mejor lo que venga después.


    Sobre una plataforma de aprendizaje.... puedes mirar por Udemy, es habitual que hayan cursos bastante completos a precios rebajados.

    Luego también puedes mirar Píldoras Informáticas.
    Tiene un canal en Youtube con varios cursos gratis de iniciación y es un tío que explica bastante bien. Luego además, puedes contratar cursos tutorizados. Creo que por el curso completo son unos 50€.

    Un saludo.
    • Ryzen 3700X
    • MSI MPG X570 Gaming Edge Wifi
    • Corsair RGB 3200 2x8GB DDR4
    • KFA2 GTX1070

  6. #6
    Sin vida social Avatar de punteral
    Ubicación
    Extremadura
    Edad
    36
    Mensajes
    423

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    Cita Iniciado por elgranmalkav Ver mensaje
    Hola Punteral.

    Kotlin es el futuro de Android sin lugar a dudas y Google está apostando fuerte por él. Kotlin simplifica y optimiza el código Android pero eso no implica que Java no sea utilizable. Java sigue siendo totalmente válido para desarrollar apps Android y aún hay mucho margen para aprender conceptos de Android con Java sin necesidad de usar Kotlin.

    Tu mismo comentabas que estás aprendiendo de manera autodidacta y no tienes muy controlada la POO (Programación Orientada a Objetos). Creo que por ahí es por donde debes empezar y Java es uno de los mejores lenguajes para ello. Yo empezaría aprendiendo Java puro y duro. No te lo tomes como un paso atrás, ya que tu objetivo es hacer aplicaciones Android.

    Piensa que estás adquiriendo una base sólida que te va a servir luego para aprender más rápidamente no sólo Android, sino otros lenguajes. En esto de programar, tener la habilidad de aprender tecnologías nuevas y nuevos conceptos es esencial pero si tienes una buena base será todo más fácil. El hecho de que tanto el compañero como yo te recomendemos Java tiene otros motivos detrás. Java es, si no el que más, uno de los lenguajes de programación más extendidos por el mundo. La comunidad que tiene detrás y la cantidad de ejemplos que vas a encontrar por internet es abrumadora. Hay muchísimos problemas y dudas resueltas en foros y el archiconocido stackoverflow. Además de ello hay miles de librerías a disposición de los desarrolladores que pues usar libre y gratuitamente en tus proyectos. Cualquier duda que tengas con Java prácticamente ya la tendrás resuelta por internet. No conozco Kotlin, nada en realidad, pero dudo que con el poco tiempo que tiene en el mercado y su utilidad casi reducida a Android le haga tener más recursos a disposición de los programadores que Java.

    Una vez que ya tengas una base de Java adquirida ya empezaría con Android, usando Java para hacer las apps. Cuando tengas una base más sólida, tengas los conceptos de Android asentados y te hayas hecho unas cuantas apps y peleado con muchas cosas... ahí, en ese punto, es cuando empezaba a trastear con Kotlin. Tendrás más conocimientos para asimilar las ventajas que te proporciona Kotlin y apreciarás mucho más las ventajas que seguro proporciona a desarrollar apps Android.

    Java no sólo te servirá para Android, también te puede servir para proyectos personales y oye, si algún día te quieres dedicar a esto de programar pues mira, es el lenguaje de programación más demandado de España.

    Muchas gracias elgranmalkav, da gusto leer las respuestas de este foro, tan útiles, tan bien explicadas y tan completas. Si finalmente me decido a emprender el reto ya tengo decidido que iré directo a aprender Java. La utilidad que tiene y la cantidad de recursos disponibles hacen que no tenga dudas.

    Un saludo y muchas gracias otra vez.


    - - - Actualizado - - -

    Cita Iniciado por Kabuto Ver mensaje
    Una vez dominas Java, y por dominar no me refiero a que alcances nivel Gurú Coder Fucking Boss.. , si no a que tengas claro cómo se estructura un programa escrito en Java, qué es una clase, qué es un objeto, la herencia entre clases, el polimorfismo (esta palabra da miedo la primera vez que la oyes pero luego resulta ser un concepto la mar de simple).
    Es decir, una vez te sientes a gusto con Java, te sorprenderás lo fácil que es hacer tus primeras cositas en Android.

    La estructura del programa es algo distinta, y hay que aprender algunos conceptos nuevos... pero nada difícil.
    Tendrás que familiarizarte un poco con lenguaje de marcas XML, porque es como habitualmente se diseña la interfaz de la app Android. Pero vamos, para saber lo básico de XML, en una tarde te sobra..


    Todo esto de la programación es más sencillo de lo que la gente cree, pero si requiere paciencia. Empezar por lo básico y no querer dar saltos de gigante.
    La impaciencia nos acucia a todos, porque queremos hacer "cosas guapas" pero al principio vamos a pasar mucho tiempo haciendo programitas para la consola de texto, nada de ventanitas con botones, formularios y colorines...
    Pero es primordial pasar por ese primer ciclo, que te da unos cimientos para luego asimilar y aprovechar mejor lo que venga después.


    Sobre una plataforma de aprendizaje.... puedes mirar por Udemy, es habitual que hayan cursos bastante completos a precios rebajados.

    Luego también puedes mirar Píldoras Informáticas.
    Tiene un canal en Youtube con varios cursos gratis de iniciación y es un tío que explica bastante bien. Luego además, puedes contratar cursos tutorizados. Creo que por el curso completo son unos 50€.

    Un saludo.
    Muchas gracias por la respuesta Kabuto. Muy útil y muy bien explicada, se agradece mucho. Como ya he comentando en un mensaje anterior, si finalmente lo intento ya he decidido que iré directo a por Java.

    Has comentado algo sobre "estructura de programa" que me ha llamado la atención. En otras ocasiones que he trasteado con el tema de la programación siempre me he encontrado un problema nunca he sabido resolver correctamente, me refiero al tema de la organización del código/programa. Siempre me pasaba que llegaba un punto que el código era un lío espantoso y, por muy organizado que intentaba ser, tantas líneas, módulos, variables, clases, etc terminaban por convertir cualquier modificación un verdadero dolor de cabeza. Siempre pensaba que ese problema debía estar más que estudiado y resuelto en el mundo de la programación porque si no no me explicaba cómo los programadores profesionales podían desarrollar programas infinitamente más complejos que los míos sin volverse locos.

    Intenté buscar información sobre esto pero no sabía muy bien cómo buscar y lo que encontraba no era exactamente lo que yo buscaba. Este problema ha sido uno de los que me ha hecho desistir de seguir aprendiendo alguna ocasión y no me gustaría que me pasara otra vez. Por eso me ha llamado la atención cuando has nombrado ese concepto "estructura de programa". ¿Crees que es eso lo que necesito aprender para solucionar el problema que he comentado en el párrafo anterior? ¿Tienes algún consejo para mí que pueda ayudarme en ese aspecto?

    Sobre el tema de las plataformas de estudio, precisamente ayer estuve consultando los cursos de Udemy que tengo y hay algunos de Java, apps Android, etc. De todas maneras el problema no es encontrar cursos, hay muchos en internet (en este mismo foro he visto varios que parecen muy interesantes). Lo que necesito es algo más parecido a clases particulares donde yo pueda preguntar al profesor directamente y que me explique por qué no funciona algo o resolver dudas que me surjan durante el aprendizaje. Quizá en los cursos tutorizados que has comentado sean una buena opción.

    Muchas gracias otra vez Kabuto.
    Un saludo!

  7. #7

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    Bueno, cuando dije lo de "cómo se estructura un programa en Java", me refería a saber como declarar variables, métodos o clases internas, saber que diferencia supone declarar una variable/método en contexto estático (static),...

    Luego otra cosa es como estructurar la lógica de un código para lograr una determinada tarea.
    Y esto es normal que al principio seamos propensos a encontrar soluciones complejas, eficaces pero no eficientes y que si requieren hacer algún cambio o añadido, por pequeño que sea, toda la "estructura" se derrumba y hay que reescribirlo todo casi por completo.

    Con el tiempo, gracias a la práctica y la experiencia, vamos obteniendo códigos más sencillos, más eficientes y a los que si se necesita hacer un añadido, no hay ningún problema y apenas hay que retocar el código ya escrito.

    Pero esto es algo que se aprende a base de cometer errores, equivocarse, atascarse, tirarse de los pelos...investigar por qué está fallando...
    En otros foros veo a gente, estudiantes de programación, que piden ayuda para resolver sus tareas pero esperan que alguien les de un programa ya terminado..., cuando podrían aprender mucho más si decidieran primero intentarlo ellos, aunque su código acabe en desastre.

    En fin, ánimo y paciencia
    • Ryzen 3700X
    • MSI MPG X570 Gaming Edge Wifi
    • Corsair RGB 3200 2x8GB DDR4
    • KFA2 GTX1070

  8. #8
    Sin vida social Avatar de punteral
    Ubicación
    Extremadura
    Edad
    36
    Mensajes
    423

    Predeterminado Re: Camino a seguir para aprender a crear apps?

    Cita Iniciado por Kabuto Ver mensaje
    Bueno, cuando dije lo de "cómo se estructura un programa en Java", me refería a saber como declarar variables, métodos o clases internas, saber que diferencia supone declarar una variable/método en contexto estático (static),...

    Luego otra cosa es como estructurar la lógica de un código para lograr una determinada tarea.
    Y esto es normal que al principio seamos propensos a encontrar soluciones complejas, eficaces pero no eficientes y que si requieren hacer algún cambio o añadido, por pequeño que sea, toda la "estructura" se derrumba y hay que reescribirlo todo casi por completo.

    Con el tiempo, gracias a la práctica y la experiencia, vamos obteniendo códigos más sencillos, más eficientes y a los que si se necesita hacer un añadido, no hay ningún problema y apenas hay que retocar el código ya escrito.

    Pero esto es algo que se aprende a base de cometer errores, equivocarse, atascarse, tirarse de los pelos...investigar por qué está fallando...
    En otros foros veo a gente, estudiantes de programación, que piden ayuda para resolver sus tareas pero esperan que alguien les de un programa ya terminado..., cuando podrían aprender mucho más si decidieran primero intentarlo ellos, aunque su código acabe en desastre.

    En fin, ánimo y paciencia

    Muchas gracias Kabuto.

    Totalmente de acuerdo contigo, peleándose con los problemas es como se aprende a dominar cualquier materia. Mi duda iba más encaminada hacia la existencia de algún manual de reglas o normas a cumplir a la hora de organizar la forma de funcionar del programa, de forma que, tal como dices, la estructura no se derrumbe con cualquier cambio. Algún tipo de ABC de la programación que diga "nunca utilices la misma variable en distintos módulos", "crea siempre una nueva clase para cada tarea" "nunca utilices variables tipo tal en bases de datos", etc. Me lo estoy inventando todo, pero creo que la idea se entiende.

    Tenía la esperanza de que alguna de las asignaturas que se suelen estudiar junto a la programación estuviera orientada en ese sentido y pudiera encontrar información al respecto para poder acostumbrarme a crear los códigos lo más ordenadamente posible desde el principio.

    Muchas gracias otra vez

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •