Este artículo fue coescrito por Gene Linetsky, MS. 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.
Este artículo ha sido visto 40 006 veces.
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.
Pasos
-
1Realiza un curso introductorio de una (o todas) las siguientes disciplinas:
- 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 ESPECIALISTAFundador de startups y director de ingenieríaGene 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íaNo 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".
-
2Aprende conceptos de bases de datos como tablas, vistas, consultas y procedimientos. 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)
-
3Decide qué tipo de programador quieres ser. 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
-
4Infórmate sobre las tecnologías y los lenguajes de programación relacionados con el campo de la programación que elijas. Las siguientes secciones desglosan las tareas que se llevan a cabo en los distintos tipos de programación.
Método 1
Método 1 de 6:Programación web
-
1Comprende qué abarca la programación web. 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:
-
2Navega 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).
-
3Aprende 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.
-
4Familiarízate con la estructuración de sitios web. Esto significa crear diagramas web conceptuales, mapas de sitios y estructuras de navegación.
-
5Toma un curso acelerado de diseño gráfico. Intenta aprender al menos un paquete de software de manipulación o edición de gráficos (esto es opcional, pero es altamente recomendable).
-
6Aprende los aspectos básicos de la infraestructura de Internet. 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
-
7Aprende los lenguajes HTML y CSS. 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.
-
8Aprende XML y tecnologías asociadas a XML, como por ejemplo XLS y XPath (opcional, pero recomendable).
-
9Crea simples sitios web estáticos hasta que te familiarices y sientas cómodo trabajando con HTML.
-
10Aprende un lenguaje de script (secuencias de comandos) del lado del cliente. La mayoría de los usuarios aprenden JavaScript. Otros aprenden VBScript, pero este último no es compatible con la mayoría de los navegadores.
-
11Familiarízate con el lenguaje de script del lado del cliente que hayas aprendido. 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.
-
12Aprende al menos un lenguaje de programación del lado del servidor. 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.
-
13Crea un proyecto piloto para ti mismo una vez que termines de aprender el lenguaje de programación del lado del servidor.
-
14Crea tu propio sitio web y comienza a experimentar en línea dentro de tu propia página.
Método 2
Método 2 de 6:Programación de aplicaciones de escritorio
-
1Aprende a qué te enfrentarás al introducirte en la programación de aplicaciones de escritorio. 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.
-
2Aprende acerca de las distintas arquitecturas de hardware de computadoras. 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.
-
3Aprende 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.
-
4Introdúcete en los tres paradigmas fundamentales de la programación: procedimental, orientado a objetos y funcional.
-
5Haz 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.
-
6Aprende al menos una de las técnicas de modelado avanzado, como por ejemplo UML u ORM.
-
7Comienza a escribir algunas aplicaciones pequeñas de consola o similares a las de consola. 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.
-
8Haz un curso más avanzado sobre el lenguaje de programación escogido. 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.
-
9Aplica las técnicas avanzadas que has aprendido.
-
10Realiza 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
-
11Intenta comparar los dos lenguajes de programación que has aprendido hasta ahora. 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.
-
12Aprende los conceptos de programación visual usando uno de los lenguajes aprendidos. 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.
-
13Comienza a aplicar tu conocimiento en pequeños proyectos de software que diseñes. 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.
-
14Crea un proyecto de graduación virtual. Complétalo hasta el final, aplica las técnicas de programación visual que hayas aprendido hasta el momento.
-
15Amplí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.
-
16Busca otros paquetes o librerías de elementos visuales para tus lenguajes de programación y aprende a usarlas.
-
17Haz un curso de gráficos (no diseño gráfico). Es muy útil para los programadores que quieren desarrollar elementos de interfaz gráfica atractivos.
-
18Convié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).
Método 3
Método 3 de 6:Programación de aplicaciones distribuidas
-
1Introdúcete en la programación de aplicaciones distribuidas. 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.
-
2Haz 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.
-
3Familiarízate con las arquitecturas de hardware de redes y dispositivos como concentradores, conmutadores y routers.
-
4Haz un curso sobre protocolos de red y sus aspectos esenciales. 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.
-
5Aprende el lenguaje XML y familiarízate con él.
-
6Comienza por aprender un lenguaje de comandos de shell. 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!
-
7Al principio, aplica solamente programación procedimental usando el lenguaje de scripts. 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.
-
8Utiliza el lenguaje de scripts que aprendiste para escribir scripts que realicen comunicaciones entre máquinas. Aprende lo necesario para hacerlo. Con aprender comunicaciones simples ya es suficiente.
-
9Realiza una transferencia hacia un lenguaje de programación o de scripts de escritorio. 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.
-
10Concé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.
-
11Haz un curso sobre diseño y arquitectura de aplicaciones distribuidas. 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.
-
12Aprende acerca del desarrollo de servicios y los componentes con servicio usando el lenguaje de programación elegido.
-
13Aprende a usar una o más de las siguientes tecnologías. 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")
Método 4
Método 4 de 6:Programación de librerías, plataformas, frameworks y núcleos
-
1Aprende la programación de núcleos. 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.
-
2Aprende un lenguaje de programación compatible con la construcción de paquetes y componentes reutilizables, si es que no lo has hecho todavía.
-
3Realiza un curso avanzado sobre UML y ORM. La mayoría de los desarrolladores de librerías utilizan uno de ellos o ambos.
-
4Realiza un curso sobre ingeniería de software.
-
5Aprende como mínimo técnicas y conceptos de programación basada en componentes, orientada a objetos y orientada a eventos. 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.
-
6Aprende más acerca de los distintos sistemas operativos y de los frameworks de programación estos soportan.
-
7Concentra tus esfuerzos por aprender en investigar acerca frameworks independientes de la plataforma y tecnologías y lenguajes de programación.
-
8
-
9Intenta imitar librerías simples ya establecidas, especialmente las que son de código abierto. 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.
-
10Busca y prueba paquetes de código abierto de tu campo de programación. 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.
-
11Aprende los distintos enfoques que se utilizan para distribuir y desplegar componentes a los programadores.
- 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.
Método 5
Método 5 de 6:Programación de sistemas
-
1Comprende qué abarca la programación de sistemas. 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.
-
2Sigue los primeros tres pasos para programadores de aplicaciones de escritorio.
-
3Realiza un curso introductorio de álgebra lineal.
-
4Realiza un curso de cálculo.
-
5Realiza un curso de lógica y matemática discreta.
-
6Introdúcete a diferentes sistemas operativos básicos. 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.
-
7Realiza un curso (o, como alternativa, lee libros) sobre arquitectura del hardware de computadoras.
-
8Amplía tus conocimientos sobre las diferentes plataformas de hardware de computadoras.
-
9Intenta 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.
-
10Aprende los lenguajes ANSI C y C++, junto con los conceptos de programación procedimental.
-
11
-
12Busca recursos en línea, libros y cursos para comprender los aspectos vinculados a C para tu plataforma específica.
-
13Practica crear código avanzado con C y C++.
-
14Aprende funciones avanzadas de lenguaje ensamblador.
-
15Realiza un curso sobre diseño de sistemas operativos.
-
16Busca y lee documentación para la plataforma específica elegida. 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.
-
17Pon en práctica el conocimiento adquirido. 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.
-
18Aprende lenguajes en el orden más útil. 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).
- 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:
Método 6
Método 6 de 6:Ciencia de la programación
-
1Aprende qué es lo que hace un científico de la programación. 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.
-
2Acumula el conocimiento científico equivalente a una carrera universitaria de cuatro años en ciencias de la computación. 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.
-
3Decide un campo de especialidad. 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)
-
4Considera la posibilidad de obtener un título académico superior. Tal vez quieras conseguir un título de máster o un doctorado.
-
5Aprende las tecnologías y los lenguajes de programación relacionados con el campo de programación elegido.
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.