Pizarra con algunos materiales de nuestros encuentros

lunes, 31 de diciembre de 2018

Q&A: ¿Por que no usamos la herramienta XYZ para inetractuar?

Necesitamos hacer una "escalerita" para que gente de todos los niveles, intereses y lugares pueda avanzar su carrera. Por eso tratamos de mantener AL MÍNIMO las herramientas y ENFOCAR a las personas en subir el escalón que les toca ahora.

Lo mejor que se me ocurrió es que CADA PERSONA tenga
* su github
* (opcional SU BLOG en gitpages o blogger.com)
* (opcional un trello con PRACTICAS que quiere hacer para avanzar su carrera)

Y después juntemos en una app simple todos los links, para poder seguir lo que se publica (la estamos haciendo, ayuda bienvenida)

ELEGÍMOS ASÍ porque nos ENFOCA en enseñarle a todas las personas a armar y usar github, y así CON EL MÍNIMO DE ESFUERZO las podemos ayudar A TODAS con su código, pueden mostrar lo que hacen (también en su CV o cuando aplican para un trabajo), etc.

Queremos reducir al mínimo la cantidad de apps necesarias para participar porque en el grupo hay personas que les cuesta hasta usar Facebook y las tenemos que ayudar, o tienen una conexión a internet pésima (casi toda la Argentina lamentablemente), o una compu o tablet viejita, etc.

Además, tenerlo en tu blog te obliga a que sea un PROYECTO, algo que cuidás para mostrar, y el trabajo de pasar las discusiones al blog te hace trabajar en EQUIPO que es un objetivo importante del grupo.

Si lo haces en blogger, hasta podes postear por mail. Y si aprendes a hacer blogs en blogger también te podes ganar unos pesos haciéndole un sitio a alguien, que a mucha gente del grupo le vendría bien para poder seguir avanzando.

Por ejemplo, nos fue RE MAL con Slack: la mayoría de la gente no sabia entrar desde la compu, mucha tenía teléfonos que no se bancaban la app, tampoco sabían como participar y no veían los mensajes... esas aplicaciones son como empezar la "escalerita" con un primer escalón demasiado alto y dejamos afuera justo a las personas que es más gratificante ayudar.

Para muchos es un p
roblema es que facebook te re-distrae. Es más efectivo desconectar todo esto y ponerse a teclear en otro lado.  Me pasa igual! La solución que encontré es que respondo "ya te lo escribo", me voy al blog lo escribo prolijo, y pego el link. Me rindió un montón, fijate cuantas veces contesto con el link a algo que ya hice. Y al revés también me rinde: cuando tengo una buena charla acá, copio los cachitos, los emprolijo un poco y los dejo en el blog para la próxima que salga el tema.
Compartir:

domingo, 30 de diciembre de 2018

Decidir: como hacer aplicaciones

¿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

¿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. 

¿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:

  1. Mostrar datos en una pantalla, aunque sea fea
  2. Saber que hace tu programa, ej, con console.log, otro logger o poniendo cartelitos
  3. Guardar y leer datos
    en una API rest, o en archivos, o en una base de datos relacional (con SQL) o tipo MongoDb
  4. Filtrar y validar datos y asegurar que tu programa no se rompe (y no te hackean)
    1. Ordenando bien el código con funciones y validaciones
    2. Probándolo con tests apropiados
      (se te tienen que ocurrir todos los casos, cuando el usuario se saltea pantallas, carga cualquier cosa, etc.)
  5. 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...
  6. Encontrar rápido cualquier inconveniente y entregar una versión nueva sin que se pierdan datos
  7. Mostrar mejor la información, hacer pantallas (o APIs) que tus usuarios quieran para cada vez más cosas
  8. Conectarte con otros sistemas, ej. APIs, bases de datos, importar archivos
  9. 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)
Compartir:

Q&A: En cuanto tiempo se puede dominar un lenguaje de programación?

El objetivo no es "dominar un lenguaje de programación",

1) Es más, eso seria una perdida de tiempo SALVO que lo estés implementando ej. en otra plataforma (imaginate hacer andar javascript en el controlador de los micro ondas que no es una PC)

2) Lo que queres es HACER COSAS QUE SIRVAN Y TE PAGUEN. El camino mas corto es
a) copiar ejemplos (como los tutorials que les pase) hasta que te los sepas
b) probar variar cosas y adaptarlos a otros usos que te parezcan interesantes

De esa manera sabes hacer cada vez mas cosas que sirven y se pagan. Pero ADEMAS la ÚNICA forma de ENTENDER lo que haces es ver el RESULTADO.

3) El resto es aprender ALGORITMOS y PATRONES, que son independientes de los lenguajes igual que se puede hacer casas con distintos materiales (el lenguaje) y a nadie le importa demasiado pero si queremos que todas tengan baño, cocina, etc. (la funcionalidad).

4) Para la anéctoda (y para orientarse) existe un formalismo que expresa TODO lo computable (con computadoras existentes o por inventar) https://en.wikipedia.org/wiki/Lambda_calculus

Una de las operaciones es cambiarle los nombres a todo pero que el programa siga haciendo lo mismo ... y eso pasa con la mayoría de los lenguajes en especial del mismo paradigma: en todos vas a leer un archivo y buscar si tiene la palabra "queso", aunque se escriba distinto. Lo importante es que tengas la idea de que querés hacer, como va a funcionar tu sistema, etc. 
Compartir:

Habilidad: Desarrollo guiado por tests (TDD)

¿Sabés desarrollar más rápido y mejor usando Test Driven Development?
Es una habilidad muy valorada en cualquier desarrollo serio. ¡Y es fácil!

  1. Escribís un test que tiene que satisfacer tu aplicación,
    ej. si me enviaste un mail lo tengo que ver en mi pantalla de "inbox"
  2. Lo automatizás todo lo que puedas
    (abajo hablamos de herramientas para eso)
  3. Ejecutás el test y mostrás que falla como corresponde
    porque todavía no implementaste esa funcionalidad en tu aplicación!
  4. Implementás en tu aplicación lo necesario para pasar el test
  5. Mejorás el código, limpiás, simplificás y te asegurás que sigue pasando todos los test anteriores.
  6. Repite desde 1
