Código fuente de Xssproxy
La publicación del blog es la siguiente:
Prefacio
¿Sientes que cuando te graduaste de la escuela, simplemente ¿Hizo un pequeño programa parecido a un juguete? Después de ingresar al lugar de trabajo, incluso si no tiene experiencia, aún puede realizar los siguientes ejercicios extracurriculares (algunos amigos se quejaron: los cursos escolares siempre comienzan con la teoría y los proyectos de tarea no tienen ningún efecto práctico, es mejor comenzar con las necesidades laborales)
Sugerencias:
No compre libros al azar y no busque nuevas tecnologías ni nuevos términos. Las cosas básicas se acumularán con el tiempo y serán algo común durante al menos los próximos 10 años.
Mire hacia atrás en la historia y observe el desarrollo tecnológico en la línea de tiempo de la historia y comprenderá cómo será el mañana.
Hay que hacerlo. No importa cuán simple sea el ejemplo, le sugiero que al menos lo escriba usted mismo para ver si comprende los detalles.
Debes aprender a pensar y pensar por qué haces esto y no aquello. Tenemos que pensar en esto a través de analogías.
Nota: Quizás te preguntes por qué las siguientes cosas están sesgadas hacia Unix/Linux, porque creo que la programación en Windows puede no tener futuro. Las razones son las siguientes:
Ahora el usuario. La interfaz es casi utilizada por ambos. Dominan dos cosas: 1) Web, 2) dispositivos móviles iOS o Android. La interfaz gráfica de Windows 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 se vuelven demasiado rápidas y no duran. Están jugando totalmente con los programadores. Consulte La historia de la revolución de la programación de Windows para obtener más detalles.
Así que, personalmente, creo que la tendencia futura es el front-end web móvil y el back-end de código abierto Linux. Windows básicamente no tiene problemas en el lado del desarrollo.
Introducción a Enlightenment
1. Aprenda un lenguaje de programación, como Python/Ruby.
Puede liberarte del miedo a los lenguajes de bajo nivel, y los lenguajes de scripting pueden permitirte desarrollar rápidamente pequeños programas útiles. Proyecto real:
¿Procesando 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, recuento de palabras o registro de proceso)
¿Atravesar el sistema de archivos local? (sys,?os,?Path), por ejemplo, escriba un programa para contar el tamaño de todos los archivos en un directorio, ordenarlos según diversas condiciones y guardar los resultados.
¿Manejo de bases de datos? (¿Python? Sqlite), escriba un pequeño script para contar el número de entradas en la base de datos.
Aprenda a depurar de varias formas simples y toscas, como por ejemplo imprimiendo.
¿Aprender a utilizar Google? (frase,?dominio,?uso?lector?dónde?seguir?tecnología?blog)
¿Por qué aprender un lenguaje de programación? Porque son muy convenientes. Muchas veces necesitamos escribir algunos gadgets o scripts que nos ayuden a resolver problemas, y encontrará que los lenguajes de programación formales son demasiado difíciles de usar.
2. ¿Está familiarizado con un editor de programador (no un IDE)? y algunas herramientas básicas
Vim? /?Emacs? /?Bloc de notas, aprenda cómo configurar la finalización del código, la apariencia, los comandos externos y más.
¿Fuente? ¿Conocimiento? (o? ctag)
Estas cosas no solían ser interesantes, pero estos editores serán más rápidos y eficientes a la hora de ver y modificar código/configurar artículos/registros.
3. ¿Está familiarizado con Unix/Linux? Shell y línea de comando pública
Si estás usando Windows, al menos aprende a usar Linux en una máquina virtual. ¿vmware? El reproductor es gratuito, instala Ubuntu.
Asegúrate de utilizar las interfaces gráficas con moderación.
Aprende a utilizar 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 utilizar algunos comandos de operación de texto? ¿sed/awk/grep/tail/menos/más? …
¿Aprender a utilizar algunos comandos de gestión? PS/top/lsof/netstat/kill/tcpdump/iptables/DD…
Comprenda varios artículos de configuración en el directorio /etc y aprenda a ver los registros del sistema en /var/log y el sistema en / proc Información operativa.
Comprende las expresiones regulares y úsalas 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). Si aprende a usar Unix/Linux, encontrará que la interfaz gráfica a veces es demasiado difícil de usar, lo que reduce en gran medida la eficiencia del trabajo.
4. ¿Aprender conocimientos básicos de Web (HTML/CSS/JS)? ?Tecnología del lado del servidor (LAMP)
El futuro debe ser el mundo de la Web, y el mejor sitio web para aprender conocimientos básicos de WEB es W3School.
Aprende la sintaxis básica de HTML
Comprende cómo CSS selecciona elementos HTML y aplica algunos estilos básicos (palabras clave: caja? modelo)
¿Aprende a usar Firefox? ?¿luciérnaga? ¿aún? ¿Cromo? Mirando la estructura de la página web que me deslumbra, modificarla dinámicamente.
Aprenda a utilizar Javascript para operar componentes HTML. ¿Comprende el DOM y las páginas web dinámicas (Dynamic?HTML:?Explicit?Reference,?3?Version?-?O'Reilly.Media)? Hay capítulos gratuitos en línea y eso es suficiente. ¿Aún lo viste? Dom. .
¿Aprender a usar Firefox? ?¿luciérnaga? ¿aún? ¿Cromo? Depurar código Javascript (establecer puntos de interrupción, ver variables, rendimiento, consola, etc.)
¿Configurar Apache en la máquina? ¿aún? Nginx
Aprenda PHP, deje que el PHP en segundo plano interactúe con el HTML del front-end y forme una comprensión preliminar de las solicitudes correspondientes del navegador del servidor. Implementar la función de enviar y reflejar formularios.
¿Conectar PHP a una base de datos local o remota? MySQL (¿MySQL? ¿Y luego qué? Aprender SQL ahora es suficiente)
Cursos completos de programación de redes de escuelas prestigiosas (por ejemplo: (¿La versión mejorada es Kyoto?
ark), Flare, MongoDB, CouchDB, Cassandra, Voldemort, etc.
Mirando hacia atrás, me siento bastante logrado. He estado aprendiendo durante diez años y todavía lo estoy aprendiendo hoy. La vida es un proceso de aprendizaje y mejora continua. Sin embargo, debe haber omisiones y errores. Espero que agregues correcciones (actualizaré este artículo en cualquier momento según tus comentarios). Bienvenido a mi Weibo (@leftERrat) y comunícate conmigo en Twitter (@haoel).
—? Actualizado el 19/07/2011? ——
1) Algunos amigos se preguntan por qué mencioné la web móvil al principio de este artículo, pero no se menciona. Desarrollo front-end para iOS/Android más adelante. Porque tengo el sentimiento en mi corazón de que la interfaz de usuario de los dispositivos móviles eventualmente será reemplazada por Javascript. Puedes mirar google en iPhone o Android y lo entenderás.
2)
Algunos amigos dijeron que tengo demasiadas cosas aquí y que no puedo aprender por aprender. No podría estar más de acuerdo. También dije al principio del artículo que tenemos que pensar. Además, no crean que de lo que estoy hablando es de alguna tecnología nueva, de esta estrategia.
95 y superiores son básicos. Y todas ellas son tecnologías básicas que han sido probadas y comprobadas. Es decir, tecnología que te permite saberlo todo y tecnología que te puede ayudar a encontrar un buen trabajo.
3) Un amigo dijo que está estudiando.
Estos son 40 años, es mejor pensar en cómo ganar dinero. Quiero decirles, primero, que todavía no tengo 40 años este año, segundo, el aprendizaje no tiene fin y tercero, creo que no es difícil ganar dinero. Lo difícil es cómo hacer que valga tanto dinero.
¿Dinero? Ya sea un trabajo o un negocio, ¿qué hace que su propio valor y el de su empresa sean más valiosos? No me atrevo a decir nada más. Para las empresas de Internet o TI, la solidez técnica es definitivamente una de ellas.
4) Algunos amigos dicen que la tecnología es una herramienta y no debemos ser tan persistentes. Esto no está mal. A veces necesitamos admirar otras cosas además de la tecnología, o no pensamos en por qué existe esta tecnología cuando estamos creando tecnología. ¿Por qué no algo más? El problema no es la tecnología. El problema es que estudiamos mucho y nos volvemos nerds de la tecnología.
5)? Para NoSQL, es bastante popular recientemente, pero soy un poco conservador al respecto, así que solo dije que puedo entenderlo. Para Hadoop, creo que tiene un gran potencial en sistemas distribuidos, por lo que debemos aprenderlo. ? Para las bases de datos relacionales, es realmente importante. Este fue mi descuido y se agregó al artículo original.