Mostrando entradas con la etiqueta prgramacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta prgramacion. Mostrar todas las entradas

jueves, 5 de marzo de 2015

CODE IS NOT A CRIME!




Citando textualmente a "Torrenegra"
Recientemente descubrí que un desarrollador de software colombiano que trabaja para una compañía colombiana con enfoque local recibe en promedio ~COP$3.750.000 por mes, un poco más de la mitad de lo que recibiría si trabajara para una compañía multinacional o una compañía ubicada fuera de Colombia (~$6.895.000/mes). Este es uno de los resultados de la reciente encuesta de salarios de la industria.
Lastimosamente, la mayoría de los jóvenes colombianos no están al tanto de esta realidad. Por eso no sorprende que prefieran estudiar otras ingenierías que están mejor remuneradas por compañías colombianas. Esto tiene que cambiar.
Es importante que las compañías colombianas empiecen a valorar más a sus desarrolladores. Y es aún más urgente que las universidades del país actualicen sus pensum para dejar de satisfacer las necesidades locales y, a cambio, empezar a satisfacer las necesidades globales. Mientras eso ocurre, un colombiano que quiera enfocarse en desarrollo de software tiene pocas alternativas. Una de ellas es estudiar en el exterior. Otra es permanecer en Colombia, ser autodidacta usando Internet, y aprender a competir en el mercado global por sí mismo. Es triste que la sociedad en la que crece un individuo no le apoye a maximizar su potencial.
Me doy cuenta de lo triste que es ser Ingeniero De Sistemas (o afines) en Colombia, y mas aun, es desolador el futuro que le espera a los que osan graduarse; quizá podria extenderme un poco mas y decir que ya es bien difícil ser un "Geek Colombiano". O acaso no notaron el descalabro EPICO que ha tenido Campus Party Colombia cada año, siendo un evento de peor calidad al punto de no saberse si se va a realizar #CPCO8? Los "otros" eventos que se realizan en el pais no tienen la acogida que deberían, no lo han notado? Resulta ser requisito para que un "ciber-delito" sea tenido en cuenta, el ponerse en riesgo el buen nombre de un politico o vaciar el banco de la republica? La guerra que le declararon al Bitcoin? No lo han notado? Si no lo han notado, entonces si estamos condenados los geeks de este pais, total tampoco hacemos falta, o si? Pero la joya de la corona es la nota que cito a continuación...

Todo lo que amenace un negocio tradicional en manos de una familia o unos pocos se declara ilegal. La forma más sencilla de acabar competencias y mantener rentas de negocios.
El principio es claro: si te afecta, declara ilegal.
Ya en Colombia declararon ilegal a Uber  y ahora, nada más ni nada menos, que la Federación de Software de Colombia, declara abierta y públicamente, que quien no tenga un cartón que certifique conocimientos, comete un delito.
En teoría, esta vieja y anacrónica institución fue creada para “velar por el fortalecimiento del sector (…) desarrollo de políticas que normalizan, defienden y promueven los intereses de los industriales del software en Colombia”.
Por supuesto es una tarea que ha venido haciendo perfectamente. Quizás de allí el atraso y la poca capacidad real de innovación en Colombia. Este gremio defiende viejas prácticas en las cuales los nuevos desarrolladores no tienen cabida y ahora: son delincuentes.
delito
Esta exagerada publicación donde se defiende una industria anacrónica debió ser motivada por una serie de texto en las cuales se critica el estado actual de la ingeniera en Colombia.
Quien las hace, no es ni nada menos que uno de los emprendores reales más importantes del país. Se ha criticado la falta de capacidad y la forma cómo se forman ingenieros para cumplir tareas dentro de una industria. Se vienen diciendo que el sector no tiene conocimiento para competir globalmente  y sus nuevos actores sufren una serie de retraso de innovación, además, si se compara con experiencias internacionales Colombia queda muy mal parado.
Quizás el modelo de Fedesoft sea el culpable de que en Colombia todo sea un drama en Internet. No sirven los servicios, las plataformas del Estado son un saludo a la bandera, pero contraticos sí tienen… y muchos.
Gracias a mucha gente con pensamiento independiente hoy se están rompiendo una serie de cadenas y hoy, de forma tímida y con las uñas, muchas personas se lanzan a las aguas turbulentas del emprendimiento personal, que ahora, incluye, un nuevo obstáculo: el delito.
¿No sabrá Fedesoft la historia de David Karp, quien a los 21 años, lanzó Tumblr sin asistir o terminar  el High School?. Hoy su empresa cuesta la modesta suma de 800 millones de dólares. Sin cartón y sin pendejadas como la que ahora quiere inventar la institución que en teoría agremia a los desarrolladores que crean software.
Este es un ataque directo a todos aquellos que están tratando de crear otras posibilidades de enseñanza y creación. Por supuesto es todo lo contrario a lo que debe hacer una entidad que debería promover la innovación y la creatividad en vez de prohibirla. Si no les gustan los nuevos negocios pues lamentamos informar que allí estarán por que Internet lo permite.
Denotelopuedocreer.com se intentó comunicar vía Twitter con Fedesoft para precisar los alcances de su publicación pero no respondió.
Post creado gracias a trinos de @cronopio2 y @qjuanp
Que tal el descaro? ahora no solo es un crimen compartir contenido (informese sobre "ley lleras"), sino que ahora por crear contenido también somos criminales... Sera la solución seguir aprendiendo desde las sombras y llegado el momento salir a buscar oportunidad fuera del pais?
No quisiera citar a "Cesar Augusto Londoño" y su cita mas celebre, pero...
Hasta aqui los deportes, pais de ...

