Taller iOS Women Who Code – Sábado 28 de noviembre 2015

Women-Who-Code-Medellin-noviembre-4

¿Eres una chica inquieta por el software? Women Who Code tiene algo para ti:

  • Habilidades de Programación.
  • Hacer conexiones.
  • Construir tu propio proyecto.
  • Intercambiar conocimientos.

¿Tema del próximo taller?

  • Desarrollo para iPhone (iOS) Construyendo apps sin código usando tablas.

¿Cuándo?

  • Sábado 28 de Noviembre de 2:00pm a 4:00 pm

Regístrate para asistir en http://www.meetup.com/es/Women-Who-Code-Medellin/events/225700070/

Crear un repositorio del código de tu app en GitHub

GitHub es un sitio muy popular para almacenar código abierto, donde las personas pueden libremente consultarlo y participar en su construcción. Cuando comienzas a crear tus apps es útil poner tu código allí por dos motivos, a manera de respaldo y para que tus proyectos sean visibles para el mundo; así cuando alguien quiera referencias de tu nivel de experiencia pues le bastará con mirar lo que has puesto allí.

Cuando avances a un nivel profesional y estés creando código que sea privado para un cliente, hay plataformas que te permitirán hacer lo mismo en repositorios no públicos.

Antes de comenzar si no conoces lo que es Git, no hay problema, es básicamente una serie de comandos que te permiten controlar las versiones de tu código. ¿Versiones? Si, cada que modificas tu código y lo guardas estás creando una nueva versión, las controlamos para que en caso de que algo salga mal podamos volver atrás hasta el momento antes del error, como una máquina del tiempo ¡Fácil!

Captura de pantalla 2015-11-14 18.56.39Primero vamos a crear nuestra cuenta en GitHub, para ello ve a http://github.com y llena tus datos en las casillas solicitadas.  Una vez tu información sea aceptada da click en “Create an account” para continuar

Captura de pantalla 2015-11-14 18.58.14

Captura de pantalla 2015-11-14 18.58.44Lo siguiente es elegir el plan que queremos, por el momento nos vamos con el plan gratuito, que básicamente te permite hacer todo público, ya si quieres tener repositorios privados que solo ciertas personas vean entonces necesitarías un plan pago. Le das click sobre “finish sing up” y estamos dentro.

Al ingresar llegas al “Dashboard”, donde luego podrás ver tu información personal.

Captura de pantalla 2015-11-14 18.59.06

Captura de pantalla 2015-11-14 19.01.29

Ten en cuenta que GitHub te ha enviado un correo de confirmación al email que usaste en el registro.  Es necesario que lo abras y confirmes para que comiences a existir públicamente en la comunidad. ¿Comunidad? Si, verás, los developers de software libre les gusta intercambiar código y se ayudan entre ellos a construirlo, como personas que construyen casas juntas, y de ti pues se espera lo mismo que todos, que lleves tus herramientas y materiales.

Una vez has aceptado el correo GitHub te sugiere unos tutoriales sobre las cosas que puedes hacer allí, tómalos cuando quieras.

Captura de pantalla 2015-11-14 19.01.45

Para lo que sigue partimos de tres supuestos, que tienes un Mac, que ya creaste tu primer proyecto y que al crearlo le dijiste que hiciera control de versiones por Git. Sobre estas dos últimas si no las tienes listas te recomiendo el post anterior sobre Crear tu primera app sin código, sobre la primera usa el tutorial del GitHub bootcamp para configurar tu máquina.

Voy a pedirte que instales un software llamado SourceTree, que puedes descargar de https://www.sourcetreeapp.com también existe versión para Windows. Una vez lo tengas instalado vamos con lo siguiente.

Crearemos un repositorio, pero primero algo de teoría: Un repositorio es en palabras simples una carpeta donde podemos administrar el contenido, es decir, podemos guardar registro de que archivos son modificados, agregados o eliminados, dejando traza de los cambios como si fuese el balance de un banco.
Captura de pantalla 2015-11-14 19.05.40Entonces das click sobre el ícono que parece un barril con un signo + y le dices que vas a crear un nuevo repositorio.

Te presentará entonces una ventana que te permitirá escoger la carpeta donde crear tu repositorio, como en nuestro caso ya existe el código creado ve y busca la carpeta donde lo guardaste y dale open.

Captura de pantalla 2015-11-14 19.06.44

El tipo de repositorio para nuestro caso será Git y el bookmark name un nombre único que se te ocurra, puede ser el mismo de la aplicación, le das click en crear y voilà, ahí estas apuntando a tu repositorio local.