Las ventajas de guiar tu desarrollo con test es que
  • ¡Te enterás enseguida si rompiste algo!
  • ¡Son la mejor documentación sobre qué hace y qué no!
    Si hacés sólo esa te asegurás que esté siempre actualizada
  • No te complicás ni te perdes: vas haciendo de a una cosa que sirve y se paga por vez.
    (aunque desubras que tenés que reescribir todo el código, los test van a seguir siendo los mismos y pasarlos te va a seguir guiando)
Hice un estudio para aplicarlo al desarrollo de aplicaciones web en node.js con expressjs (por ejemplo la API para miequipo)

https://github.com/podemosaprender/js_node_express_s_test_superagent

(notas para mejorar este post)

Por ahí este video te da la idea, si no te distraés con algunas cosas que el autor usa pero no hacen falta

https://www.youtube.com/watch?v=BlT2FeUXeqY

Fijate como escribe el test, revisa que falle y aparezca el cartelito en rojo, escribe el código y revisa que aparezca verde.

Después hacemos un caso más interesante con una app de verdad, lo voy a usar para

https://github.com/podemo.../app_aprender_miequipo_backend_1

(fijate que habia escrito que funcionalidad quería a lo chancho en el README, y ahí senti que necesitaba TDD para no perderme)
Compartir:

¿Cómo PodemosAprender más en 2019?

¿Cómo construir aprovechando lo mucho para festejar que logramos en 2018? Armamos el grupo, somos cientos de personas con habilidades complementarias, contactos, liderazgo... y vamos para miles!

Empiezan a aparecer proyectos y posibles negocios, gente que comparte lo que aprende, y gracias a esas charlas vemos con alegría avanzar la carrera de muchas personas.

Pero hay que reforzar el ritmo y no dormirse: "El FMI pronostica que el desempleo subirá en 2019" dice Clarín, "Ninguna paritaria logró igualar la inflación y el salario real tuvo un retroceso" (casi del 20% en muchos casos) dice La Nación...

Por eso tenemos que armar una dinámica que nos lleve de "sueltos" a "freelancers que pueden vender sus horas afuera", de "freelancers" a "equipos que pueden vender sus horas afuera", y de "equipos" a "empresas que puedan vender servicios afuera" (en dólares).

Necesitamos una "escalerita" para que el aprendizaje llegue en el momento justo a las personas justas, y que avancen en la práctica: "poder es poder HACER". Teoría sin practica es puro delirio o dispersión, por eso te damos un poquitito de teoría, la practicas digerís y entendés haciendo algo que sirve y podés cobrar, te damos un poquito más para que avances, lo aplicás... y vas subiendo la escalera escalón por escalón.

Insisto mucho en enfocar a cada persona en el escalon que mas le conviene ahora porque me preocupa mas que veo gente que no tiene tiempo y dinero para malgastar desorientada tratando de aprender cosas que no va a poder aplicar, como quien corre en todas las direcciones o trata de empezar una casa por el techo.

Queremos armar equipos porque rinde más para todos: una persona que sabe más puede guiar en la práctica a una que sabe menos y las dos salen beneficiadas: una recibe ayuda y la otra conocimiento. Además los equipos enfocan, porque te mantenés en una sola charla y avanzas haciendo un proyecto.

Es como si estuviéramos juntando figuritas para cambiar por una pelota: entre todos conseguimos la pelota antes y ya podríamos estar jugando. Sueltos, cada uno gasta más tratando de llenar su album y en general ninguno llega. Tampoco sirve de nada que cada uno tenga su pelota por separado: se juega en equipo.

¿Me ayudás? ¡Seguro podés y es importante! Lo divido en niveles del más fácil a los más avanzados para que lo veas ... también son los pasos para avanzar tu carrera, que te quieran contratar o asociarse con vos! (el número es la nota: cuatro es el mínimo para aprobar, diez es el máximo al que aspirar pero por ahí lo escribo aparte)

4. Una persona que suma (o al menos no resta)

No malgastes tiempo de otros: no hagas esperar a otras personas, no interrumpas conversaciones con comentarios de otro tema, pone toda la info que puedas a mano al final de los comentarios, explicá con imágenes breves y concretas como contarías una película... SI vale sugerir y preguntar todo lo que quieras porque siempre suma, pero eligiendo la forma más ordenada (ej. en un comentario o post que ya trataba de ese tema, o en uno nuevo y que empiece con las palabras clave)


Hacete ver: para que los demás sepamos fácil donde estás como cuando encedés las luces del auto o la bicicleta. Contá en un post que hiciste ayer, que vas a hacer hoy y con que necesitás ayuda. Le va a servir a las personas que saben menos y también a quienes te queremos ayudar. 

Concretá: ¿quién te ayuda más: la que te limpia el parabrizas en la esquina o el comentarista de economía de la tele que nunca la pega? Hace cosas que sirvan, compartilas para que otras personas las puedan usar, no importa que te parezcan "chiquitas" y hasta puede ser mejor: son más fáciles de entender y de combinar para armar cosas grandes. Armá tu blog, tu github y un pizarron en trello para tu carrera y compartilos.

5. Conectá y liderá

Con solo pasar lo que ya sabés ya estás creando valor. Invitá al grupo a la gente que le pueda servir o sumar, en el grupo nombrá en los comentarios a personas que les pueda interesar, servir conocerse o trabajar juntas, compartí links, artículos e ideas con tu resumen y para qué le pueden servir a quien ... alguien presentó a los Beatles ¿no?

Mínimo mostrá cómo sumás, cómo aprendés y contá que te sirve y que no, en un formato claro para que te pueda seguir la gente que viene un pasito atrás tuyo. Con respeto, sugeriles como usar este "boletín" para participar mejor en el grupo y avanzar en su carrera.

