¿Cómo aprendiste a codificar?

Estoy interpretando esta pregunta como “¿Cómo estás aprendiendo a codificar?” Empecé a aprender a codificar hace 45 años, y todavía espero ser realmente bueno en eso.

Estoy aprendiendo a codificar leyendo libros sobre programación, programas de lectura y programas de escritura. Muchos programas. Y hablando con programadores. Mucho hablar.

Comencé a programar el DigiCompI usando álgebra booleana en 9º grado (1969). Fue tan genial. (Minds-On Toys – Kits)

Finalmente volví a la programación declarativa usando Prolog (mi lenguaje de programación favorito) en 1986. Entre ambos programé en Fortran, PL / I (IBM y Multics) y Lisp. Para cada uno de estos idiomas leo libros, escribí programas, leí programas de otras personas y hablé con personas que eran programadores expertos.

No tomé ninguna clase de lenguajes de programación; Eso podría haber sido útil. Sin embargo, yo era un estudiante universitario en MIT y había programadores y computadoras y proyectos de programación en todas partes. Así que conseguí trabajos donde aprendí a programar en el trabajo y guardé mi educación formal para las materias que me encantaban, pero no pude encontrar a nadie que me pagara para aprender: matemáticas; Historia, teoría y crítica de la arquitectura. Teoría de la música, composición y performance (yay trombón).

Las matemáticas han sido realmente útiles en la programación: particularmente álgebra (grupos, anillos, funciones, isomorfismo), teoría de números (números primos, gran notación O), lógica matemática (teoría de pruebas, teoría de modelos, axiomas, inferencia, …), teoría de conjuntos ( unión, intersección, conjunto de potencias), y probabilidad y estadística. Recomiendo aprender tanto matemática discreta como puedas, te hará un mejor programador.

Después de trabajar durante 11 años como programador (sistema operativo Multics, herramientas de ingeniería de software asistidas por computadora), regresé a la escuela y obtuve una maestría y un doctorado en ciencias de la computación. Esto fue finalmente un aprendizaje formal que mejoró mi programación.

Finalmente, elegí los idiomas en la familia C: C, C ++, Objective C, Java. asco No me gustan estos idiomas pero son dominantes.

Mientras esté programando, siempre debería estar aprendiendo a programar mejor. Lea libros sobre programación, hable con otros programadores, lea programas de otras personas (con tanto código de código abierto, hay muchos programas disponibles para leer) y escriba muchos programas. Haga esto todos los días. Piénsalo todo el tiempo. Diviertete. Incluso después de 45 años de esto, todavía estoy teniendo una excelente programación.

La primera vez que aprendí a programar en Atari BASIC en un Atari 400 fue que mi biblioteca local les permitía a los usuarios registrarse en 1981. Tenía 11 años y 12.

El primer programa en el que trabajé, fue idea mía y fue más que el equivalente a “Hola mundo”, fue un pequeño cuestionario de matemáticas que escribí para ayudarme con mis habilidades aritméticas.

Lo que me motivó a aprender sobre la programación fue cuando presencié a un hombre de mediana edad haciendo algo en la misma máquina. Él estaba trabajando con gráficos, y estaba tratando de conseguir algún tipo de juego de carreras de caballos de baja rez que funcionara como él quería. Había practicado un poco con la animación en papel cuando era más joven, por lo que podía relacionarme un poco con lo que el hombre estaba tratando de hacer. Lo primero que me llamó la atención fueron los coloridos gráficos. Lo que me fascinó fue la idea de que este hombre estaba haciendo algo a la máquina para generarlos. Nunca había presenciado esto antes. El tipo no se veía sobrehumano, o algo fuera de lo común. Eso me dio mi primera pista de que tal vez podría hacer lo que él hizo.

Al principio solo era un deseo. Pensé que desde que era un adulto mayor, quizás trabajando para la biblioteca, debe haber tenido un permiso especial para usar la computadora. Esa había sido mi experiencia. Las computadoras eran caras, delicadas y raras, y generalmente solo las usaban personas especiales, incluso si eran niños. Mi madre notó mi interés y me incitó a preguntarle a la bibliotecaria si podía usarlo. Ella dijo que sí, cualquier persona de 10 años o más podría usarlo. Todo lo que tenía que hacer era tomar una orientación de 15 minutos.

