¿Qué vas a aprender y en qué proyecto vas a trabajar este verano como principiante en programación?

Yo diría que soy un principiante. No creo que nadie se jacte de ser un programador experimentado con solo un año de experiencia en codificación. Aquí hay una lista de lo que haré (muy probablemente en orden):

  1. Terminar mi juego TicTacToe que cuenta con una IA (honestamente debería tomar alrededor de una semana)
  2. Trabaja en el procesamiento de la visión en OpenCV
  3. Comience con el aprendizaje automático y las redes neuronales
  4. Comenzar y terminar mi curso gratuito de edX de Harvard (CS50)
  5. Probablemente trabajaré en otra idea que aparece durante el verano (debería tomar alrededor de un mes como máximo)
  6. Revisar mi conocimiento de C ++, escribir algunos scripts de Python y codificar algunas cosas en Java. Incluso podría trabajar como freelance en Upwork como principiante. Dudo que me paguen mucho, pero haré todo por menos y los usaré como una oportunidad para aprender.

Sé que mucha gente tiene mucha más experiencia que yo, así que la única forma en que los superaré es aprender más rápido y con mayor frecuencia.

No soy un principiante sino un experto con 30 años de experiencia. Pero eso no me impide aprender cosas nuevas y tener varios desafíos de programación que hacer. Pero teniendo tanta experiencia, tiendo a concentrarme en escribir menos código y aún así obtener los resultados que quiero.

Mi enfoque actual es lograr que varias cosas funcionen juntas. Y estoy estableciendo mis metas absurdamente altas ya que el propósito es educarme, no terminar realmente un proyecto. Entonces, si termino el 75% de un proyecto enormemente complejo, entonces eso es aún mejor que terminar por completo una docena de proyectos simples, ya que esos proyectos simples generalmente son demasiado simples. Entonces, si necesita proyectos para aprender rápido, elija algo complejo.

Entonces, ¿qué quiero construir ahora? En realidad, es bastante simple, ya que empiezo a aprender más sobre electrónica y programación integrada. De hecho, uso chips ATTiny y ATMega y diseño mis propios tableros, ya que puedo usar C para programar esos chips. Estas placas tendrán un módulo WiFi que se utilizará para comunicarse con mi servidor web.

También tengo una placa Raspberry Pi con un módulo de cámara que también se conectará al servidor web para esperar las instrucciones dadas por los módulos ATTiny. Este R-Pi tendrá un servomotor que puede girar la cámara hacia la izquierda y hacia la derecha para que pueda mirar en varias direcciones. El propósito es tomar fotos en situaciones específicas y subirlas al servidor web.

Y luego haré una aplicación móvil que también se conecta al servidor web, que puede leer los valores proporcionados por los tableros ATTiny / ATMega y cualquier fotografía tomada por el R-Pi. También podré indicarle al R-Pi que tome una foto en este momento. Pero también habrá un sitio web que me permitirá controlar todo.

Entonces, mis proyectos significan que tengo que diseñar algunas placas electrónicas, generar contenedores impresos en 3D para la electrónica y para la cámara y el servo. Utilice la energía solar para que las placas electrónicas no necesiten baterías. Diseñar un servidor web con servicios adicionales para llamar desde mis tableros electrónicos, el R-Pi y la aplicación móvil. Diseñe un sitio web completo incluso con una galería de fotos para todas las imágenes tomadas con información adicional. Básicamente, asegurándose de que todo el sistema sea tolerante a fallas, por lo que si alguna parte falla, el resto simplemente continuará funcionando. Es un gran proyecto y tiene algunas partes muy desafiantes que necesito para desafiar mis 30 años de experiencia.

En este momento, todavía estoy en la fase de diseño y solo estoy probando algunas pequeñas cosas. Todavía necesito completar las placas electrónicas y considerar a qué sensores necesitaré para que respondan las placas electrónicas. También es importante que pueda calibrar el R-Pi para mirar en un ángulo específico y tener la opción de registrar nuevas placas electrónicas en el sistema y vincular el dispositivo a un ángulo específico. Así que estoy elaborando un modelo de datos para almacenar esta información, pero también para la gestión de usuarios, ya que no quiero que todos tengan acceso a todo. Y estoy experimentando con los módulos WiFi y los comandos AT necesarios para controlarlos, ya que esta es la primera vez que los usaré para un proyecto …

Pero como puedes imaginar, esto es enorme con muchos desafíos. ¿Y qué pasa si no lo termino? No es gran cosa, ya que todavía me obligó a aprender varias cosas nuevas.

