Red de conocimiento informático - Espacio del host - Quiero aprender a programar, ¿qué categoría debo aprender? Por favor, ayuda.

Quiero aprender a programar, ¿qué categoría debo aprender? Por favor, ayuda.

Dirección original: /articles/4990.html

La publicación del blog es la siguiente:

Prólogo

¿Sientes que cuando ¿Te graduaste de la escuela? ¿Solo has hecho procedimientos como juguetes pequeños? Después de ingresar al lugar de trabajo, incluso si tiene poca experiencia, aún puede realizar los siguientes ejercicios extracurriculares (quejas de amigos: los cursos escolares siempre comienzan con la teoría y los proyectos de tarea no tienen ningún efecto práctico, es mejor comenzar desde el necesidades en el trabajo)

Sugerencias:

No compre libros al azar y no busque nuevas tecnologías y nuevos términos. Las cosas básicas se han acumulado durante mucho tiempo y lo serán. ser común durante al menos los próximos 10 años.

Solo mirando hacia atrás en la historia y observando el desarrollo de la tecnología en la línea de tiempo histórica se puede entender cómo será el mañana.

Debes hacerlo, no importa cuán simple sea el ejemplo, se recomienda al menos escribirlo tú mismo para ver si comprendes los detalles que contiene.

Debemos aprender a pensar y pensar por qué debemos hacer esto y no aquello. También necesitamos pensar haciendo inferencias de un ejemplo a otro.

Nota: Quizás te preguntes por qué las siguientes cosas son muy Unix/Linux. Esto se debe a que creo que la programación en Windows puede no tener futuro en el futuro. Las razones son las siguientes:

La interfaz de usuario actual está casi dominada por dos cosas: 1) la web y 2) los dispositivos móviles iOS o Android. La interfaz gráfica de Windows ya no es popular.

Cada vez más empresas utilizan Linux de bajo costo y alto rendimiento y diversas tecnologías de código abierto para construir sus sistemas. El costo de Windows es demasiado alto.

Las cosas de Microsoft cambian demasiado rápido y no son duraderas. Están jugando completamente con los programadores. Para obtener más información, consulte "Historia de la revolución de la programación de Windows".

Entonces, personalmente creo que la tendencia futura es que el front-end será Web + móvil y el back-end será Linux + código abierto. Básicamente, no hay nada que ver con Windows en el lado del desarrollo.

Introducción a la Iluminación

1. Aprender un lenguaje de scripting, como Python/Ruby

puede ayudarle a deshacerse del miedo a los lenguajes de scripting subyacentes. ​can Le permite desarrollar rápidamente pequeños programas útiles. Proyecto de práctica:

¿Procesar archivos de texto o csv? (¿palabras clave?python?csv,?python?open,?python?sys)?Leer un archivo local y procesarlo línea por línea (por ejemplo,?word ?count o registro de proceso)

¿Atravesar el sistema de archivos local? (sys,?os,?path), por ejemplo, escribir un programa para contar los tamaños de todos los archivos en un directorio y ordenarlos según él. a varias condiciones y guardar los resultados

¿Tratar con la base de datos? (python? sqlite), escribir un pequeño script para contar el número de entradas en la base de datos

Aprender a depurar de forma sencilla y formas toscas, como varias impresiones

¿Aprender a usar Google?(frase,?dominio,?usar?lector?para?seguir?tech?blogs)

¿Por qué deberíamos aprender secuencias de comandos? ¿Lenguajes? Debido a que son tan convenientes, muchas veces necesitamos escribir algo. Gadgets o scripts para ayudarnos a resolver problemas. Encontrará que los lenguajes de programación formales son demasiado difíciles de usar.

2. Familiarícese con un editor de programador (no IDE) y algunas herramientas básicas

Vim/Emacs/Notepad++, y aprenda a configurar parches de código completos, apariencia, comandos externos. etc.

Source?Insight?(or?ctag)

Usar estas cosas no es genial, pero estos editores serán más rápidos y eficientes a la hora de ver y modificar código/configurar artículos/registros. eficiencia.

3. Familiarízate con el Shell de Unix/Linux y las líneas de comando comunes.

Si usas Windows, al menos aprende a usar Linux en una máquina virtual. Instalar Ubuntu.

Asegúrate de utilizar menos interfaces gráficas.

Aprenda a usar man para ver la ayuda

¿Estructura del sistema de archivos y operaciones básicas?ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip? …

¿Aprender a usar algunos comandos de manipulación de texto?sed/awk/grep/tail/less/more?…

¿Aprender a usar algunos comandos de administración?ps/top/lsof/netstat /kill/ tcpdump/iptables/dd…

Comprenda los diversos artículos de configuración en el directorio /etc, aprenda a ver los registros del sistema en /var/log y la información de ejecución del sistema en /proc

Aprenda sobre expresiones regulares y utilícelas para buscar archivos.

