¿Tu lenguaje puede hacer esto?
Las herramientas hay que elegirlas para hacer cosas que sirvan y te quieran pagar. Acá va mi checklist de herramientas para hacer aplicaciones (software) y qué priorizo aprender de cada una... (más importante primero)
1. Dónde y cómo se ve
¡Las aplicaciones se hacen para que nos den información! Nadie gastaría plata en hacerlas y tiempo en cargar datos para no mirarlos nunca, ¿no?
Por eso digo que hay que aprender primero javascript: porque lo necesitás para mostrar datos en los navegadores web, y de paso también te sirve para aplicaciones móviles, de escritorio (ej. con electron.js), servidores con node.js o sobre la JVM, apis rest, consultar y definir reglas en bases de datos, ejecutar en micro controladores (ej. espruino) ... es fácil ejecutarlo en cualquier servidor (ej. un hosting) y en la nube (ej. con serverless en Amazon Lambda, en heroku, etc.)
2. ¿Qué me da? ¿Qué me cuesta?
Dijimos más arriba que me da mucho, pero además ¡quiero que no me cueste!
Es más, quiero poder cobrar con mínima inversion, antes de seguir aprendiendo
Es más, quiero poder cobrar con mínima inversion, antes de seguir aprendiendo
¿Qué necesito para poder cobrar?
- Como mínimo poder hacer una pantalla que le sirva a alguien: una landing page con vue-bootstrap alguien te la va a pagar, y podes vender muchas parecidas
- Con poquísimo esfuerzo más la podés convertir en una página dinámica que saca fotos y textos que cargó otra persona en la api de blogger
Y te armamos un tutorial para que puedas hacerlo en menos de una hora, y varias personas ya lo hicieron. Suena bien, ¿no?
Se puede crecer bastante en ese trabajo con sólo agregarle ventas y profesionalismo (ser una persona con la que requiere mínimo esfuerzo entenderse y conseguir soluciones para lo que uno neesita)
Al final todas las aplicaciones tienen las mismas "patas", si miras en reversa desde como termina la historia hasta como empieza: veo los datos cómodo, porque los saque de alguna base, donde alguien los pudo cargar con una pantalla adecuada. A la entrada de los datos y a la salida puede haber reglas, filtros, cuentas que calculan ej. el total de una factura, que no vendas más de lo que tenés, etc.
Se puede crecer bastante en ese trabajo con sólo agregarle ventas y profesionalismo (ser una persona con la que requiere mínimo esfuerzo entenderse y conseguir soluciones para lo que uno neesita)
Al final todas las aplicaciones tienen las mismas "patas", si miras en reversa desde como termina la historia hasta como empieza: veo los datos cómodo, porque los saque de alguna base, donde alguien los pudo cargar con una pantalla adecuada. A la entrada de los datos y a la salida puede haber reglas, filtros, cuentas que calculan ej. el total de una factura, que no vendas más de lo que tenés, etc.
¿Cómo hago crecer mi inversión?
Como aprender que hay que escribir es un costo que se pierde fácil si el lenguaje cambia o pasa de moda, quiero invertir lo menos que pueda en eso.
En cambio hay conceptos que duran mucho en el tiempo. Algunos ejemplos, prácticamente todas las aplicaciones que se pagan tienen:
- Un sistema de usuarios, permisos, reportes, se dividen en módulos.
- "Rituales" como evitar que las cosas viejas terminen llenando el almacenamiento, hacer copias de respaldo para que no se pierda nada, hacer mejoras que me van pidiendo sin romper lo que ya tenía, explicar como se usan, darle ayuda a los usuarios cuando tienen problemas ...
- Código, datos iniciales y de configuración, y casos de prueba que tengo que mantener al día y poder reproducir.
Si invierto en saber hacer bien eso mi inversion rinde décadas comparado con la mayoría de los lenguajes, librerías y frameworks que últimamente duran menos de tres años. En definitiva un CTO, o un gerente, o un arquitecto hacen eso: saben las necesidades, patrones y rituales para cubrirlas y en base a eso elijen herramientas y a quien contratan.
¿Qué más tengo que saber programar?
Más importante primero:
- Mostrar datos en una pantalla, aunque sea fea
- Saber que hace tu programa, ej, con console.log, otro logger o poniendo cartelitos
- Guardar y leer datos
en una API rest, o en archivos, o en una base de datos relacional (con SQL) o tipo MongoDb - Filtrar y validar datos y asegurar que tu programa no se rompe (y no te hackean)
- Ordenando bien el código con funciones y validaciones
- Probándolo con tests apropiados
(se te tienen que ocurrir todos los casos, cuando el usuario se saltea pantallas, carga cualquier cosa, etc.) - Instalar tu programa donde te pidan, ej. en mi compu o un servidor web o la nube
Crear la base de datos, que funcione, que entre todo en la pantalla, que alcance la memoria... - Encontrar rápido cualquier inconveniente y entregar una versión nueva sin que se pierdan datos
- Mostrar mejor la información, hacer pantallas (o APIs) que tus usuarios quieran para cada vez más cosas
- Conectarte con otros sistemas, ej. APIs, bases de datos, importar archivos
- Como guardar y consultar algunos tipos de datos y rubros específicos, ej. mapas, relaciones entre personas como guarda Facebook, versiones como guarda git, transacciones como guardan los bancos, inventario y ventas como guarda Amazon, etc.
¡OjO! Casi nadie llega a ser experto en más de uno de esos rubros
Todo eso se resuelve 90% con algoritmos que son independientes del lenguaje, alguna investigadora desarrolló como teoría hace unos años (todas las consecuencias de organizarlo de tal o cual modo), y alguien implementa en un lenguaje de programación.
¿Dónde está la plata?
Te diría que en los extremos:- Quiero la pantalla que me quede más cómoda, no me importa si el 99% de lo que usa ya estaba hecho y lo hicieron otros. Una pantalla cómoda siempre gana y se queda con los clientes, y recibe la plata (pensá por ejemplo en AirBnB o las páginas de reservas anteriores que se llevaban un 30% de comisión por mostrar lindos datos de las pantallitas verdes que usaban los agente de turismo)
- Conectar información, que podés juntar del usuario y de otros lados. Por ejemplo hay muchas páginas con datos útiles pero horribles de usar (y fáciles de cambiar de formato con un programa) como las de AFIP, hay mucha gente que pierde mil horas porque no sabe como pasarse los datos sin tener que cargarlos de nuevo... el precio de todas esas horas puede ir a tu bolsillo! Fijate ej. en los grupos de contadores que tienen que cargar miles de facturas que ya tenían en un sistema (o le pueden hacer cargar a los empleados) en tres o cuatro sistemas espantosos de AFIP. Podés automatizar eso y hacerte unos buenos mangos. Afuera también hay proyectos grandes como TurboTax, SalesForce (cuando salió), etc.
En resumen: el arte es darte cuenta como aprender el mínimo de herramientas, para conseguir los resultados que mejor se pagan.
(XXX: voy a seguir agregando a este artículo)
0 comentarios :
Publicar un comentario