6. Trabajá en equipo

Casi nada de valor se hace solo. Incluso si se pudiera, es un riesgo: por ejemplo todos tenemos terror a que se vaya el único programador que entiende un software, y aunque no te cuenten es igual en otras profesiones. Al revés, una persona que no trabaja bien en equipo le resta a todos.

Suma mucho y todos van a querer trabajar con vos si escuchás, aprendés a integrarte rápido a las reuniones, documentos, repositorios, grupos y otras formas de organizarse que ya están, y sabés proponer ideas nuevas mostrando como mejoran y no ponen en riesgo lo que ya está.

Aunque trabajes remoto, es como compartir una casa, ¿hay algo más lindo que encontrarla siempre ordenada, limpia, que te dejen las cosas en el lugar donde las necesitas, te avisen a tiempo si algo no va a ser como esperabas, te ofrezcan soluciones, y hasta te dejen comida lista si llegas tarde? ¿hay algo más grato que sentir que la gente alrededor tuyo te acompaña en tus prioridades y no te distrae si hoy tenés examen, te avisa de cosas que te interesan cuando te ve con tiempo, te inspira con su ejemplo para comer y descansar bien, etc.?

7. Enfocá en crear valor

Si tuviéramos que hacer una casa hoy para dormir sin que nos moje la lluvia, ¿qué es mejor: a) discutir por días el mejor método mientras nos mojamos, b) ir levantando cada día lo que se pueda de las paredes de la habitación de cada persona y mojarnos porque todavía no se puede poner el techo, c) hacer entre todos una pieza con techo por día desde el primer día?

Por eso hay que enfocarse uno mismo y enfocar a las otras personas en lograr cada día o semana cosas que sirvan y te quieran pagar. En conseguir rápido los beneficios para recuperar rápido la energía que gastan cada día y poder dedicarla a seguir creciendo.

Enfocar es lo contrario de dispersar, como en el ejemplo de la casa: hoy nos ponemos todos 100% a terminar una pieza como sea, si con eso dormimos secos después nos da para diseñar, soñar, experimentar... si nos desorganizamos por ahí nos vamos resfriando y nos mojamos cada vez peor ...

¿Cómo sigo?

Por eso armé esta guía, para que nos podamos enfocar en avanzar la carrera de todos, avanzar de sueltos a freelancers, de freelancers a equipos, y de equipos a empresas, y así no sólo zafar de la tormenta que se viene, sino empezar a construir una vida rica y gratificante para cada persona que se sume al equipo.

¡Tengamos un feliz 2019 que PodemosAprender!



(imagen original, sin mis cartelitos feuchos: Linda Bartlett (Photographer) [Public domain], via Wikimedia Commons)
Compartir:

miércoles, 19 de diciembre de 2018

Oficio: publicitar en web y redes un proyecto

XXX:en preparacion

* Proyecto: Crear un sitio en blogger
* Método: grupos, "de que se habla"
* Proyecto: anunciar en google
* Proyecto: anunciar en facebook
* Proyecto: cartelitos para anunciar con cana
* Proyecto: definir "personae", price points, producto, placement
Compartir:

martes, 18 de diciembre de 2018

Metodo: cómo elegí software para enseñar y usar?

Cómo elegí que usar y enseñar para proyecto-sitio-interactivo-para-equipos y proyecto-programar-para-ganar-web-movil

¿Qué querés?

Empecé por el resultado que quiero: pantallas accesibles desde cualquier lado sin instalar nada, o sea web y móvil.

También quiero 
  • poder consultar fácil los datos
  • mínima necesidad de mantenimiento, instalación y pagar servidores
  • que sea muy fácil armar un ambiente de desarrollo y pruebas con tus datos, etc.
En general quiero eso para casi todos los proyectos, porque si no podés probar todo en tu compu dejás de probar, se acumulan defectos y malas decisiones y después es muy costoso o imposible no sólo de arreglar sino de hacer crecer para atender más usuarios.

¿Qué se usa?

Miro "que se usa" primero que nada para ver "que se la banca" y que no ...
También para saber cuanta gente lo mantiene, escribe documentación y está disponible para preguntarle. Cuántos tutoriales y personas que me puedan ayudar voy a conseguir, etc.
De esa gente, me fijo que les interesa: si hacerse famosos, inventar un lenguaje de programación nuevo, o hacer pantallas lindas y mantenibles ... Suelen ser gente distinta, y si elegís una herramienta que atrae gente que quiere hacer otra cosa que la que necesitas, tu proyecto se descarrila todo el tiempo.

¿Cuánto nos va a costar?

Elegí Vue porque se puede usar directamente ej. editando en github y sin instalar nada. También porque viene con vue-bootstrap que me da pantallas estéticamente aceptables sin tener que aprender css y html, y en su sitio hay ejemplos de cómo se ve y el código para copiar y editar. Funcionó, por ej. Sergio enseguida se armó una tienda que se ve bastante profesional, le agregamos autenticarse con Facebook/Gmail en una tarde, en otra consumir datos de APIs REST ...

Elegí en especial "todo javascript" porque minimiza lo que necesitamos instalar y aprender: usamos javascript en la aplicación web interactiva, y también en el servidor con express (o restify) + finale (o epilogue) + sequelizejs para proveer APIs REST para los datos que vamos a guardar en la DB.

Me fije que funciona en mi hosting baratito (USD9/mes), gratis en Heroku, en mi telefonito Android con Termux :O,  etc.

También me fijé que el código que vamos a escribir (o generar) no queda "atrapado" en los frameworks que usamos. No se nos va el tiempo en cosas que no nos podamos llevar a otras herramientas.

¿Qué pasa si ...?