Probé un tutorial interactivo de Atari llamado “Una invitación a la programación”. Fue un poco agradable ya que comenzó lento, pero no diseñaron bien la curva de aprendizaje. Se empinó bastante rápido, y me perdí y me frustré. Después de repasarlo un par de veces, me di cuenta de que esta no era la forma correcta de ir por mí, pero mi objetivo no me disuadió. Le pregunté a un bibliotecario si tenían algo más que pudiera usar para aprender sobre la programación de la computadora, y me dijeron que tenían el manual de Atari Basic. Lo intenté. Fue menos emocionante y me dio un dolor de cabeza al leerlo, pero descubrí que estaba aprendiendo más de él que del tutorial, así que seguí leyendo. Eso me dio un buen comienzo, pero aún necesitaba mucha ayuda. Afortunadamente, siempre había otros niños y adultos jóvenes que colgaban alrededor de las computadoras, y discutíamos los problemas de programación. Fueron una tremenda ayuda. Al cabo de varios meses, me enteré de que había revistas de computación en las que había programas de escritura que los lectores podían probar. Los leí con entusiasmo, escribí los listados impresos y leí las explicaciones técnicas de cómo funcionaban. Esto abrió posibilidades en mi mente para mis propios proyectos.

Aprendí a programar durante un largo y largo lapso.

Los primeros programas que escribí (bastante mal, podría agregar), estaban en BASIC en una variedad de máquinas. Realmente no sabía lo que estaba haciendo y en su mayoría solo estaba experimentando, a partir de ejemplos en la documentación o revistas. Modificaba los programas existentes para hacer cosas nuevas, o escribía nuevos programas y me topaba con los límites de mi conocimiento. La mayoría de mis programas eran horribles. Pero, me mantuve en ello.

Para mi octavo cumpleaños, recibí una TI-99 / 4A.

En ese momento, ya sabía algo de BASIC de otras máquinas a las que tenía acceso (principalmente Commodore VIC-20 y Commodore 64). Me lancé a aprender TI BASIC, y luego a TI Extended BASIC. También obtuve una suscripción a 99’er Magazine (más tarde conocida como Home Computing Magazine), e intenté absorber todo lo que pude desde cualquier ángulo: revistas, libros, lo que sea.

Alrededor de 4 años después, obtuve un cartucho de memoria Mini de TI. Este cartucho con respaldo de batería le permite programar en lenguaje ensamblador para la TI-99 / 4A. Me enseñé el lenguaje ensamblador y comencé a aprender cómo funcionaban los niveles más bajos de la computadora.

