Quiero compartir con ustedes algunos consejos que encontré PARA TODAS AQUELLAS PERSONAS QUE ESTAN INICIANDO SU CAMINO en lenguajes de programación, consejos y cosas que deben tener en cuenta, espero les sirva..

Navegando por la web he encontrado un proyecto muy interesante “97 Cosas Que Todo Programador Debe Aprender”. <<<(Accede al material haciendo click en el link) Este proyecto consiste en la traducción al español del libro que lleva el mismo nombre en inglés 97 Things Every Programmer Should Know.

Excelente iniciativa que beneficia enormemente la comunidad de desarrolladores hispana.

Capturas del material:

Estás iniciandote en lenguajes de Programación? Entrá...

 

software

 

tecnologia

Habilidades que debes tener:

Desde muy temprana edad he estado envuelto en el mundo de la tecnología. Si hay algo que no me deja de fascinar sobre este mundo es lo rápido que avanza el sector del software. La industria del software ha mutado a pasos agigantados desde su nacimiento. En los años 80 el software giraba en torno a las PC de escritorios y Mainframes. En la actualidad la tendencia es hacia soluciones para dispositivos móviles y la web.

Programacion

Como consecuencia de este avance tan rápido que experimenta la industria del software, he dedicado tiempo en reflexionar sobre las características excenciales que permitan a un programador mantenerse en la industria por un largo periodo de tiempo y al mismo tiempo ser exitoso en su profesión. A continuación explicaré algunas de las características que todo programador debe tener para ser exitoso en el híper competitivo campo de la industria del software.

* Curiosidad: Un buen programador siempre está ávido de conocimientos. Hasta que no conoce el problema en profundidad no se detiene de trabajar. Es esta característica la que permite que un programador pueda adquirir el conocimiento y habilidades para entender cualquier tecnología subyacente en la que necesite escribir código. Sé curioso y alimenta tu mente con información útil. Nunca pares de leer.

* Pensamiento claro: Un pensamiento claro es un ejercicio de lógica. Por esta razón es que los programadores con excelente bases matemáticas superan en rendimiento en la mayoría de las veces a sus pares que carecen de estos conocimientos. Ejercita tu lógica a través de las matemáticas.

* Leer y comprender rápido: La rapidez en la lectura y compresión de la información es vital para la productividad de cualquier programador. Un programador NO sólo escribe código, parte de su trabajo incluye la lectura de código, documentación y especificaciones de proyectos. Los programadores que leen de manera lenta son improductivos pero los que no tiene buena lectura comprensiva son peligrosos.

* Atención a los detalles: He notado que la característica de atención a los detalles está estrechamente relacionada con la curiosidad. Un programador que no presta atención a los detalles principalmente en el proceso de escritura de código es altamente improductivo. La falta de esta habilidad se refleja en aquellos que escriben código desordenado, sin comentarios y no implementan las medidas de seguridad adecuadas para garantizar la integridad del software.

* Aprender rápido temas fuera de la programación: Exceptuando que seas un programador trabajando dentro de una compañía de software desarrollando herramientas únicamente para programadores, es necesario que estés en comunicación con otras personas fuera del mundo del código binario. Esto incluye conversar con contadores, abogados, financieros, etc. Por lo tanto, un programador debe adquirir conocimientos en las áreas con la que se relaciona en el trabajo. Así como un periodista debe poseer el conocimiento mínimo necesario para escribir un artículo sobre economía, de esta misma forma un programador debe tener conocimientos mínimos de finanzas para poder ayudar a un director financiero a resolver un problema de software.

* Autodidacta: El programador que depende que su empleador para que financie los entrenamientos está condenando al fracaso. La realidad es que en las empresas casi nunca hay presupuesto para entrenamientos en el área de tecnología. Un excelente programador es autodidacta. La habilidad de aprender por sí mismo paga en el largo plazo. El mundo del desarrollo de software es muy amplio y no se detiene, el programador actual debe estar en constante evolución aprendiendo nuevas herramientas y lenguajes. Un programador que dure dos años sin capacitación está desfasado.

* Pasión: Existen programadores de 9-5. Estos son aquellos que escriben código de forma rutinaria en su trabajo. Fuera de su trabajo no existe el código. Esto no está mal pero es un reflejo de falta de pasión. Los mejores programadores respiran código las 24 horas. Esta “pasión” es la que permite aplicar trucos y buscar soluciones creativas al momento de enfrentar problemas complejos.

* Adaptabilidad: Es muy difícil que un proyecto de software termine con las mismas especificaciones que se delinearon al comienzo del proyecto. Las cosas cambian y los grandes proyectos también. Un programador debe saber cómo adaptarse a los cambios. Los programadores que no se adaptan fracasan.

* Comunicación efectiva: Comunicación efectiva no es sinónimo que hables perfectamente tu idioma; es más que eso. Es necesario que un programador tenga la capacidad de comunicar las ideas de forma clara y precisa. Los programadores que NO logran que sus ideas sean comprendidas principalmente por aquellas personas no técnicas, tienden a tener dificultades en sus carreras. Una persona que no comunique efectivamente NO puede escalar a posiciones gerenciales en una empresa.

