En estos años como programador, he conocido a muchos amigos que quieren aprender programación. Las preguntas más frecuentes son cómo empezar con el lenguaje XXX, cómo aprender bien un lenguaje de programación, etc. Aquí he resumido algunas confusiones de los principiantes para compartirlas con todos.


1. ¿Cómo empezar?

El primer día de aprender a programar, la mayoría de la gente piensa: ¿cómo debería aprender? ¿Qué libros necesito leer?

Para los programadores que recién empiezan, ya sean de formación académica o no, recomiendo que primero compren un libro tipo "XXX De principiante a experto" (busquen uno con buenas reseñas), y de ser posible acompáñenlo con videos. Miren los videos junto con el libro, desde la instalación del entorno de software hasta ejecutar el primer "¡Hello World!".

Algunos amigos también pueden haber escuchado en foros a veteranos decir que debes comprar "Pensamiento de programación en XXX". Ese libro es bueno, es la biblia del lenguaje XXX, pero en mi opinión no es adecuado para principiantes. Es una pesadilla para los principiantes y fácilmente apaga tu entusiasmo por aprender.

Por supuesto, un libro como "XXX De principiante a experto" solo sirve para empezar; después de iniciarte puedes quemarlo. Si quieres dominar el lenguaje, te recomiendo estudiar seriamente "Pensamiento de programación en XXX".

En cuanto a los ejemplos del libro, te sugiero escribirlos letra por letra y probarlos tú mismo. Aunque sea lento al principio, es un proceso por el que debes pasar. Nunca uses ctrl+c, ctrl+v.


2. ¿Cómo resolver los problemas que encuentro?

Aprender un lenguaje de programación implica encontrarse con varios problemas extraños. Lo más probable es que los principiantes se topen con errores de formato de sintaxis, por ejemplo:

  • Olvidar escribir el punto y coma de fin de sentencia, omitir el paréntesis de cierre, faltan espacios, etc.
  • Palabras clave o nombres de variables escritos incorrectamente, por ejemplo, $ejemplo escrito como $runob, String escrito como Strng.
  • En una comparación de igualdad, escribir dos signos igual (==) como uno solo (=); a veces ni siquiera se pueden usar dos signos igual (==) para comparar igualdad.
  • El tipo de asignación no coincide, por ejemplo, usar una cadena para asignar un tipo entero.
  • Sangría de formato inconsistente (Python).
  • ……

Errores como los anteriores son muy comunes en principiantes. Si es un error de sintaxis, normalmente el IDE tiene buenas funciones de aviso; solo tienes que corregirlo según las indicaciones. Pero en general debes ser más cuidadoso y desarrollar buenos hábitos de programación.

Y algunos errores solo se muestran después de ejecutar; son un montón de mensajes en inglés: letra por letra las conoces, pero juntas no reconoces ninguna. En este momento muchos se sienten perdidos y no saben qué hacer. En realidad, no deben entrar en pánico, mantengan la calma; son "tigres de papel". Siempre que los mires con atención y, si no entiendes el inglés, uses herramientas de traducción como Google o Baidu para traducir, es muy fácil entender el contenido del error.

Por ejemplo, el siguiente caso:

……failed to open stream: No such file or directory in ……

Si puedes entenderlo, el significado es muy claro: archivo no encontrado. Si no lo entiendes, pásalo por Google Traductor y queda como:

......No se pudo abrir el flujo: no existe el archivo o directorio......

Ahora lo entenderás. Luego revisa cuál archivo en el código es incorrecto; cámbialo al nombre de archivo o ruta correcta y resolverás el problema.

Si con el chino todavía no lo entiendes, entonces me quedo perplejo...

En resumen: al programar, sé serio y cuidadoso, presta atención al formato, no descuides cosas. Usa un buen IDE para ayudarte a desarrollar buenos hábitos de programación. Ante un error, míralo con atención; si no lo entiendes, tradúcelo con una herramienta de traducción y luego vuelve a mirarlo.


3. ¿Dónde puedo encontrar personas para preguntar y comunicarme?