En esa misma línea me fijé especialmente que pasa si alguna de esas herramientas NO SIRVE, es vulnerable, se cae, cambia de licencia o lo que sea durante el tiempo que vamos a querer recuperar nuestra inversión, mínimo mientras dure lo que vamos a construir. Por ejemplo: hay otros servidores web muy parecidos a expressjs y podemos darnos maña para que lo que escribamos ande en cualquiera sin cambios; si usamos sólo lo que nos interesa de sequelize y hay que tirarlo nos podemos hasta hacer el nuestro, etc. Incluso si tuviéramos que abandonar nodejs podemos ejecutar nuestro javascript en otros ambientes, ej. sobre la Java Virtual Machine, hay otros interpretes, etc.

¿Probaste?

De cada parte del proyecto que me dio dudas hice pruebas por separado, por ej. de "login con Google" y "login con Facebook", etc. A esas pruebas les digo estudios: me copié de los pintores que antes de pintar ej. un pie o una mano hacían muchos dibujos vistos de distintos ángulos, posiciones, etc. para desarrollar una idea clara en su mente. Los estudios se guardan, porque así cualquiera sabe como se usa la herramienta que elegiste, que hace, que no hace y que entendiste vos cuando escribiste el software.

Además de probar "los ingredientes" probé la arquitectura, que es la decisión más complicada y donde es más fácil y más grave pifiarla! Armé un estudio que tiene todas las partes y conexiones y me fijé que se comporte como necesitamos. Es de las primeras pruebas que hago ANTES de empezar a desarrollar cualquier cosa.

¿Cómo se aprende?

Mirando lo que hacen otras personas: cuántos usuarios simultáneos soporta, cuánto les cuesta hacerlo andar, cuánto tardan en actualizarlo, cuántos son y cuánto tuvieron que aprender, etc.

Recomiendo mucho el libro sobre arquitectura de aplicaciones de código abierto (el tipo vende otros libros en el sitio, pero abajo están los capitulos) http://aosabook.org/ Son "reportajes" a los autores de software que duró años y usaron miles o millones de proyectos, ahí se ve ej. cómo les fue con sus decisiones de arquitectura cuando tuvieron que cambiar cosas importantes.

Espero seguir agregando a este artículo a medida que hagamos otras cosas.

Compartir:

Proyecto: sitio interactivo para Podemos Aprender

Un sitio para anotarse, vincularse a los proyectos, saber que busca cada persona y como ayudarla ... y todo lo que se nos ocurra.

De paso, desarrollamos una aplicación "de verdad" con autenticación, base de datos, autorización por roles, agregación de contenido, etc.

Segumiento: https://trello.com/b/mwUIOXXl/plataformaaprender


Documentos: https://drive.google.com/open?id=1_hLlmLGDaD89JbPxuoixgx3VtygjyTob

Como mínimo tiene que tener (más actualizado en el drive/seguimiento):
  • Personas,
    con mail, que les interesa, que saben
  • Proyectos,
    con descripción, estos links a seguimiento, documentos, github, etc.
  • Que personas participan en que proyectos
  • "Caminos" para aprender, con links a ejercicios, artículos y proyectos.
Además estaría bueno tener:
  • Seguimiento de en que anda cada persona, como ayudarla
  • Reputación (ej. que le podamos agradecer a quienes mas ayudan, recomendarlos por cosas que saben, etc.)
  • Tutoriales interactivos tipo freecodecamp importados de nuestros propios blogs o github
MauricioCap quiere desarrollarlo como una Single Page App / App movil con nuxt/vue Y un backend api rest que guarde / lea de la base de datos con el equipo del proyecto-programar-para-ganar-web-movil , como aprendimos ahí mismo. De paso lo ponen en su CV :)

Repos en github, tratando de también usarlo de tutorial y base para otros desarrollos:

https://github.com/podemosaprender/app_aprender_miequipo_web_nuxt_1

https://github.com/podemosaprender/app_aprender_miequipo_backend_1

Además un mock de pantalla que nos aporta Darijo y le vamos a robar unas cuantas ideas

https://codepen.io/darijobakota/full/REGYRm
Compartir:

domingo, 16 de diciembre de 2018

Proyecto: programar para ganar (web, movil, servidor fácil)

Elegir herramientas de modo que con pocos tutoriales y conocimiento puedas hacer aplicaciones que sirven y se pagan.

Seguimiento: https://trello.com/b/6gtYyZKQ/programarparaganar

Ya tenemos:

  1. Compartir código en github y sitios en gitpages: https://www.youtube.com/watch?v=hgp2NEwusUQ
  2. Páginas interactivas y proesionales sin instalar nada: https://www.youtube.com/watch?v=-CS6IdKI9Lc
  3. Interactivo, un carrito de compras: https://www.youtube.com/watch?v=SatmOcUiOPo
  4. Encarando una app seria, dividir en componentes y coordinar el estado: https://www.youtube.com/watch?v=WP3UaxwjCDk
  5. Traer datos de un sistema de manejo de contenidos (textos, fotos, etc.) y otros sistemas, arquitectura estándar de aplicaciones grandes:
    1. Consumir la API de Blogger (XXX: tutorial de como armar un blog)
      Así se ve: https://github.com/podemosaprender/miweb3/blob/master/convue_api.html
      El código: https://github.com/podemosaprender/miweb3/blob/master/convue_api.html
  6. Agregar otras APIs copadas, modelar carga de datos
    1. XXX: probar cargar datos en una planilla google y consumir con https://developers.google.com/sheets/api/quickstart/js
  7. Autenticación con OAuth, Google, Facebook XXX:subir tutorial
  8. API y base de datos en Heroku con Sequelize XXX:subir tutorial
  9. Agregar permisos y roles XXX:subir tutorial

Compartir:

Proyecto: enseñar a programar y modelar

Materiales y un camino BIEN fácil para niñes y adultes.

Seguimiento:  https://trello.com/b/NP4prNfp/ense%C3%B1araprogramar

Docs: https://drive.google.com/drive/u/0/folders/12oZ5B6Dp9YvczcZDFf_j4nxatcwXwlD_

Mauricio sostiene que el mejor modo es a partir de "historias" y tiene bastantes cosas ya hechas (XXX:elaborar)