Si hubiera sido un principiante, todavía habría comenzado con algo igualmente complejo. En realidad, cuando comencé comencé con varios proyectos complejos. Esto fue antes de Internet y OO se estaba convirtiendo lentamente en la corriente principal, y MS-DOS era mi principal sistema operativo. Sin embargo, escribí un controlador de mouse para mis propias aplicaciones, ya que MS-DOS carecía de esta funcionalidad. Diseñé un juego de disparos con sonido. Creé una aplicación para realizar un seguimiento de los concursos deportivos e hice mi propia libreta de direcciones y varias herramientas pequeñas. Cuando Internet aún era nuevo, también comencé con el desarrollo web y mi propio cliente de correo electrónico, pero para entonces ya tenía 10 años de experiencia. Solo necesitaba aprender cosas nuevas.

¡Y eso es todo! Como desarrollador de software, ¡nunca dejarás de aprender! ¡Nunca dejarás de hacer nuevos proyectos para poner a prueba tus habilidades! Así que no intentes algún proyecto simple y ten éxito. ¡Pruebe un proyecto muy complejo y casi tenga éxito!

He estado codificando por MUCHO tiempo. Por lo tanto, es extraño responder una pregunta “como principiante”.

Durante mucho tiempo he estudiado y trabajado en software de aplicaciones empresariales / web. Es genial, pero realmente aburrido. Durante la misma cantidad de tiempo, he estado pensando en desarrollar el juego (el objetivo del 99% de las personas que comienzan a codificar).

Las últimas semanas hubo una venta de cursos en línea en la página web de Udemy … y me dejé llevar. (Obtuve unos 20 cursos por el precio de uno solo). Así que tengo muchas cosas que aprender, y obviamente comencé con el desarrollo del juego (por fin). Entonces, durante mucho tiempo, soy un principiante nuevamente.

Decidí comprar una maldición (al contrario de lo que me verán decir en mis otras respuestas de quora) porque cada vez que intentaba comenzar a codificar juegos terminaba mirando muchos videos y nunca sabía por dónde empezar: “cómo crear partículas “,” cómo crear un menú de inicio “,” HACER un JUEGO Básico (Unidad) “(Acabo de ver este último … parece un buen punto de partida … bueno …)

Entonces, ¿por qué normalmente aconsejo NO obtener un curso o un libro? La diferencia es que si quieres aprender “cómo codificar” hay 100 bibliotecas, obtendrás un libro y te dirán cosas aburridas con cero práctica, aprenderás a imprimir “hola” 100 veces. Y dejarás caer la idea de aprender a codificar. Por lo tanto, siempre aconsejo obtener los conceptos básicos de un libro o una página web, un simple ejemplo de saludo, y luego comenzar a construir utilizando sus propios objetivos.

Entonces, ¿por qué creo que es una buena idea en este caso? Desarrollo del juego, el conocimiento es “finito” y estructurado; pero los objetivos normalmente no son realistas “Quiero crear un FPS”.

Entonces, si quieres verlo de otra manera, en realidad estoy siguiendo mi propia recomendación:

  • Obtenga los conceptos básicos de un libro o una página web -> un curso en línea
  • un simple ejemplo de saludo -> los primeros ejemplos son como “hacer caer un bloque”
  • y luego empiezo a construir usando tus propios objetivos -> mi objetivo es crear un juego cooperativo con / para mi hija, así que ignoro las partes del curso que se salen de ese objetivo.

Entonces, ¿por qué digo todo eso? Creo que puede funcionar como una introducción a la programación y te mantendrá interesado. PERO ese no es el mejor pad a seguir si realmente fue a aprender a codificar … Después de mirar algunos de esos videos, debo decir que los desarrolladores de juegos de la unidad (al menos los que están en los videos) pueden no ser los mejores desarrolladores.

PD: los cursos en Udemy todavía están a la venta. Ellos donde $ 10 (usd). Todavía hay algunos a la venta, por alrededor de $ 15. pero no los mejores Este “Make a Game – Unity Course – YouTube” se parece casi a uno de esos cursos de Udemy. Así que creo que es un buen / interesante lugar para comenzar.

ACTUALIZACIÓN: Acabo de echar un vistazo al enlace que recomendé … están usando Javascript. Por favor no comience con Javascript .. ¡POR FAVOR! Dejaré el enlace aquí para que pueda ver el tipo de contenido que puede buscar pero no vaya a javascript.

Si está interesado en el desarrollo web, le sugiero que consulte el plan de estudios de Epicodus de mi escuela que está en línea de forma gratuita en http://www.learnhowtoprogram.com . Le llevará a través de todos los conceptos importantes que necesita y tiene una tonelada de proyectos para que pueda construir en el camino.

Conozca bien DS y Algos, y probablemente comience a contribuir a Open Source con ese conocimiento. Además, practica muchos problemas.

Eso es lo que haría.