________________________________________________________________________
fuentes:
http://ckswn.blogspot.com/2015/03/the-conscience-of-hacker.html

http://torrenegra.com/post/112564341678/porque-yo-no-se-en-este-pais

http://denotelopuedocreer.com/quien-cree-codigo-y-desarrollo-digital-en-colombia-sin-titulo-profesional-comete-un-delito-afirma-fedesoft/

lunes, 9 de septiembre de 2013

Se un buen Desarrollador Web!

Estas son algunas reglas básicas a la hora de desarrollar un buen “producto web”, probablemente si desarrollas aplicaciones con asiduidad tienes en cuenta algunas de ellas pero si no las conoces y te gustaría empezar un proyecto seguro que te vendrá bien echarle un vistazo.
 

 

 

Desconfía de los usuarios
Suena duro pero es la verdad, no quiero decir con esta afirmación que todos los usuarios sean maliciosos pero lo que si es cierto es que mientras más desconfies más preparado estarás cuando algo no deseado suceda, intenta comprometer lo menos posible tu aplicación evitando todos aquellos agujeros de seguridad que esten en tu mano, tambien es importante que no te centres unicamente en la seguridad… ten en cuenta que muchos usuarios por desconocimiento de la aplicación harán un uso incorrecto de la misma, un buen ejemplo de ello lo tenemos a la hora de rellenar los formularios, hay que asegurarse y validar todos los datos introducidos por los usuarios.

Haz un diseño para usuarios, no para programadores

En concordancia con el punto anterior una buena manera de prevenir posibles errores de uso por parte de los usuarios es dotar a tu aplicación de una interfaz amigable, intuitiva y a ser posible con ayudas para los usuarios, todos estos puntos no son fáciles de aplicar pero si necesarios.
Para poder hacer una aplicación intuitiva para el usuario deberás de apartarte de tu “parte de desarrollador” y tener en cuenta que al fin y al cabo el usuario no poseerá ni tus conocimientos ni tu manera de pensar.

Utiliza Javascript únicamente para mejorar la interfaz

La prueba de fuego para la usabilidad de tu aplicación debe ser que esta mantenga todas sus características en un navegador con Javascript Deshabilitado, son realmente fascinantes las mejoras en diseño que se han conseguido con la llamada “Web 2.0” y probablemente en un futuro muy cercano no se conciba otra manera de ver internet, pero ahora mismo debemos pensar que Internet no evoluciona tan rápido cómo nosotros queremos, la gran mayoría de los usuarios convencionales no saben que es la web 2.0 y probablemente no sepan cómo habilitar Javascript para su navegador.
Si no estas deacuerdo con este punto trata de navegar un único día con Javascript deshabilitado y verás cuántas barreras te encuentras sólo en los primeros 5 minutos.