Conecta con nuestro otro proyecto para hacer cosas que podés mostrar, sirvan y se paguen: Programar para Ganar

Para copiar y usar tenemos:

Nuestros lenguajes de bloques

Cursos interactivos como https://progate.com/languages/es6 que le sirvieron a gente del grupo.

Sistemas interactivos y web como NetLogo (en especial la biblioteca de modelos bien explicados)

Compartir:

Proyecto: Datos Financieros BCRA y otros


Analizar datos financieros que publica el BCRA

Modelar para predecir, empezando por las propias finanzas pero apuntando a negocios especulativos.

Publicar diariamente en un sitio para conseguir visibilidad buscando suscriptores, ofertas de empleo, etc.

Seguimiento: https://trello.com/b/JKhqpvHS/datosfinanzas

Docs: https://drive.google.com/drive/u/0/folders/1dxMlZytYTW41dPgSD6gZlfg4zmfF1Fx-

Repo: https://git.podemosaprender.org/mauriciocap/invest (pedir acceso como dice en https:/podemosaprender.org/contacto)

Primeros intentos (separar en gráficos individuales que se pueden actualizar diariamente, generar otros gráficos más útiles con los mismos datos, etc.)


Cashflow y valuaciónes, para decidir cuándo y qué comprar y vender: https://podemosaprender.org/wip/cf.html

Dólares que entran y salen de Argentina: https://podemosaprender.org/wip/Cambiario.html

Charla orientativa para principiantes y no tanto:  https://podemosaprender.org/wip/slides_finanzas.html

Para entender la macro economía conviene leer al menos las primeras 60 páginas de este libro https://www.principles.com/big-debt-crises/ del fundador de uno de los fondos más poderosos de USA.

Otros cuadros del BCRA: https://www.bcra.gob.ar/PublicacionesEstadisticas/Cuadros_estandarizados_series_estadisticas.asp



Compartir:

Proyecto: lenguajes de bloques

Las pantallas que te permiten acomodar bloques para programar se usan bastante para enseñar.

Mínimo te ahorran tener que recordar la sintaxis y tipos de datos, porque solo te dejan encajar los bloques de las maneras que el lenguaje acepta.

Más importante: te ofrecen un catálogo visual de que elementos tenes para "construir" tu programa.

Estamos aprendiendo a adaptar https://developers.google.com/blockly/ y ya nos salieron varios ejemplos.

El primer objetivo es generar lenguaje bitlash, un interprete pequeño y fácil de extender que se puede usar para controlar Arduino (y el robot didactico wombrix)


Seguimiento https://trello.com/b/vOVHGeSu/bloques1

Repo con nuestro codigo: https://github.com/podemosaprender/blockly-bitlash

El resultado se ve aca: https://podemosaprender.github.io/blockly-bitlash/demo-bitlash.html
(copiamos generators/javascript* como generators/bitlash* y empezamos a reemplazar y modificar la sintaxis)

Además sería genial poder enviar el programa directo desde cualquier browser por ejemplo asi https://www.espruino.com/Headphone

Se pueden tomar bloques de otros proyectos ej. https://github.com/LLK/scratch-blocks/wiki/Vertical-size-and-shapes

o generar más con las herramientas de blockly https://developers.google.com/blockly/guides/create-custom-blocks/blockly-developer-tools

Lo ideal seria convertirlo en una plataforma de lenguajes de bloques para que cualquiera pueda generar el suyo y usarlo en clases, etc.

Compartir:

Proyecto: robot didáctico wombrix

Estamos investigando modelos de negocio con el creador (Victor Hugo V)

Hicimos sitio y blog: https://blog.wombrix.com y https://www.wombrix.com

Tiene un canal con algunos videos en youtube.

Estamos desarrollando un lenguaje de bloques para controlarlo con bitlash (proyecto lenguaje de bloques)

MauricioCap opina que la mejor forma sería convertirlo en varios proyectos open source Y una comunidad, de modo que se puedan conseguir sponsors y financiamiento para dar clases, charlas, adaptar los contenidos.

Victor tiene una idea parecida de armar una plataforma con clases.

Seria buenísimo sumar a Jessika que tiene un taller de robótica/electrónica/programacion para chicos.


Compartir:

domingo, 20 de mayo de 2018

Proyecto: aprender con graficos, sonido y mecanismos controlados en red por sensores

Para enseñar y aprender, en especial para las personas sin formación técnica y niñes, me pareció mejor idea empezar por lo que se puede ver, tocar y los resultados.

Los resultados de las acciones deben verse de inmediato, en motores, luces, o sonidos y graficos que aparezcan en las compus.

Es más divertido, fácil y cómodo poder coordinar varios dispositivos a la vez, ej. puedo usar el detector de movimientos de un movil o tableta (acelerometro) para controlar un motorcito (servo) conectado a un arduino microprocesador, o al revés alejar y acercar la mano de un sensor para controlar lo que dibuja la pantalla de una compu (o varias), etc.

Por ejemplo en este video use un sensor de distancia y un NodeMCU8266 para controlar un programa en java que "toca" una nota midi con un numero proporcional a la distancia, PERO tuve que programar bastante e hizo falta saber demasiadas cosas que para alguien que empieza no sólo no son relevantes sino que se vuelven una barrera imposible de pasar.

Encontre las piezas para armar más fácil "sistemas" como ese :)

¿Qué tenemos?

Un interprete javascript ejecutando en el NodeMCU8266, que tiene una IDE visual fácil en chrome que permite evaluar en el momento, programar con "piezas que encajan", y soporta muchos modulos.
(lo instalé fácil siguiendo este tutorial)
Una ventaja enorme es que una vez que configuraste la wifi y grabaste la configuracion te podes conectar por telnet y ejecutar/grabar el código que quieras, que habilita a hacer otras IDEs todavía más simples (ej. sin js asincrono que suele ser un plomo de programar)