* Explora código: Un forma rápida y eficiente de incrementar tus habilidades en programación es a través de la exploración de código escrito por otros. Algunos de los mejores programadores del mundo colaboran en proyectos Open Source. Involúcrate y aprender de los gurúes.

Consejos Para Acelerar Tu Aprendizaje De Programación:

programadores

Un buen amigo y mentor hace ya un tiempo me dió los siguientes consejos cuando estaba a punto de ingresar a la carrera de Ingeniería en Sistema y Computación. Estos consejos me sirvieron de mucho en el mundo académico y en la vida laboral, por lo tanto, los quiero compartir contigo esperando que obtengas tan buenos resultados como los que obtuve yo.

1) Aprenda los fundamentos correctamente (¡Y lo digo en serio!), Ya sea en la universidad o por su cuenta aprenda bien los fundamentos de matemáticas y cálculo. Usted tiene que tener una base de matemática buena, le guste o no (si no lo hace, debe de pensar mejor en estudiar otra carrera). Y esto incluye conocer muy bien la lógica booleana. También debes de tener una muy buena comprensión de las estructuras de datos y algoritmos. Los malos programadores, por definición, no tienen ni idea de los conceptos básicos.

2) Sólo porque eres es un “programador” no te llegues a pensar que no es necesario saber acerca de sistemas operativos. Te equivocas. Si no entiendes correctamente como funciona el sistema operativo estarás continuamente siendo un principiante.

3) No trates de leer libros de programación de extremo a extremo. Los libros técnicos son sólo de referencia. El primer par de capítulos puede ser que valga la pena leerlos para aprender algunos conceptos nuevos e introductorios. Aprenda programación codificando, no memorizando libros.

4) No reinvente la rueda. La reacción inmediata de los programadores novatos es reinventar todo (en proyectos de los clientes!). Reutiliza código que ha sido exitósamente probado en el pasado. Esto te ahorrará muchas horas de trabajo y sueño.

5) Las aplicaciones de código abierto (open source) son valiosísimas precisamente porque permiten a los programadores tener acceso al código de aplicaciones que son utilizadas en el mundo real resolviendo problemas reales. En principio, cuando comenzamos a escribir código somos pésimos (no hay que tener vergüenza en admitir esta gran verdad). La única forma de aprender es leer y modificar cientos de miles de líneas de código de programadores más experimentado que tu.

6) En este punto nunca se insistirá lo suficiente: si estás comenzando tu carrera de programación, al principio tu código va a ser muy malo. Nunca dejes que nadie te diga lo contrario. Es como empezar a pintar, hacer deporte, o cualquier cosa que requiera práctica. Se necesitarán años de codificación real, varias horas a la semana, sin escalas, con el simple propósito de adquirir las habilidades necesarias para que puedes catalogarte como un buen programador.

6 Razones Porque La Programación No Es Para Todo El Mundo:

Voy a ser claro desde el principio. Apoyo las iniciativas tipo The Hour of Code donde a jóvenes y niños se les enseña el proceso de creación de un software. También estoy de acuerdo con la enseñanza de la programación como una materia básica en las escuelas equiparándola con matemáticas, lenguas, biología, física, etc.

software

Estas iniciativas de enseñanza masiva de la programación de software son ciertamente una herramienta para que los jóvenes; (1) se interesen por las ciencias de la computación; (2) muchos que no lo sabían se den cuenta que son buenos para las computadoras. Ahora bien, de ahí a que todo el mundo aprenda programación; ¡No way!

No todo el mundo puede llegar a ser programador. La programación no es un asunto para cualquiera. Es una tarea muy especializada que requiere la combinación de actitudes, conocimientos y un ambiente correcto para poder desarrollarse. En este artículo voy explicar algunas razones de mi tesis.

Comencemos por el principio…

Hay que tener pasión para resolver problemas

La programación de software es para el individuo que siente pasión por resolver problemas. La experiencia indica que no todo el mundo le agrada la idea de andar resolviendo problemas. El proceso de resolver problemas implica tener una mente proactiva, lista para el trabajo duro y constante. La mayoría de las personas son perezosas en este sentido.

Toma tiempo dominar este arte

El que piense que ser programador es cuestión de un evento, no está pensando correctamente o lo están desinformando deliberadamente. Llegar a ser un programador eficiente es producto de un proceso de aprendizaje que tarda años. La programación es un arte que se aprende en modo “prueba y error”, consumiendo años de esfuerzo y energías. En pocas palabras, requiere trabajo duro y constante para llegar al nivel de ser productivo.

Hay que tener la actitud correcta

Programacion

El programador debe tener una actitud positiva, y al mismo tiempo, una mente tenaz. El proceso de escribir un código fuente es complejo, envuelve tener pendiente multitudes de detalles técnicos (sintaxis, variables, procesos, bucles, entradas, salidas, etc.). La misma naturaleza de la tarea hace que cada paso sea un desafío. Aquí no existen atajos.

