Convertirse en programador es un proceso acumulativo de desarrollo de habilidades día tras día y año tras año en un campo divertido y gratificante (intelectual, mental y financiero). Esta guía no le promete una forma mágica de convertirse en programador con facilidad y la secuencia de pasos no es sagrada, pero le brinda una descripción general de cómo convertirse en programador en uno de los campos modernos del campo.
Pasos
1.
Tome un curso introductorio en una (o todas) de las siguientes disciplinas:- Lógica
- Matemáticas discretas
- Lenguajes de programación (preferiblemente C++/ Java/ Python para principiantes)
CONSEJO DE EXPERTO
Gene Linetsky, MS
Fundador y director técnico de empresas emergentes Gene Linetsky es un fundador de empresas emergentes y desarrollador de software en el Área de la Bahía de San Francisco. Ha trabajado en la industria de la tecnología durante más de 30 años y es director técnico de Poynt, una empresa de tecnología que crea sistemas de transacciones inteligentes para empresas.
Gene Linetsky, MS
Fundador de startups y director técnico
No creas que tienes que estudiar para ser programador. Puede ser útil tomar cursos en un lenguaje de programación, pero Gene Linetsky, ingeniero de software y fundador de nuevas empresas, dice: "Es discutible si la educación en programación ayuda o no. En cambio, trate de pensar en la programación como una especie de pasantía: se trata de aprender de sus errores.`
2. Aprenda conceptos de bases de datos como tablas, vistas/consultas y procedimientos. Puede usar cualquier paquete de base de datos simple para esto, como:
MS AccessDB VZorro ProParadojaMySQL es una buena base de datos para aprender porque es gratuita, se usa ampliamente y se accede con frecuencia a través de consultas SQL3. Decide qué tipo de programador quieres ser. Los programadores generalmente caen dentro de las siguientes categorías:
programador webProgramador de aplicaciones de escritorioProgramador orientado al sistema operativo (SO) (vinculado a un solo sistema operativo o conjunto de sistemas operativos)Programador independiente de la plataformaProgramador de aplicaciones distribuidas
Programador de biblioteca/plataforma/marco/núcleoProgramador de sistemasprogramador del kernelProgramador de controladoresProgramador compiladorInformático (científico)
4. Aprenda las tecnologías y lenguajes de programación relacionados con el campo de programación de su elección. Las siguientes secciones discuten las tareas para diferentes tipos de programación.
Método 1 de 6: programación web
1.
¿Qué significa programación web?. Las aplicaciones web son componentes de software diseñados para funcionar en la parte superior de la arquitectura de Internet. Esto significa que se puede acceder a las aplicaciones a través de un software de navegador como Firefox o Internet Explorer. Estar construido para el pináculo de la arquitectura de Internet no significa necesariamente que necesite 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 IIP
- HTML
- XML
- fusión fría
- ASPI
- JSP
- PHP
- ASPI.SÓLO
2. Visite varios sitios web para saber cómo se ven en general. (Haga clic derecho y luego haga clic en Ver fuente o presione F12.) Busque diversidad en el tipo/contenido del sitio web, no en la cantidad de sitios web que ve. En general, deberá consultar al menos 1 de cada uno de los siguientes tipos de sitios web:
Sitios de presencia corporativa (empresas comerciales, empresas/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 datosSitios personalesPáginas informativas/enciclopédicas (wikis, fichas técnicas, especificaciones técnicas y manuales, blogs y diarios, sitios de noticias y agencias de noticias, páginas amarillas, etc.).)Redes sociales (portales sociales, sitios de marcadores, sitios para tomar notas)Sitios web compuestos (incluidas otras categorías como wikis y blogs)3. Aprenda al menos una técnica/método de lluvia de ideas y el software utilizado para implementar ese método. Por ejemplo: esquemas de lluvia de ideas y MS Visio.
4. Aprende a configurar un sitio web. Crearás diagramas web conceptuales, sitemaps y estructuras de navegación.
5. Toma un curso corto de diseño gráfico. Trate de aprender al menos un programa de edición de imágenes (opcional, pero muy recomendable)
6. Aprenda los conceptos básicos de la infraestructura de Internet. Esto tiene que ver, entre otras cosas, con una idea global de:
Protocolos de servicios web subyacentes (HTTP, FTP, SMTP y POP3 o IMAP4)Software de servidor web (preferiblemente para la plataforma con la que trabaja habitualmente)software de navegación web.Servidor de correo electrónico y software de cliente7. Aprende HTML y CSS. También es una buena idea aprender a usar un paquete de software de edición HTML `Lo que ves es lo que obtienes (WYSIWYG)`.
8. Aprenda XML y tecnologías relacionadas con XML, como XSL y XPath (opcional pero recomendado).
9. Cree un sitio web estático simple hasta que esté familiarizado y cómodo con HTML.
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.
11. Asegúrese de que puede trabajar con el lenguaje de secuencias de comandos del lado del cliente que ha aprendido. Intenta alcanzar tu potencial solo con ese idioma. Solo entonces continúe con el siguiente paso hasta que esté al menos familiarizado con el lenguaje de secuencias de comandos del lado del cliente.
12. Aprende al menos 1 lenguaje de programación del lado del servidor. Si desea limitarse a 1 forma de software de servidor, aprenda uno de los lenguajes de programación admitidos por ese software. Si no, aprende al menos un lenguaje de programación para cada software de servidor.
13. Cree un proyecto piloto para usted mismo después de aprender el lenguaje de programación del lado del servidor.
14. Asegúrate de tener tu propio sitio web y comienza a experimentar en línea en tu propia página.
Método 2 de 6: programación de software de escritorio
1. Sepa en lo que se está metiendo cuando comienza a programar aplicaciones de escritorio. La mayoría de estos programadores escriben código para aplicaciones comerciales, por lo que es aconsejable tener una idea del entorno comercial, su estructura organizativa y financiera para que pueda ahorrar mucho tiempo.
2.
Aprende sobre las diferentes arquitecturas de hardware de las computadoras. Es útil un curso de introducción a la electrónica digital y otra arquitectura informática; pero esto puede ser demasiado para empezar, así que leer algunos tutoriales introductorios (como
Éste y
Éste) primero es suficiente. Puedes volver a este paso después de aprender un primer lenguaje de programación.
3. Aprenda un lenguaje de programación de nivel de entrada. No te sientas demasiado bien para aprender ese idioma porque ya no eres un niño. Un ejemplo de tal lenguaje de programación es Scratch. Estos lenguajes de programación pueden hacer que la curva de aprendizaje sea un poco menos pronunciada cuando recién comienzas. Pero este paso sigue siendo opcional. También puedes hacer esto para el paso anterior.
4. Tome una introducción a la programación procedimental, orientada a objetos y funcional.
5. Tome un curso introductorio en unlenguaje de programación procedimental. Independientemente del idioma que elija en una etapa posterior, requerirá cierto nivel de programación procesal. Además, la programación procedimental se considera la más fácil para comenzar a comprender qué es la programación.
6. Aprenda al menos una forma avanzada de modelado, como UML u ORM.
7. Comience a escribir algunas aplicaciones pequeñas de consola o similares a consolas. Puedes usar los ejercicios en libros de programación. Use un entorno de programación adecuado para el lenguaje de programación de su elección.
8. Realice un curso avanzado en el lenguaje de programación elegido. Asegúrese de comprender los conceptos a continuación y de poder aplicarlos con relativa facilidad antes de continuar:
Entrada y salida de datos hacia y desde los usuarios del programa.La lógica y secuencia de operaciones de los programas procedimentales.Declarar, asignar y comparar variables.Construcciones como si..entonces..otra cosa y seleccionar/cambiar..caso.Construcciones de bucle como While..hacer, hacer..mientras/hasta, Para..Siguiente.La sintaxis de su 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 cómo usarlos.Si usa funciones de sobrecarga de lenguaje, trate de entenderlas.La forma en que su lenguaje de programación aborda la memoria (punteros, peeking, etc.).)Si sus operadores de lenguaje están sobrecargados, trate de entender.Si su idioma usa delegados/punteros de función, comprenda cómo funciona.9. Aplicar las técnicas avanzadas que ha aprendido.
10. Tome un curso de introducción en al menos 1 o más lenguajes de programación en un paradigma de programación diferente. Se recomienda aprender 1 lenguaje de programación de cada paradigma, y los programadores más avanzados también. Pero generalmente comienzas con un idioma, trabajas con eso por un tiempo para aplicar y practicar tu conocimiento, luego aprendes otro. Pruebe uno de los siguientes tipos de programación:
programación lógica.Programación funcional.Paradigmas orientados a objetos.11. Intenta combinar los siguientes dos lenguajes de programación que has aprendido. Sopesar las fortalezas y debilidades entre sí. Por lo general, haces lo siguiente:
Tome ejemplos simples de su trabajo anterior en el primer lenguaje de programación y reescríbalo con su segundo lenguaje de programación.Cree un nuevo proyecto e intente implementarlo en ambos idiomas. A veces, según el proyecto y el idioma, no será posible ejecutar un proyecto!Escriba una hoja de trucos o una tabla de resumen con comparaciones entre construcciones similares en los dos idiomas y características únicas para cada uno de los idiomas.Tratando de encontrar formas de imitar funciones exclusivas de uno de los dos idiomas usando el otro idioma.12. Aprende conceptos de programación visual usando cualquiera de los lenguajes que has aprendido. Casi todos los lenguajes de programación tienen versiones/bibliotecas que admiten programación visual y otros admiten programación de consola o tipo consola. Esto se puede lograr haciendo lo siguiente:
Obtenga una introducción a la programación basada en eventos. La mayoría de la programación visual se basa hasta cierto punto en eventos y manejo de eventos (usando el lenguaje de programación elegido).Pruebe todo el software de escritorio que pueda y aprenda a comprender lo que hace el software. La mayoría de las empresas de software ofrecen versiones beta de sus productos que puede usar para probar el software. Trate de mantenerse al día con el desarrollo de la interfaz de usuario.Lea artículos o tutoriales sobre interfaces gráficas de usuario.13. Comienza a aplicar tus conocimientos diseñando pequeños proyectos de software. Pruebe su experiencia de programación en los problemas que enfrenta en la vida cotidiana. Por ejemplo, escribir programas que puedan cambiar una gran cantidad de nombres de archivos a la vez, comparar archivos de texto visualmente, copiar los nombres de los archivos en un directorio a la memoria o un archivo de texto, etc. Mantenlo simple al principio.
14. Crear un `proyecto de graduación` virtual. Complete esto hasta el final, aplicando las técnicas de programación visual que ha aprendido hasta ahora.
15. Amplía su comprensión del marco/biblioteca/paquete visual que aprendió antes de pasar a cursos más 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.
dieciséis. Busque y aprenda sobre otros paquetes/bibliotecas de elementos visuales para sus lenguajes de programación.
17. Toma un curso de gráficos (no de diseño gráfico). Esto será muy útil para los programadores que quieran escribir elementos de interfaz de usuario atractivos.
18. Conviértete en un programador de juegos (opcional). La programación de juegos se considera, en la mayoría de los casos, programación de escritorio. Si planea convertirse en programador de juegos, debe aprender más sobre la programación de juegos después de seguir 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
1. Comprender qué es la programación de aplicaciones distribuidas. Muchos consideran que la programación de aplicaciones distribuidas es la más difícil de aprender y requiere conocimientos de diversas tecnologías informáticas y de comunicación.
2. Tome un curso de introducción rápida en sistemas de telefonía y hardware relacionado. El paso es opcional. Pero es muy útil si desea comprender las topologías de red.
3. Familiarícese con la arquitectura de red y los dispositivos, como concentradores, conmutadores y enrutadores.
4. Toma un curso de protocolos de red y sus fundamentos. Necesita una buena comprensión del modelo de interconexión de sistemas abiertos (OSI), Ethernet, IP, TCP, UDP y HTTP antes de poder comenzar a programar aplicaciones distribuidas.
5. Aprenda XML familiarícese con él.
6. Comience a aprender un lenguaje de programación de shell. En Windows, sería cualquier secuencia de comandos que funcione con Windows Scripting Host. Bajo Linux, estos son scripts Bash y Perl. JavaScript es muy recomendable para ambos sistemas, por las siguientes razones:
Es compatible con casi cualquier host de secuencias de comandos en cualquier sistema operativo (Windows Scripting Host admite JavaScript de forma predeterminada, la mayoría de las distribuciones de Linux tienen un paquete para compatibilidad con la consola de secuencias de comandos de JavaScript).Muchos desarrolladores lo consideran más fácil de aprender.Tiene una sintaxis derivada de ALGOL que facilita familiarizarse con otros lenguajes de programación cuando elige un segundo lenguaje de programación (C, C++, C#, Java y J# se derivan todos de la sintaxis de ALGOL).Aprender JavaScript lo familiarizará con las secuencias de comandos del lado del cliente de las páginas web, lo cual es una ventaja instantánea!7. Inicie la programación de procedimientos utilizando su lenguaje de secuencias de comandos preferido. Más tarde, puede comenzar a usar técnicas y paradigmas de programación más avanzados, según su lenguaje de secuencias de comandos y lo que admita. Todos los lenguajes de secuencias de comandos tienen algunos aspectos de la programación de procedimientos.
8. Use el lenguaje de secuencias de comandos que aprendió para escribir secuencias de comandos que realicen la comunicación entre máquinas. Aprende lo que se necesita para hacer eso. La simple comunicación es suficiente.
9. Haga el cambio a scripts de escritorio/lenguajes de programación. Preferiblemente uno que sea un lenguaje multiparadigma como Python. Sigue una sencilla introducción a ese segundo idioma. Java es visto por la mayoría de los programadores como el lenguaje elegido por muchas razones. Pero, C# está ganando terreno rápidamente en esta área. Se prefieren Java y C# por las siguientes razones:
Son lenguajes de programación orientados a objetos que protegen a los programadores en equipos grandes de los detalles de implementación porque ambos admiten componentes (bloques de código, compilados, que realizan una tarea particular y pueden usarse en otros programas).Admiten programación basada en eventos, además de OO y programación procedimental hasta cierto punto.El marco sobre el que se construye el lenguaje se distribuye desde (en el caso de Java).La disponibilidad de muchos paquetes listos para usar relacionados con la creación de redes, así como código fuente abierto y paquetes integrados (marco); Esto facilita que los programadores se basen en el trabajo de otros.10. Se enfocan más en las funciones centrales del lenguaje, especialmente aquellas redes de soporte. Se presta menos atención a los elementos de la interfaz de usuario, como la salida, el diseño y las técnicas de la ventana, y los elementos de la interfaz de usuario.
11. Realice un curso sobre diseño de plataformas y aplicaciones distribuidas. Esto se puede hacer usando libros, tutoriales en línea o cursos académicos. Sin embargo, es necesario comprender la arquitectura de las aplicaciones distribuidas y sus conceptos.
12. Aprenda a construir y mantener componentes y servicios usando el lenguaje de programación de su elección.
13. Aprenda una o más de las siguientes tecnologías. Se recomienda que tome al menos una introducción a cada uno de estos. 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 se debe a que si desea que sus aplicaciones se "distribuyan", debe ofrecer al menos una versión para cada uno de los principales sistemas operativos.
Arquitectura de agente de solicitud de objetos comunes (CORBA)Protocolo simple de acceso a objetos (SOAP)JavaScript asíncrono y XML (AJAX)Modelo de objetos de componentes distribuidos (DCOM).Red remotaServicios web XML1. ¿Qué es la programación central?. Los programadores principales son principalmente programadores avanzados que han hecho la transición de programar aplicaciones a programar unidades de código que pueden usar otros programadores.
2. Aprenda un lenguaje de programación que le permita crear componentes/paquetes reutilizables, si aún no lo ha hecho.
3. Toma un curso avanzado en UML y ORM. La mayoría de los desarrolladores de bibliotecas usan uno o ambos de estos.
4. Tome un curso de ingeniería de software.
5. Aprenda al menos técnicas y conceptos de programación modular, basada en componentes, orientada a objetos y basada en eventos. Cuantos más paradigmas y lenguajes de programación conozca, más exitoso será como programador de bibliotecas/bibliotecas/paquetes.
6. Obtenga información sobre los diferentes sistemas operativos y marcos compatibles con estos sistemas operativos.
7. Centra tus esfuerzos en frameworks multiplataforma, lenguajes de programación y tecnologías.
8. Si los lenguajes de programación que ha aprendido se ajustan a las versiones estándar ANSI/ISO/IEEE/W3C, e intente dominarlos. Trate de usar el código predeterminado siempre que sea posible.
9. Tratar de emular bibliotecas simples y ya establecidas, especialmente de código abierto. Esto es útil durante las primeras etapas de convertirse en un programador de bibliotecas/paquetes. Comience con paquetes simples como conversión de unidades y cálculos científicos no demasiado difíciles. Si es estudiante, aproveche los cursos que no son de programación para capturar las ecuaciones y el núcleo científico en las bibliotecas de programas.
10. Busque paquetes de código abierto dentro de su campo. Primero descargue binarios/ejecutables del paquete. Trate de usarlos y encuentre las fortalezas y debilidades. Cuando haya terminado con eso, descargue el código fuente e intente averiguar cómo se hace. Intente copiar esas bibliotecas/bibliotecas, o partes de ellas. Hágalo primero después de haber estudiado el código y luego antes de haber visto el código. Vuelva a intentarlo más tarde para mejorar estas bibliotecas.
11. Aprenda los diferentes enfoques utilizados para distribuir e implementar componentes para y por programadores.
Por lo general, los programadores de bibliotecas/paquetes tienden a pensar de forma recursiva y/o iterativa cuando necesitan resolver un problema. 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 tamaño del problema a subproblemas más pequeños y luego apilar estos subproblemas uno encima del otro.Los programadores de bibliotecas/paquetes tienden a generalizar. Es decir, cuando se les presenta un problema específico simple, generalmente comienzan a pensar en un problema más general y tratan de resolver ese problema general, resolviendo automáticamente también el problema más pequeño.Método 5 de 6: Programación del sistema
1. Entender de qué se trata la programación de sistemas. Los programadores de sistemas se enfrentan la ciencia de programación, no con su implementación específica. No te limites a una plataforma específica.
2. Siga los tres primeros pasos para programadores de escritorio.
3. Toma un curso de introducción al álgebra lineal.
4. Toma un curso de cálculo.
5. Tomar un curso de lógica y/o matemáticas discretas.
6. Conozca diferentes sistemas operativos desnudos. Puedes hacer esto de la siguiente manera:
Aprenda cómo se instalan los sistemas operativos.Aprenda a instalar múltiples sistemas operativos diferentes en 1 PC (opcional, pero recomendado).Instalar más de un sistema operativo. No instale todas las utilidades en los sistemas; más bien use la funcionalidad básica proporcionada por el sistema operativo.7. Tome un curso (o alternativamente, lea libros) sobre arquitectura de hardware.
8. Desarrollar una comprensión de las otras plataformas de hardware de computadora.
9. Trate de familiarizarse con el lenguaje ensamblador de la plataforma/SO de su elección. Más adelante aprenderás el montaje de otras plataformas/sistemas.
10. Aprenda ANSI C y C++ junto con los conceptos de programación procedimental.
11. Comprenda y practique con las bibliotecas estándar de C/C++ en la plataforma de su elección. Preste especial atención a la Biblioteca de plantillas estándar (STL) y quizás a la Biblioteca de plantillas activas (ATL).
12. Busque recursos, libros y cursos en línea para comprender la variante C para su plataforma específica.
13. Practica escribiendo código avanzado con C y C++.
14. Obtenga más información sobre el ensamblaje avanzado.
15. Toma un curso de programación de sistemas operativos.
dieciséis. Busque documentación en una plataforma específica de su elección. Esto será más fácil si elige un sistema operativo basado en Unix. Comprender el sistema con el que está trabajando le será útil más adelante.
17. Practica tus conocimientos adquiridos. Cree algunas utilidades pequeñas primero. Por lo general, es útil hacer lo siguiente:
Tratando de crear pequeñas herramientas que ya están en su sistema.Tratando de convertir las utilidades disponibles en los sistemas operativos a las suyas.18. Aprende los lenguajes de programación en el orden más útil. Este es el único campo donde el primer lenguaje de programación es importante. Aprenda ANSI C primero y no C++, C# o Java y no D. Solo entonces aprende C++.
La limitación a C se debe a que la programación de sistemas requiere que el programador esté familiarizado con los siguientes conceptos:
Compilación real y completa del código fuente.Archivos de salida de objetos de bajo nivel.Vinculación de binarios.Lenguaje máquina de bajo nivel/programación ensambladora. Algunos consideran que el lenguaje C es una forma de ensamblaje disfrazada o más fácil de aprender. También admite la inserción de código ensamblador en el código C cuando sea necesario y solo es de procedimiento (al igual que el ensamblaje).1. ¿Qué hacen los informáticos?. Los informáticos son programadores muy avanzados que, en lugar de trabajar en aplicaciones, trabajan en el diseño de tecnologías informáticas como el cifrado, los lenguajes de programación y los algoritmos de minería de datos. Rara vez se puede llegar a este nivel sin un estudio académico y mucha dedicación.
2. Obtenga el conocimiento científico equivalente a un título universitario de cuatro años en ciencias de la computación. Puedes hacerlo a través de:
Obtener un título universitario (el paso más obvio).Obtenga una visión general de los estudios universitarios y realice los diversos cursos a través del autoaprendizaje o mediante cursos separados. Esto es posible en teoría, pero se recomienda el primer camino.3. Elige una especialización. Cuanto más específico mejor. Esto depende de tus preferencias. Estos son algunos de los campos clave en informática:
Diseño de algoritmos (búsqueda, clasificación, cifrado, descifrado y detección de errores en la comunicación son algunos ejemplos)Lenguajes de programación/diseño de compiladores/optimizaciónInteligencia artificial (reconocimiento de patrones, reconocimiento de voz, procesamiento de lenguaje natural, redes neuronales)robóticaProgramación científicaTrabajando con supercomputadorasDiseño/modelado asistido por computadora (CAD/CAM)Realidad virtualGrá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 en el que puede usar y manipular imágenes en sistemas informáticos.)4. Considere obtener un título universitario. También puedes optar por una maestría o doctorado.
5. Aprende las tecnologías y lenguajes de programación relacionados con tu campo como programador.
Consejos
No importa qué tipo de programación quieras probar o en qué nivel, siempre puedes tomar un curso o clases en la escuela. No se deje intimidar por términos como `Informática.Cualquier curso que pueda tomar sin conocimientos previos debe centrarse en los conceptos básicos de la programación, pero consulte con el tutor de antemano para asegurarse de que es lo que está buscando, ya que cursos como "Habilidades informáticas" se centran más en la familiaridad con las aplicaciones de oficina. etc..
Artículos sobre el tema. "Convertirse en un programador"