También aproveché todas las oportunidades que pude para aprender a programar otras computadoras (principalmente en BASIC en este momento), incluyendo Commodore PETs, Apple] [s, TRS-80s, IBM PCs, etc. Había muchos puntos en común, pero también muchas diferencias.

Avancé unos años y obtuve acceso a un compilador de Pascal. Hubo Apple Pascal en Apple ///, y Turbo Pascal 3 en la PC. Pasé la mayor parte de mi tiempo de Pascal en Turbo Pascal. (Realmente nunca entendí a Apple Pascal).

Pascal me enseñó acerca de las funciones y procedimientos y la programación estructurada de una manera que BASIC no pudo. BÁSICO, después de todo, carecía de variables locales. Bueno, al menos ese fue el caso de la forma más común de BASIC, programada en el estilo más típico. TI Extended BASIC ofreció subrutinas estructuradas, al igual que QBASIC, pero su utilidad se perdió en mí hasta que encontré a Pascal, lo que me obligó a aprenderlas y apreciarlas .

Intenté enseñarme C durante la escuela secundaria, pero la falta de acceso a un compilador decente me frenó. Sin embargo, cuando llegué a la universidad, aprendí C durante mi primer año y no miré hacia atrás.

Paralelamente, aprendí varios lenguajes de ensamblaje: TMS9900, 6502 y 8086. No era necesariamente un gran programador en ninguno de estos. Pero, logré generar algunos hacks decentemente frescos.

Durante años después de eso, fui programador de ensamblados en C +. Tomé más lenguajes de ensamblaje cuando encontré nuevos procesadores. 6805, 68HC11, 8051, etc.

A lo largo de todo este tiempo, hubo un hilo común: realmente no sabía lo que estaba haciendo. Pero, seguí jugando con eso, y cuando empecé a darme cuenta de lo que estaba haciendo, empujé el sobre a nuevos espacios donde no sabía realmente lo que estaba haciendo. Hubo algunas dinámicas clave que sentí que sirvieron como claves para mi éxito:

  • Estar cómodo con no saber lo que estaba haciendo, pero aun así tratar de hacerlo de todos modos. Si alguna vez hubiera sentido que no debería hacer esto porque no sabía cómo, nunca lo habría intentado. En cambio, lo tomé como un reto para resolverlo.
  • Nunca estar cómodo con solo tener éxito. Una vez que me di cuenta de lo que estaba tratando de resolver, eso significaba que era hora de descubrir lo siguiente. No me sentía cómodo quedándome quieto después de haber logrado mi meta a corto plazo.
  • Tratando de averiguar “cómo hicieron eso”. Siempre he tenido la sed de descubrir cómo funcionan las cosas y cómo replicar las cosas que me cautivaron. Si no pudiera encontrar un libro o artículo que lo explicara, trataría de descifrarlo por mí mismo.
  • Intentar descifrar o aprender mejores maneras, y no siempre suponer que sé mejor. Recuerdo la primera vez que vi una implementación rápida (en Northstar Z80 BASIC), y me preguntaba cómo una rutina con una llamada a RND en el medio podría arreglar las cosas. Estaba transfiriendo el código entre dos máquinas, y reimplementé el ordenamiento como una especie de burbuja. Pero archivé eso en mi memoria y luego supe cómo funciona el ordenamiento rápido y por qué RND era importante. Desde entonces, he intentado desafiar mis suposiciones cuando veo algo que no tiene sentido, y desafiar las suposiciones de los demás cuando dicen “Deberías hacerlo de esta manera”. Por lo que sé, podría estar en un lado o en el otro de la división de quicksort-vs-bubblesort, y ellos también podrían. Esa experiencia con quicksort fue tanto humillante como empoderadora.
  • Me di desafíos continuos. Programé por diversión, y parte de eso es buscar nuevos desafíos para estirar las habilidades. Competí en concursos de programación, por ejemplo. Muchos de los involucrados tenían problemas complejos de optimización, que me enseñaron un nuevo conjunto de habilidades. También desarrollé un emulador de Intellivision, una cadena de herramientas y algunos juegos. Para mí, hice de la programación un esfuerzo casi diario.
  • Mantenía mi juego actual (al menos eventualmente). Una vez que aprendí C y las estructuras de datos, hubo un período en el que pensé que sabía todo lo que necesitaba saber. Pero con el tiempo, se hizo evidente que no lo hice. Había clases crecientes de programas que ni siquiera sabía cómo probar la programación. Finalmente, me saqué de mi rutina y aprendí lo que podríamos llamar “C ++ moderno”. (Y antes de eso, me lancé a Perl 5, y luego a Perl 5 + Moose). Esa inducción incluía el aprendizaje orientado a objetos, varios patrones de diseño, programación genérica, etc.
  • Enseñar a los demás. No hay una prueba más fuerte de tus propias habilidades que tratar de enseñárselas a otra persona. Si realmente tratas de enseñar a otros cómo hacer algo, hasta el punto de que comprendan, tienes que entender bien el material.

En estos días, cuando se trata de la programación de cualquier lenguaje en particular, hay una gran cantidad de recursos en línea para darle los detalles. Algunos de esos recursos ofrecerán enfoques de libros de cocina para problemas comunes, y otros son más abstractos, no están vinculados a un lenguaje específico. Y hay mucho en el medio.

Si realmente desea aprender a programar “en general”, entonces querrá enfocarse en comprender esos recursos más abstractos. Claro, puede confiar en un enfoque de libro de cocina para resolver un problema. Pero vale la pena entender por qué funciona y cómo podría traducirlo a otro idioma (si tiene sentido hacerlo), o modificarlo si tiene un problema ligeramente diferente.

Vale la pena leer artículos de programadores expertos sobre formas de atacar problemas. Vale la pena intentar comprender los estilos de programación que aún no ha utilizado. (Imperativo, procedimental, orientado a objetos, genérico, funcional …) Cada uno le da una perspectiva diferente sobre el problema que está tratando de resolver y le brinda diferentes herramientas para atacarlo.

Y lo más importante: PRÁCTICA. Para aprender realmente a programar, necesitas programar. Regularmente. Todo el tiempo. Si no practicas una habilidad, la perderás.

Hay algunas habilidades de programación que probablemente he perdido. Si me pidieras que escribiera un programa de Pascal hoy, probablemente lo haría muy mal. Probablemente volveré a la competencia básica en unos pocos días, pero no sería un experto de inmediato. Pero si me pidiera que reuniera un script en perl y un programa en C ++ 14, sería mucho más eficiente. ¿Por qué? Práctica regular en esos idiomas.

Pero incluso con el programa Pascal, mis problemas principales serían la sintaxis y los idiomas específicos del idioma. Los algoritmos y los enfoques para estructurar y descomponer problemas tienden a ser agnósticos del lenguaje.

Resumiendo: aprendí a codificar haciendo. Busqué recursos para ayudarme cuando y donde pueda. No me rendi Me permití sentirme cómodo operando en el límite de mi conocimiento y capacidad, y continué empujando esa frontera hacia adelante. Traté de enseñar a otros lo que sé, lo que me obligó a saberlo mucho mejor. Reconocí que no lo sé todo y que podría aprender algo de aquellos que lo saben mejor. Y finalmente, no solo “hice”, seguí “haciendo” y seguí “haciendo”. No hay sustituto para la práctica.

La codificación siempre es fácil de aprender mi amigo !! Infact nuestro cerebro está programado para comprender conceptos de codificación que incluyen tanto el razonamiento como la lógica.

Si eres nuevo en la codificación, comienza con el lenguaje C, esto será fácil de entender para el principiante y sentará una buena base para los conceptos básicos de programación. Dedique suficiente tiempo a aclarar sus conceptos básicos de diferentes fuentes (y cuando digo que soy realmente serio porque como programador puedo decirle lo difícil que es aprender incluso el concepto fácil que faltamos antes debido a algún factor 😉). Después de obtener una buena comprensión de los conceptos, continúe para aprender los conceptos de OOPS, ya que no solo será fácil de aprender después de aprender conceptos básicos, sino que también aumentará sus habilidades de programación. Estas son algunas de las fuentes que proporciono desde mi propia experiencia que catalizarán sus habilidades de programación.

  • thnewboston canal de youtube: Aprenda C, C ++ desde aquí muy rápido.
  • Javatpoint – Una solución de toda la tecnología: aprendí Java de muchas fuentes, ¡pero finalmente es algo que realmente me encantó! Su forma de hacer que entiendas es maravillosa, junto con algunos ejemplos prácticos fáciles de implementar.
  • Java Brains: Los mejores tutoriales en video para comprender los conceptos avanzados de Java junto con diferentes marcos.

Soy más joven y aprendí a programar solo hace 6–7 años, ¡así que mi viaje es un poco diferente al de muchas personas aquí! Y también, principalmente trabajo en la web, así que la forma en que llegué a la codificación también es un poco diferente. Pero dado eso, creo que empecé en el mismo lugar que la mayoría de las personas, con una fascinación en la pregunta “¿Cómo hacen estas personas los programas de computadora?”

Comencé a codificar cuando los MOOC crecían en popularidad y encontré el curso CS 50 de David Malan en Harvard y ¡empecé a aprender los conceptos básicos de la programación en C! A partir de ahí decidí especializarme en Matemáticas / Ciencias de la Computación en UCLA, donde me sumergí en lenguajes más orientados a objetos como C ++ y Java.

Una vez que me gradué, decidí que estaban pasando muchas cosas interesantes en la web, así que luego me enseñé Javascript utilizando los recursos disponibles en línea (cosas como CSX, Javascript Eloquent y ReactiveX) y me puse al día con bastante rapidez. (Disfruté de estos tres en particular porque no tenía muchas manos y simplemente seguiste codificando y codificando hasta que lo has descubierto)

Ahora soy un ingeniero de fullstack que trabaja principalmente con React y Node, y aún sigo aprendiendo más, específicamente con el uso de Python para el aprendizaje automático / redes neuronales.

Una vez que comienzas a codificar, ¡nunca te detienes! ¡Hay tanto por ahí!

Estoy seguro de que he escrito esto en algún lugar antes, pero eh qué demonios.

Me interesaba la electrónica y la programación de robots cuando era niño. Me fascinó la mano humana e hice varias garras de trabajo, una pareja motorizada que mostraría y contaría en primer grado. Siempre estaba dividiendo pelos acerca de cómo los “robots” de control remoto no contaban.

Técnicamente, había estado programando robots de alrededor de 8 y me metí realmente en Lego Mindstorms de 10-13, luego un asistente entrenó a un equipo de FLL en 14.

Conseguí mi primera computadora a las 6, fue una mano de Mac. Tuve suerte. Mi familia siempre tenía computadoras portátiles que mi papá obtenía de su trabajo (de lo contrario tendrían que ser desechadas).

Cuando tenía 10 años, mi madre sacó un libro de la biblioteca para crear páginas web. Fue demasiado dificil Ella me consiguió otro libro. Me metí realmente en ello. Luego me expandí a lo largo de los años, solo seguí aprendiendo en diferentes áreas.

Saqué muchos libros de la biblioteca. Apilados hasta mi barbilla casi todo el tiempo. Un viejo amigo mío me mostró un Linux Live CD con el que estaba jugando. Me metí realmente en Linux, comenzando con Fedora Core 4. Pedí un libro de Java para mi cumpleaños.

Teníamos acceso telefónico, solo podía usarlo como media hora al día. PHP tardó toda la noche en descargar. Una vez a la semana íbamos a un lugar para algún grupo. El lugar tenía wifi, así que descargué todos los scripts y el software (como Visual Studio) y el código que pude durante una hora, y los resumiré durante la próxima semana.

Hice mi primera conversación AI en 12. Creo que su nombre era Bob o algo así. Era primitivo, pero funcional. En ese momento, era muy bueno en eso, me metí con mis propios agentes de MS. Leí cualquier cosa que pudiera obtener relacionada con la IA.

Nunca dejé de codificar y hacer cosas. Hasta el punto de que algunas veces mis padres me quitaron mi computadora portátil porque se estaba interponiendo en el camino de la escuela.

Jugado con muchos idiomas desde C # hasta PASCAL.

Con el tiempo conseguimos la conexión inalámbrica. Seguí ralentizando la carga de archivos ISO de mis compilaciones de Linux personalizadas y otras cosas web. El desarrollo se hizo mucho más fácil. Podría buscar cosas en lugar de usar libros. StackOverflow llegó a la masa crítica y se volvió útil cuando tenía 15 años.

Audité una clase de sistemas operativos y me gradué de la escuela secundaria el próximo año. La universidad se volvió borrosa, aprendí mucho más en cuanto a conceptos y teoría, seguí trabajando en mis propios proyectos, trabajé durante algunos años durante y después de la universidad, y aquí estoy.

Tú no, aprendes a convertirte en programador, ENTONCES aprendes codificación.

¿Cual es la diferencia?

Programar es averiguar los pasos necesarios para resolver un problema o lograr un objetivo. Puede escribirse en inglés, dibujarse en un diagrama de flujo o representarse de otras maneras.

La codificación es tomar un programa y escribirlo en un lenguaje de programación, por lo que puede ejecutarse en una computadora. Una vez que descubra cómo, por ejemplo, dar a un cliente un descuento del 10% por ser un cliente habitual, puedo escribirlo en el programa para el registro y la computadora puede hacerlo. Pero primero tengo que averiguar cómo hacerlo: qué es un “cliente habitual” y cuánto descuento damos a la cantidad de “regularidad”, etc. Ese es el programa.

Comience con algoritmos y estructuras de datos para aprender programación. Una vez que entiendes la programación, aprender idiomas para codificar un programa es relativamente simple. (Aprender a ser cirujano de corazón es la parte difícil: aprender francés, así que puedes hacerlo en Francia, es fácil).

Déjame que recuerde … una Navidad, mi madre me consiguió lo único que pedí, una computadora Gateway (ahora la compañía infantil de Acer). No estoy seguro de la edad que tengas, pero eran conocidos por tener la impresión de las vacas en sus cajas, y por un vistazo en su sitio web, todavía lo son.

De todos modos, siempre me gustó construir cosas, así que más tarde compré Lego Mindstorm y comencé a escribir pequeños “programas” que le pedían al robot que evitara golpear la pared cuando intentaba abrirse paso. Después de eso, fue un estorbo durante algunos años y nunca hice mucho más hasta que me gradué de la escuela secundaria.

En ese momento decidí tomar una clase de programación seria y ver si todavía me gustaba. Fue en Python y desde que ingresé a esa clase el primer día, me enganché, me hice adicto, quedé atrapado y absorto en el CÓDIGO. Python es un gran lenguaje para comenzar si quieres aprender a programar. Personalmente para mí, fue Python -> C -> C ++ -> Haskell -> C # -> Java -> R -> CUDA -> HTML. R, C # y CUDA son lenguajes más específicos. Conozco personas con más de 30 años en el juego que nunca aprendieron eso, así que ten en cuenta lo que planeas hacer.

¡Consigue un libro y empieza! O inscribirse en una clase gratuita y empezar. O … siempre escuchas a la gente hablar sobre “MIT this y MIT that, son solo un nombre”, MIT es una gran escuela. No solo por su nombre, sino por la sustancia que viene con el lugar. ¿Te gustaría ir allí? Deja de desear y solo toma las clases. ¡Gratis! Me refiero a que todo su programa de CS está en línea, si puedes superarlo, entonces es igual que asististe.

Y al prever los posibles comentarios que pueda obtener sobre esa declaración, apruebe los cursos porque dice algo. Pero todo depende de cómo aprendas. Personalmente lo hago muy bien con los libros y tutoriales en línea. Algunas personas necesitan un profesor y tareas asignadas. Algunos necesitan un trabajo con un jefe colgado sobre ellos, otros solo necesitan un proyecto en el que trabajar y son buenos. Solo tienes que ser honesto con quién eres y cómo operas.

¡Buena suerte!

Mis primeras clases de codificación empezaron en la Clase 6, cuando comencé con Logo, luego creé hermosos dibujos con Logo. Cuando estaba en la clase 7, comencé con QBasic. Diferente implementación lógica fue lo principal que aprendí. En ese momento me interesé en la programación y en nuestra escuela, presentamos un proyecto que era una aplicación bastante basada en la consola y el proyecto nos proporcionó algunas recompensas y tenía muchas ganas de saber acerca de la codificación, pero el alcance no estaba allí y la computadora era muy valiosa En ese tiempo. Como familia de clase media, era un sueño tener una computadora personal. Entonces, tuve que interrumpir mi aprendizaje y, después de 5 años, resolví JEE y elegí a IT como mi bachiller en tecnología. De nuevo comencé a codificar desde el segundo semestre y era C. Con este conocimiento de la programación en C, teníamos varias áreas que cubrir, Estructuras de datos, Algoritmos, Métodos numéricos, Programación en red y también aprendemos el script de Shell como nuestro plan de estudios universitario. Cuando estábamos en el quinto semestre, nos presentaron a Java y aprendimos Java durante un año y en el séptimo semestre comenzamos con nuestro Proyecto universitario, que elegí un proyecto respaldado por Java. Se completó perfectamente y obtuvimos una buena puntuación en el proyecto. Terminé mi universidad en 2011 y, como miembro del campus, me uní a Cognizant y me asignaron como desarrollador de Java, en el trabajo aprendí diferentes marcos, bases de datos, consultas SQL, servicios web, servicios REST y muchas otras cosas. Ahora soy un desarrollador de pila completa y tengo mi propio sitio web alojado en http://palash90.in y también alojo series de blogs relacionados con Java, NoSQL y algoritmos en http://java.palash90.in , http: //nosql.palash90 .in y http://algorithms.palash90.in

Así es como se ve mi viaje con las computadoras.

Tomé un enfoque basado en proyectos para enfocarme en objetivos específicos como construir un sitio web o automatizar una tarea repetitiva. Una vez que identifiqué un objetivo, seguiría estos pasos:

Investigación: Pasé una semana más o menos investigando lenguajes de programación, marcos y herramientas que podrían usarse para construir mi proyecto.

Aprender: vería, leería, consumiría, tutoriales de todas las redes para obtener una comprensión básica de los idiomas, marcos o herramientas necesarios para construir mi proyecto. Si está buscando un lugar para encontrar un buen contenido de aprendizaje, visite hacksource.xyz. Es un motor de búsqueda de tutorial de programación que he estado trabajando en el contenido agregado de los principales proveedores de contenido.

Construir: Una vez que descubrí lo básico, salté. Aquí es donde ocurre el verdadero aprendizaje. Al principio, pasaba la mayor parte del tiempo buscando en Google, merodeando en Stack Overflow y publicando en tableros de mensajes aleatorios, etc. Aunque no siempre tenía ganas, todos los días escribí una línea de código o aprendí algo nuevo. Una victoria y un paso más cerca de construir mi proyecto y aprender a codificar.

Repito: Una vez que completé mi objetivo inicial, enjuagué y repetí. Cada vez que creé algo nuevo se volvió un poco más fácil que el anterior.

Después de hacer esto suficientes veces, había creado herramientas, sitios y otros artefactos mientras aprendía a codificar.

La codificación no es fácil de comenzar porque necesita un cambio completo en nuestro enfoque de pensamiento. Solo necesita aprender cómo romper el enfoque de su solución en pasos secuenciales . Esto es lo más importante, por ejemplo, si no eres programador y te pido que escribas pasos para ordenar un conjunto de números, la mayoría de las personas que me incluyen al principio no entienden cómo escribir en pasos. Si crees que puedes escribir, entonces te digo que eres familiar con la codificación.
Entonces, creo que la mejor manera de aprender a usar el coading es escribir código para muchos problemas resueltos. Si crees que te atascas, ve sus soluciones, entiéndelo e inténtalo de nuevo.
Creo que la forma más rápida de aprender es ver y practicar muchos ejemplos.
La técnica de aprendizaje automático es un ejemplo que puede probar mi afirmación. En aprendizaje automático Entrenamos nuestro sistema con muchos ejemplos y su solución (si conoce ML, entonces las características y la etiqueta). Lo mejor de este aprendizaje Nuestro sistema comienza a predecir resultados para un nuevo problema.
Algunas de estas técnicas están inspiradas en nuestro cerebro (Red neuronal artificial). Por lo tanto, un enfoque similar de aprendizaje podría ayudarlo.

Mi papá le enseñó a mi madre a codificar mientras estaba en su vientre. Aprendí escuchándolo. El problema es que ella se durmió mientras él le mostraba cómo escribir pruebas unitarias. Por eso nunca escribo pruebas unitarias.

Es una broma

Me enseñé BÁSICO cuando tenía 13 años. Mi papá había comprado un libro de la biblioteca sobre computadoras y me enamoré del libro. ¡Quería una computadora! Entonces, le pregunté a mi tío que vive en el Reino Unido. Me consiguió un ZX Spectrum con 64K ram. No hay disco duro. Si quería guardar su programa, lo guardó en una cinta de cassette. Si quería volver a cargarlo, tenía que esperar hasta que terminara en el lugar donde lo guardó. Tardó un par de minutos en cargar algo … y te gustó. Usaba BASIC, sin bucles, o funciones. Todo lo que tienes es IF y GOTO. Mi hermano y yo nos divertimos intentando hacer un juego de desplazamiento lateral. Creo que hicimos 1 pantalla en 3 meses.

La computadora se rompió y mi papá se la quitó y nunca la devolvió. Pensó que estábamos gastando demasiado tiempo en eso. Para entonces, todos en mi familia sabían que amaba la programación. Entonces, me comprarían libros de programación. Estos eran básicamente libros llenos de listas de programas que podrías escribir en el Spectrum. El problema era que no tenía un espectro. Entonces, comencé a leer los programas y a tomar notas en los márgenes que hacían un seguimiento de las variables. Corrí el programa en mi cabeza. Una tía me compró un libro que tenía un artículo básico. Comencé a leer eso también

Luego en la universidad nos enseñaron Pascal, FORTRAN y COBOL. ¡¡Aburrido!! En realidad no. Me gustaba Pascal. De Pascal me enseñé C y C ++. C ++ era muy confuso y solía leer religiosamente el libro de C ++ hasta el día en que se hundió en mi cabeza y luego todo quedó claro.

Después de eso estuve trabajando en programación en Visual C ++. Me cansé de Visual C ++ y de los estúpidos CD de MSDN, y aprendí Java por mi cuenta.

Aprendí a codificar solicitando un trabajo de medio tiempo sin experiencia previa en programación como estudiante de primer año en la universidad. Fui asesorado por dos estudiantes de clase superior y cuatro programadores muy inteligentes. Me dieron asignaciones de trabajo reales para ejecutar en el mainframe IBM 360 usando tarjetas perforadas como método de entrada. Comencé con el lenguaje de ensamblador de FORTRAN II, PL / 1 y 360. Tuve acceso a leer los programas escritos por otros, así como a confiar en las publicaciones de los proveedores.
Leí una cita en otro lugar que dice “Frota tu pecho, tus brazos se cuidarán solos”. Si bien descubrí que eso es cierto, hay un corolario de esto: siempre entiende “¿qué problema estamos tratando de resolver?”. La persona que le pide que se frote el pecho puede no entender completamente el problema, lo que resulta en un movimiento inútil del brazo.
Con el tiempo, he aprendido que no es prudente volverse “demasiado inteligente” sobre las prácticas de codificación. Los estudiantes universitarios reciben ejercicios de programación cuyas soluciones no se revisarán una vez que se haya obtenido una calificación aprobatoria. Siempre diseñe soluciones y escriba su código para la persona que lo seguirá en ese trabajo. Es posible que esa persona no haya aprendido todos los trucos de codificación “inteligentes” que usted conoce, pero se espera que haga modificaciones al programa que creó.
La humildad es el mejor enfoque. Uno siempre puede aprender nuevas técnicas de otras personas. No tenga miedo de hacer preguntas.

Mi profesor de informática me presentó a C en 8º estándar. Fue una gran suerte para mí que llegué a conocer la programación en una etapa muy temprana de mi vida.

Así que en 8º estándar, mi amigo y yo solíamos escribir pequeños programas cortos en C como palindrome, calculadora, etc. Pero nunca nos enseñaron a programar muy a menudo.

Pero estábamos muy interesados. Intentamos encontrar algunos tutoriales en Internet, pero no pudimos entenderlos. Finalmente, terminamos con esto. Fabricante de juegos

Nos encantaba jugar juegos y estábamos interesados ​​en crear nuestro propio juego. Descargamos la versión de prueba gratuita de Game Maker 7. Fue muy divertido aprender a hacer juegos. Pronto descubrimos cómo escribir pseudocódigo, qué son los sprites, qué son los objetos, las colisiones, la velocidad, la física de los juegos, etc. Game Maker nos proporcionó una interfaz gráfica de arrastrar y soltar para crear escenas de juego, jugadores, sus interacciones, etc. También el lenguaje Game Maker para escribir pequeños scripts.

Pronto, terminamos creando muchos juegos pequeños similares a Mario. También teníamos música de fondo, puntuaciones altas, etc., como características del juego.

Avanzando ahora, mi amigo está desarrollando Java Game Engines y estoy escribiendo aplicaciones de Android para divertirme. En definitiva, este es nuestro viaje.

Aprendí fuera de línea de los libros. No había acceso público a internet en aquel entonces.

Tampoco había libros de tipo introductorio de ‘x para dummies’, los libros que sí existían eran a menudo guías de referencia concisas que obviamente estaban escritas para personas que ya sabían lo que estaban haciendo. Solo leer los libros sería una tarea compleja.

Fue innecesariamente difícil porque no había nadie a quien preguntarme cuando llegué a una barricada, esto fue a mediados de los 80. En su lugar, tuve que resolverlo por mí mismo, lo que podía llevar muchas horas o incluso días.

Me las arreglé para aprender a escribir programas de lenguaje ensamblador Básico y Z80.

Los niños en estos días lo tienen fácil. Con el acceso a toda la información que está en la web al alcance de mi mano, podría haber aprendido mucho más en mucho menos tiempo.

De hecho, ahora mismo aprendo mucho más en menos tiempo. Estoy aprendiendo cosas nuevas a un ritmo más rápido que nunca y ahora estoy en mis primeros 40 años, todo esto se debe a la web y la información que está disponible gratuitamente en ella.

Mi primera fuente fue una computadora con BASIC. Bueno, un ZX-81. Aprendí a programar simplemente escribiendo código. Y esto fue a principios de los 80’s.

También tuve una ventaja ya que mi padre era un desarrollador de software, así que tenía la ventaja adicional de un mentor.

También coleccioné revistas y libros sobre la ZX-81 y luego sobre la programación en general y aprendí a convertir el código BASIC destinado a otras computadoras a ZX-81 BASIC.

En ese entonces era muy poco común, pero mi escuela también ofrecía clases de computación, incluyendo lecciones en el idioma Pascal. Cuando tuve una computadora nueva, la Sinclair QL, ya que la PC era demasiado cara en ese entonces, podría haber escrito código en QL-BASIC pero decidí comprar un compilador de Pascal para que aprendiera a aprender a Pascal.

Cuando finalmente obtuve mi primera PC real, en algún lugar alrededor de 1988, comencé a programar en Turbo Pascal y seguí usando Turbo Pascal. Y seguí coleccionando libros y revistas para seguir leyendo y aprendiendo.

Alrededor de 1995, actualicé a una PC con Windows 95 y ya estaba usando Borland Delphi, un compilador de Pascal muy popular en ese entonces. Delphi era extremadamente popular entonces muy útil para conseguir nuevos trabajos. Para entonces, también había estudiado otros lenguajes de programación, incluyendo Forth y COBOL. De hecho, soy un desarrollador profesional de COBOL, según uno de mis certificados. Pero también aprendí sobre C y C ++ porque necesitaba poder llamar a las bibliotecas de C / C ++ desde mi código de Delphi. (Por ejemplo, la API de Windows está escrita en C, así que para usarla, debe saber cómo interactuar con ella).

Y cuando Microsoft .NET apareció en el mercado, en algún momento al inicio del nuevo milenio, lo compré para poder ser uno de los primeros que supieran cómo usarlo.

Entre 2005 y 2010 he estado desarrollando tanto en C # como en Delphi con el código ocasional en C, pero Delphi estaba en declive y C # estaba aumentando, por lo que hoy en día escribo principalmente el código C #. De vez en cuando creo código C o C ++ para mis tableros Arduino y aún mantengo mis habilidades con Delphi / Oxygene / FreePascal por si acaso lo necesito de nuevo.

He aprendido de 15 a 20 lenguajes de programación diferentes durante todo esto, incluidos Assembly y Brainfuck. También tengo una biblioteca bastante grande de libros relacionados con la codificación, que ahora son más de 200 libros diferentes. Mi compra más reciente fue “El lenguaje de programación C ++” de Bjarne Stroustrup porque quería la versión en inglés de este libro. Hace casi una década, había comprado la traducción al holandés del mismo libro, pero no es cómodo leer un libro bilingüe.

Entonces, en resumen: simplemente comience a codificar y lea muchos libros. Y si es posible, ¡encuentra un mentor!

Selecciona un lenguaje de programación y apégate a él. Una vez que aprenda un solo lenguaje de programación, estoy seguro de que otros lenguajes y tecnologías serán más fáciles de aprender más adelante.

Recomendaría aprender c ++ y aprender bien todos los conceptos de OOP. Luego muévase a java o c sharp o python.

Recomendaría C ++ primer plus por prata para aprender c ++. Para Java puede seguir material oficial de Java de Oracle Corporation.

También será beneficioso el conocimiento adicional de bases de datos y redes de computadoras.

La práctica hace al hombre perfecto, así que codifica más y no te desanimes si te enfrentas a errores mientras aprendes. Cuantos más errores resuelvas, mejor te vuelves.

Espero que esto ayude. Todo lo mejor !!

Utilicé el “Tutorial de Coronado C” para aprender C y luego el “Tutorial de Coronado CPP” Este no fue, técnicamente hablando, mi primer lenguaje de programación, ya que aprendí Básico y un poco de Fortran antes de eso. Pero esta fue la primera vez que realmente aprendí a programar, aprendiendo sobre punteros y programación orientada a objetos.

Estos tutoriales todavía están disponibles en línea hoy en día, posiblemente sin cambios o casi, ya que los fundamentos de esos idiomas son eternos, supongo.

Básico en una computadora MSX en 1993. Lo creas o no, esta computadora era la cosa más caliente en ese entonces 🙂

Pero encenderlo fue el mayor cambio: un cursor parpadeante. ¿Quiero jugar un juego? mejor codifícalo.

Hola,

Soy un graduado de CS, leí muchos libros de programación desde el principio mientras perseguía mi Grad. Cuando entendí cómo funciona el flujo de codificación, practiqué mucho la comprensión del mismo código de una manera diferente posible.

Aprender un código depende de cómo lo mires y de qué tipo de tecnologías realmente te interesa aprender.

Te recomiendo pasar por la siguiente url una vez

  1. ¿Qué lenguaje de programación debe aprender un principiante en 2016? | Codementor
  2. El mejor lenguaje de programación para mí en 2016

Feliz amigo de la codificación.

Saludos,

Sumanth, Amor al Código.