Convertirse en programador es un proceso acumulativo que desarrolla sus habilidades día tras día y año tras año, y la programación puede ser divertida y gratificante (mental, espiritual y financieramente). Esta guía no promete ofrecer una manera mágicamente fácil de convertirse en programador, y el orden de los pasos no es sagrado, pero obtendrá un esquema general de cómo convertirse en programador en uno de los campos de la programación moderna.
Pasos
Paso 1. Realice un curso introductorio en una (o todas) de las siguientes disciplinas:
- Lógica
- Matemáticas discretas
- Lenguaje de programación (participe en los diferentes paradigmas de programación, comenzando desde secuencial / procedimental hasta orientado a objetos, después de la programación funcional y lógica. Preferiblemente Ruby / Python / Pascal para principiantes y después de un buen conocimiento profundizar en C ++ / C # / Java)
CONSEJO DE EXPERTO
Gene Linetsky, MS
Startup Founder & Engineering Director Gene Linetsky is a startup founder and software engineer in the San Francisco Bay Area. He has worked in the tech industry for over 30 years and is currently the Director of Engineering at Poynt, a technology company building smart Point-of-Sale terminals for businesses.
Gene Linetsky, MS
Fundador de startups y director de ingeniería
No sienta que tiene que obtener un título en codificación.
Si bien tomar cursos en un lenguaje de programación puede ser útil, Gene Linetsky, ingeniero de software y fundador de una startup, dice:"
Paso 2. Aprenda conceptos de bases de datos como tablas, vistas / consultas y procedimientos
Puede usar cualquier paquete de base de datos simple para hacer esto, como:
- Acceso MS
- DB V
- Fox Pro
- Paradoja
- MySQL es una buena base de datos para aprender porque es gratis, de uso común y se accede comúnmente a las bases de datos con consultas SQL.
Paso 3. Decide qué tipo de programador quieres ser
Los programadores generalmente pertenecen a una de las siguientes categorías:
- programador web
-
Programador de aplicaciones de escritorio
- Programador orientado al sistema operativo (SO) (vinculado a un único sistema operativo o conjunto de sistemas operativos)
- Programador independiente de la plataforma
- Programador de aplicaciones distribuidas
- Programador de biblioteca / plataforma / marco / núcleo
-
Programador del sistema
- Programador de kernel
- Programador de controladores
- Programador del compilador
- Científico de programación
Paso 4. Aprenda las tecnologías y los lenguajes de programación relacionados con su campo de programación de elección
Las siguientes secciones desglosan las tareas para diferentes tipos de programación.
Método 1 de 6: programación web
Paso 1. Conozca lo que implica la programación web
Las aplicaciones web son componentes de software diseñados para funcionar sobre la arquitectura de Internet. Esto significa que se accede a las aplicaciones a través de un software de navegador web como Firefox o Internet Explorer. Construirse sobre la arquitectura de Internet no requiere necesariamente una conexión activa a Internet. Significa que las aplicaciones web se construyen sobre tecnologías web estándar como:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- Protocolos IP
- HTML
- XML
- Fusión fría
- ÁSPID
- JSP
- PHP
- ASP. NET
Paso 2. Explore muchos sitios web diversos para conocer su apariencia habitual
(Haga clic con el botón derecho, luego haga clic en Ver código fuente o presione F12.) Busque diversidad en el tipo / contenido del sitio web, no en la cantidad de sitios web visitados. Por lo general, deberá visitar al menos uno de cada uno de los siguientes tipos de sitios web:
- Sitios de presencia corporativa (corporaciones comerciales, corporaciones / organizaciones sin fines de lucro, organizaciones gubernamentales)
- Motores de indexación web (motores de búsqueda, sitios de metabúsqueda, motores de búsqueda especializados, directorios)
- Sitios de minería de datos
- Sitios personales
- Páginas informativas / enciclopédicas (wikis, hojas de datos, especificaciones técnicas y manuales que enumeran directorios, blogs y revistas, sitios de agencias de noticias y 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)
Paso 3. Aprenda al menos una técnica / método de lluvia de ideas y un software que se utiliza para implementar ese método
Por ejemplo: diagramas de lluvia de ideas y MS Visio.
Paso 4. Familiarícese con la estructuración de sitios web
Se trata de crear diagramas web conceptuales, mapas del sitio y estructuras de navegación.
Paso 5. Realice un curso intensivo sobre diseño gráfico
Intente aprender al menos un paquete de software de edición / manipulación de gráficos (opcional, pero muy recomendable)
Paso 6. Aprenda los conceptos básicos de la infraestructura de Internet
Esto incluye tener una idea básica sobre:
- Protocolos de servicios web básicos (HTTP, FTP, SMTP y POP3 o IMAP4)
- Software de servidor web (preferiblemente, uno para la plataforma en la que trabajará principalmente)
- Software de navegación web.
- Servidor de correo electrónico y software de cliente
Paso 7. Aprenda los lenguajes HTML y CSS
Es posible que también desee obtener el paquete de software "Lo que ve es lo que obtiene (WYSIWYG)" para editar HTML.
Paso 8. Aprenda XML y tecnologías relacionadas con XML, como XSL y XPath (opcional pero recomendado)
Paso 9. Cree sitios web estáticos simples hasta que se familiarice y se sienta cómodo con HTML
Paso 10. Aprenda un lenguaje de secuencias de comandos del lado del cliente
La mayoría de los usuarios aprenden JavaScript. Algunos aprenden VBScript, pero esto no es compatible con la mayoría de los navegadores.
Paso 11. Familiarícese con el lenguaje de programación del lado del cliente que aprendió
Intente alcanzar su potencial utilizando solo ese idioma. Solo vaya al siguiente paso después de que al menos se haya familiarizado con el lenguaje de programación del lado del cliente.
Paso 12. Aprenda al menos un lenguaje de programación del lado del servidor
Si elige restringirse a un software de servidor, aprenda uno de los lenguajes de programación compatibles con ese software. Si no es así, aprenda al menos un lenguaje de programación en cada software de servidor.
Paso 13. Crea un proyecto piloto usted mismo después de que termine de aprender el lenguaje de programación del lado del servidor.
Paso 14. Obtenga su propio sitio web y comience a experimentar en línea dentro de su propia página
Método 2 de 6: Programación de aplicaciones de escritorio
Paso 1. Sepa en qué se está metiendo con la programación de aplicaciones de escritorio
La mayoría de los programadores de escritorio escriben código para soluciones empresariales, por lo que hacerse una idea de las empresas, su estructura organizativa y financiera será un gran ahorro de tiempo.
Paso 2. Conozca las diferentes arquitecturas de hardware informático
Es útil un curso de nivel introductorio en diseño de circuitos digitales y otro en arquitectura de computadoras; sin embargo, algunos lo ven como un punto de partida avanzado, por lo que leer dos o tres artículos de tutoriales (como este y este) podría ser suficiente. Luego, puede volver a este paso más tarde, después de aprender su primer lenguaje de programación.
Paso 3. Aprenda un lenguaje de programación de nivel de entrada (para niños)
No seas tímido para aprender un idioma así solo porque eres mayor que el que te llamen "niño". Un ejemplo de estos lenguajes de programación puede ser Scratch. Estos lenguajes de programación pueden aliviar enormemente el dolor de aprender su primer lenguaje de programación. Sin embargo, este paso es opcional. También se puede hacer antes del paso anterior.
Paso 4. Obtenga una introducción al procedimiento, orientado a objetos, y paradigmas de programación funcional.
Paso 5. Realice un curso introductorio en uno de los lenguajes de programación procedimental
Independientemente del idioma que elija más adelante para ser su idioma de elección, requerirá programación de procedimientos en algún nivel. Además, la mayoría de los programadores informan que la programación procedimental es la más fácil de usar como punto de partida para hacerse una idea de la programación en general.
Paso 6. Aprenda al menos una técnica de modelado avanzada como UML u ORM
Paso 7. Comience a escribir algunas aplicaciones pequeñas de consola o similares a una consola
Puede hacer uso de pequeños ejercicios comunes en libros de lenguajes de programación. Para ello, elija una herramienta para escribir programas en el lenguaje de programación en el que está escribiendo.
Paso 8. Tome un curso más avanzado en el lenguaje de programación que elija
Asegúrese de comprender bien los siguientes conceptos y de que puede aplicarlos con relativa facilidad antes de seguir adelante:
- Entrada y salida de información a los usuarios de un programa.
- El flujo lógico y el flujo de ejecución de programas en lenguajes procedimentales.
- Declarar, asignar y comparar variables.
- Construcciones de programación de bifurcación como if..then..else y select / switch..case.
- Construcciones de bucle como while..do, do.. while / until, for..next.
- La sintaxis de su lenguaje de programación para crear y llamar procedimientos y funciones.
- Tipos de datos y su manipulación.
- Tipos de datos definidos por el usuario (registros / estructuras / unidades) y su uso.
- Si su idioma admite funciones de sobrecarga, entiéndalo.
- Los métodos de acceso a la memoria de su idioma de elección (punteros, mirar a escondidas, etc.)
- Si su idioma admite la sobrecarga de operadores, entiéndalo.
- Si su idioma admite delegados / punteros de función, entiéndalo.
Paso 9. Aplique las técnicas avanzadas que ha aprendido
Paso 10. Realice un curso introductorio en al menos un lenguaje de programación más en otro paradigma de programación
Se recomienda aprender un lenguaje de programación de cada paradigma, y la mayoría de los programadores avanzados lo hacen, sin embargo, generalmente comienzas con uno, trabajas por un tiempo aplicando tus conocimientos y practicándolo, y luego aprendes el otro más tarde, después de que ya hayas tenido una experiencia real. -experiencia vital en programación. Pruebe una de las siguientes áreas de idioma:
- Paradigma de programación lógica.
- Paradigma de programación funcional.
- Paradigma orientado a objetos.
Paso 11. Intente comparar los dos lenguajes de programación que aprendió hasta ahora
Evalúe las fortalezas y debilidades de cada uno. Por lo general, esto se hace mediante:
- Tomar muestras simples de sus primeros trabajos en el primer lenguaje de programación y reescribirlo usando el segundo lenguaje de programación.
- Creando un nuevo proyecto e intente implementarlo usando ambos lenguajes. A veces, dependiendo de su elección de proyecto e idiomas, es posible que no pueda implementar el proyecto en uno de los idiomas.
- Escribir comparaciones en una hoja de trucos o en una tabla de resumen entre construcciones similares en los dos idiomas y características únicas de cada uno de los idiomas.
- Intente encontrar formas de imitar características que sean exclusivas de uno de los dos idiomas utilizando el otro idioma.
Paso 12. Aprenda conceptos de programación visual usando uno de los lenguajes que aprendió
Casi todos los lenguajes de programación tienen versiones / bibliotecas que admiten programación visual y otras que admiten programación de consola o similar a una consola. Esto se puede lograr mediante:
- Obtenga una introducción a la programación impulsada por eventos. La mayoría de la programación visual se basa en algún nivel en eventos y manejo de eventos (utilizando el lenguaje de programación que elija).
- Pruebe todo el software de escritorio que pueda y comprenda lo que hace. La mayoría de las empresas de desarrollo de software ofrecen versiones de prueba beta de sus productos que puede utilizar para probar el software. Manténgase actualizado sobre los avances de la interfaz de usuario.
- Lea algunos artículos o tutoriales sobre interfaces gráficas de usuario.
Paso 13. Empiece a aplicar sus conocimientos en pequeños proyectos de software que diseñe
Intente aplicar su experiencia en programación a los problemas que enfrenta en su vida diaria. Por ejemplo, escriba programas que renombren archivos en masa, compare archivos de texto visualmente, copie los nombres de archivos en un directorio a la memoria / archivo de texto, y cosas por el estilo. Mantenlo simple al principio.
Paso 14. Crea un proyecto de graduación virtual
Complete esto hasta el final, aplicando las técnicas de programación visual que aprendió hasta ahora.
Paso 15. Amplíe su comprensión del marco / biblioteca / paquete visual que aprendió antes tomando cursos avanzados, prestando especial atención a los detalles y aprendiendo más consejos y trucos para su marco a partir de recursos en línea
Paso 16. Busque otros paquetes / bibliotecas de elementos visuales para sus lenguajes de programación y apréndalos
Paso 17. Realice un curso de gráficos (no de diseño gráfico)
Será muy útil para los programadores que deseen escribir elementos de interfaz de usuario atractivos.
Paso 18. Considere convertirse en programador de juegos (opcional)
La programación de juegos se considera, en la mayoría de sus partes, programación de escritorio. Si tiene la intención de convertirse en programador de juegos, deberá aprender más sobre la programación de juegos después de completar estos pasos. Un curso de gráficos es imprescindible para los programadores de juegos y el segundo idioma de elección en los pasos anteriores debe ser un lenguaje de programación lógico / funcional (preferiblemente Prolog o Lisp).
Método 3 de 6: Programación de aplicaciones distribuidas
Paso 1. Abordar la programación de aplicaciones distribuidas
Muchos consideran que la programación de aplicaciones distribuidas es una de las más difíciles de aprender y requiere conocimientos diversos en tecnologías de la información y la comunicación.
Paso 2. Realice una rápida introducción a los sistemas de telefonía y su hardware
Este paso es opcional. Sin embargo, es muy útil para comprender las topologías de red.
Paso 3. Familiarícese con las arquitecturas de hardware de red y los dispositivos como concentradores, conmutadores y enrutadores
Paso 4. Realice un curso sobre protocolos y conceptos básicos de redes
Necesita un buen conocimiento del modelo de interconexión de sistemas abiertos (OSI), Ethernet, IP, TCP, UDP y HTTP antes de comenzar a programar aplicaciones distribuidas.
Paso 5. Aprenda el lenguaje XML y familiarícese con él
Paso 6. Empiece por aprender un lenguaje de secuencias de comandos de shell
Para la programación basada en Windows, sería cualquier script que funcione con Windows Scripting Host. Para la programación basada en Linux, los scripts Bash y Perl serán suficientes. Se recomienda encarecidamente JavaScript para esto en ambas plataformas por las siguientes razones:
- Es compatible con casi cualquier host de scripting en cualquier sistema operativo (Windows Scripting Host es compatible con JavaScript de forma predeterminada, la mayoría de las distribuciones de Linux tienen un paquete para compatibilidad con la consola de scripting de JavaScript).
- Muchos desarrolladores consideran que es más fácil de aprender.
- Tiene una sintaxis derivada de ALGOL que lo familiariza con muchos más lenguajes de programación cuando necesita elegir un segundo lenguaje de programación (C, C ++, C #, Java y J # todos tienen sintaxis derivada de ALGOL).
- Al aprender JavaScript, se familiarizará con la creación de scripts de páginas web en el lado del cliente, lo cual es un efecto secundario adicional.
Paso 7. Aplique solo la programación de procedimientos utilizando el lenguaje de programación de su elección al principio
Posteriormente, puede utilizar técnicas y paradigmas de programación más avanzados de acuerdo con su lenguaje de scripting y lo que admita. Todos los lenguajes de scripting tienen algunos aspectos de programación procedimental en algún nivel.
Paso 8. Utilice el lenguaje de secuencias de comandos que aprendió para escribir secuencias de comandos que realicen comunicaciones entre máquinas
Aprenda lo que es necesario para hacer eso. Las comunicaciones simples serán suficientes.
Paso 9. Realice una transferencia a un lenguaje de programación / scripting de escritorio
Preferiblemente, uno que sea un lenguaje de paradigmas múltiples como Python. Haz una simple introducción a ese segundo idioma. La mayoría de los programadores consideran que Java es el lenguaje de elección por muchas razones. Sin embargo, C # está ganando impulso rápidamente en este campo. Se prefieren Java y C # por las siguientes razones:
- Son lenguajes de programación orientados a objetos que protegen a los programadores de grandes equipos de los detalles de implementación, ya que ambos admiten componentes (unidades de código, precompiladas, que realizan una determinada tarea y se pueden utilizar en otros programas).
- Admiten la programación impulsada por eventos, así como la programación orientada a objetos y la programación procedimental en algún nivel.
- El marco sobre el que se basa el lenguaje se distribuye por naturaleza (en el caso de Java).
- La disponibilidad de muchos paquetes listos para usar que se ocupan de la creación de redes, tanto como paquetes de código fuente abierto como integrados en el marco; esto hace que sea más fácil para los programadores construir sobre el trabajo de otros.
Paso 10. Concéntrese más en las características centrales del lenguaje, especialmente aquellas que apoyan la creación de redes
Preste menos atención a los elementos de la interfaz de usuario, como la salida, el diseño y las técnicas de las ventanas y los elementos de la interfaz de usuario.
Paso 11. Realice un curso sobre arquitecturas y diseño de aplicaciones distribuidas
Esto se puede hacer mediante libros, tutoriales en línea o cursos académicos. Sin embargo, es necesario comprender la arquitectura de las aplicaciones distribuidas y sus conceptos.
Paso 12. Aprenda a crear componentes y servicios con servicio utilizando el lenguaje de programación que prefiera
Paso 13. Aprenda una o más de las siguientes tecnologías
Se recomienda que obtenga al menos una introducción a todos ellos. 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 en cada sistema operativo. Esto se debe a que si desea que su aplicación sea "distribuida", debe proporcionar una versión de la misma al menos para cada sistema operativo principal.
- Arquitectura de agente de solicitud de objeto común (CORBA)
- Protocolo simple de acceso a objetos (SOAP)
- JavaScript y XML asíncronos (AJAX)
- Modelo de objetos componentes distribuidos (DCOM)
- . NET Remoting
- Servicios web XML
Método 4 de 6: Biblioteca / Plataforma / Marco / Programación central
Paso 1. Sepa qué es la programación básica
Los programadores centrales son simplemente programadores avanzados que hicieron la transferencia de aplicaciones de programación a unidades de código de programación para ser utilizadas por otros programadores.
Paso 2. Aprenda un lenguaje de programación que admita la construcción de componentes / paquetes reutilizables, si aún no lo ha hecho
Paso 3. Realice un curso avanzado en UML y ORM
La mayoría de los desarrolladores de bibliotecas utilizan uno o ambos.
Paso 4. Realice un curso de ingeniería de software
Paso 5. Aprenda técnicas y conceptos de programación al menos modulares, basados en componentes, orientados a objetos y controlados por eventos
Cuantos más paradigmas y lenguajes de programación cubra, más éxito tendrá como programador de bibliotecas / paquetes.
Paso 6. Obtenga más información sobre los diferentes sistemas operativos y marcos de programación compatibles con estos sistemas operativos
Paso 7. Enfoque sus esfuerzos de aprendizaje en marcos, lenguajes de programación y tecnologías independientes de la plataforma
Paso 8. Si los lenguajes de programación que aprendió hasta ahora tienen ANSI/YO ASI/IEEE/Versiones estándar W3C, dominan los estándares.
Intente utilizar código estándar siempre que sea posible.
Paso 9. Intente imitar bibliotecas simples ya establecidas, especialmente las de código abierto
Esto es útil durante la fase inicial de convertirse en programador de bibliotecas / paquetes. Comience con paquetes simples como conversión de unidades y paquetes de cálculos científicos intermedios. Si eres un estudiante universitario, haz uso de tus cursos que no sean de programación tratando de implementar sus ecuaciones y su núcleo científico como bibliotecas.
Paso 10. Busque y pruebe paquetes de código abierto en su campo de programación
Primero descargue los binarios / ejecutables del paquete. Intenta usarlo y encuentra sus puntos fuertes y débiles. Una vez hecho esto, descargue la fuente e intente averiguar cómo se hizo. Intente recrear esas bibliotecas o partes de ellas. Al principio, hágalo después de haber visto el código y luego antes de ver el código. En fases posteriores, intente mejorar esas bibliotecas.
Paso 11. Conozca los diferentes enfoques utilizados para distribuir e implementar componentes a los programadores
- Por lo general, los programadores de bibliotecas / paquetes tienden a pensar de manera recursiva y / o iterativa en todos los problemas que se les presentan. Trate de pensar en cada problema como una colección de problemas más pequeños (una secuencia de tareas más simples) o como un proceso repetido de reducir el alcance del problema a alcances más pequeños y luego apilar esos alcances unos sobre otros.
- Los programadores de bibliotecas / paquetes tienden a generalizar. Es decir, cuando se les presenta un problema específico simple, generalmente piensan en un problema más general e intentan resolver ese problema general que automáticamente resolverá el más pequeño.
Método 5 de 6: Programación del sistema
Paso 1. Comprenda lo que implica la programación del sistema
Los programadores de sistemas se ocupan de la ciencia de la programación, no de sus implementaciones específicas. No te ates a una plataforma específica.
Paso 2. Siga los primeros tres pasos para programadores de aplicaciones de escritorio
Paso 3. Realice un curso introductorio de álgebra lineal
Paso 4. Realice un curso de cálculo
Paso 5. Tome un curso de Lógica y / o Matemática Discreta
Paso 6. Preséntese a diferentes sistemas operativos básicos
Esto se puede hacer mediante:
- Tener una idea de cómo se instalan los sistemas operativos.
- Aprender a instalar diferentes sistemas operativos en una PC (opcional, pero recomendado).
- Instalación de más de un sistema operativo. No instale ningún paquete de ayuda en los sistemas; en su lugar, utilice las funciones básicas proporcionadas por los sistemas operativos.
Paso 7. Tome un curso (o, alternativamente, lea libros) sobre arquitectura de hardware de computadora
Paso 8. Desarrolle una comprensión de las diferentes plataformas de hardware de la computadora
Paso 9. Obtenga una familiarización introductoria con el lenguaje ensamblador de la plataforma de hardware / sistema operativo de su elección
Posteriormente aprenderá a ensamblar otras plataformas / sistemas.
Paso 10. Aprenda los lenguajes ANSI C y C ++, junto con los conceptos de programación procedimental
Paso 11. Comprenda y practique las bibliotecas estándar C / C ++ en la plataforma que elija
Preste especial atención a la biblioteca de plantillas estándar (STL) y tal vez a la biblioteca de plantillas activa (ATL).
Paso 12. Busque recursos, libros y cursos en línea para comprender el estilo C de su plataforma específica
Paso 13. Practique la creación de código avanzado con C y C ++
Paso 14. Conozca el montaje más avanzado
Paso 15. Realice un curso de diseño de sistemas operativos
Paso 16. Busque y lea la documentación de su plataforma específica de elección
Esto será más fácil si elige un sistema operativo basado en Unix. Comprenda muy bien el sistema con el que trabajará más adelante.
Paso 17. Practique sus conocimientos adquiridos
Primero cree pequeñas utilidades del sistema. Suele ser útil para:
- Intentando recrear pequeñas herramientas que ya están en su sistema.
- Intentando portar las utilidades disponibles en otros sistemas operativos al suyo.
Paso 18. Aprenda idiomas en el orden más útil
Este es el único lugar donde importa el primer lenguaje de programación. Aprenda ANSI C primero, no C ++, no C #, no Java y no D. Luego aprenda C ++.
-
Restringir el primer lenguaje solo a C y C se debe a que la programación de sistemas requiere que el programador esté familiarizado con los siguientes conceptos:
- Recopilación real y completa de código fuente.
- Archivos de salida de objetos de bajo nivel.
- Vinculación de binarios.
- Programación en ensamblador / lenguaje máquina de bajo nivel. Algunos dicen que el lenguaje C es un ensamblaje disfrazado / más fácil de aprender. También admite la inserción de código en lenguaje ensamblador en el código siempre que lo desee y es solo de procedimiento (como ensamblaje).
Método 6 de 6: Ciencias de la programación
Paso 1. Sepa lo que hace un científico de programación
Los científicos de programación son programadores muy avanzados que, en lugar de trabajar en el desarrollo de aplicaciones, trabajan en el desarrollo de tecnologías informáticas como el cifrado, los lenguajes de programación y los algoritmos de minería de datos. Este nivel rara vez se logra sin estudio académico y dedicación.
Paso 2. Acumular el conocimiento científico equivalente a un título de cuatro años en ciencias de la computación
Esto se puede hacer mediante:
- Obtención de un título académico real (que es lo que suele ocurrir).
- Obtener los esquemas de los cursos para tal grado de una de las universidades modernas y tomar los cursos ya sea por autoaprendizaje o como cursos separados. Esto podría lograrse teóricamente, pero la ruta recomendada es la primera.
Paso 3. Decidir un campo de especialidad
Cuanto más específico, mejor. Depende de tus preferencias. Sin embargo, aquí hay una lista de algunos de los principales temas de la ciencia de la programación informática:
- Diseño de algoritmos (búsqueda, clasificación, cifrado, descifrado y detección de errores en las comunicaciones son algunos ejemplos)
- Lenguajes de programación / diseño de compiladores / optimización
- Campos de inteligencia artificial (reconocimiento de patrones, reconocimiento de voz, procesamiento del lenguaje natural, redes neuronales)
- Robótica
- Programación científica
- Supercomputación
- Diseño / modelado asistido por computadora (CAD / CAM)
- Realidad virtual
- Gráficos por computadora (Los gráficos por computadora generalmente se confunden erróneamente con el diseño gráfico o el diseño de interfaz gráfica de usuario. Los gráficos por computadora son el campo de estudio de cómo representar y manipular gráficos en sistemas informáticos).
Paso 4. Considere la posibilidad de obtener un título académico superior
Es posible que desee obtener una maestría o un doctorado.