Documenta el código

Escribe una buena documentacion de tu script / librería o efecto. Una buena documentación da calidad al código, sino preguntate porque existe la clásica documentación en cualquier API con todas las posibles propiedades y parametros, pero sin duda lo mejor de todo es explicar con ejemplos que contienen una lista de posibilidades.
La documentación del código a mi modo de ver implica la documentación de todo el código (Hojas de estilo y funciones Javascript incluidas).
Documenta tus hojas de estilo: Si aún así te parece algo no prioritario imáginate que pasaría si tu proyecto crece y tienes que incorporar a otro desarrollador que te ayude, sinceramente si no esta documentado vais a perder ambos una gran cantidad de tiempo.
Ya si lo que quieres es tener una “aplicación 10“: conserva la sintaxis y estructura del código limpia y ordenada, utiliza inteligentemente los nombres de variables y funciones, comenta el código, diferencia las variables dependiendo de su importancia y separa el texto del código(Poner en un documento aparte el texto para su posterior traduccion a otro idioma).

Se coherente con el código HTML

Con esto quiero decir que utilizes el código HTML de manera apropiada (Algunos Ejemplos):
* No uses <div class=”TextoGrandeNegro”> cuando puedes usar <h1>
* No uses <h1> cuando lo que realmente quieres hacer es <b>
* No uses <b> cuando querías <strong>
* No uses <i> para enfatizar algo y <em> para conseguir el efecto de letra itálica
* No uses tablas y divs para hacer un menu, cuando en realidad puede ser una lista
* No crees div cómo este <div id=”ColumnaIzquierda”> cuando podemos generalizarlo en <div id=”columnas”>

¿Conoces los tags <code><samp><tt><kbd> y <var>?
Hay un buen número de tags en HTML que posiblemente no conozcas y puedan en algún momento realizar la función que estabas buscando como por ejemplo sería los tags en lugar de colocar un span o un div con un estilo personalizado, pero este es el ejemplo más simple.

Conclusión

Espero que estos pequeños consejos te hayan servido de utilidad el titularlo cómo reglas es para darle más importancia a cada uno de los consejos, ten en cuenta que cuanto mas en serio te los tomes más dificil te será obviarlos.

lunes, 2 de septiembre de 2013

PseudoCodigo para novatos.

Aunque los tutoriales en Internet son muchos, y hay de todo para encontrar, los manuales sobre pseudocodigo son realmente pocos, y los pocos que he visto parecen hechos por expertos y para expertos; por eso hoy hacemos una entrada, hecha por un novato y para novatos. Bienvenidos.

  PSEUDOCODIGO FOR DUMMIES -- I

 


 

 

¿QUE ES UN ALGORITMO?

Es una secuencia de pasos lógicos y finitos para dar solución a un problema determinado.
Un algoritmo se compone básicamente de variables, constantes e instrucciones.


¿Y UNA VARIABLE, QUE ES?
 
Es un dato que puede tomar múltiples valores, ya sean numeros o letras. Una variable puede almacenar mi nombre, o mi edad, o mi número de teléfono, o la dirección de mi casa, etc...


¿Y QUE ES UNA CONSTANTE?
 
Es un dato que no cambia su valor, por ejemplo la aceleración de la gravedad o el I.V.A.


¿QUE SON Y COMO SE DAN LAS INSTRUCCIONES?
 
Las instrucciones son las ordenes que le damos al programa para que interactúe con las variables y constantes, y finalmente nos arroje un resultado adecuado.
Hay instrucciones de entrada de datos, de procesamiento de datos y de salida de datos.

Una instruccion sencilla puede ser leer un par de numeros, otra instruccion seria sumarlos o restarlos...
Un simple pero claro ejemplo seria:
Proceso Ejemplo_CKS
    Leer A
    Leer B
    C=A+B
    Escribir C
FinProceso
Donde A y B son dos variables que almacenan cada una un numero digitado por el usuario, luego suman el contenido de A y el contenido de B guardandolo en una variable nueva llmada C, la cual se imprime en pantalla para finalizar asi el algoritmo.