You are on page 1of 28

Taller de programacin!

Clase I 5/02/2013

Alvaro Molina!
@almolina!
alvaromolinac@gmail.com!

Taller de programacin!
Objetivo:!
Al concluir el curso, el estudiante podr
desempearse con solvencia en los
diferentes roles que se presentan en un
equipo de programadores de un proyecto
de desarrollo de software, cumpliendo con
normas y estndares de calidad.!

Inspiracin para el contenido del


curso!
Programa UCB!
https://www.edx.org/!
CS169.1x Software as a Service
7 Enero!
CS169.2x Software as a Service
15 Feb!
Experiencia propia!

Contenido!
Unidad 1: Introduccin al
desarrollo de software!
Unidad 2: Ruby on Rails avanzado!
Unidad 3: Programacin en
entornos agiles de desarrollo!
Unidad 4: Mantenimiento de
software!

Mercado para programadores y


profesionales IT

Mercado de trabajo IT y
programadores
Academia
Empresas desarrollo so@ware
Empresas otras
Independiente:
Free Lancer
Propia empresa

Trabajos que exisIrn siempre


Mundo / Bolivia
Consultores / Expertos tecnologia
Integrar nubes con redes sicas
DataWarehouse
Desarrollos ORACLE, SAP .NET, J2EE
Project Manager
Toma de requerimientos, Bussines Analysts,
Manejo de equipos, Ingles, Herramientas.
Desarrolladores
TesIng Calidad
IT people

Organigrama IT
Gerente IT

Desarrollo /
Gerente
Project /
Managers /
Arquitectos

Desarrolladores

Calidad

Operaciones /
Soporte

Bussiness
Inteligence

Otras (asociadas
al negocio)

Fuerzas que mueven el mercado

SOA : Service Oriented Architecture

SaaS, PaaS , IaaS

Cloud CompuIng
SaaS: So@ware as Service
Necesidades de infrraestructura
Comunicacin
Escalibilidad
Disponibilidad

Cloud CompuIng

Proveedores PaaS , IaaS


IaaS
EC2 Amazon
Azure Microso@
Rackspace
Google Compute Engine

PaaS
Azure Microso@
Heroku
Google App Engine

Habilidades requeridas en desarrollo


de so@ware/ IT
Manejo de proyectos

EsImacin de Iempos

Trabajo en equipo
Anlisis de Negocio
Diseo
Modicar cdigo ajeno
Resolucin de bugs
OpImizacin cdigo
Ingles
Lenguaje programacin

Donde nos sita este curso?

Programacin orientada a objetos


Metodologas Agiles
Web, SaaS
Cloud compuIng
MVC
Calidad en programacion
Backend: Ruby on Rails (.NET , PHP)
Front end: HTML, HTML5, CSS, Javascript
Habilidades y herramientas programacin:
Trabajo en equipo
Legacy code
ProducIvidad, etc

Lenguaje: Porque Ruby?s

Como se elige un lenguaje?


La mas rapida. = C , Assembler.
La mas producIva. = Ruby , python
La mas elegante. Lisp, haskell
Mejor soporte = C#, .NET , Java ...
Mayor canIdad de programadores = PHP ,
Javascript.
Atraer talento = ObjecIve C (mobile), Python,
Java, Ruby

Hacker News

Python (3,054)
Ruby (1,723)
JavaScript (1,415)
C (970)
C# (829)
PHP (666)
Java (551)
C++ (529)
Haskell (519)
Clojure (459)
CoeeScript (362)
ObjecIve C (326)

Ruby
"I hope to see Ruby help every
programmer in the world to be
producIve, and to enjoy
programming, and to be happy. That is
the primary purpose of Ruby
language. ---Yukihiro Matsumoto

Ruby on Rails

AcIve record parern


ConvenIon over ConguraIon
Don't Repeat Yourself
Model-View-Controller.

Ruby
tryruby.org

Instalar ruby
Windows:
hrp://railsinstaller.org/
Linux, OSX( ya lo Ienen)
hrps://rvm.io/

Herramientas
Github.com
pivotaltracker.com
Trello.com