¿Cuál es un buen lugar para comenzar a aprender programación de computadoras?

Para convertirte en un gran programador de computadoras, debes enfocarte en 3 puntos:

  • Tener un conocimiento de la pila completa
  • Poder aprender por ti mismo
  • Habilidades blandas

Tener un conocimiento de la pila completa

Si bien todos tienen una definición diferente de “pila completa”, aquí hay una que me gusta. Las aplicaciones de software son sistemas complicados compuestos de muchas tecnologías y partes: frontend, backend, base de datos, servidor web, red … Por ejemplo: cambiar una consulta en el frontend afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos. podría traer el sitio hacia abajo.

Esta situación sucedió cuando estaba trabajando para LinkedIn, un graduado reciente que era un “especialista de frontend” implementó una función que consultaba un campo en la tabla de usuarios que contenía millones de entradas, este campo no tenía un índice y la base de datos se redujo. junto con el sitio web.

Este desarrollador no tenía idea de cómo funciona una base de datos, pero saber qué es un índice es algo que debe conocer cualquier buen ingeniero de software. Tengo toneladas de ejemplos como este.

Es por eso que primero debe aprender un mínimo acerca de lo que llamamos la pila, mientras que cada uno tiene su propia definición de pila, un buen comienzo es saber sobre:

  • Algoritmo y estructura de datos
  • Programación de alto nivel (lenguajes de programación de objetos orientados)
  • Administración del sistema y un poco de networking.

Con esto, un ingeniero de software podrá navegar por casi cualquier sistema / aplicación y podrá tomar una decisión de ingeniería bien pensada.

Poder aprender por si mismo

Los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las que cambian más rápidamente, por eso necesita actualizar constantemente la aplicación de su teléfono inteligente y que sus sitios web favoritos traigan constantemente una mejor experiencia y características.

En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que les ayudarán a hacer su aplicación más rápida, mejor y más confiable. Los nuevos lenguajes de programación y las bibliotecas vienen constantemente y uno no puede regresar a la universidad cada vez que surja una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que puedas aprender por ti mismo.

Habilidades blandas

A menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante.

Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas” porque este libro es muy importante para aprender a ser un ser humano exitoso.

  • Comunicación
    • verbal: hablar en público, presentación…
    • Escrito: documentación, correo electrónico, post mortem, redacción técnica…
  • Colaboración
    • Ayudando a un compañero de trabajo en un proyecto
    • A bordo de un recién llegado
    • Saber cuándo preguntar
  • Espíritu de equipo
    • Entendiendo a otros compañeros de trabajo
    • Fomento de la colaboración con otros equipos (si es en una gran empresa)

No se puede imaginar cómo el ser amable con las personas y ayudarlas a hacer su trabajo les traerá mucho más. Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero digamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas.

Si puede obtener estas 3 cosas, será un programador increíble y todos querrán contratarlo. Estoy tan convencido de esto que realmente dejé mi trabajo de Ingeniero de Software en LinkedIn para comenzar una escuela enseñando esas habilidades, se llama Holberton School.

¡Buena suerte en tu camino convirtiéndote en un gran programador!

A2A. ¡Eso es genial! Bienvenidos a la comunidad. Hay tantos recursos gratuitos que puede usar para comenzar la programación, puede ser difícil saber por dónde empezar.

No creo que haya un “mejor” lenguaje de programación para comenzar. Hay, sin embargo, una serie de opciones populares. Si desea ingresar al desarrollo web, yo diría que JavaScript, Python o Ruby son excelentes opciones para un primer idioma. Si quieres probarlos sin mucho riesgo, verifico cursos gratuitos en Codecademy o Code School. También puede registrarse en una cuenta de Codewars si solo quiere comenzar a resolver problemas y familiarizarse con uno de esos idiomas. (Plug descarado: la compañía para la que trabajo también lanzó recientemente un montón de contenido gratuito de JavaScript, ¡y siempre estamos buscando comentarios!)

También empezaría a asistir a reuniones en tu área. Trate de encontrar algunos que sean amigables con los principiantes, y conozca a algunas personas que comparten sus intereses. Acelerará su aprendizaje si puede encontrar una comunidad de personas que quieran aprender las mismas cosas. Los grupos de trabajo también son una excelente manera de escuchar acerca de los hackathons.

Y tan pronto como puedas, comienza a construir cosas. Aprenderá mucho construyendo proyectos del mundo real que tienen un significado personal para usted. Ya sea que esté creando un juego, una pequeña aplicación web o pirateando una Raspberry Pi, cuanto antes pueda encontrar un proyecto genial que desee recrear o extender, mejor.

¡Buena suerte y diviertete!

En primer lugar, ya sea recoger un libro o encontrar un buen sitio web tutorial.

Para la programación web, no hay w3schools vencer. thenewboston tiene tutoriales de alta calidad en casi todos los idiomas que se te ocurren, C ++, Java, JavaScript (no es lo mismo que Java), Python, lo que quieras. Los Recursos y videos educativos también tienen buenos tutoriales, y un canal de Youtube: xoaxdotnet.

Una vez que hayas aprendido los idiomas, querrás aprender algunas API para poder hacer algo. C ++ tiene Win32, DirectX, OpenGL y MFC, Java tiene Swing y applets, Python era wxpython y pygame.

Aprender UML y los conceptos de diseño es obligatorio para hacer un proyecto decente que resista la prueba del tiempo. Hay varios tutoriales en video sobre patrones de diseño, pero recomendaría un libro, a saber, este: elementos de software reutilizable orientado a objetos: Amazon.es: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: 8601419047741: Libros

Si realmente se siente aventurero, intente hacer algo en NASM y ejecútelo en el sector de arranque de un pendrive. Solo ten cuidado de no estropear tu disco duro.

Finalmente, prepárate. Duerma mucho, tome algunos bocadillos (mire su peso) y prepárese para la confusión, el dolor, el aburrimiento y la exasperación de lo que significan todos los errores del compilador. Todos hemos estado allí.

Algunos sitios web gratuitos incluyen:

Aprender a codificar

Consorcio World Wide Web (W3C)

Aprende Python de la manera difícil

O simplemente un montón de libros al azar.

-Jason

Gracias por la A2A

Tomaría una introducción a la clase de programación en Python, JavaScript o Java.

-Creo que C ++ es un poco difícil para empezar.

Toma un poco más de clases de matemáticas y programación. Siguiente-

En su segundo verano de verano, puede tomar un bootcamp de programación que no es 0–100 sino 20–120.

Yo recomiendo hackear el reactor o la aplicación acadmey.

Los hackathons te ayudan a trabajar en equipo, a desarrollar ideas rápidamente y a juzgarlas.

Recomiendo visitar CodeAcademy- que te dará un montón de guías fáciles que te ayudarán a comenzar de inmediato. Puede decidir rápidamente si puede o no enseñarse después de probar esto. Para mí, el aprendizaje de front-end (HTML / CSS) fue lo más fácil de hacer primero debido a la recompensa instantánea de poder construir un sitio web simple.

He escrito una extensa respuesta con respecto a esto. Por favor vea este enlace.

Respuesta del usuario de Quora a ¿Alguna vez es demasiado tarde para que alguien aprenda a programar?

Si fuera tú, intentaría comenzar con un lenguaje de anidamiento como HTML, luego ir a Python y Visual Basic. Ahí es donde he estado trabajando. Hay mucha ayuda en los juegos y cosas para enseñarte. Si te gustan los juegos, prueba a jugar Code Combat para ayudarte a aprender algo de sintaxis.