¿Cómo se aprende la programación más allá de las tareas de colegio / universidad?

Esos idiomas son todos muy similares. Todos proporcionan orientación a los objetos (y poco más). C ++, C # y Java tienen sistemas de tipo estático muy similares. En particular, las grandes clases importantes de problemas son difíciles de resolver utilizando todas las herramientas que conoce. Por lo tanto, ganaría más al aprender otros enfoques de programación.

Algunas ideas para nuevas herramientas que puedes aprender:

  • Montaje. Mire x86 o x64 en una computadora de escritorio o portátil o un ensamblaje ARM en una Raspberry Pi y escriba programas al asignar registros usted mismo e idear sus propias convenciones de llamadas.
  • Programación funcional Mire a Haskell y Scheme para encontrar herramientas extremas que le enseñarán la disciplina. Mire F # y Clojure para obtener herramientas pragmáticas que faciliten la creación de software real con este estilo. Aprenda sobre estructuras de datos puramente funcionales y eliminación de llamadas de cola.
  • Programación lógica. Mire a Prolog como una forma elegante de expresar y resolver problemas lógicos como el rompecabezas Zebra de Einstein.
  • Término reescritura. Mire a Mathematica como una forma elegante de abordar los cálculos simbólicos.

Algunas ideas para problemas que puede intentar resolver:

  • Interprete. Elija un lenguaje simple y escriba un programa que ejecute programas escritos en ese idioma.
  • Compilador. Elija un lenguaje simple y escriba un programa que traduzca los programas escritos en ese idioma a un lenguaje de nivel inferior como ensamblador.
  • Gráficos. Escriba una aplicación gráfica no trivial como una herramienta de hoja de cálculo mini-Excel. Con la herramienta adecuada, puede hacer esto en 200 líneas de código. Matriz de Phillip Trelford

Haz un sitio web. No se preocupe pensando en una buena idea de aplicación. No tiene que ser algo que alguien use. Puede ser su sitio web personal, una lista de tareas pendientes, un administrador, un blog, lo que sea. El simple proceso de lanzar un sitio web le enseñará muchas cosas que no necesariamente obtendrá a nivel universitario. Habilidades como:

HTML / CSS / JS

Mal ignorado en la mayoría de los planes de estudio universitarios, pero absolutamente vital en una gran cantidad de trabajos de programación.

Trabajar con bibliotecas de código externas

Por ejemplo, ¿cómo incorpora alguna biblioteca de animación JS realmente codificada con su código? ¿Sabes cómo usar un administrador de paquetes como npm para Node.js o Stack / Cabal para Haskell?

Trabajando con herramientas de implementación

Por ejemplo, implemente su sitio web usando heroku. Si no le importa tener un dominio “.herokuapp” para empezar, incluso puede hacerlo de forma gratuita.

Administrar un repositorio de código (probablemente con Github)

Algunas escuelas son decentes para enseñarte esto. Pero tendrás que aprender VCS en algún momento.

Integración continua / entrega

Aprenda qué tan simple es su vida cuando todo lo que hace es avanzar a una sucursal y su nuevo código se implementa en su entorno de producción.

Finalmente, aprendes programación a través de la práctica de escritura de software. Mucha práctica

Cuando escriba software, se verá obligado a pensar en sus soluciones de programación algorítmicamente, es decir, cómo expresar los elementos de su algoritmo utilizando las características del lenguaje de programación. Eventualmente, te sentirás cómodo haciendo esto.

Buena pregunta.

Me parece que ya eres programador. En este caso, lo único que puede hacer ahora es comenzar a programar. Aprenderá cosas nuevas a medida que avance más y más en su proyecto.

De vez en cuando tiene que revisar sus conocimientos tomando un curso en línea o haciendo un tutorial. Descubrirá nuevos algoritmos o trucos que harán que sus programas sean un poco mejores.

Cree un perfil para usted en Linked-in y comience su red. Conéctese con otros programadores y, finalmente, únase a un equipo de programación. Únase a un proyecto gratuito en GitHub y aprenda a trabajar en equipo.

Si deseas continuar aprendiendo únete a mi organización: Organización SageCode Aquí puedes convertirte en un profesional independiente, solicitar un voluntariado y contribuir a crear contenido nuevo

En SageCode puede tener un perfil e identidad de programador en línea. Esto lo ayudará a ganar más experiencia y, finalmente, podrá tomar un trabajo como desarrollador de software a tiempo completo.

Iniciar un proyecto. Siento que uso el mismo ejemplo en cada respuesta.

¡Escriba un raspador web cuyo precio coincida con los artículos de las tiendas de comercio electrónico! Puede monetizar fácilmente utilizando un servicio de correo electrónico de suscripción. Es bastante básico, la mayoría de los productos de sitios de comercio electrónico son solo elementos de lista en una página.

Puede hacer esto en cualquier lenguaje de propósito general. También puede hacerlo tan complejo o simple como desee, dependiendo de qué tan inteligente quiera que sea la igualación de precios, cómo se dirige a ciertos clientes con ciertos productos, con cuántos artículos / tiendas coincide, qué tan similares son los artículos ‘ volver a coincidir (¿o tienen que ser exactamente iguales?)

necesitas construir algo útil