Descargar el PDF Descargar el PDF

Convertirse en un programador es un proceso paulatino a través del cual uno va mejorando sus habilidades día a día y año a año. Además, la programación puede ser divertida y gratificante (mentalmente, espiritualmente y financieramente). Esta guía no promete brindar una forma fácil y mágica de convertirte en programador, y el orden de los pasos no es sagrado, pero aquí podrás obtener una descripción general de cómo convertirte en un programador de alguno de los campos más modernos de la programación.

    • Lógica
    • Matemática discreta
    • Un lenguaje de programación (participa en los diferentes paradigmas de programación, desde la secuencial o procedimental hasta la programación orientada a objetos, funcional y lógica. Ruby, Python o Pascal son recomendados para principiantes mientras que, para los más experimentados, es mejor C++/C#/Java).
    CONSEJO DE ESPECIALISTA

    Gene Linetsky, MS

    Fundador de startups y director de ingeniería
    Gene Linetsky es un fundador de startups e ingeniero de software en el área de la Bahía de San Francisco. Ha trabajado durante más de 30 años en la industria de la tecnología y actualmente es el director de Ingeniería en Poynt, una compañía de tecnología que construye terminales inteligentes de punto de venta para empresas.
    Gene Linetsky, MS
    Fundador de startups y director de ingeniería

    No sientas que debes obtener un título en codificación. Mientras lleva un curso en un lenguaje de programación puede ser de utilidad, Gene Linetsky, un ingeniero de software y fundador de una empresa emergente, afirma: "En realidad, es discutible si un título es de utilidad o no. En cambio, considera la programación como un aprendizaje; se trata básicamente de aprender de tus errores".

  1. Para hacerlo, puedes usar cualquier paquete simple de base de datos, por ejemplo:
    • MS Access
    • DB V
    • Fox Pro
    • Paradox
    • MySQL (es una buena base de datos para aprender porque es gratuita, ampliamente utilizada, y las bases de datos normalmente se acceden a través de consultas SQL)
  2. Los programadores generalmente caen dentro de una de las siguientes categorías:
    • programador web
    • programador de aplicaciones de escritorio
      • programador orientado a sistemas operativos (OS) (puedes estar atado a un solo sistema operativo o a un conjunto de ellos)
      • programador independiente de plataforma
    • programador de aplicaciones distribuidas
    • programador de librerías, plataformas, frameworks o núcleos
    • programador de sistemas
      • programador de kernel
      • programador de controladores
      • programador de compiladores
    • científico de programación
  3. Las siguientes secciones desglosan las tareas que se llevan a cabo en los distintos tipos de programación.
    Anuncio
Método 1
Método 1 de 6:

Programación web

Descargar el PDF
  1. Las aplicaciones web son componentes de software diseñados para funcionar sobre una arquitectura de Internet. Esto quiere decir que las aplicaciones se acceden a través de un software de navegación web como Firefox o Internet Explorer. El hecho de estar construidos sobre una arquitectura de Internet no necesariamente significa que requiere de una conexión activa a Internet. Significa que las aplicaciones web se construyen sobre tecnologías web estándares como:
  2. a través de varios sitios web para aprender cómo lucen normalmente (haz clic derecho, luego selecciona "Ver código fuente" o presiona F12 ). Busca diversidad en cuanto al tipo de sitio web y su contenido, y no en cuanto a la cantidad de sitios visitados. Generalmente, es necesario visitar al menos uno de los siguientes tipos de sitios web:
    • sitios con presencia corporativa (corporaciones comerciales, corporaciones u organizaciones sin fines de lucro, organizaciones gubernamentales);
    • motores de indización web (motores de búsqueda, sitios de meta búsqueda, motores de búsqueda especializados, directorios);
    • sitios de minería de datos;
    • sitios personales;
    • páginas informativas o enciclopédicas (wikis, hojas de datos, especificaciones técnicas y directorios de listados de manuales, blogs y revistas, sitios de noticias y agencias de noticias, páginas amarillas, etc.);
    • sitios sociales (portales sociales, sitios de marcadores, sitios para tomar notas);
    • sitios colaborativos (esto incluye otras categorías mencionadas anteriormente, como wikis y blogs).
  3. Aprende al menos una técnica o método para hacer una lluvia de ideas y un software que se podría utilizar para implementar ese método. Por ejemplo: diagramas de tormentas de ideas y MS Visio.
  4. Esto significa crear diagramas web conceptuales, mapas de sitios y estructuras de navegación.
  5. Intenta aprender al menos un paquete de software de manipulación o edición de gráficos (esto es opcional, pero es altamente recomendable).
  6. Esto incluye aprender nociones básicas acerca de los siguientes aspectos:
    • protocolos de servicios basados en web (HTTP, FTP, SMTP, y POP3 o IMAP4)
    • software de servidores web (preferiblemente, uno para la plataforma sobre la cual vayas a trabajar)
    • software de navegación web
    • software de servidores y clientes de correo electrónico
  7. También sería bueno que consigas el paquete de software WYSIWYG (acrónimo de What You See Is What You Get, en español: "lo que ves es lo que obtienes") para editar HTML.
  8. Crea simples sitios web estáticos hasta que te familiarices y sientas cómodo trabajando con HTML .
  9. La mayoría de los usuarios aprenden JavaScript. Otros aprenden VBScript , pero este último no es compatible con la mayoría de los navegadores.
  10. Intenta alcanzar tu máximo potencial usando solo ese lenguaje. Da el próximo paso recién cuando te sientas familiarizado con tu lenguaje de script del lado del cliente.
  11. Si decides restringirte a solo un software de servidor, aprende un lenguaje de programación compatible con ese software. Si no, aprende al menos un lenguaje de programación de cada software del servidor.
  12. Crea tu propio sitio web y comienza a experimentar en línea dentro de tu propia página.
    Anuncio
Método 2
Método 2 de 6:

Programación de aplicaciones de escritorio

Descargar el PDF
  1. La mayoría de los programadores escriben código para soluciones empresariales, así que podrías ahorrar tiempo si tienes una idea sobre negocios y sus estructuras organizacionales y financieras.
  2. Podría serte útil hacer un curso de nivel introductorio sobre diseño de circuitos digitales y otro sobre arquitectura de computadoras. Sin embargo, algunos consideran que estos temas son un poco avanzados para empezar, así que tal vez leer dos o tres artículos tutoriales (por ejemplo, este y este otro ) sea suficiente. Puedes regresar a este paso más adelante, una vez que hayas aprendido tu primer lenguaje de programación.
  3. Aprende un lenguaje de programación de nivel inicial (para niños). Que no te de pena aprender ese tipo de lenguajes solo porque ya estás grande como para que te llamen "niño". Un ejemplo de este tipo de lenguajes de programación puede ser Scratch. Estos lenguajes de programación pueden aliviar tremendamente el duro trabajo de tener que aprender tu primer lenguaje de programación. Sin embargo, este paso es opcional. También puedes hacerlo antes de continuar con el paso anterior.
  4. Introdúcete en los tres paradigmas fundamentales de la programación: procedimental , orientado a objetos y funcional .
  5. Haz un curso introductorio de alguno de los lenguajes de programación procedimentales . No importa qué lenguaje elijas después para trabajar, de alguna forma requerirá saber algo de programación procedimental. Además, la mayoría de los programadores coinciden en que la programación procedimental es la más fácil de usar como punto de partida para obtener una idea de programación en general.
  6. Puedes usar pequeños ejercicios de libros de lenguajes de programación. Para esto, elige una herramienta para escribir programas en el lenguaje de programación que hayas escogido.
  7. Asegúrate de comprender bien los siguientes conceptos y de poder aplicarlos con cierta facilidad antes de continuar:
    • La administración de entradas y salidas de usuario de un programa.
    • El flujo lógico y de ejecución de programas en lenguajes procedimentales.
    • La declaración, asignación y comparación de variables.
    • Construcciones de bifurcaciones en la programación, por ejemplo "if…then…else" y "select o switch…case".
    • Construcciones de bucles como "while…do", "do…while o until", "for…next".
    • La sintaxis de tu lenguaje de programación para crear y llamar a procedimientos y funciones.
    • Tipos de datos y cómo manipularlos.
    • Tipos de datos definidos por el usuario (registros, estructuras, unidades) y su uso.
    • Si tu lenguaje de programación es compatible con la sobrecarga de funciones , asegúrate de entender cómo funciona.
    • Los métodos de acceso a la memoria para el lenguaje elegido (punteros, peeking, etc.).
    • Si tu lenguaje es compatible con la sobrecarga con la sobrecarga de operadores , asegúrate de que entiendas cómo funciona.
    • Si tu lenguaje es compatible con la delegación y con los punteros a funciones, asegúrate de que entiendas cómo funcionan.
  8. Realiza un curso introductorio en al menos un lenguaje de programación más de otro paradigma distinto. Se recomienda aprender un lenguaje de programación de cada paradigma, de hecho, la mayoría de los programadores avanzados lo hacen. Sin embargo, generalmente es mejor comenzar por uno, trabajar un tiempo aplicando el conocimiento y practicándolo, después aprender otro hasta que ya tengas una experiencia de la vida real en programación. Prueba alguna de las siguientes áreas de la programación:
    • paradigma de programación lógica
    • paradigma de programación funcional
    • paradigma orientado a objetos
  9. Evalúa las fortalezas y debilidades de cada uno. Por lo general, puedes hacerlo de la siguiente manera:
    • Tomando simples muestras de tu trabajo previo en el primer lenguaje de programación y rescribirlo usando el segundo lenguaje de programación.
    • Creando un nuevo proyecto e intentando implementarlo usando ambos lenguajes. A veces, dependiendo de tu elección de proyecto y lenguajes, ¡podría ocurrir que no sea posible implementar el proyecto en uno de los lenguajes!
    • Escribiendo una hoja de trucos o una tabla de resumen de comparaciones entre construcciones similares de ambos lenguajes y las características únicas de cada uno.
    • Intentando encontrar formas de imitar características únicas de cada uno de los dos lenguajes usando el otro lenguaje.
  10. Casi todos los lenguajes de programación tienen versiones o librerías que soportan la programación visual y otras consolas de soporte o programación de consolas. Puedes hacerlo siguiendo estos pasos:
    • Obtén una introducción a la programación orientada a eventos. La mayor parte de la programación visual se apoya de alguna forma en eventos y su manejo (usando el lenguaje de programación elegido).
    • Prueba tantas aplicaciones de escritorio como puedas y comprende qué es lo que hace ese software. La mayoría de las empresas de desarrollo de software ofrecen versiones de pruebas beta de sus productos que puedes usar para probar el software. Mantente al día con los avances en las interfaces gráficas de usuarios.
    • Lee algunos artículos o tutoriales sobre interfaces gráficas de usuario.
  11. Intenta aplicar las habilidades adquiridas en problemas que enfrentas en tu vida cotidiana. Por ejemplo, escribe programas para cambiar nombres de archivos en forma masiva, comparar archivos de texto visualmente, copiar nombres de archivos en una memoria o archivo de texto, y cosas por el estilo. Haz cosas simples para empezar.
  12. Complétalo hasta el final, aplica las técnicas de programación visual que hayas aprendido hasta el momento.
  13. Amplía tus conocimientos sobre frameworks, librerías y paquetes visuales que has aprendido antes de hacer cursos avanzados, prestando especial atención a los detalles y siguiendo más consejos y trucos para tu framework desde recursos en línea.
  14. Es muy útil para los programadores que quieren desarrollar elementos de interfaz gráfica atractivos.
  15. Conviértete en un programador de videojuegos (opcional). La programación de videojuegos se considera, en la mayoría de sus aspectos, como programación de escritorio. Si pretendes convertirte en un programador de videojuegos, necesitarás aprender más acerca de programación de juegos una vez que termines con estos pasos. Es obligatorio hacer un curso de gráficos si quieres ser programador de videojuegos, y además, el segundo lenguaje que elijas para los pasos siguientes debe ser un lenguaje de programación lógica o funcional (preferiblemente Prolog o Lisp).
    Anuncio
Método 3
Método 3 de 6:

Programación de aplicaciones distribuidas

Descargar el PDF
  1. Muchos consideran la programación de aplicaciones distribuidas como una de las más difíciles de aprender y requiere de conocimiento en varias tecnologías de computación y comunicación.
  2. Haz una introducción rápida a sistemas de telefonía y su hardware. Este paso es opcional. Sin embargo, es muy útil para comprender la topología de redes.
  3. Es necesario tener una buena comprensión del modelo OSI (interconexión de sistemas abiertos), Ethernet, IP, TCP, UDP y HTTP antes de comenzar a programar aplicaciones distribuidas.
  4. Para la programación basada en Windows, puedes aprender cualquier script que funcione con Windows Scripting Host. Para la programación basada en Linux, es suficiente con aprender scripts de Bash y Perl. Se recomienda ampliamente JavaScript para ambas plataformas por los siguientes motivos:
    • Es compatible con casi cualquier host de scripts de cualquier sistema operativo (Windows Scripting Host soporta JavaScript en forma predeterminada y la mayoría de las distribuciones de Linux tiene un paquete con soporte de consolas de scripts de JavaScript).
    • La mayoría de los desarrolladores lo considera fácil de aprender.
    • Tiene una sintaxis derivada de ALGOL, lo que te permitirá familiarizarte mucho más con otros lenguajes de programación cuando debas elegir un segundo lenguaje de programación ( C , C++ , C#, Java y J# tienen una sintaxis derivada de ALGOL).
    • Aprendiendo JavaScript, puedes familiarizarte con los scripts del lado del cliente en páginas web, ¡lo cual es un beneficio extra!
  5. Después, puedes usar técnicas de programación avanzada y paradigmas apropiados para tu lenguaje de scripts y funciones compatibles con él. Todos los lenguajes de scripts tienen en cierto punto aspectos de programación procedimental.
  6. Aprende lo necesario para hacerlo. Con aprender comunicaciones simples ya es suficiente.
  7. Preferiblemente, un lenguaje que sea multiparadigma como Python . Introdúcete en ese segundo lenguaje. La mayoría de los programadores elige a Java como el lenguaje de preferencia por muchas razones. Sin embargo, C# está ganando territorio rápidamente en este campo. Estas son las razones por las cuales Java y C# son, para muchos, los lenguajes preferidos:
    • Son lenguajes de programación orientados a objetos, lo cual evita que los grandes equipos de programadores tengan que ocuparse de los detalles de implementación ya que ambos soportan componentes (unidades de código precompilado que realiza ciertas tareas y puede utilizarse en otros programas).
    • Ambos soportan programación orientada a eventos, así como también, en cierto grado, programación orientada a objetos y procedimental.
    • El framework sobre el cual se construye el lenguaje se distribuye naturalmente (en el caso de Java).
    • La disponibilidad de muchos paquetes listos para usar que se encargan de las funciones de red, tanto de código abierto como paquetes integrados en el framework. De esta forma, es más fácil para los programadores construir sobre el trabajo de los demás.
  8. Concéntrate más en las características esenciales del lenguaje, especialmente en aquellos que soportan funciones de red. Presta menos atención a los elementos de la interfaz de usuario, como por ejemplo las salidas, el diseño de las ventanas, las técnicas y otros elementos de la interfaz de usuario.
  9. Puedes hacerlo usando libros, tutoriales en línea o cursos académicos. Es necesario comprender bien la arquitectura de las aplicaciones distribuidas y sus conceptos.
  10. Aprende acerca del desarrollo de servicios y los componentes con servicio usando el lenguaje de programación elegido.
  11. Es recomendable que hagas al menos una introducción a todas ellas. La mayoría de los programadores de aplicaciones distribuidas no se detienen en uno o dos lenguajes de programación, sino que aprenden al menos un lenguaje de programación para cada sistema operativo. Esto es porque si quieres que tu aplicación sea "distribuida", debes proporcionar como mínimo una versión para cada uno de los sistemas operativos más importantes.
    • Common Object Request Broker Architecture ( CORBA ) (que significa "arquitectura común de intermediario de petición de objeto")
    • Simple Object Access Protocol ( SOAP ) (que significa "protocolo simple de acceso a objetos")
    • JavaScript asíncrono y XML ( AJAX )
    • Distributed Component Object Model ( DCOM ) (que significa "modelo de objetos de componentes distribuidos")
    • .NET Remoting
    • XML Web Services (o "servicios web XML")
    Anuncio
Método 4
Método 4 de 6:

Programación de librerías, plataformas, frameworks y núcleos

Descargar el PDF
  1. Los programadores de núcleos son simplemente programadores avanzados que hicieron una transferencia de programación de aplicaciones a programación de unidades de código que utilizarán otros programadores.
  2. Aprende un lenguaje de programación compatible con la construcción de paquetes y componentes reutilizables, si es que no lo has hecho todavía.
  3. La mayoría de los desarrolladores de librerías utilizan uno de ellos o ambos.
  4. Mientras más paradigmas y lenguajes conozcas, más éxito tendrás a la hora de convertirte en un programador de librerías o paquetes.
  5. Aprende más acerca de los distintos sistemas operativos y de los frameworks de programación estos soportan.
  6. Concentra tus esfuerzos por aprender en investigar acerca frameworks independientes de la plataforma y tecnologías y lenguajes de programación.
  7. Si el lenguaje de programación que aprendiste hasta ahora tiene versiones estándares de ANSI , ISO , IEEE o W3C , domina estos estándares. Intenta utilizar código estandarizado cuando sea posible.
  8. Esto es útil durante la fase inicial del proceso de convertirte en un programador de librerías o paquetes. Comienza con paquetes simples como conversión de unidades y paquetes de cálculos científicos intermedios. Si eres un estudiante universitario, aprovecha los cursos que no sean de programación para intentar implementar sus ecuaciones y núcleos científicos como librerías.
  9. En primer lugar, descarga los archivos binarios o ejecutables del paquete. Intenta utilizarlo y encontrar sus fortalezas y debilidades. Una vez que hayas hecho esto, descarga el código fuente e intenta descubrir cómo lo hicieron. Intenta recrear esas librerías o partes de ellas. Al principio, hazlo después de haber visto el código y después hazlo antes de ver el código. Intenta mejorar esas librerías en fases posteriores.
    • Generalmente, los programadores de librerías o paquetes tienden a pensar en forma recursiva e iterativa para resolver todos los problemas que se les presentan. Intenta pensar en cada problema como una colección de problemas más pequeños (una secuencia de simples tareas) o como un proceso repetido de reducir el alcance de los problemas a un alcance más pequeño y luego apilar esos pequeños "alcances" uno sobre el otro.
    • Los programadores de librerías y paquetes tienden a generalizar. Esto significa que cuando se les presenta un problema simple y específico, generalmente suelen pensar en un problema más general e intentan resolver ese problema general, lo cual resolverá automáticamente el problema pequeño.
    Anuncio
Método 5
Método 5 de 6:

Programación de sistemas

Descargar el PDF
  1. Los programadores de sistemas deben lidiar con la ciencia de programar aspectos no relacionados con las implementaciones específicas de los mismos. No te ates a ninguna plataforma específica.
  2. Realiza un curso de cálculo .
  3. Puedes hacerlo de la siguiente forma:
    • Obteniendo una idea de cómo se instalan los sistemas operativos.
    • Aprendiendo a instalar diferentes sistemas operativos en una computadora (opcional, pero recomendable).
    • Instalando más de un sistema operativo. No instales paquetes de ayuda en los sistemas, en vez de eso, utiliza las funcionalidades básicas provistas por el sistema operativo.
  4. Intenta familiarizarte con los conceptos básicos del lenguaje ensamblador para la plataforma de hardware o sistema operativo elegido. Más tarde aprenderás el lenguaje ensamblador de otros sistemas o plataformas.
  5. Presta especial atención a "Standard Template Library" ( STL ) y tal vez también a "Active Template Library" ( ATL ).
  6. Es más fácil si eliges un sistema operativo basado en Unix. Comprende bien el sistema con el cual vas a trabajar más tarde.
  7. Primero crea pequeñas utilidades del sistema. Por lo general, es útil:
    • intentar recrear pequeñas herramientas que ya están en tu sistema;
    • intentar transferir utilidades disponibles en otros sistemas operativos hacia el tuyo.
  8. Este es el único lugar en donde importa cuál es tu primer lenguaje de programación. Primero aprende ANSI C, no C++, no C# , tampoco Java y tampoco D. Luego aprende C++.
    • El hecho de restringir tu primer lenguaje a C y solo C, es porque la programación de sistemas operativos requiere que el programador esté familiarizado con los siguientes conceptos:
      • Compilación real y completa de código fuente.
      • Archivos de salida de objetos de bajo nivel.
      • Enlace de archivos binarios.
      • Programación en lenguaje de máquina de bajo nivel o lenguaje ensamblador. Algunos dicen que el lenguaje C es lenguaje ensamblador disfrazado, o lenguaje ensamblador fácil de aprender. También soporta la inserción de código de lenguaje ensamblador en su código todas las veces que sea necesario y es solo procedimental (al igual que el ensamblador).
    Anuncio
Método 6
Método 6 de 6:

Ciencia de la programación

Descargar el PDF
  1. Los científicos de la programación son programadores muy avanzados que, en vez de trabajar en el desarrollo de aplicaciones, trabajan en el desarrollo de tecnologías de la computación como cifrado, lenguajes de programación y algoritmos de minería de datos. Este nivel es raramente alcanzado sin estudios académicos y mucha dedicación.
  2. Puedes hacerlo de las siguientes maneras:
    • Siguiendo una carrera universitaria (normalmente es la opción más elegida).
    • Consigue el currículo de algún curso de esa carrera en alguna universidad moderna y haz cursos por ti mismo o como cursos separados. En teoría, puedes lograrlo de esta forma, pero lo más recomendable es seguir el primer paso.
  3. Mientras más específico sea, mejor. Esto depende de tus preferencias. Sin embargo, aquí tienes una lista de los principales temas de ciencias de la programación de computadoras:
    • diseño de algoritmos (algunos ejemplos son: algoritmos de búsqueda, ordenamiento, cifrado, descifrado y detección de errores)
    • optimización o diseño de lenguajes de programación o compiladores
    • campos de la inteligencia artificial (reconocimiento de patrones, reconocimiento del habla, procesamiento de lenguaje natural, redes neuronales)
    • robótica
    • programación científica
    • supercomputación
    • modelado o diseño asistido por computadoras (CAM y CAD)
    • realidad virtual
    • gráficos de computadoras (el término "gráficos de computadora" suele confundirse con diseño gráfico o diseño de interfaces gráficas; los gráficos o gráfica de computadoras es el campo que estudia cómo representar y manipular gráficos en sistemas de computadoras)
  4. Tal vez quieras conseguir un título de máster o un doctorado.
  5. Anuncio

Consejos

  • No importa qué tipo de programación quieras probar, ni en qué nivel quieras estar, siempre es una buena opción asistir a clases en la escuela o ir a una universidad de tu comunidad. No te sientas intimidado por términos como "ciencias de la computación". Cualquier clase a la que puedas asistir sin requisitos previos, deberá concentrarse en enseñar los fundamentos de la programación, pero habla de antemano con el profesor o con un consejero para asegurarte de que sea lo que estás buscando, ya que algunas clases, como por ejemplo un "curso de computación" podrían enfocarse más en la enseñanza del uso de aplicaciones de oficina y cosas por el estilo.
Anuncio

Acerca de este wikiHow

Esta página ha recibido 41 847 visitas.

¿Te ayudó este artículo?

Anuncio