Si ya hemos mirado con atención el aviso de error y aún no sabemos cómo resolverlo, te sugiero usar los siguientes métodos:

  • Busca tu problema y tus necesidades en motores de búsqueda (Baidu, Google, Bing, etc.) para ver si alguien ha tenido el mismo problema que tú.
  • Pregunta en foros técnicos como: Baidu Zhidao, CSDN, V2EX, etc. No obstante, personalmente no lo recomiendo porque hay que esperar a que alguien responda, la eficiencia es baja y la respuesta no siempre es lo que necesitas.
  • Grupos de QQ: encuentra un grupo de QQ activo del lenguaje que estás aprendiendo y pregunta en el grupo. Si alguien responde, perfecto; si nadie responde, te sugiero ver el nivel de actividad de los miembros del grupo y enviar mensajes directos a algunos de los más activos. Si no están demasiado ocupados, seguramente te ayudarán a resolverlo.
  • Lo mejor y más directo es preguntar a un experto técnico cercano; una sola frase suya quizás te haga entenderlo todo.

También deberíamos guardar con frecuencia buenos artículos técnicos, como los de: CSDN, Blog Garden, Ejemplo, Jianshu, InfoQ, 51CTO, Zhihu, etc. Lee más sobre las experiencias y casos de los predecesores, y pruébalos tú mismo. Todo esto es muy útil para tu acumulación de conocimientos.


4. ¿Es importante el inglés?

¿Necesitas un inglés muy bueno para aprender a programar? No.

¿Es importante la habilidad del inglés? Muy importante.

Aunque hoy en día hay muchos documentos técnicos, blogs y foros en chino, también es posible aprender un lenguaje de programación sin saber inglés. Pero debes entender que muchos documentos oficiales y comentarios de código fuente de lenguajes de programación están en inglés, y muchas tecnologías de vanguardia también están en inglés. Si no lees los documentos en inglés, no podrás captar mucha de su esencia, y algunas traducciones también son inexactas.

Además, otro punto importante es que muchos mensajes de error también están en inglés. Si tu inglés es bueno, puedes entender el contenido directamente; si no, tienes que usar herramientas de traducción.

Para la solución de muchos problemas, el resultado de buscar en Baidu puede ser: jaja... Pero si puedes describir el problema en inglés y poner esa descripción en el cuadro de Google (se necesita una VPN), el primer resultado de búsqueda será en un 80% la respuesta que necesitas.

Por lo tanto, recomiendo encarecidamente aprender bien algunos términos comunes en inglés dentro de los lenguajes de programación. Si tu inglés es malo, usa herramientas de traducción para leer; con el tiempo, te darás cuenta de sus beneficios.

Por ejemplo: debug => depuración, debugger => depurador, abstract => abstracto, abstract base class => (ABC) clase base abstracta, abstract class => clase abstracta, import => importar, include => incluir, array => matriz/arreglo, command line => línea de comandos, comment => comentario, commit => confirmar (commit), compatible => compatible, compiler => compilador, component => componente, array => matriz/arreglo, thread => hilo, multi-thread => multihilo, etc.

Para más, puedes consultar:Términos comunes en inglés en programación。


5. Resumen y compartir

Creo que resumir es lo más difícil para todos, como cuando en la escuela te pedían escribir un diario todos los días; casi nadie podía mantenerlo.

Pero durante el proceso de aprender a programar, aún así sugiero que todos resuman con frecuencia los obstáculos que han superado y registren su proceso de aprendizaje. No es necesario que sea un resumen diario, pero es mejor que cada 3~5 días haya un resumen y una reflexión sobre lo aprendido anteriormente, especialmente documentos normativos y scripts de programa, por ejemplo:

  • Estándares de codificación del lenguaje XXX
  • Métodos de juicio lógico en el lenguaje XXX
  • Obtener la URL actual en PHP
  • Expresiones regulares para coincidir con correos electrónicos y números de teléfono
  • Código recursivo para estructuras de árbol
  • Soluciones al problema de caracteres chinos ilegibles
  • Encapsulación del código de conexión a la base de datos
  • ……

Creo que estas funciones no se escriben solo una o dos veces en la programación, sino que se usan con mucha frecuencia. Así que pueden resumirlas y escribirlas en sus notas en la nube (Youdao Cloud, Evernote).

Finalmente, compartir. Si tienes una buena solución a un problema, o crees que tu método es el mejor del mundo, puedes compartirlo en varias plataformas de blogs.

Aquí recomiendo que durante tu aprendizaje compartas tus notas en Ejemplo. Ejemplo ha habilitado la función de notas (requiere registro). Para la primera publicación, debes enviar la nota al correo del administrador (429240967@qq.com).

Después de pasar la revisión, te darán un código de invitación para registrarte; desde entonces podrás registrar tus propias notas en nuestra plataforma. El contenido de las notas debe ser simple y claro, y no debe desviarse del contenido del artículo correspondiente. UsaUna descripción simple + un fragmento de código simplede esta manera. Como se muestra en la siguiente figura: