Aprender programación reaccionaria te dará una comprensión profunda de la programación y te permitirá escribir tus propios programas y sitios web. Sin embargo, esto no es suficiente para conseguir un trabajo en la cultura moderna depravada. La cultura moderna esperará que uses herramientas populares entre ellos, por lo que tendrías que aprender una de esas. Probablemente la herramienta de programación menos horrible utilizada por la cultura moderna es Python, así que recomendaría aprender eso si quieres un trabajo.
Las próximas 4 lecciones son alfabetización informática básica. Incluso si no estás interesado en la programación, estas serían habilidades útiles.
Desarrollaré este curso de manera incremental según la demanda. Siempre que alguien complete el contenido aquí, agregaré otra lección/sección. De esta manera no perderé mi tiempo escribiendo contenido que nadie usará.
Este curso estará diseñado para que aprendas programación reaccionaria en una secuencia lógica. Me centraré en encontrar recursos relevantes, y solo escribiré explicaciones cuando no haya nada más disponible sobre el tema. Me centraré en el desarrollo web ya que es lo que mejor conozco.
A menudo diré "Haz X" sin decir cómo hacer X. Una gran parte de la programación es averiguar cómo hacer las cosas. Tus dos principales recursos son Google y ChatGPT. Si te quedas atascado, puedes preguntarme.
ChatGPT se ha convertido en una herramienta esencial de programación. Así que la única tarea para esta lección es jugar con ChatGPT. Más tarde puedes hacerle preguntas técnicas.
Si tienes alguna pregunta, puedes preguntarme en mi foro.
Un editor de texto es una herramienta básica para los programadores reaccionarios. Usamos herramientas simples y flexibles. La cultura moderna usa un IDE que es grande, complicado e inflexible. No usamos tales herramientas.
Revisé los editores de texto disponibles y creo que Sublime Text es el mejor disponible. Así que por favor descárgalo y aprende cómo funciona.
JSON es el formato de datos de texto más popular. Creo que JSON fue la última buena idea de programación de la cultura moderna, desarrollada alrededor de 2001, antes de que la cultura moderna se volviera completamente depravada. Haz tu propia investigación sobre JSON para entenderlo. Es bastante simple.
Emparejé Sublime Text con JSON porque Sublime Text usa archivos JSON para sus configuraciones. (En realidad no es JSON puro porque incluye comentarios que son líneas que comienzan con //
.) Experimenta con las configuraciones de Sublime Text para aprender más sobre Sublime Text y JSON.
Bash es la otra herramienta básica para los programadores reaccionarios. Esperaba solo referenciar tutoriales existentes de Bash en esta lección, pero todos son horribles, así que estoy escribiendo el mío. Así que para esta lección, por favor lee mi tutorial.
Las expresiones regulares, o regex para abreviar, se utilizan para buscar o coincidir texto. Dado que esta es una necesidad tan común, las regex se encuentran en todas partes en la programación. Dado que acabas de aprender Bash, puedes aprender regex con el comando grep que usa regex.
A diferencia de Bash, hay algunos tutoriales decentes de grep, así que no tengo que escribir el mío. Aquí están:
Sugiero que solo leas estos tutoriales para que tengas una idea de cómo funcionan las regex y grep. No necesitas practicar nada aquí. Puedes volver a estos tutoriales más tarde cuando tengas una necesidad real de regex o grep.
Los detalles de regex varían según la implementación. Luan usa Java regex.
Si te conviertes en un programador serio, entonces deberías tener una comprensión más profunda de las regex. En ese caso, recomiendo el libro Mastering Regular Expressions.
Afortunadamente Mercurial está bien documentado. Lee Mercurial: The Definitive Guide hasta (e incluyendo) el capítulo 9.
Para comenzar con Mercurial, descarga Mercurial desde su sitio web e instálalo. Luego haz:
~/learn $ hg version
Mercurial Distributed SCM (version 5.2.2)
(see https://mercurial-scm.org for more information)
Copyright (C) 2005-2019 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
~/learn $
Si esto funciona, está instalado correctamente. Luego configura tu archivo de configuración de Mercurial que es ~/.hgrc
en un Mac o /c/Users/$(whoami)/mercurial.ini
en Windows MSYS2. Mi archivo hgrc se ve así:
[ui]
username = Franklin Schmidt
[auth]
hghosting.prefix = https://hg.reactionary.software/repo/
hghosting.username = fschmidt@gmail.com
hghosting.password = xxxxxxxxxx
[extensions]
hgext.extdiff =
[extdiff]
cmd.dm = diffmerge
Deberías registrarte en nuestro servicio de alojamiento de Mercurial y usar tu correo electrónico como nombre de usuario y la contraseña asignada en .hgrc
. Los últimos dos bloques configuran hg dm
para llamar a DiffMerge usando la Extdiff extension.
Ahora puedes jugar con https://hg.reactionary.software/repo/test/ así:
~/learn $ hg clone https://hg.reactionary.software/repo/test/ hgtest1
no changes found
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
~/learn $ hg clone https://hg.reactionary.software/repo/test/ hgtest2
no changes found
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
~/learn $ ls -Fd h*
hgtest1/ hgtest2/
~/learn $ cd hgtest1
~/learn/hgtest1 $ touch file.txt
~/learn/hgtest1 $ e file.txt
~/learn/hgtest1 $ cat file.txt
some text
~/learn/hgtest1 $ hg status
? file.txt
~/learn/hgtest1 $ hg add file.txt
~/learn/hgtest1 $ hg status
A file.txt
~/learn/hgtest1 $ hg pull
pulling from https://hg.reactionary.software/repo/test/
no changes found
~/learn/hgtest1 $ hg commit -m 'add file.txt'
~/learn/hgtest1 $ hg push
pushing to https://hg.reactionary.software/repo/test/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
~/learn/hgtest1 $ cd ../hgtest2
~/learn/hgtest2 $ hg pull
pulling from https://hg.reactionary.software/repo/test/
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
new changesets aab34516d8dc
(run 'hg update' to get a working copy)
~/learn/hgtest2 $ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
~/learn/hgtest2 $ hg status
~/learn/hgtest2 $ cat file.txt
some text
~/learn/hgtest2 $ e file.txt
~/learn/hgtest2 $ cat file.txt
some text
and more
~/learn/hgtest2 $ hg status
M file.txt
~/learn/hgtest2 $ hg pull
pulling from https://hg.reactionary.software/repo/test/
searching for changes
no changes found
~/learn/hgtest2 $ hg dm
~/learn/hgtest2 $ hg commit -m 'and more'
~/learn/hgtest2 $ hg push
pushing to https://hg.reactionary.software/repo/test/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
Java no es un lenguaje fácil de aprender y si más tarde usas Python o Luan, entonces no usarás mucho Java. Entonces, ¿por qué aprenderlo primero? Porque te dará una comprensión básica de la programación. Además, ChatGPT entiende muy bien Java, por lo que esto puede ayudarte a aprenderlo. Y por último, porque Java te ayudará a entender Luan.
Para aprender Java, necesitarás los siguientes recursos:
No soy tan sádico como para hacerte empezar con Java puro. Eso sería demasiado doloroso. En su lugar, te haré comenzar con una interfaz más suave a Java llamada BeanShell. Aquí están los pasos para aprender Java:
Descarga Java (JDK) 8 e instálalo. Tu libro de Java para principiantes puede tener instrucciones más detalladas. O simplemente pregunta a ChatGPT si tienes problemas. Después de instalar el JDK, puedes verificarlo así:
~ $ java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
~ $
Al igual que con Bash, escribiré mi propio tutorial de BeanShell. Léelo.
Ahora es el momento de leer tu libro de Java para principiantes e intentar escribir algunos programas en Java. Consulta The Java Programming Language para obtener detalles y pregunta a ChatGPT por explicaciones. No necesitas convertirte en un experto en Java, así que no pases demasiado tiempo en esto. Solo necesitas obtener la idea básica de Java.
Ver Aprendiendo Luan.
Google Chrome es la herramienta estándar de desarrollo web del lado del cliente. Así que el primer paso es asegurarte de que tienes Chrome instalado y funcionando.
Usando Chrome, en cualquier página puedes hacer clic derecho en un área vacía y desde el menú seleccionar "Ver código fuente de la página". Esto te mostrará el HTML de la página web. Si pruebas esto en diferentes sitios web, probablemente notarás que mis páginas web son bastante cortas y bien organizadas, mientras que las páginas web de la cultura moderna son ilegibles. Otra cosa que puedes intentar es hacer clic derecho en cualquier lugar de una página y seleccionar "Inspeccionar". Esto debería abrir las herramientas de desarrollo con la pestaña "Elementos" seleccionada. En esta pestaña, obtienes el HTML organizado como un árbol que se puede expandir o colapsar. La pestaña "Elementos" de las herramientas de desarrollo de Chrome será tu herramienta principal cuando trabajes con HTML y CSS. Deberías jugar con ella e investigar por tu cuenta para aprender cómo funciona.
El siguiente paso es descargar este sitio web así:
~/learn $ wget -r -k https://www.reactionary.software/
--2024-01-15 01:31:20-- https://www.reactionary.software/
...
~/learn $ cd www.reactionary.software/
~/learn/www.reactionary.software $ ls -F
about.html hg_dev.html mercurial.html
bash.html index.html needed.html
books.html java.html nginx.html
discussion.html java_fork.html python.html
existing.html learn.html site.css
external_link.svg learn_bash.html this.html
freedit.html lucene.html wysiwyg.html
index.html
es la página de inicio. Encuéntrala en Mac Finder o Windows File Explorer, y luego arrástrala y suéltala en Chrome. Deberías ver este sitio web. Puedes abrir los archivos en un editor de texto para ver el HTML. Y puedes editar estos archivos para ver cómo cambia la página web.
Hay buena documentación sobre HTML y CSS. Comienza con Cascading Style Sheets: Designing for the Web. Esto fue escrito por las personas que inventaron CSS y explica la idea principal. Lee todo el libro. Este libro cubre casi todo en este sitio web. La única pieza que falta es flexbox. Luego consigue CSS: The Definitive Guide. También deberías leer todo este libro, pero puedes hacerlo lentamente mientras trabajas con CSS. No necesitas leer este libro ahora mismo, puedes esperar hasta que hayas terminado las próximas dos lecciones.
Simplemente juega con HTML y CSS hasta que obtengas una comprensión básica de cómo funcionan. Deberías poder entender el HTML y CSS de este sitio web.
Dejé fuera recursos para HTML en sí. Deberías simplemente buscar etiquetas HTML con Google o ChatGPT a medida que las encuentres. Eso es suficiente para aprender HTML.
Idealmente, uno debería poder mirar páginas web en internet para aprender. Pero desafortunadamente, en su mayoría son basura sobrecomplicada que es muy difícil de entender. Puedes intentarlo. Mis sitios web personales son como este: muy simples, por lo que no parecen profesionales para la cultura moderna. No puedo enlazar a mi mejor sitio web comercial porque eso arruinaría su reputación (porque soy infame). Pero puedo enlazar a algunos de mis antiguos sitios web comerciales aquí y aquí. Estos tienen HTML y CSS razonables.
Tengo algunos principios generales para trabajar con HTML y CSS. Primero, la cultura moderna afirma que HTML es para contenido y CSS es para estilo. Esto es un sinsentido. Tanto HTML como CSS son para diseño, no pienses en ellos como conceptualmente diferentes. Simplemente usa ambos de la manera más simple posible para obtener los resultados que deseas. No te molestes con las inútiles nuevas etiquetas de contenido de HTML5 como header
. Simplemente usa div
y span
para la mayoría de las cosas. También uso atributos HTML como selectores, no clases HTML. Esto es simplemente más simple. Las clases HTML son inútiles, déjalas para la cultura moderna.
Necesitarás HTML, CSS, Javascript y Luan para hacer un sitio web. Así que sugiero que obtengas una comprensión básica de cada uno de estos y luego vuelvas más tarde para estudiarlos en mayor profundidad.
más tarde
más tarde
más tarde