El protocolo de comuncicacion Open Sound Control que es muy simple, PERO tiene la ventaja de que a) ya lo aceptan muchos programas de audio y video (es como un sucesor del MIDI, menciono algunos abajo), b) es fácil de usar en cualquiera nuevo, c) se puede transmitir via UDP broadcast y enviar ej. la distancia que midio el sensor a todas las computadoras y dispositivos de la red.

Programas interesantes para conectar que se comunican usando osc
  • Android
    • oscHook envía datos de los sensores del movil/tablet a UN puerto en UNA compu
    • QuickOSC viene con un set de botones y sliders configurables y tambien puede mostrar lo que recibe
    • (mil más, varios que permiten diseñar la pantalla)
  • PC
    • Processing, un ambiente para generar gráficos simple de programar 
    • SuperCollider un programa (enooorme) para programar sintesis y efectos de sonido muy sofisiticado
    • (mil más)
  • Arduino/ESP8266
    • Hay ejemplos y librerias para hacer broadcast (negoción para despreocuparse de la IP del micro aunque cuando no lo tenes conectado a la PC)
En especial hay varios orquestadores que permiten recibir y reenviar los mensajes a donde quieras, a veces transformandolos en el medio... por ejemplo PureData (que además hace mil cosas), OSCRouter

Varios sensores fáciles de usar y baratos para leer con el microcontrolador (además de todo lo que puede "sensar" la PC)
  • el HCSR04 que mide distancias por ultrasonido (USD2 aprox)
  • fotoresistencias LDR (USD0.3 aprox)
Varios actuadores faciles y baratos
  • los típicos leds siguen siendo divertidos (se pueden hacer caritas ;) )
  • servo motores chiquitos (USD2.5 aprox)
  • displays OLED I2C de 144x64 puntos para mostrar letras e imagenes

¿Próximos pasos?

  • Conseguir o hacer una implementacion simple de osc + UDP broadcast sobre espruino (se puede copiar de esta en C)
Armar un camino con "escalones" atractivos y alcanzables en sesiones breves, que den nuevos poderes
  • Conseguir programas simples para controlar y mostrar resultados
  • Hacer una lista de aplicaciones divertidas combinando eso, ej.
    • el de prender el led desde el telefono
    • avisarme al telefono cuando alguien entro a mi cuarto
    • seguir cosas apuntandoles con un servo y ej. una carita dibujada o unos ojos...
    • el "radar" moviendo el sensor de distancia con el servo 
Y buscar ejemplos "impresionantes"

¿A quién le puedo preguntar?

@mauriciocap
Compartir:

sábado, 12 de mayo de 2018

Bitacora 2018-05-10


Para aprender a comunicar y programar, Adriano nos compartió un proyecto a la vez simple y hasta artístico! Usando la herramienta processing para mostrar resultados visuales atractivos en la compu, y una placa arduino con sensores para interactuar. Usando una herramienta para ni siquiera tener que programar aparte el arduino (aunque también se podría) https://playground.arduino.cc/Interfacing/Processing (hay una version todavia mas copada para controlar el 8266 via wifi http://www.instructables.com/id/ESP8266-Firmata-J5-NodeBot/ )

Para hacer aplicaciones concretas en una empresa, Pablo tiene un montón de ideas. Empezando por un proyecto para leer tarjetas RFID. Además el lector es divertido porque es casi una computadorita aparte. Adriano se sumó y comenta que ya tiene algo andando :O

Seguimos hablando de negocios con Brian y pasandolo en limpio para compartirlo. Le conté mi idea para este este "club" se convierta en un ecosistema donde cada uno pueda ganar plata aprendiendo y haciendo proyectos que le gusten, le sirvan a otros, y realimentar el ecosistema para que crezca.

Y al final, pero no menos importante, llegó Ani e innovamos reforzando ideas de Data Science con una pizza en Güerrin... estoy viendo como hacer para que las pizzas y algo para tomar se vuelvan parte de las reuniones, que dicen? ;)

Ademas, Adriano y Pablo nos pasaron su lista de lugares que le sirvieron para comprar de electrónica... (dejo acá para no olvidarme y después lo paso a su propia página)
* Arduino, Flores: https://monarcaelectronica.com.ar/
* Componentes y directamente controladores: http://www.todomicro.com.ar/
* El kit RFID que estuvimos mirando https://articulo.mercadolibre.com.ar/MLA-684741388-kit-rfid-tarjeta-llavero-y-lector-mfrc-522-todomicro-gtia-_JM

Para el proyecto de RFID aca esta la hoja de datos y un ejemplo
* https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf
* https://github.com/miguelbalboa/rfid/blob/master/examples/rfid_read_personal_data/rfid_read_personal_data.ino
Compartir:

viernes, 4 de mayo de 2018

Proyecto: controladores y protocolos, multiplexar con Shift Registers 74HC595

Para controlar muchos elementos usando pocas salidas del controlador, se puede usar un bus tipo Shift Registers donde envias un pulso de reloj por un pin y por otro decís si el elemento que corresponde a ese pulso queres que sea un 1 o un 0. Vienen integrados baratos (USD0.5) como el 74HC595 que te ofrecen 8 salidas y ademas podes encadenar de modo de controlar muchas solo con dos o tres pines del controlador.

En este video se ve bastante simple y lindo: cada integrado es un 74HC595 y con un boton controla 64 leds, donde ademas ves como van viajando los bits que el boton activo. En este caso el pulso lo provee un 555.




¿Qué tenemos?


Datasheet de nuestro display (anodo común): https://www.kitronik.co.uk/blog/7-segment-display-datasheet/

Un proyecto con arduino (hay que modificarle cosas para el 8266 y tambien depende del display de 7 segmentos que tengas): https://arduinodiy.wordpress.com/2012/05/06/7-segment-display-on-arduino-with-595/

Usamos 
int latchpin = D5;
int clockpin = D6;
int datapin = D7;

Todavía no funciona como queremos, estas son las conexiones y lo que logramos...



¿Próximos pasos?

Modificar el programa para que los pulsos del reloj Y los bits vayan suficientemente despacio para verlos con leds en las lineas que salen del controlador.