Captura de pantalla 2015-11-14 19.06.56

¿Apuntando? Si, resulta que XCode ya te lo había creado cuando le dijiste que controlara versiones, solo le estamos contando a SourceTree que eso existía.
Captura de pantalla 2015-11-14 19.07.25

Una prueba de lo que te digo es que verás una serie de íconos de colores bajo el nombre que le diste al Bookmark, estos son los archivos que creaste y modificaste en tu primer proyecto.  Si no tuvieses nada en el repositorio esos íconos no aparecerían. Puedes observar la palabra “master” esta significa que tienes el tronco del código creado y a ese tronco principal se le llama master por defecto. Da doble click sobre tu repositorio para ver su contenido.

Vas a encontrar una sección inferior que dice “Unstaged files” y la superior que dice lo contrario “Staged files” la diferencia es que los de arriba son cambios que ya has presentado y los de abajo todavía no. Cuando un cambio no ha sido presentado digamos que está no está en firme, entonces allí solo hay una foto de lo que hay en este instante, si cambiásemos el código el contenido cambiaría sin dejar trazas.

Captura de pantalla 2015-11-14 19.07.45

Con las versiones queremos todo lo contrario, dejar trazas de todos los cambios, entonces el primer paso será presentar los cambios “Unstaged”, lo cual haremos seleccionando el check box de los archivos inferiores hasta que todos pasen a “Staged”

Captura de pantalla 2015-11-14 19.09.22

Captura de pantalla 2015-11-14 19.09.34¿Qué hemos hecho? Piensa que estás haciendo una transacción bancaria y hasta ahora has elegido la cantidad, nos falta decir de donde saldrá el dinero, debemos especificar a nombre de quien se hará la transacción, para el caso que nos importa vamos a configurar la identidad con la cual se ejecutan las operaciones. Para esto vamos a las preferencias de SourceTree y en la configuración general elegiremos nuestro nombre y el correo tal cual como lo escribimos al momento de crear nuestra cuenta de GitHub. Si el correo es diferente sucederá que nuestras operaciones quedarán anónimas y cuando alguien mire nuestra frecuencia de uso, dirá que no hemos hecho nada.  Lo bueno es que esta configuración es permanente y no necesitas repetirla cada vez.

Captura de pantalla 2015-11-14 19.09.55
Captura de pantalla 2015-11-14 19.17.44Cerramos las preferencias y estamos listos para confirmar la transacción. Al paso de confirmar lo llamamos “Commit”, busca el ícono en la parte superior y al presionarlo te abre una ventana que tiene el fin de que documentes de qué se trata el cambio que estás realizando, una vez le das commit ha quedado localmente aceptado, como cuando presionas pagar en la tienda electrónica.

Captura de pantalla 2015-11-14 19.17.49

Ahora vamos a llevar nuestros cambios a GitHub, para eso hemos dado todos esos pasos. Lo primero que necesitamos es crear nuestro repositorio remoto en GitHub, le llamamos remoto (Remote) porque está en un servidor lejos de nosotros. Abre tu “Dashboard” y presiona en el botón “New” que te permitirá crear uno nuevo.

Captura de pantalla 2015-11-14 19.15.01

Una vez allí le daremos un nombre al repositorio y le diremos que es público (recuerda que los privados son con costo).  Puedes ponerle una descripción adicional y darle “Create repository”

Captura de pantalla 2015-11-14 19.16.47

Al crearlo nos entrega una ruta, cópiala para que puedas hacer referencia a ella en el paso siguiente.

Captura de pantalla 2015-11-14 19.17.07

Ahora vamos a crear el enlace desde el cliente hacia el servidor. Busca en el menú izquierdo la palabra “Remotes” y con click derecho activaremos la opción “New Remote”.

Nombra el remoto descriptivamente, pega la dirección que tomaste de GitHub con lo cual se debe actualizar el Host Type y digita tu nombre de usuario, da click en OK.

Captura de pantalla 2015-11-14 19.20.37

Se irán agregando “Remotes” a tu lista a medida que vas creando más.

Captura de pantalla 2015-11-14 19.21.12

Captura de pantalla 2015-11-14 19.21.34 Para sincronizar con el servidor busca a la izquierda en el menú de “Remotes” la opción Show para ver el nombre del que acabaste de crear.

Captura de pantalla 2015-11-14 19.21.50Da  click derecho sobre el nombre y selecciona “Push” ¿Qué cosa es un push? Es sincronizar los cambios locales que dejaste en firme con el commit, en un servidor remoto. ¿Por qué no se hace al mismo tiempo que el commit? Para darte oportunidad de cambiar de idea sobre tus cambios locales.

Captura de pantalla 2015-11-14 19.22.03

Te mostrará una ventana nombrando el branch remoto y el local. Otra palabra nueva “Branch” es la rama en la cual estamos trabajando, y como solo hay una es el tronco que es el master.  Tras darle OK nos pedirá la contraseña.

Captura de pantalla 2015-11-14 19.22.12

Después de un tiempo corto ¡Listo! te indicará que ha terminado y podrás ver como tu código se ha compartido al mundo en GitHub.  Cada vez que hagas cambios en firme debes seguir la misma secuencia “Staged” -> “Commit” -> “Push”

Captura de pantalla 2015-11-14 19.22.39

¡Disfruta compartiendo tu código!

Tu primera app para iPhone sin usar código

Este post está dirigido a quienes quieren acercarse a la programación para dispositivos móviles pero que todavía no han profundizado mucho en elementos de programación.  El método es ir haciendo para ir aprendiendo y luego si moverse hacia elementos más complejos.  Si ya sabes de programación pero en otra área puede serte interesante esta introducción.

Algunos términos primero:

  • iOS: Sistema operativo que corre en los iPhone/iPad
  • Swift: Lenguaje de programación nuevo para crear programas para productos Apple.
  • Objective-C: Lenguaje de programación anterior para crear programas para productos Apple.
  • XCode: Entorno de desarrollo nativo, es decir provisto por el fabricante, y que se puede descargar en cualquier PC/Laptop Mac desde https://developer.apple.com/xcode/

En este tutorial suponemos que ya tienes XCode instalado, sino simplemente descárgalo de la página antes dicha y sigue los pasos del instalador (next, next), así de simple.

Las imágenes animadas de este tutorial puedes darles click para ver las versiones de mayor resolución.

CONOCIENDO XCode

Xcode inicioLo primero que verás al abrir XCode será una ventana como esta, la cual te permite iniciar un Playground (no hablaremos de eso hoy), crear un nuevo proyecto o iniciar algo desde un repositorio existente (tampoco lo cubriremos hoy). A la derecha, no mostrado en la figura, podrías abrir proyectos que ya hayas comenzado antes, debe estar vacío si tu XCode está recién instalado. Escogeremos la opción de crear un nuevo proyecto de XCode.

Escoger tipo appNos pide entonces escoger una plantilla para la aplicación, a la izquierda está la lista de sistemas operativos para los cuales podemos crear cosas, para nuestro caso escogeremos iOS y que sea una aplicación de una sola vista.

Datos del appLuego debemos identificar la aplicación, escoge un nombre que sea unico, el nombre de la organización es tu empresa o el tuyo propio si desarrollas para ti, el nombre de la organización se escribe como un nombre de dominio pero al revés, debe ser único por lo cual si posees un dominio personal en internet sería lo más indicado para nombrarlo, sino lo posees para efectos de prueba puedes inventarte el dominio que quieras. Escogeremos como lenguaje Swift, como dispositivo iPhone y por ahora deshabilitaremos el Unit Testing y el UI Testing.

Elegir ubicacionElige el lugar donde deseas guardar el proyecto, XCode creará por sí mismo una carpeta con el nombre que le diste al proyecto en el lugar que elijas. Activa la casilla inferior donde dice Source Control -> Create a Git Repository on -> My Mac. Esto va a servir para que XCode administre los cambios en tu código y luego cuando vayas a usar un manejador de versiones ya estén creados los archivos básicos. Si no sabes que es un manejador de versiones no te preocupes por eso ahora.

Menu izquierdaUna vez abierto el proyecto encontrarás tres secciones de XCode, la izquierda tiene varios íconos arriba y cada uno te permite varias cosas, no te preocupes si todavía no conoces algunos términos, si quieres adelantarte puedes darle una googleada a lo que no te sea familliar:

  • Explorar los archivos del proyecto
  • Ver la jerarquía de tus clases
  • Buscar texto en el proyecto
  • Ver errores
  • Ver las pruebas
  • Ver operación del debug
  • Ver los Breakpoints.
  • Ver los logs del proyecto.

Menu centralEn el centro está la identificación del proyecto y la configuración en general aquí seleccionaremos cosas que serán importantes cuando estemos integrando código de terceros y configurando una cuenta que nos permita publicar la aplicación en el App Store.

Menu derechaEl menu de la derecha vamos a usarlo mucho hoy, es donde verás todas las propiedades de lo que estés editando en ese momento y desde donde vamos a extraer los elementos que necesitaremos para crear nuestra aplicación, lo veremos con más detalle luego.

AHORA SI COMENCEMOS A EDITAR LA APLICACIÓN

Ve al menú de la izquierda y selecciona el archivo llamado Main.StoryBoard, este archivo nos va a permitir crear una aplicación desde la interfaz gráfica. Lo que voy a explicar a continuación puedes verlo en la imagen animada siguiente, da click sobre la imagen para que la veas en toda su resolución.

Story board size classes

Al seleccionar el Story Board el menu del centro cambia y te muestra un gran cuadro blanco, y a la izquierda el View Controller Scene, puedes desplegarlo y ver los elementos que tiene.  Por ahora lo cerraremos dando click sobre el botón inferior. Luego seleccionaremos el cuadro grande del centro, al hacerlo sus bordes se vuelven azules. Vamos al ícono en forma de hoja del menu de la derecha y quitamos la selección sobre Use Size Classes, porque nuestra App será solo para iPhone. Nos pregunta de qué tipo la queremos, dejamos iPhone seleccionado y las deshabilitamos. Verás que el cuadro se ha vuelto un rectángulo, en la proporción típica de un iPhone.

Story board elementsEn la parte inferior derecha vas a ver una cantidad de elementos que puedes usar, dales una mirada. Por el momento quiero que veas que existen: Label, button, Image View, y Views. Puedes buscarlos digitando sus nombres.  El cuadro blanco que tienes en el centro es una vista, podemos agregar nuevas vistas desde este mismo menú, hay diferentes tipos de ellas, la más simple que es igual a la que tenemos en el centro es una View Controller. Puedes ver que la View Controller está en amarillo mientras los otros elementos son grises, todos los elementos en amarillo son digámoslo así padres, y puedes arrastrarlos al Story board de forma independiente, los elementos en gris son hijos y solo puedes ponerlos dentro de un elemento en amarillo.

Vamos a cambiarle la apariencia a nuestra vista, lo que voy a describir está en la imagen animada siguiente. Da click sobre la vista y asegúrate que esté a la derecha el ícono que parece un escudo (realmente es un slider, pero digámosle escudo) selecciona el Background y cámbialo a un color que te guste, explora la opción other para personalizarlo como quieras. Busca en la lista inferior una Image View y posiciónala donde quieras, haz lo mismo con tres Buttons y ubícalos según tu deseo.

Story board add elements

Embed in Nav ControllerVamos a introducir un elemento de navegación, esto nos permitirá que XCode cree el código para pasar de una vista a otra por nosotros. El elemento de navegación que usaremos se llama un Navigation Controller. Para introducirlo iremos al Menú Editor -> Embed in -> Navigation Controller. Verás que tu Story Board ha cambiado y ahora aparece un Navigation Controller justo antes de la vista donde tienes el Image View y los Buttons. También verás que le ha aparecido una franja gris a tu vista, allí puedes ponerle un nombre, si tu imagen ha quedado bajo la franja gris muévela hacia abajo.

Agreguemos ahora tres view Controllers nuevas, busca el elemento en el menu derecho y arrástralo tres veces a una zona libre. Toma cada vista y cámbiale el fondo a un color diferente.

Story board add view controllers

Vamos a darle a cada botón el nombre y el color de una vista, porque cada uno va permitirnos navegar a una nueva vista.

Story board change buttons

Para conectar el botón con la vista que abrirá lo seleccionamos con el mouse, luego presionando la tecla ctrl vemos que sale una línea azul, alargamos la línea hasta que toque la vista del color que queremos y esta se ponga con un sombreado azul, soltamos el mouse y nos ofrece varias formas de presentarla, seleccionamos el modo Push.  Vemos que aparece una línea que une las dos vistas con un símbolo raro en la mitad, ese símbolo significa que la presentación es Push, o sea que reemplaza la vista anterior. Hacer igual para los otros dos botones, cada uno con su vista.

Story-board-link-views

VEAMOS EL RESULTADO

select run deviceUna vez hecho con las tres vistas ahora sí, ¡A correr!, es decir que vamos a ver en el simulador como se ejecuta todo. En la parte superior izquierda vemos un ícono como Play, y otro como Stop, junto a ese un ícono que tiene el nombre del proyecto y a la derecha podemos seleccionar el tipo de dispositivo en el cual queremos simular, para este caso hemos escogido iPhone 5s.

Para ver como funciona dale click sobre el ícono de Play y XCode abrirá un emulador según el dispositivo que hayas elegido. En este punto te pido algo de paciencia, es relativamente común que la primera vez que presiones Play el emulador corra pero no veas allí tu proyecto, dale unos 30 segundos, si no arranca dale Stop y lánzalo de nuevo con Play, la segunda suele ser la vencida.

running

Podrás ver los botones y al darle click a cada uno irá a la siguiente vista y habilitará la opción de Back para regresar a la anterior. Parece simple ¿Verdad? pero has creado la navegación necesaria para hacer una especie de multimedia.

Ahora vamos con las imágenes, como los dispositivos pueden ser de distinto tamaño el código se encarga de adaptarlos siempre y cuando al agregarlos sigamos los requisitos necesarios, así toda imagen precargada debería existir tres veces como imagen.png, imagen@2x.png e imagen@3x.png esto significa la imagen, su doble y su triple.

Para agregarlas selecciona en el menú izquierda Assets.xassets, da click derecho sobre el área blanca que se abre el el centro y selecciona Import. En el cuadro de diálogo que se abre selecciona las tres imágenes y quedarán importadas.  Esto de los tres tamaños es muy importante para los íconos e imágenes de botones

import images

icons 3 sizes

Puedes importar imágenes de paisajes y cosas así sin los tres tamaños y con la resolución apropiada la image view se encargará de ella, Vuelve a la image View, fíjate que esté seleccionado en el menú de la derecha el iconito del escudo y selecciona allí una imagen, haz se configure como Aspec Fit, para que no se arruine su relación de aspecto.

Image View

Bueno, nuestra app no se ve muy bonita que digamos, pero ahora es tiempo de que tu juegues y con estos sencillos elementos crees una aplicación que te muestre por ejemplo categorías de productos en una tienda y las imágenes de cada uno, puedes agregar cuantas Image View quieras en una vista. Ensaya con los labels y pon texto descriptivo junto a las imágenes.

Es sencillo, explora y conoce a la herramienta.

The Git Monster bite

Recently I heard from a friend a kind of horror story, about a meetup that was almost disolved when Tutors tried to explain to the novice attendees the uses and commands of Git.  It was like a monster with an unrecognizable language trying to bite people; scary enough to not come back to the meetup again. The survivors seem to continue struggling with it and they appear to have some nightmares still.

Git MonsterI started using versioning software years ago, as an independent web developer.  I remember installing SVN and tortoise on my laptop in order to track the PHP code I was building. I remember installing the server (locally), the client, and committing my changes in the server; but really not having clear idea of what I was doing. Basically I took it as a kind of backup (I’m also a sysadmin, so that operation was familiar to me).  After finishing that project and actually having lost the server repository key, I had no much interest about using them.

Years later, during an Startup Weekend, one of my team partners showed me bootstrap for the webapp front end, and told me that I should create a github account.  I was very obedient and I did it, I saw the bootstrap code and it was pretty unfamiliar to me, also the commands needed to put the code in my laptop were basically confusing, so I returned to my ugly PHP to create some forms, well, not enough good to win the prize.  I avoided the Git monster bite by not using it.

After a couple of years I was contracted to debug and finish an iOS mobile app. The client had the original code located on Bitbucket, so I was compelled to find a way to download and maintain updated the client’s repository. For my relief the same company (Atlassian) had a lovely client named SourceTree that worked like charm and did the command thing for me.  I found myself doing pulls, pushes and commits with grace using the graphic interface, while I was actually understanding the difference between them; creating branches on the go, merging them and making a space in my brain to those operations implications and uses. The Git monster looked like a kitty.

Later I returned to the webapp field, and I needed a better way to sync my laptop code with the server one. So I found sourcetree again wonderful for the task. For me it was still like a backup thing, and the graphical client avoided the command work. I had avoided the Git monster bite again, by having a GUI caged version of the beast.

Now after more than a year of using a UI client for Git, I have a clear comprehension of the different tasks you can do in version control; I have done them properly in development and production environments with small collaboration teams; I’ve been able to use and maintain synched simultaneous repositories on github and Bitbucket. I was also able to create and publish my own repositories, yes, in that github account created long ago, and also contributing with others’ repositories.

But finally the Git monster bit me, I was wondering why my pushes never updated my github contributions graph. Less than a month ago I realized that source tree makes the commits in the name of the email account you have configured on it, and my bitbucket account is associated with a different email than my github one, so each commit during the last year was done in the name of a non-existent github user, and they don’t count in my favor.

Well, the price of a beast sugar coated by a GUI, but now I have corrected it and my commits are mine. This is my account https://github.com/iyepes

I think when we teach people about complex issues like version control, it’s better to allow them to actually do it in a simpler way in a graphical client, and once they have already learned how to do it and the logic behind the task, we can give a detailed explanation of the commands that the client is issuing in their name. Please stop scaring people with the Git Monster, coding have better dragons to conquer.

Taller iOS Women Who Code – Sábado 14 de Noviembre 2015

Women Who Code Noviembre

¿Eres una chica inquieta por el software? Women Who Code tiene algo para ti:

  • Habilidades de Programación.
  • Hacer conexiones.
  • Construir tu propio proyecto.
  • Intercambiar conocimientos.

¿Tema del próximo taller?

  • Desarrollo para iPhone (iOS) Haciendo tu primera app sin código

¿Cuándo?

  • Sábado 14 de Noviembre de 2:00pm a 5:00 pm

Regístrate para asistir en http://www.meetup.com/es/Women-Who-Code-Medellin/events/225700053/

Leveraging Data to improve UI/UX and revolutionize products – GMIC SV 2015

Vamos a compartir algunas conferencias y paneles interesantes que tuvieron lugar en el GMIC SV – 2015, la conferencia y feria anual más grande de tecnologías móviles.

“Big Data can be used to creatively segment your user base, but you must look for stories in the data and how it clusters to uncover the “why” behind user behavior. Quantitative data analysis cannot perfectly reveal the qualitative experience of the user, and it is misguided to drive change uniformly across all demographics given the variety of subjective user experiences. This session will show you how to leverage data leading to ah-ha! moments that reveal user sentiments.

Or open the video following this link https://www.youtube.com/watch?v=XDjSq5Jx5VI

Moderator:
Victor Tong, Founder & Chief Evangelizing Officer, Webplus

Speakers:
Bonnie Barrilleaux, Data Scientist, LinkedIn
Kendall Hulet, SVP of Product, Ancestry
Muddu Sudhakar, VP & GM Security Markets, Splunk
Jeannie Yang, Chief Product & Design Officer, Smule”

Charla iOS – Women Who Code Medellín – Octubre 31 2015 – Google Hangout

Este sábado 31 de Octubre de 2015 a las 2:00 pm tendremos el meetup de Women Who Code Medellín de manera virtual.

Estaremos ofreciendo una charla introductoria sobre programación para iPhone. Conéctate desde cualquier lugar para asistir desde

Queremos saber más de ti, inscríbete para asistir aquí http://www.meetup.com/es/Women-Who-Code-Medellin/events/225563769/

Primer Meetup de Women Who Code en Medellín

Women Who Code

El próximo 20 de mayo Women Who Code tendrá su primer Meetup en la ciudad de Medellín. http://www.meetup.com/Women-Who-Code-Medellin/events/222244175/

Mucho se habla de aumentar la participación de las mujeres en Tecnología, Women Who Code se dedica a realizar acciones específicas para ello en el campo del desarrollo de software.

WWC es una organización global sin ánimo de lucro 501(c)(3) dedicada a inspirar a las mujeres a la excelencia en carreras en tecnología. Busca empoderar a las mujeres con las habilidades necesarias para el avance profesional, y favorecer ambientes donde las conexiones y la mentoría son apreciadas. Su misión es conectar un millón de mujeres en tecnología. Actualmente tiene presencia en 15 países, con más de 25.000 mujeres, ha realizado más de 1.200 eventos gratuitos.

Todo eso suena genial, ¿Pero cómo lo hace específicamente? Por medio de Meetups (reuniones) donde las mujeres aprenden y enseñan a otras mujeres a programar, les permiten realizar conexiones profesionales, y les proveen recursos relacionados con el mundo del trabajo. También realiza difusión de eventos tecnológicos y con la ayuda de diversos aliados favorece que sus miembros participen activamente en ellos.

Para mi es una gran alegría que vayamos a realizar el primer Meetup en Medelllín y que comencemos esta iniciativa para el beneficio de las mujeres apasionadas por el desarrollo de software y las que se sienten inquietas por integrarse a esta actividad.

Las reuniones son abiertas a cualquier nivel técnico, las mujeres que comienzan el aprendizaje son totalmente bienvenidas, al igual que las avanzadas, con un especial deseo de que se involucren para compartir su conocimiento. Buscamos un ambiente acogedor, donde cada una tenga la libertad de aprender y avanzar a su propio ritmo.

Alguien dirá ¿Por qué reuniones de solo mujeres? ¿No es eso excluyente? Bueno, yo tengo una teoría al respecto. Cuando comencé mis estudios de Ing. Electrónica en mi semestre éramos 7 mujeres, con nosotras se completaba un total de 35 mujeres entre todos los 10 semestres de la carrera, así que fácilmente las reconocías a todas. Pronto me di cuenta de un denominador común, prácticamente todas habían estudiado en colegios exclusivamente femeninos en al menos dos años de su educación secundaria. ¿Qué tiene esto de particular? Que prácticamente todas habían estado en algún momento de su formación en un ambiente neutro al género, donde todas las tareas y campos de estudio, sin importar su complejidad o dificultad eran realizadas por mujeres, y las mejores eran mujeres, por ende, ninguna tarea en sí misma estaba asociada a ningún género específico, simplemente la posibilidad de realizarla o no estaba definida por la capacidad o el interés personal, nada más.  Así que es apenas natural que una mujer que ha estado en un ambiente donde su único límite es su propia habilidad, tenga total voluntad de integrarse a una actividad socialmente reconocida como masculina, porque en su cerebro tal asociación no existe, no hay tareas asignadas a géneros, simplemente hay tareas que te agradan o no, para las que desarrollas habilidad o no.

Por eso iniciativas como Women Who Code, que proveen ambientes de interacción neutros al género favorecen la posibilidad de aprender, donde puedes ver a otras mujeres que han tenido éxito en el área, que están dispuestas a contarte como lograron llegar allí, que comparten las vivencias propias de ser mujer en el campo de la tecnología.

¡Invitadas a participar en este y los siguiente Meetups que realizaremos!

Por: Isabel Yepes @iyepes0120

Los salarios de los desarrolladores que trabajan para compañías colombianas

Suelo suscribirme a muchas cosas, y no sé como llegó a mi buzón el año pasado una invitación a participar en una encuesta para conocer cuánto ganan los desarrolladores colombianos, con el plus de que si la respondías te compartían los resultados. Dado que tengo una afición personal por los números que describen comportamientos poblacionales (AKA estadística), ese incentivo fue suficiente para responderla.

Este año cumplidamente llegó a mi buzón un post con los resultados “Survey results: How much Colombian software developers really make” by Bunny Inc., compañía de  Alexander Torrenegra, que fueron bastante interesantes. Obviamente haciendo la salvedad de que se trata de una encuesta, no un estudio estadístico riguroso, la información que contempla si nos muestra tendencias de lo que sucede con nuestros devs.

Como colombiano que se respete polemiza, la primera cosa que algunas personas observaron contra la encuesta es que afirma que los desarrolladores ganan entre $2.000 y $3.000 USD. Teniendo en cuenta que esos datos se recolectaron cuando el dólar rondaba los 2.000 pesos, implica que el desarrollador en promedio gana entre 4 y 6 millones de pesos.  La experiencia práctica de la mayoría que solo ha trabajado en este país va en contra de ese dato, y luego veremos porque.

Algo que me encantó de este ejercicio, es que además de compartir los resultados, dejaron los datos de la encuesta AQUÍ para uso libre (Dios bendiga el open data). Así que si uno quería sacar más detalle, cargue la hoja de cálculo y compute.

Si uno ha estado relacionado con personas que han trabajado para empresas extranjeras o lo ha hecho uno mismo, sabe que las diferencias en pago son bastante importantes, así que mi interés fue saber qué decían los datos sobre las personas que respondieron solo trabajar para empresas colombianas.

Lo primero que encontré es que la proporción de participantes trabajando para locales vs extranjeras era 50/50 (aprox), lo cual hace que los datos totales tengan una mezcla importante que no necesariamente describe bien a cada grupo. Dicho en una analogía que no es mía: “Un hombre con los pies en el fuego y la cabeza entre el hielo se encuentra estadísticamente a una temperatura confortable”.

El resumen gráfico de los hallazgos pueden verlo a continuación:

Salaries of devs working for Colombian companies

Para quienes quieran comprender mejor como llegué a esto he aquí algo más de explicación. Encontré que el 90% de los participantes se concentraban por debajo de los $3.000 USD, lo cual explica en parte ciertas reacciones adversas a los resultados totales. $3.000 USD no es el tope superior del promedio en este caso, es prácticamente el tope superior del todos los participantes del grupo. Para quienes no tuvieron la fortuna de tomar un curso de estadística, que la campana de gauss* les explique que los salarios por debajo de $3.000 USD son casi la totalidad del area azul y roja juntas.  Conocer a un miembro del área amarilla no es tan común.

Campana de Gauss

Lo otro que quise saber en los datos es cuánta gente gana menos de $1.000 USD, que en los resultados completos están calculados como el 10% del total, ¿Por qué quise validar este dato? porque si uno entra a las páginas de computrabajo y la agencia de empleo del SENA encuentra no una ni dos, sino muchas ofertas de empleo que rondan el millón de pesos o menos. Los datos indican que el 32,5% de los participantes que trabajan solo para empresas locales ganan menos de $1.000 USD. En términos simples uno de cada tres programadores que usted conoce que trabajan solo en empresas colombianas, va a ganar menos de $1.000 USD y como posiblemente es el más insatisfecho, va a quejarse en cantidad suficiente por los otros dos.

También me interesó calcular cuál sería el salario promedio de un programador que trabaja para una empresa colombiana. “Juan Promedio” tiene también los pies en el fuego y la cabeza en el hielo, pero nos da un estimado de las cosas, así que tomé como supuesto que cada persona que respondió gana el valor equivalente a la mitad del rango. Ejemplo, si alguien respondió ganar entre $1.000 y $1.999 USD, asumí que gana $1.500 USD. Es una hipótesis claro, pero permite calcular un valor ponderado, multiplicando por el porcentaje de personas que pertenecen al rango.

De este modo llegué al valor que nuestro “Juan Promedio” gana (No Juana infortunadamente, eso ojalá lo pregunten el año entrante) unos $1.628 USD, alrededor de $3.256.000 con dólar a 2.000 pesos.

Si uno contrasta contra salarios de otras profesiones se ve atractivo, pero todavía tenemos el ruido generado por 1 de cada 3 que ganan menos de $1.000 USD, que sigue siendo mucha gente.

Hace no más una semana tuve la oportunidad de hablar con un grupo de estudiantes de ingeniería informática, de los cuales algo así como el 95% dijo querer desarrollar software como ejercicio profesional al terminar la carrera, este tipo de información podría ser útil para ayudar a que cuando lleguen al semestre 10 no tiendan a cero los devs como sucede en muchos casos.

Sin embargo para el año entrante esperen que la encuesta muestre una brecha mayor entre trabajar para locales vs extranjeras, porque la moneda se está devaluando y los salarios no crecen a ese ritmo.

Esto suscita la polémica sobre que las empresas locales no valoran a los desarrolladores, pero yo la extendería a que los clientes locales no están interesados en pagar precios altos por el software, así que las empresas que deseen crecer y con ellas sus empleados, van a enfocarse más en clientes extranjeros también.  Si queremos un crecimiento económico del mercado local, debe haber algo que motive a los clientes a pagar mejores precios, probablemente software que permita un ROI para el cliente más alto o más rápido, o disminución de costos en los procesos empresariales más visibles; aquí quedan muchas propuestas por formular en el supuesto de que como país nos interese hacer crecer la economía doméstica.

En términos de metodología de la encuesta, como sugerencia para el año entrante yo diría dividir el rango entre $1.000 y $1.999 USD en $1.000 – $1.499 USD y $1.500 – $1.999 USD, porque así sabemos si los salarios están concentrados por encima o por debajo del valor que resultó como promedio ponderado y nos permitiría corregirlo al alza o a la baja. Ah, y aprovechando que hoy es el día internacional de la mujer, recomendemos que se agregue la pregunta de Masculino/Femenino a la encuesta a ver si de paso echamos luz sobre otra hipótesis que ronda por ahí, de que las profesiones en tecnología ayudarán a cerrar la brecha de salarios entre hombres y mujeres. 🙂

Algunos han sugerido pedirle a MinTIC un estudio (ese sí estadístico) sobre estas cuestiones, me uno a esa petición ¿Dónde firmo?.

Por: Isabel Yepes @iyepes0120

NOTAS

AQUÍ está la hoja de cálculo de donde salieron los números, también intenté sacar una correlación entre el tipo de habilidad y el salario, pero no se apreciaron tendencias muy marcadas. Otro día como más tiempo busco más.

* Imagen tomada de The NUS Provost Contemplates, The Bell curve