En primer lugar, me gustaría señalar que al “programar” probablemente te refieres a “ingeniería de software”, es decir, la ciencia de crear aplicaciones de software. Las personas nuevas en el campo a menudo confunden el conocimiento de un lenguaje de programación específico (por ejemplo, Java, C ++, PHP, Python) con la habilidad de ingeniería de software. Un lenguaje de programación es simplemente un medio para lograr el objetivo de construir una aplicación.
Dicho esto, si desea embarcarse en una carrera de ingeniería de software, le recomiendo armarse con:
- Una elección de idioma y plataforma: C # y Windows es excelente.
- Buen material de instrucción (libros, recursos en línea, tutoriales en video, un curso introductorio de la universidad, etc.)
- Las herramientas que necesitará: una PC con Windows, Microsoft Visual Studio 2017 (gratis).
- Tiempo y paciencia.
- Pizza y soda cafeinada (para darle energía para alimentar su entusiasmo).
En cuanto al material de instrucción, lo mejor es inscribirse en un curso (gratuito o no). Ya sea que se trate de un instructor o un entrenamiento de video a su propio ritmo, no hay nada como un curso formal para ayudarlo a comenzar con lo básico. Si decide enseñarse a sí mismo comprando uno o más libros, busque los que cubren el siguiente programa de estudios:
Los fundamentos (cómo funcionan las balas):
- ¿Cuál es el mejor método para aprender en cualquier tipo de pasantía?
- Como empujarme a tener mas disciplina.
- Como desarrollador de software, ¿debo aprender nuevas habilidades técnicas relacionadas con mi trabajo o aprender algo que me interese?
- ¿Cómo se aprende un poco el lenguaje informático?
- ¿Cómo se puede aprender GK?
- Representación numérica
- álgebra de Boole
- Construcciones de programación (ejecución secuencial, if-then-else, loops, instrucción switch / case)
- Entrada y salida básica
- Programación modular (funciones, paso de parámetros).
- Estructuras de datos (matrices, listas, listas vinculadas, colas, árboles, tablas hash, conjuntos)
- Algoritmos: algoritmos numéricos, búsqueda, ordenación, recursión, etc.
- Excepciones y manejo de errores.
Programación orientada a objetos (cómo funcionan las armas):
- Objetos y clases
- Encapsulacion
- Composición y herencia.
- Polimorfismo
Patrones de diseño (cómo funcionan las ametralladoras):
- Fábrica, patrón singleton, constructor, prototipo.
- Adaptador, fachada
- Iterador, comando, mediador
- Editor, suscriptor
- etc.
Programación GUI (cómo pelear una batalla):
- Fundamentos de eventos impulsados
- Formas y controles
- Arrastrar y soltar
- Portapapeles de Windows
- Muchos otros temas demasiado numerosos para nombrar
Programación de Windows (cómo luchar una guerra):
- Archivo I / O
- Programación en red
- Regex
- Multimedia
- Habla
- Cifrado
- Muchos otros temas demasiado numerosos para nombrar
Suena como mucho? Es. Pero recuerda esto: cada océano comienza con una gota de agua.
Le deseo suerte y lo aliento a embarcarse en este maravilloso viaje de ingeniería de software. Espero que te traiga tanta alegría como me ha traído. No hay nada más en la vida que quiera hacer excepto construir software útil, robusto y utilizable.