Revisar conexiones del display, sospechamos que lo conectamos como si fuera un catodo comun y ese es el problema... ¿podría ser?

¿A quién le puedo preguntar?

@mauriciocap @galileo



Compartir:

Proyecto: IoT, texto a sonido via wifi con NodeMCU8266

Para dar feedback al usuario (o divertirse) leyendole un texto por un parlantito o auriculares.

Segui las instrucciones de https://github.com/earlephilhower/ESP8266SAM/

En especial instale como explica en https://github.com/earlephilhower/ESP8266Audio

Arme el circuito como explica ahí mismo pero con un BC337 que era el transistor que tenía y agregue unas resistencias para asegurarme que no quemo nada tomando demasiada corriente de la placa, las que tenia... son un poco grandes y eso empeora la calidad del audio ;)

Mismo plan "no quemar" probe primero con unos auriculares berretones y despues el parlantito amplificado.




Compartir:

Bitacora 2018-04-04



¡Nuestro club está creciendo con gente y proyectos que se complementan!
¡Bienvenidas las personas que se suman!
Participen, pregunten, propongan...


El resumen de esta semana:

Negocios: ¿cómo vender mejor tu trabajo freelance? ¿abonos? ¿precio por hora? (gracias Brian) (podés hacerlo vos)

IoT, sensores y control: ¿cómo dibujar cualquier cosa en un display OLED como el de la ilustración? (gracias Martín) (podés hacerlo vos)

Análisis de datos: mapas, vectores y restaurants: usar el tamaño y color del indicador en el mapa, ¿qué relación hay entre ambiente, precio y calidad de la comida? ¿qué gráficos y modelos podemos usar para entenderla? (gracias Patricia) (podés hacerlo vos)



Acordate que el objetivo es practicar y ayudarnos para que 
VOS PUEDAS APRENDER y HACER, lo que te interesa.


Compartir:

miércoles, 2 de mayo de 2018

"Poder" es Poder HACER

Para que avances tu carrera, estés donde estés, para concretar tus proyectos y para ayudar a otras personas, es importante que entiendas que "Poder" es "Poder HACER". Te pagan por lo que podés hacer.

Sirve entenderlo así porque sino no podés ni empezar, en cambio así avanzás más rápido, más directo y donde otros no verían un camino.

Se avanza desarrollando cada una de las habilidades y conocmientos necesarios, que sostienen el resultado como en los rayos de una rueda o en este caso una espiral que vas haciendo crecer si en cada vuelta aprendés a hacer algo más. Le sirve entenderlo así a mis clientes de consultoría y por eso lo puse en mi tarjeta, que ilustra el artículo.

Pongamos los rayos que seguro necesitás, hagas lo que hagas, y después agregamos los más específicos.

1 Negocio: más ganancia que costo

Para no quedarte sin energía, materiales, ayuda y poderte sostener es muy importante enfocarse en dar vueltas en poco tiempo, y en cada una poder hacer más. Cada vuelta empieza mejor y con más dinero, materiales y ayuda que las anteriores.

Por eso, aunque no lo hagas por dinero, es el rayo donde empieza y termina cada vuelta: cuanto tiempo y dinero le podés dedicar a tu próximo proyecto.

Te pasa todo el tiempo porque necesitás comer, dónde vivir, tiempo libre... Las primeras vueltas deberías aprender a hacer bien tus cuentas. Podés llegar tan lejos como a hacer tu propia empresa, saber financiarte, etc.

2 Comunicación: los demás tienen que hacer lo que proponés

Para lograr hasta lo más minimo tenés que poder lograr con palabras enterarte que piensan y proponerles que hacer tanto a tu jefe como tus compañeros, tus clientes como colaboradores.

Si no sabés presentar tus resultados, investigaciones o propuestas, nadie va a ver el valor y te vas a quedar sin recursos. Al revés, si los sabés presentar bien y cada uno entiende por qué son valiosos y que cómo ayudar a conseguirlos, es fácil que logres muchas cosas.

Lo más importante es conseguir feedback sobre como llega lo que proponés, es la única manera de mejorar tu comunicación: podés copiar de otros, leer libros pero siempre necesitás mostrarlo y que te cuenten que llegó, si les costó entenderlo, si era aburrido... y es lo que deberías lograr en las primeras vueltas: contar quien sos, por qué venís, que te gustaría lograr, pedir ayuda...

3 Tecnología: cómo lo vas a materializar

Como vivimos y dependemos del mundo material y lleva tiempo entender como se combinan y que se puede hacer con las características de cada material, herramienta, forma de conectar, territorio, reglamento, etc. los estudiamos y a ese estudio le decimos tecnología.

Notar que ese conocimiento se puede empaquetar y vender en herramientas (una computadora, que usas sin saber de electronica), métodos y recetas (un tutorial para hacer una torta, aunque no sabés por qué lleva esas cantidades de esos ingredientes o si se podrían cambiar) y teorías (un libro de química y materiales que te explica por qué la harina con el huevo y el agua hace estructuras elásticas que la levadura a la vez digiere y con los gases residuales infla, y cómo podrías lograr otras cosas con esos materiales o lo mismo con materiales distintos, etc.)

A la producción de ese conocimiento de decimos ciencia y también funciona en espiral: comparás lo que predice tu teoría con lo que ocurre en realidad. En el fondo, la única forma de aprender es hacer ciencia. En especial ahora que todo lo que se hace con un método y bastantes cosas más se pueden hacer con máquinas y sin vos. ¡Por eso es tan imortante que puedas aprender para poder hacer en el lugar y con lo que que te toque!


4 Ejecutar: organizado y a tiempo

Lo tenés que poder hacer todo junto y a tiempo, en especial si involucra a otras personas. Como tocar una canción en la guitarra para que otro cante. No alcanza saber todo suelto, hay que poder hacerlo en el momento y con la intención justas para lograr el efecto deseado, acomodandose a los cambios en el contexto (ej. se perdió el cantante, o quiere cantar más lento, o la gente se emocionó y aplaudió en el medio)