No existe un asunto más tedioso y aburrido que “debuggear” y luchar contra ese “sentimiento de impotencia” que surge cuando tenemos un código fuente que no parece compilar nunca, aun cuando el código luce estar perfectamente escrito. Sí, todos hemos pasado por esto, al final sólo faltaba un “punto y coma” o cerrar una llave para que el código compilara.

Recientemente, leí en un ensayo de Paul Graham, que el verdadero programador disfruta el proceso de “debuggear”. No lo ve como una pérdida de tiempo sino que disfruta cada segundo hasta encontrar la solución. Yo creo que Graham tiene razón. Si no te gusta “debuggear” quizás no sientes pasión por este arte.

Pensar “outside the box”

Para aprender programación es necesario pensar de manera abstracta. El pensamiento abstracto es fácticamente demostrable que no le es atractivo al “Layman” o “Average Joe”.

Recuerdo perfectamente en la universidad aprendiendo POO (Programación Orientada a Objetos) cuando el profesor explicaba los términos: herencia, polimorfismo, objeto, método, clase, etc. La mayoría de los estudiantes no captaban los conceptos. Era como si se les hablara en Mandarín. La abstracción requiere dos cosas: (1) el método correcto de enseñanza; (2) una mente fértil.

Planificación y diseño, luego ejecución

programadores

Codificar es una cosa, planificar y diseñar la solución de un problema es otra cosa muy diferente. La mayoría de las personas que he visto fracasar en el intento de convertirse en programadores tienen una característica en común: no tienen una sólida base de conocimientos en matemáticas y algoritmos.

Es cierto que la programación es un arte, pero al mismo tiempo también es una ciencia. Es una combinación de creatividad y estructura mental. No están separadas, al contrario, coexisten indistintamente.

Para resolver problemas computacionales es necesario pensar “outside of the box”, pero para aplicar esa solución creativa, y llevarla a la realidad, es necesario orden y estructura. Es aquí donde muchos fracasan. No es posible llegar a una solución eficiente si no contamos con un algoritmo que aproveche de la mejor forma los recursos computacionales disponibles.

Hay que ser curioso:

Estás iniciandote en lenguajes de Programación? Entrá...

La mayoría de los programadores competentes son personas muy curiosas. Les gusta aprender constantemente y averiguar el porqué de las cosas. De hecho, la mayoría que conozco son autodidactas y no paran de aprender. La programación no es estática. Es una profesión que viene en constante evolución (nuevos lenguajes, IDE, Frameworks, etc.). Si no eres curioso y dependes de otras personas para aprender, la programación no es para ti.

Diferencias Entre Coder, Hacker, Programmer Y Developer

tecnologia

Hace unos días atrás, tuve una conversación con un amigo informático que al final terminó en un debate sobre cuáles son las diferencias entre un “Coder”, “Hacker”, “Programmer” y “Developer”.

En la industria se utilizan constantemente estos términos indistintamente pero en realidad no son la misma cosa. Vamos a explicar qué es cada quién, obviamente desde mi perspectiva.

Este tema siempre está sujeto a debate así que cualquier objeción u observación será siempre bienvenida.

El Coder: alguien que tiene la capacidad de escribir código de software que funciona, pero no de una manera elegante y estructurada. Tiene poco o nada de conocimientos sobre algoritmos.

El Hacker: Es alguien que crea cosas. En este contexto, alguien que crea cosas programando computadoras. Es capaz de escribir código de bajo nivel (C, C++, ensamblador). Es una persona meticulosa, orientada a los detalles con profundos conocimientos sobre una tecnología en particular.

El Programmer: alguien con capacidad de escribir código y entender algoritmos. Puede desarrollar software con cierta complejidad. Regularmente trabaja por su cuenta como freelancer.

El Developer: es una persona con entrenamiento formal. Puede manipular código o crear perfectamente cosas de la nada, pero siempre acorde principios establecidos de diseño e implementación de sistemas. Esto incluye robustez del código, seguridad, escalabilidad, performance, etc.

¿Cuál de todos quieres ser tú?

Pues puedes ser el que quieras ser, sólo debes de enfocarte y trazar un plan de acción para educarte acorde a los requisitos de cada categoría. También, exístela posibilidad que una persona tenga características de cada categoría teniendo siempre en cuenta lo siguiente:

* Los hackers y los developers son programadores.

* Muchos programadores no tienen el talento o quizás no son los suficientemente creativos para convertirse en hackers.

* Muchos programadores no han recibido la educación o no tiene la disciplina necesaria para ser developers.

* Muchos de developers no son los suficientemente creativos para ser hackers.

¿No estás consciente sobre la importancia de saber programación? Lee este artículo donde te explican por qué te conviene saber programación aun cuando tu profesión no sea la informática.

¡Hasta pronto! Espero te sirva!

La mayoria de la INFO del post es de la pagina CAPACITY si les interesa saber más! SALUDOS!!