Todas las entradas de: Sebastian Silva

Acerca de Sebastian Silva

Estudiante de Ing. en Desarrollo de Software en CETI Colomos

¿Qué habilidades necesito como desarrollador de software?

notodoescodigo
05/04/2018 1:45pm

Gracias a la conferencia de la project manager de iTexico, Karen Valvidia, pudimos recopilar una serie de habilidades muy importantes que todo programador debe obtener o trabajar para entrar a la industria, estas habilidades te las explico a continuación:

Habilidades Técnicas

Lógica de programación: El pilar fundamental de un programador, desarrollar esta lógica te permitirá poder resolver toda clase

Fuente: Flaticon

de problemas con la programación, además de que te ayuda a aprender cualquier lenguaje de programación muy rápidamente.

Paradigmas de programación: Son la serie de filosofías y/o prácticas que permiten resolver ciertos problemas de manera mucho más sencilla, va relacionada en cierta manera con la lógica de programación debido a que por ejemplo, si se piensa en la programación estructurada para crear un videojuego, que consta de objetos, este desarrollo tarda muchísimo si quiera empezarlo, pero si se empieza a resolver de un enfoque a objetos, se reducirán exponencialmente las líneas de código y el problema en cuestión, “crear el videojuego”.

API’s, arquitectura de microservicios y Frameworks, stacks: Es fundamental entender como funcionan las librerías y servicios de terceros que nos permitan reducir bastante nuestro proyecto.

Conocimiento de base de datos: Siempre se manejan datos, es fundamental saber cómo almacenarlos y manipularlos en una base de datos, ya que éstas están diseñadas para tener disponibilidad, independencia de lenguajes, reducción de redundancia de datos e integridad de los datos en el acceso concurrente a esta.

Fuente: Flaticon

Metodologías de desarrollo: La de cascada o Waterfall ya ha quedado obsoleta, sin embargo es necesario saber cómo funciona para poder entender las metodologías ágiles, como Scrum.

UI/UX: Hacer un buen diseño del UI (interfaz del usuario) ya que muchas veces podemos olvidar al final para quien es esta aplicación, sistema web, etcétera, que estamos creando, es por eso que también es necesario tener en cuenta la UX  (user experience) con una mejora constante de usabilidad y accesibilidad.

Habilidades Humanísticas

Administración: Tener conocimientos de administración es muy útil mas que nada para liderar equipos de trabajo (nunca sabes cuando puede surgir esa oportunidad).

 

Marketing, Branding y PR: Si eres freelancer, esto es fundamental ya que necesitas saber como promocionar y vender tu producto, pero si eres un desarrollador de empresa, también es necesario para poder aportar más a tu equipo.

Idiomas: Es necesario el inglés de manera imperativa, pero un tercer idioma te dará un plus enorme a la hora de la elección en la contratación.

Habilidades Sociales ‘softskills’

Comunicación: No es solo hablar y hablar, es saber hablar bien, expresarte de manera adecuada, calidad > cantidad. Para comunicarse correctamente se sugiere poner atención a tu interlocutor, entender el contexto, la comunicación debe ser clara y positiva, evitar ser pasivo agresivo.

Buena actitud

Manejo de Ego

Errores: Señalar errores de manera constructiva y aceptar criticas constructivas de igual forma.

Ética

Auto confianza: Evitar a toda costa el síndrome del impostor.

Responsabilidad

Manejo de tiempo

Curiosidad

Estar dispuesto aprender

Leer correctamente

Preguntar si no se entiende

Saber decir que no

Pensamientos

Pensamiento Lateral: Cuando se aprende algo nuevo, darle un significado a algo que ya se conoce para poder entenderlo mejor.

Pensamiento Critico: Saber que información tomar y cual descartar como basura.

Pensamiento Abstracto: Saber como traducir algo del mundo real a algo que una computadora entienda y viceversa

 

EVITAR A TODA COSTA SER UN MONKEY CODER

Un monkey coder, es un “programador” que:

  • Solo escribe código, sin haberlo previamente planeado, sin importarle si funcionara o no lo hará
  • Solo saben algunas cosas y no pueden aprender cosas nuevas
  • Les tienen que indicar que hacer en todo momento, no se auto-emplean

 

Computo cuántico con IBM

ibm-quantum
04/04/2018 10:59pm

Computo cuántico y el futuro de la Inteligencia de la Artificial por Mauricio García y Pablo Salazar IBM

Sorpresivamente la Inteligencia viene siendo estudiada desde 1950, hace casi 70 años (68 para ser exactos) por Alan Turing en la prueba Turing, realizada después de la creación de su maquina de 1936.

En la prueba, Turing se propuso si una maquina podía pensar, por lo cual propuso un juego en el cual dos personas estaba involucradas , ademas de una computadora. Una de las personas se sentaba en la sala con la computadora y se ponía a teclear preguntas en la terminal. Cuando aparecen las respuestas en la terminal, la otra persona debía intentar determinar si fueron hechas por la persona o por la computadora.

Turing propuso que su prueba debía convencer al evaluador el 70% del tiempo  cada 5 min de la conversación.

Esto fue la base fundamental de la Inteligencia Artificial.

Los datos son el recurso natural del siglo XXI- Virginia Rommetty, Presidenta de IBM, Virginia, Estados Unidos.

Pero tenemos que tener en cuenta que los datos no sirven de nada si no se utilizan, es debido a esa necesidad que empresas como Google se han dado cuenta de lo poderoso que son los datos y han estado utilizándola para muchos si no es que para todos sus productos.

Hoy en día, todos han estado en contacto con alguna inteligencia artificial, desde los anuncios (la mayoría de veces molestos) que se nos generan en Facebook o Youtube, apartir de nuestras búsquedas  hasta  un chatbot que incluso, tienen la función de moderar en chats para evitar las palabras altisonantes o enlaces a paginas, en plataformas como Twitch.

Lo potente de la IA, es que puede ser entrenada para realizar una tarea, para que después de ser entrenada, pueda funcionar de manera autómata y sepa como razonar dependiendo los cambios que surjan con los datos que reciba.

Pero hay un gran problema que fue mencionado en esta conferencia, y este es que la computación clásica, es decir, la que todos conocemos hasta antes de leer esta nota, no puede procesar cantidades de combinaciones tan extensas como el de una baraja de tan solo 52 cartas, ya que estas alcanzan las de los átomos del universo.

Es por eso que se esta apostando por la computación cuántica, esta se compone de cubits o bits cuánticos, el cual representa ambos estados 0 y 1 simultáneamente  dos estados ortogonales de una sub partícula atómica.

Para no entrar en un tema tan técnico, gracias a sistemas de cubits, se pueden manipular grandes cantidades de información como el problema con las combinaciones de las cartas.

Actualmente IBM consta de una maquina de 50 cubits, con la cual se han empezado a desarrollar algoritmos de búsqueda que básicamente, son el pilar de cualquier gran software, desde una app, hasta un Sistema Operativo, etc.

Con esta maquina de cubits, IBM planea en un futuro no muy lejano, poder simular moléculas con la finalidad de crear poder crear  nuevos materiales, así como diseñar medicina según  el ADN de la persona.

¿Cómo construir un robot sumo?

Drones cage & robots
Hay que tener en cuanta ciertos factores para construir un robot de competencia
03/04/2018 3:23pm

¿Estás interesado en construir un robot de competencia? ¿Sabes cual es la mejor forma de hacerlo?

El Ingeniero Miguel A. Piedra Ángeles, de la Asociación Mexicana de Mecatrónica, explicó en su workshop, “Diseño de algoritmos para robots de competencia”,  consejos acerca de las distintas partes a enfocarse en tu robot sumo cuando asistas a una competencia. Aquí te los mencionamos y explicamos.

Hardware

“La programación se hace pensando en que la computadora va a funcionar, entonces el hardware debe estar en buenas condiciones”, aquí se considera al diseño electrónico y mecánico.

Peso:

El peso juega una clave importante en ganar este tipo de concursos que consisten en empujar al robot rival de la arena circular, es por eso que si nuestro robot es muy pesado consumirá más energía de la que debería y no tendrá la fuerza necesaria para poder empujar al rival (vaya ni si quiera la necesaria para moverse) así que las consideraciones a tener en cuenta son:

  • No es recomendable el uso de protoboards en tu robot ya que ademas de no ser nada profesional, hace al robot muy pesado.
  • Las cuchillas flexibles son mejores que las fijas, ya que ayudan a usar el peso del rival a nuestro favor cuando este coloque sus cuchillas en nuestro robot.
  • La batería debe colocarse en un lugar adecuado ya que esta, por su peso, puede desbalancear a nuestro robot.
  • Cambiar el grosor de nuestra tarjeta cambia mucho el peso.

Motor:

Una de las cosas mas importantes de nuestro robot.  Sin este nuestro robot no se movería, es por eso que hay que tener ciertas consideraciones, por ejemplo, el motor más usado para este tipo de robots es el TBGGR que suele consumir 600mA en movimiento y 1600mA en paro (sí, en paro se consume más ya que necesitara arrancar) algunas otras consideraciones a tener en cuenta son:

  • Cuando se daña el embobinado consume más corriente, hablando de este motor, en movimiento el motor consume 2A y en paro consume hasta 6A, lo cual provoca muchas veces que se queme.
  • El driver de los motores debe soportar por lo menos el 200% de la corriente de paro (Un driver es un circuito al cual se conecta circuitos digitales para evitar daños).

Consideraciones generales de hardware:

  • “El micro-controlador siempre sera tan bueno como la persona que lo programa”.
  • Se debe implementar desde el inicio un método de diagnostico para facilitar las reparaciones y el  debuggeo (diagnostico para reparación de errores) del robot, es decir, alguna pista en especifico para leer el voltaje de entrada, otra para el voltaje de salida, etc.
  • El sistema debe estar protegido contra cortocircuitos e inversión de polaridad.
  • Las partes del robot deben ser de primera calidad.
  • Siempre practicar la soldadura, y armado en otro lado.
  • Se debe conocer la velocidad de actualización de los sensores usados así como sus limitantes y restricciones.

Rendimiento:

Considerar la capacidad de respuesta y procesamiento del sistema de control

  • Se pueden reducir el uso de los sensores multiplexandolos, es decir, solo utilizar ciertos sensores cuando se encuentran a cierta distancia de la linea de la arena, e ir cambiando entre ellos, eso le reduce bastante la carga al microprocesador.
  • Se puede programar en un lenguaje de bajo nivel o cercano a este, ya que los lenguajes de alto nivel tienen muchas consideraciones respecto a las revisiones que realizan en su respectivo compilador lo cual  pueden alentar la velocidad de la ejecución del código.
  • La parte que se encarga de arrancar el motor debe estar conectado de forma directa con la batería es decir (positivo a positivo y negativo a negativo, ya que esta es la parte que funciona más potente), así pues, la reversa debe de estar de forma inversa.

Llantas:

Las llantas son sumamente importantes ya que estas nos pueden proporcionar más fuerza o más velocidad y esto impacta directamente en el firmware, ya que por ejemplo si tenemos llantas de mucha velocidad pero atacamos solo de frente, nuestro robot sera violentamente aniquilado por el rival, o si nuestras llantas son de fuerza, pero atacamos de lado, nuestro robot puede perder el control y salir disparado fuera del anillo blanco de la arena.

Las mas comunes:

  1. 50:1 reducen la velocidad 50 veces pero incrementan la fuerza a 50 veces.
  2. 10:1 reducen la fuerza 50 veces pero incrementan la velocidad 50 veces.

Miscelaneo

Utilizar estrategias para ganarle más fácil al rival, por ejemplo utilizar terciopelo al robot para evitar ser detectado por los sensores infrarrojos del contrario ( que suelen ser los mas utilizados), utilizar imanes para tener tanto mas fuerza de empuje como de agarre y cualquier estrategia que pueda confundir la programación del contrario o su mecánica puede funcionar.

Firmware

El cerebro del robot, su razonamiento lógico es a lo que recurre para saber que hacer dependiendo la situación en la que se encuentre tanto el como su rival (la programación).

 

 

  • El diseño debe permitir que el algoritmo se ejecute de manera correcta, es decir, si por ejemplo se están utilizando sensores que requieren cierta luz para leer información y se programa no considerando esto, no se va a lograr la ejecución correcta del programa del robot.
  • Si se utilizan librerías creadas por otras personas se debe comprobar su correcto funcionamiento para evitar funcionamientos no deseados.

Factor Humano

De lo más importante según el Ing. ya que una buena programación y diseño de hardware, así como algún cambio del firmware ya cercano en la competencia puede hacer el cambio entre ganar o perder, explico que es 90% factor humano, 10% robot.

5 Lugares básicos que todo talento debería conocer

Módulo de información
02/04/2018 1:48pm

Cosas básicas de Talent Land, para que puedan llegar directamente a las diversas áreas o actividades que nombraré sin ninguna incertidumbre ni vergüenza a realizarlas.

Empecemos con un lugar que a primera vista no tiene mucho sentido, pero si nos fijamos en el letrero que hay arriba por un lado podemos darnos una idea de qué trata “así de fácil”:

1.- ‘Chillout’


Chill out proviene del ingles, y significa relajarse, despreocuparse; como se indica, es un área en la cual los talentos se pueden relajarse después de una larga caminata,  sentándose en los sofás blancos donde pueden usar su celular y/o  laptop  en las convenientes mesas que  también  ahí se encuentran.

Ubicada dentro de Developer Land(Salon Gudalajara)

 

(Zona principal de la Expo)

 

O bien degustar una  sopa maruchan® mientras observamos el evento a nuestro alrededor o la TV.

2.- ¡Cuidado con los globos!

En Talent Land hay muchas áreas donde hay globos gigantes verdes con el nombre del área a la cual pertenecen, donde muy convenientemente se encuentran mesas alargadas horizontales blancas con sillas, conectores ethernet y enchufes (ufff el paraíso), CUIDADO, estas zonas son exclusivamente para personas pertenecientes de esa área así que por favor seamos respetuosos.

Algunas fotos de las áreas:

3.- Omen

Área de Gamer´s Land  en la cual podemos hacer uso de la latop Omen de HP por alrededor de 20 min, una poderosa laptop con Intel Core i7-7700HQ, CPU de 2.80GHz de dos nucleos y 16 Gb de RAM  que contienen juegos como Halo Wars donde se puede apreciar la excelente calidad con la que los gráficos corren.

 

4.-¿Dónde está?…

Si te pierdes, puedes recurrir a los módulos de información, estos amables voluntarios te podrán ayudar a ubicarte explicando verbalmente o directamente en uno de los mapas que tienen en sus mini-libros , ubicados por las partes principales del talent.

Hay una ubicada justo en la entrada principal de la Expo.

 

Otro cerca del salón Guadalajara

 

Por último hay otro ubicado dentro del mismo salón Guadalajar a(Donde se encuentra Startup Land, Developer Land y Talent Jobs)

 

Mini-libros que puedes pedir ahí mismo

5.-Lo más importante


Recuerda siempre estar caminando  por toda Talent Land, y estar al pendiente de todo a tu alrededor uno nunca sabe, qué dinámica o concurso habrá, donde te puedas llevar un buen premio, o una buena carcajada.