Hay gente que logra comer todo el mes porque vendio muchos paraguas un día de lluvia. En cambio genios como Tesla que hablaban muchos idiomas e imaginaron muchas cosas, y hasta consiguieron sponsors muy adinerados que los apreciaban mucho,  murieron en la miseria más terrible por no saber ejecutar.

5 Enseñar: ir más allá de tus propios límites

Apenas quieras hacer algo más grande que vos misma, que siga aunque no estés, apenas des unas vueltas por la espiral, vas a querer enseñar.

Enseñarle a clientes el valor de lo que vendés, enseñarle a colaboradores a hacer lo que proponés, enseñarle a otros lo que pensaste para que te ayuden a revisarlo, etc.

Por eso armamos este club y te invitamos!



Compartir:

Vender a empresas mi producto o servicio

Para vender a una empresa un producto o servicio como consultoría, clases, un sistema, y también para avanzar mi carrera en una empresa, tengo que primero tener en claro los siguientes temas:

1. Entender su negocio:

  • ¿Cómo gana plata mi cliente? Cómo puedo maximizar sus ganancias? Tener en cuenta que consumir tiempo del cliente, es negativo ya que el gana dinero sin mi presencia y busca delegar un problema en lugar de ponerse a realizar esto 
  • ¿Cómo sumo YO? ¿Por qué el cliente me debería seguir contratando a mi en lugar de a otro o gastar su tiempo en otra cosa? La gran respuesta de esta pregunta es ayudar a que el cliente gane más dinero, o tenga más tiempo libre, por eso es esencial entender la primer pregunta. 
  • ¿Cómo muestro mi aporte? No puedo estar vendiendo humo de por vida, en algún momento hay que mostrar algo. Es importante tener un entregable para darle valor a tu trabajo.
    MUY IMPORTANTE: ¡el valor en USD de mi aporte es el techo de lo que voy a poder cobrar! Si le ahorro $1000, no me puede pagar más que eso, hay que revisar hasta encontrar la propuesta donde el cliente vea la ganancia más grande.

2. ¿Qué tenemos a nuestro alcance? 

Por ejemplo, ¿A qué datos tengo acceso? ¿Qué tecnología puedo usar? ¿Qué personas/colaboradores tengo disponibles?

Una vez que estos dos temas están claros, tengo que pensar cómo realizo la unión entre estas dos puntas. Es decir, ahora que tengo en claro el negocio de mi cliente y lo que tengo disponible, ¿cómo los conecto YO para maximizar las ganancias de mi cliente y colaboradores utilizando lo que tengo?

3. El proceso para "construir ese puente con peaje"

Como muestra la ilustración, requiere repetir la investigación sobre 1 y 2 varias veces buscando conexiones, porque puede aparecer:
  • Una mejora pequeña en un volumen muy grande, ej. mi propuesta reduce en un 1% el costo de un proceso que a mi cliente le costaba USD100Millones/año, si ve claro y confía en mi propuesta muy probablemente este dispuesto a darme una parte del USD1M que lo voy a ayudar a ahorrar.
  • Una oportunidad grande por una mejora pequeña, ej. mi propuesta aunque es pequeña es justo lo que necesita ahora para poder hacer un negocio grande, como quien vende paraguas cuando se larga un chaparrón. Por ejemplo, muchas empresas grandes hacen proyectos de años y cientos de millones para implementar sistemas grandes... pero a último momento, con toda la presión de lo que se gastó encima, faltan pequeños sistemas que copien datos de uno a otro, formateen reportes, etc. y los pagan proporcional a lo que gastaron y sienten que está en riesgo.

4. ¿Cómo invierto en mi carrera? 

Recomiendo empezar por el paso 2
  • Mantenerme en contacto y colaborar con gente que complementa lo que sé.
  • Aprender habilidades que sirvan en muchos negocios y contextos, en especial ejecutar.
  • Estudiar rubros y modelos de negocio. A veces los más viejos e ineficientes son mejores, porque hay más ahorros y ganancias para aportar.

5.  Acuerdo y venta

No bajarse el precio uno mismo, porque a) después es muy difícil aumentarlo, b) probablemente a tu cliente le ahorres poco PERO por estar corto de plata le causes un riesgo GRANDE, mejor cobrás con margen para taxis, pagarle a gente que te ayude, etc. y asegurás un buen resultado y a tiempo.

Vender paquete por horas en lugar de estimar por hora. Porque vender y negociar es un costo alto para la persona que trabaja freelance. Uno no puede estar esperando a que tal o cual start up quiera trabajar con uno y no cobrarle ese costo en el precio de la hora. Es igual que un remis que no está esperando a que uno lo quiera tomar, mientras tanto busca otros clientes.

No existe la propaganda negativa al quedar mal con un cliente. Despreocuparse de eso.

Empresas grandes y chicas buscan freelance porque ganan ambos. Esa persona que está poco tiempo va a querer hacerlo mejor para que la vuelvan a contratar (es como todos los meses un examen nuevo) y gana más dinero que si fuese en relación de dependencia. La empresa gana más porque generalmente las personas que eligen trabajar freelance son más proactivas y se miden por sus resultados. Por ej. comprar un día tuyo por semana les conviene porque con el mismo dinero compran el tiempo que necesitan de una persona capaz, en vez de comprar tiempo de más pero de una persona que puede cometer errores costosos.

Para hacer una venta alcanza que ambas partes pacten yo quiero esto y si se cumple está todo bien. No es necesario tener un portafolio para trabajar para el exterior, 

Para que no sea costoso tener ventas, conviene especializarse en resultados que siempre van a hacer falta en el mercado. Por ejemplo, ser el mejor en graficar datos, o conectar sistemas, o vender a empresas, o explicar matemática, o armar interfaces de usuario rápido, etc.


(EnPreparacion, gracias Brian por los aportes y organizarlo!)
Compartir: