Me parece que la programación de computadoras es muy difícil de entender. ¿Qué tengo que hacer?

Ignore la tendencia actual, donde muchas personas dicen que la moda de los loros es esencial para que todos sepan cómo codificar.

¡NO LO ES!

Algunas personas simplemente no están preparadas para ello, sino que poseen otras habilidades y atributos de igual valor. Concéntrese en sus puntos fuertes y, si quiere aprender, tal vez pase el tiempo perfeccionando las habilidades que ya tiene.

En general, los que dicen tonterías sobre cómo necesita codificar se dividen en algunas categorías bien definidas:

1 / Codificadores existentes que piensan que sería genial si pudieras hacer lo que hacen. Generalmente carecen de aprecio o comprensión de cuán difícil puede ser esta tarea para algunas personas. Pregúnteles por qué usan abogados y contadores en lugar de aprender a hacer esas cosas ellos mismos, después de todo, ¿son habilidades esenciales que toda empresa necesita?

2 / Personas interesadas. Si gestiona un equipo de programadores y tiene dificultades para conseguir un buen personal al precio correcto, le interesa que más personas tengan esas habilidades. Será más fácil contratar y reducirá la factura salarial promedio. Lo mismo puede decirse de los líderes empresariales, que simplemente quieren reducir la responsabilidad salarial general de su empresa.

Realmente, ignora a todas estas personas. Los que caen en la categoría 1 no significan ningún daño, pero pueden tener el efecto de hacerte sentir inadecuado cuando no puedes hacer lo que hacen, ¡pero no es importante! Las personas de categoría 2 simplemente están comprando y bombeando la tendencia actual para su propio beneficio, y lo saben.

La programación es difícil hasta que obtienes el proceso de pensamiento adecuado, luego muchas cosas hacen clic. Después de 3 años, cuestionaría sus métodos de aprendizaje. Puede que encuentre algo difícil, pero si mi objetivo fuera dominar (o tener un conocimiento práctico de) una tarea, 3 años serían tiempo suficiente.

En mi opinión, saltar alrededor de 5 lenguajes diferentes (C, Java, Python, Javascript y PHP) sin comprender los conceptos básicos de la programación, no te ayudará a entender. Mi consejo es elegir un idioma, probablemente Python de los que figuran en la lista, ya que he escuchado que es genial para aprender, que utilizas para realizar tus tareas (simples). No se desvíe a otro idioma, ya que la sintaxis diferente realmente puede desanimarlo si no comprende la lógica subyacente.

Personalmente, comenzaría con un sitio web tutorial como codecademy.com (o usaría Quora para encontrar una recomendación para un excelente sitio web para principiantes, ya hay muchas respuestas), y continuaré con todas las lecciones que pueda para ese idioma, luego tal vez encuentre otro sitio web y repita. Habrá tutoriales donde creas que ya sabes todo lo que contiene … genial, hazlo de todos modos. La práctica hace la perfección, ¿verdad?

Una vez que se sienta cómodo con el idioma que elija, bájese en ProjectEuler.net. Este es probablemente uno de mis sitios web favoritos. Los problemas pueden ser difíciles de entender al principio. Aquí es donde usa el conocimiento que obtiene de los tutoriales, para construir un proyecto de trabajo que resuelva una parte de la pregunta. Luego, modifica / modifica / refactoriza su programa con el conocimiento adicional adquirido sobre el problema, ¡y finalmente lo resuelve!

Edite después de la respuesta de Philip Wattis: él tiene razón, que no es necesario saber programar y que debe aprovechar sus habilidades cuando sea necesario. Pero combatiría eso diciendo: si está interesado en aprender a programar, ya sea por un cambio de carrera, un pasatiempo, un interés personal sobre cómo funcionan las cosas a su alrededor, o simplemente porque todos los demás lo están haciendo, entonces usted debería aprenderlo, incluso si es difícil. Son sus intereses y sus objetivos, por lo que el hecho de que algo sea “algo genial” no debería ser una razón para evitar que logre su objetivo. Eso es lo mejor de la vida, no solo estás en este grupo o en ese grupo, eres tú. Únete a todos tus diferentes grupos, haz lo que amas y aprende lo que quieres.

Personalmente, me resulta muy difícil leer un libro de programación sin un objetivo claro :).

En mi humilde opinión, un mejor enfoque es tener objetivos pequeños y consecutivos. Para javascript, por ejemplo, el primer objetivo puede ser terminar los primeros 10 ejercicios en Acerca de – Proyecto Euler como en la respuesta del Usuario de Quora, luego el segundo objetivo es hacer un pequeño sitio web de lista de tareas en javascript completo … Después de leer lo que necesita para lograr estos objetivos. Con un objetivo claro en mente, los conocimientos que lee en un libro o en un tutorial en línea se vuelven de repente más útiles y es probable que los recuerde más fácilmente.

Otro consejo es que si encuentra un concepto demasiado difícil, ¡busque otra fuente que pueda dar una mejor explicación! No te quedes con un solo libro / curso / tutorial. Para los idiomas populares, los recursos de aprendizaje son enormes, por lo que es muy probable que pueda encontrar un mejor enfoque.

Obtuve mi primer trabajo de programación remunerado cuando aún estaba en la escuela secundaria, y probablemente tenía más talento que los otros tres programadores “mayores” que él empleó en el momento en que me contrataron. El dueño de la compañía se convenció de que cada niño estaba lleno de talento y esperando ser desarrollado. También realmente creía que todos podían aprender a programar como yo si se aplicaran. Así que hizo su proyecto contratar niños pequeños y convertirlos en su personal de programación. (Probablemente no hizo daño que las personas más jóvenes también trabajaran por menos salarios). Y me ofrecí para pasar tiempo dando clases particulares a estas personas.

Pasé mucho tiempo tratando de entrenar, enseñar y ayudar a cuatro personas (entre 18 y 24 años) que dijeron que querían programar, una era nuestra recepcionista. La muy valiosa lección que aprendí es que no todos tienen la capacidad de programar . Algunos pueden memorizar muy bien, pero no tienen intuición de cómo funcionan las cosas. Algunos pueden entender los conceptos básicos pero no pueden dividir las cosas en trozos digeribles. Y algunos no pueden entender cómo trabajar dentro de la estructura del lenguaje para lograr algo realmente.

Si está trabajando en ello durante mucho tiempo y no parece hacer clic, es posible que simplemente no tenga la aptitud. Eso no quiere decir que debas rendirte si sientes pasión por él. Pero también es importante darse cuenta de que no todos tienen el mismo conjunto de habilidades, y que los cerebros de diferentes personas están conectados de manera diferente. Si aún tiene dificultades importantes después de 3 años, diría (en el sentido más amable) que debería encontrar otra carrera. Elija algo en lo que sea bueno y probablemente tenga una vida más feliz.

En realidad, es difícil responder a esta pregunta sin saber lo que específicamente tiene problemas para comprender. Puede ser que los materiales que está leyendo no estén estructurados de una manera que le resulte fácil de aprender, o que le falten algunos de los fundamentos que dichos materiales suponen implícitamente que debe conocer. Así que solo voy a dar algunos consejos genéricos para las personas que están tratando de aprender programación.

Primero y principal: la programación de computadoras es solo una forma de expresar ideas de una manera que la computadora pueda entender. Es casi como comunicarse con otra persona, excepto que usará un idioma y medio diferentes. Hay muchos tipos diferentes de idiomas y medios, y limitan las “ideas” que puede expresar de diferentes maneras, al igual que los idiomas naturales, donde algunos de ellos hacen que sea difícil o imposible hablar sobre ciertos temas.

Ahora, la mayoría de los lenguajes de programación (Java, C, PHP, JavaScript, Python, etc.) se basan en la suposición implícita de que usted sabe todo sobre la arquitectura de la computadora convencional, ya que esperan que se convierta en una computadora para expresar sus pensamientos como un programa y entenderlos Convertirse en una computadora convencional es algo extremadamente difícil para la mayoría de los humanos, y por eso la mayoría de la gente dice que “la programación es difícil”.

Afortunadamente, no todos los lenguajes de programación se basan en esta suposición, sin embargo, y no necesita convertirse en una computadora para ser un programador. Un lenguaje de programación generalmente se basa en algún “modelo de cómputo”, que dicta cómo puede razonar sobre un programa en particular. Por ejemplo, hay modelos de computación en los que expresa programas de una manera más matemática, como el cálculo lambda. O de forma lógica, como puedes ver en Prolog. O expresando cómo reacciona su programa a los eventos, como puede ver en Elm y Kodu. Y así sucesivamente y así sucesivamente. Diferentes problemas requieren diferentes modelos de cómputos, sin embargo, la mayoría de las personas solo usarán Java, C o un lenguaje similar, y traducirán manualmente su solución a ese modelo. Esto también les hace percibir la programación como difícil, ya que están haciendo todo el trabajo que la computadora podría estar haciendo por usted; en otras palabras, ¡apenas están usando la computadora para ayudarlos con su trabajo!

Hay dos buenos libros de texto que pueden ayudarlo a comprender todos estos diferentes modelos de computación y cómo pensar en ellos: el libro introductorio Cómo diseñar programas, que puede leer en línea de forma gratuita y es una increíble introducción a la informática en general ( y mucho más accesible para personas que no tienen una especialización en matemáticas, física e ingeniería eléctrica, como Estructura e Interpretación de Programas de Computadora); Y el libro más avanzado Conceptos, técnicas y modelos de programación de computadoras, que se enfoca exactamente en todo lo que acabo de decir. Sin embargo, si bien estos libros son extraordinariamente geniales, es posible que no se ajusten a la forma en que aprende las cosas, pero ese es un problema más difícil de resolver aquí.

¿Intentaste aprender a codificar?

La mejor manera de aprender programación no es leer libros, sino seguir codificando. Establezca sus objetivos cortos: un proyecto pequeño o un pequeño desafío de programación. Por ejemplo, cree su propia aplicación de lista de tareas o intente escribir código para encontrar los primeros 500 números primos. Luego pase a desafíos o proyectos más difíciles. Intentar hacer proyectos lo ayudará a enfocarse en un idioma porque no puede usar varios idiomas en un proyecto (aunque técnicamente puede hacerlo pero no en proyectos pequeños con los que comenzará)

Apégate a un idioma, una vez que lo domines, debería ser sencillo. No cambie de un idioma a otro tan rápido. Te sugiero que comiences con Python. Es más limpio y fácil para principiantes.

Tutorial de Python

Otra cosa que me ayuda es bloguear. Blog lo que aprendes. Le ayuda a mantener un registro de las cosas.

Buena suerte !

Comenzaste desde una programación dinámica y débilmente tipeada en PHP y JS, que es más difícil de entender y más opaca.

Comience a programar en algo que tenga buenas opciones de depuración que le permita establecer puntos de interrupción e ingresar al código en tiempo de ejecución.

Recomendaría Java o C #, ambos tienen excelentes herramientas y una gran comunidad con la que sería fácil preguntar a las personas. Hay toneladas de buenos recursos para aprender y no hay muchas cosas que no puedas construir con estos. Realmente no importa lo que elijas, pero debes seguir con tu elección por algún tiempo.

1. El video tutorial es más efectivo para aprender. Comience desde algunos cursos en línea en Coursera, edx, udemy, udacity, Khan Academy
2. Trabajar con Frameworks también es mejor porque aprendes pasivamente de él, tal vez Java Play Framework para aplicaciones web
3. Use un buen IDE como IntelliJ IDEA
4. En lugar de seguir los tutoriales, intenta construir algo por tu cuenta.
5. Use TDD cuando sea posible porque le permitirá pensar más antes de escribir el código.

¿Cómo respondería a esta pregunta: “Estoy tratando de aprender francés, pero estoy teniendo problemas. Aprendo un par de palabras, pero luego me siento frustrado y me cambio al alemán. Luego trato de italiano, luego vuelvo al francés. A veces No veo ningún idioma durante algunas semanas. ¿Qué estoy haciendo mal? ”
Decide si esto es algo que realmente quieres hacer. Cuando lo dejas por algunas semanas, no me sorprende que no estés progresando.

  1. Elige un idioma y aprendelo. Claramente, lo de francés a alemán a italiano era una tontería. ¿Por qué harías lo mismo con los lenguajes de computadora?
  2. Si tiene problemas para aprender un idioma, primero asegúrese de aprender un idioma relativamente fácil de aprender. Cinco mejores lenguajes de programación para principiantes
  3. Asegúrate de aprender de un buen libro. Busque “libro de programación inicial ” (cualquier idioma que le interese)
  4. Lea el código en la computadora. Leer, escribir, verificar. Leer, escribir, verificar.
  5. Los libros son geniales, pero leer no te hará un buen programador, la programación sí. Imagine a una persona tratando de convertirse en un buen jugador de tenis. Leer libros y mirar videos instructivos no sería suficiente: también tendrían que ir a jugar al tenis. Balancea una raqueta.
  6. Aprende al menos un poco todos los días.
  7. Si se pregunta cómo funciona una cosa en particular (¿sería así o así?), Escriba el código para verificar. Si no se está preguntando, pero cree que el libro es muy claro sobre cómo funciona esto, escriba el código para asegurarse de que lo comprende. Evite copiar y pegar código que no sea fácil para usted: sí, escribió el código una vez. Escríbelo otra vez. Nuevamente, esto es como otras cosas: los buenos tenistas han practicado su swing una y otra vez. No reciben un buen golpe y deciden que es lo suficientemente bueno.
  8. Salta una pequeña sección si realmente te atascas. Tome nota de lo que se saltó y vuelva a ello más tarde. No te saltes demasiadas secciones.
  9. Regrese a las secciones que no entendió antes para tratar de entenderlo más tarde. Vuelve a las secciones que entendiste para realmente entenderlo.
  10. No tenga miedo de pedir ayuda a alguien que sepa. A veces, no hacerlo significa que solo estás golpeándote la cabeza contra la pared.

Esto no es realmente 10 cosas. Cualquier número de ellos se reduce a “escribir el código”. ¿Entonces, Qué esperas? Escribe el código.

Buena suerte.

Seguir aprendiendo. Es muy difícil, solo tienes que ser persistente y la comprensión llegará con el tiempo.

¿Hay algunas cosas específicas que te cuesta entender? Tal vez el problema es que le falta comprensión de algunos conceptos básicos que hacen que otras cosas sean difíciles o imposibles de entender.

La programación es algo que puedes dividir en pedazos pequeños y aprenderlos uno por uno. Si tiene problemas con algo específico, haga preguntas sobre esas cosas específicas, y una vez que lo entienda, lo ayudará con otras cosas.

Lo importante es profundizar. Intenta comprender realmente las cosas y ten una intuición para ellas. Si algo todavía se siente difícil, lo estás viendo a un nivel demasiado alto. Puede ser útil leer artículos / libros más detallados sobre el tema, lo que le ayudará a comprender por qué las cosas son como son.

“Practica hasta que amo”

La programación realmente no es tan difícil como piensas. Según su pregunta, creo que en realidad está tratando de comprender muchas cosas teóricamente solo leyendo. Bueno, te recomendaría que comiences a aplicar tu aprendizaje en escenarios prácticos paso a paso. Comience a codificar desde cero y, al hacerlo, terminará con muchas dudas y, para aclarar esas dudas, continuará aprendiendo más profundamente.

Practica! Practica! Practica! Y nunca renuncies a nada hasta que encuentres una solución.

En realidad, me llevó 2 años entender de qué se trataba la programación, pero hay que perseverar. Si puede, pida explicaciones a los programadores que conoce de irl.

En mi opinión, puede ingresar al mundo de la programación mejor comenzando con HTML y CSS. ¿Por qué? Porque esto lentamente te hará comprender la forma en que las computadoras funcionan con el código. Es fácil y funciona principalmente desde el aspecto visual, que puede necesitar para obtenerlo.

Si puede convertir un diseño a HTML, puede comenzar a sentar las bases de la programación de manera fácil y lenta, por ejemplo, recorriendo un conjunto de menús con php. Las cosas deberían comenzar lentamente a tener sentido en este punto.

Una vez que domine un poco de PHP, no necesita mucho, puede elegir el idioma que prefiera y ¡estará donde quiera estar!

La programación en sí es muy simple. Básicamente es escribir un montón de instrucciones para decirle a una máquina qué hacer. Esto es como decirle a alguien que haga algo por ti, y lo hacen en consecuencia.

La programación se trata de la experiencia en la resolución de problemas. Cuanta más experiencia práctica tenga, más fácil será programar lo que desee. Si está hablando del lenguaje de programación en sí, será útil comprender primero el concepto del lenguaje de programación.

Por ejemplo, es más fácil aprender Java si comprende el concepto básico de la Programación Orientada a Objetos detrás de él. Aprender C #, más adelante, será más fácil siempre que comprenda el concepto básico de Programación Orientada a Objetos. El resto es solo una experiencia práctica con las características y API que vienen junto con los idiomas. Se trata más de estar familiarizado con el entorno del lenguaje.

Sigue aprendiendo, sigue leyendo, ya que las mejoras en este dominio nunca se detienen.

Bueno … la programación no es difícil. Es una versión computarizada de un problema que básicamente puedes escribir usando matemáticas simples.
Deja de centrarte solo en los libros. Intenta codificar. Cuantos más errores obtengas, más aprenderás. La base de cada lenguaje de programación es similar. Por ejemplo, tomemos declaraciones en bucle como for y while. Todos significan lo mismo pero están escritos en diferentes formas. Si puede decodificar cualquier sintaxis de programación en su forma matemática, significa que está aprendiendo a codificar.
Todo lo mejor para tu futura codificación.

Como dijo Jesse Greathouse, encuentre una carrera diferente. Si tiene que pedir consejos para algo como esto en Quora, entonces quizás la programación no sea para usted. Las personas que le dicen que no se rinda, que la programación es fácil, o que pruebe diferentes enfoques para aprender, hacen suposiciones y no se dan cuenta de que todos estamos conectados de manera diferente . Averigua en qué eres bueno o estás feliz haciendo y rueda con él. Dejé de intentar ser médico y terminé siendo más feliz como programador. ¿Soy un perdedor por elegir un camino diferente? No!

Creo que debes amar la práctica de algo, de alguna manera, para poder dedicarle tiempo y progresar. Estudié informática porque trabajaba en restaurantes y quería un trabajo mejor remunerado. Pero antes de solicitar préstamos estudiantiles, también examiné casi cualquier otra línea de trabajo que existe (Oficina de Estadísticas Laborales de EE. UU.) Sabía que la programación era adecuada para mí porque me pareció fascinante ver la salida de un bucle for. Cambiar una etiqueta HTML y ver el cambio de pantalla fue totalmente entretenido. El uso de la lógica para definir problemas, la búsqueda de pistas en Internet y, especialmente, la corrección de errores en mi código fueron, y siguen siendo, algunas de las formas más satisfactorias para pasar mi tiempo. Existe la posibilidad externa de que todo lo que necesita es un buen maestro. Pero después de tres años de hurgar en los lenguajes de programación, debe realizar una prueba de Myers-Briggs y explorar otras carreras. Quizás jugar con sistemas lógicos no es lo tuyo. Quizás sea diseño o ventas u odontología. Es fácil enamorarse de una idea de cómo se ve una persona feliz y comprometida, un conocido actor, CEO, humanitario, estrella del deporte, pero lo que realmente necesita es una combinación entre lo que le gusta hacer en un día. hoy en día (algo que realmente podría hacer de forma gratuita es ideal) y lo que el mundo necesita. Si resulta que te encanta depurar sistemas complejos, genial: el mundo necesita buenos programadores. Pero tenga en cuenta que el mundo también necesita muchas otras cosas. Dicho todo esto, si por alguna razón debe aprender a codificar, su mejor opción es encontrar un paciente, un profesional empático y hacer que le enseñen en persona.

Como se indicó en otras respuestas, la programación es difícil, requiere buenas habilidades lógicas, junto con la creatividad junto con una planificación y organización de código decente. He estado programando durante 10 años (principalmente como un pasatiempo, ahora como estudiante universitario) y todavía lo encuentro desafiante.

Pero existe la posibilidad de que la forma en que piensas no sea buena para la programación.

Extraigo la idea de un estudio (como lo explicó un héroe personal mío aquí: http: //programmers.stackexchange …) que explica que

aproximadamente un tercio de los estudiantes tenían modelos mentales no viables de asignación de valores y solo el 17% de los estudiantes tenían un modelo mental de asignación de referencia viable. … se descubrió que los estudiantes con modelos mentales viables tuvieron un rendimiento significativamente mejor que aquellos con modelos no viables.

Dicho todo esto, la mejor manera de aprender a programar es leyendo buenas guías y codificando cosas. Asegúrese de tener recursos de aprendizaje decentes; JavaScript es un lenguaje único que casi tiene su propio paridigma, PHP es posiblemente el lenguaje peor diseñado en el uso popular, por lo que requieren cuidado y atención para aprender y adherirse a las buenas prácticas, comprar un buen libro, leer, practicar, construir ideas y jugar alrededor con código.

Si tiene una comprensión firme de los lenguajes principales, puede facilitarle la vida utilizando marcos como jQuery y Angular.js para JS y cosas como CodeIgniter para PHP (con eso aprenda la estructura MVC). Piensa fuera de la caja, encuentra lo que funciona mejor para ti.

La respuesta a su problema: manténgase comprometido con una cosa, incluso si se pone difícil.
Desde que comencé la programación de autoaprendizaje cuando tenía 13 o 14 años, yo también tuve ese problema, no en su medida porque tenía una muy buena mente analítica, pero aún así me aburrí apegarme a un sub. Aún así, después de varios cambios, aprendí una cosa a través del autoanálisis y fue que mi velocidad para aprender y comprender disminuyó con el inicio de múltiples proyectos y también dificultó mantener todo en un sistema de memoria organizado en mi mente.
La mejor solución: manténgase comprometido y una vez que tenga los conceptos básicos y aprenda lo que tiene, inicie pequeños proyectos y HAZLO. Es lo que hice y es lo que hace divertido continuar … al menos para un chico adolescente.

Reprobé en todos mis exámenes de ciencias de la computación desde el quinto estándar hasta mi tercer semestre de BTech. Fallé en todas partes, tanto que mis maestros e incluso mis padres me descartaron. Ahora soy un desarrollador de C, un desarrollador web y un administrador de Unix que estoy ganando bastante bien. ¿Sabes por qué? Nunca me rendí.

Sigue practicando. La habilidad de programación, como todas las otras manualidades, es adquirida por las tres P: ¡practica, practica y practica!
Practica hasta cierto punto. Cuando después de un año no estés mejor que cuando empezaste, detente y ve a hacer otra cosa con tu vida, en lugar de crear monstruosidades que nadie puede o quiere mantener.
He sido programador durante más de 20 años y he visto pasar tantas cosas que me gustaría haber podido dar este consejo a todos aquellos que pensaban que “todos pueden ser programadores”.

Es mejor aprender tutoriales e intentar hacer algunas cosas en lugar de leer libros.

También es muy bueno leer algunas sobre buenas prácticas y patrones de diseño en programación. Pero puede aprenderlo de los artículos en Internet y al tratar de usarlos, no necesita libros completos.

No leí casi ningún libro sobre programación. Solo unos pocos capítulos de pocos libros, principalmente durante los estudios, dado que comencé a programar a los 10 años y ahora tengo 30.

More Interesting

Si quisiera convertirme en analista / científico de datos, ¿debería seguir aprendiendo Ruby y Python junto con SQL y Mongo, o debería aprender Excel y Access?

Estoy tratando de formar una nueva empresa para hacer juegos de aplicaciones. ¿Cómo se examina a un buen candidato a programador, como una persona con experiencia mínima en programación?

Quiero convertirme en programador, ¿debería elegir B ​​TECH computer science o B Sc en computadoras?

Cómo desarrollar la disciplina para aprender a programar, siempre quiero aprender, pero me vuelvo vago cuando tengo la oportunidad, sé que puedo aprender si me aplico, pero solo soy flojo, o estoy destinado a nunca ser un programador

Me estoy enseñando a programar solo con el propósito práctico de poder hacer realidad mis ideas. ¿Cuáles son las desventajas de juntar el código que encuentra en línea en lugar de hacer la mayor parte de la programación usted mismo? ¿Cómo deberías aprender si quieres programar de esta manera?

Estoy interesado en la programación pero apesta en PCM, ¿es VIT una buena opción?

Quiero comenzar con PHP en Linux. Creo que instalé todo pero no entiendo el directorio en el que debo almacenar mis archivos y / o carpetas. ¿Qué tengo que hacer?

He estado aprendiendo programación básica como C ++ y JavaScript solo para entender el lenguaje y la sintaxis. ¿Dónde entra la carne cuando tengo que entenderla lógicamente?

No soy bueno programando, ¿qué cursos puedo tomar en el campo de la informática?

Estoy interesado en la programación C ++ / DirectX. ¿Cómo me convierto en un muy buen programador de C ++ en 2 años?

No tengo computadora pero quiero aprender a programar. Por donde puedo empezar

Quiero ayudar a 'salvar el mundo a través de la programación' en mi tiempo libre. ¿Dónde empiezo?

Estoy muy interesado en la programación de redes y la compañía de mis sueños es Juniper. ¿Qué debo aprender para conseguir un trabajo en Juniper?

Tengo dificultades para resolver las preguntas de los ejercicios de JavaScript Eloquent y también para comprender los ejemplos del libro. ¿Qué tengo que hacer?

Estoy aprendiendo la programación 'C', sé algunos de los conceptos básicos hasta ahora, ¿qué podría hacer con tan poca experiencia?