Para los programadores, Unix/Linux es mucho más sencillo que Windows. (Consulte mi publicación de blog de CSDN "De hecho, Unix es muy simple" hace cuatro años). Una vez que aprenda a usar Unix/Linux, encontrará que la interfaz gráfica es demasiado difícil de usar en ciertos momentos, lo que reduce en gran medida el trabajo. eficiencia.

4. Aprenda los conceptos básicos de Web (HTML/CSS/JS) + tecnología del lado del servidor (LAMP)

El futuro definitivamente será un mundo Web, y la mejor manera de aprender WEB. Lo básico es El sitio web es W3School.

Aprenda la sintaxis HTML básica

Aprenda a seleccionar elementos HTML y aplicar algunos estilos básicos con CSS (palabra clave: box?model)

¿Aprenda a usar Firefox+? Firebug? o ?chrome? Vea la estructura de la página web que crea que es interesante y modifíquela dinámicamente.

Aprende a utilizar Javascript para manipular elementos HTML. ¿Comprensión de DOM y páginas web dinámicas (¿Dynamic?HTML:?The?Definitive?Reference,?3rd?Edition?-?O'Reilly?Media Hay capítulos gratuitos en Internet, que son suficientes). O ver ?DOM?.

Aprende a usar Firefox + Firebug o Chrome para depurar código Javascript (establecer puntos de interrupción, ver variables, rendimiento, consola, etc.)

¿Configurar en una máquina Apache o? /p>

Aprenda PHP, deje que PHP de back-end y HTML de front-end interactúen con los datos y forme una comprensión preliminar de las solicitudes correspondientes del navegador del servidor. Implementar una función de envío de formularios y visualización inversa.

Conecte PHP a una base de datos MySQL local o remota (MySQL y SQL son suficientes para aprender y usar ahora)

Completar un curso de programación de redes de una escuela famosa (por ejemplo: (actualizado ¿He escrito tanto para Kyoto?

Cabinet), Flare, MongoDB, CouchDB, Cassandra, Voldemort, etc.

Mirando hacia atrás, me siento bastante realizado, espero que no. No. Tengo miedo, he estado aprendiendo continuamente durante los últimos diez años y todavía estoy aprendiendo hoy. La vida es un proceso de aprendizaje y nivelación continuos. Sin embargo, debe haber omisiones y errores, y espero que todos puedan. agréguelos y corríjalos (actualizaré este artículo en cualquier momento según sus comentarios) Bienvenidos a todos a comunicarse conmigo a través de mi Weibo (@leftearrat) y Twitter (@haoel)

—¿Actualizar? 2011/07/19?—–

1) Algunos amigos se preguntan por qué mencioné web+móvil al principio de este artículo, pero no mencioné el desarrollo front-end de iOS/Android más adelante. Porque tengo la sensación de que la interfaz de usuario de los dispositivos móviles eventualmente será reemplazada por Javascript. Puedes usar iPhone o Android para mirar Google+ y lo entenderás.

2)

Un amigo dijo que aquí hay demasiadas cosas y no se puede estudiar por aprender. Estoy completamente de acuerdo. También dije antes en el artículo que tenemos que pensar. Además, no creas que de lo que hablo son nuevas tecnologías. Más del 95% de esta guía es básica. Y todas ellas son tecnologías básicas probadas en el tiempo.

Incluso la tecnología que te permite saberlo todo es también la tecnología que te permite encontrar un buen trabajo.

3) Un amigo me dijo que aprendiera

Ya tengo 40 años después de aprender estas cosas, así que también podría pensar en cómo ganar dinero. Quiero decirles a todos, en primer lugar, que todavía no tengo 40 años, en segundo lugar, el aprendizaje no tiene fin y, en tercer lugar, no creo que sea difícil ganar dinero. Lo que es difícil es cómo hacer que valgas tanto. ¿Cuánto dinero?

Ya sea que esté trabajando o iniciando un negocio, ¿qué lo hace más valioso a usted y a su empresa? No me atrevo a decirlo en otra parte, pero para las empresas de Internet o TI, la solidez técnica es definitivamente una de ellas.

4) Un amigo decía que la tecnología es una herramienta y uno no debería obsesionarse tanto con ella. Esto no está mal. A veces necesitamos levantar la cabeza y mirar otras cosas además de la tecnología, o decir eso. Cuando hacemos tecnología, no pensamos en por qué existe esta tecnología y por qué no es otra cosa. El problema no es la tecnología. El problema es que estudiamos mucho y nos convertimos en nerds técnicos.

5) NoSQL se ha vuelto bastante popular recientemente, pero soy un poco conservador al respecto, así que solo digo que debes entenderlo. En cuanto a Hadoop, creo que tiene un enorme potencial en sistemas distribuidos, así que necesito aprenderlo. “Para las bases de datos relacionales, de hecho es algo muy importante. Este es mi descuido y lo agregué en el artículo original.