Oh yay! Me encantan este tipo de preguntas.
No sé si esto cuenta, ya que comencé a compilarlo en Visual Studio y todavía estoy trabajando en ello, pero quería escribir un conjunto de páginas web que ayuden a las personas a aprender sobre expresiones regulares y un poco sobre autómatas finitos y gramáticas formales.
Para hacer eso, quería proporcionar algo que proporcione una traducción de texto sin formato de las expresiones regulares a medida que las personas las escriben (difícil, pero no tan difícil), puede intentar analizar una expresión regular de una frase de texto sin formato ( mucho más difícil) , y tiene la opción de recorrer lo que hace el motor de expresiones regulares en tiempo real con la visualización, para que los estudiantes de expresiones regulares puedan verlo en funcionamiento (ouch).
- Cómo hacer que más personas instalen mi plugin
- ¿Existe algún estándar profesional y tarifario para desarrolladores y programadores de sitios web ya que estoy agotado en mi búsqueda de uno confiable?
- ¿Por qué la gente tiene una opinión tan baja de la API de Paypal?
- ¿Qué es una revisión exhaustiva sobre el tema Listable?
- ¿Cuáles son las ventajas de usar meteoros sobre tornado, o viceversa?
Hasta ahora, terminé el primer objetivo y agarré el código del motor de expresiones regulares en C #. Estoy ocupado reflejándolo y adaptándolo para lograr el segundo objetivo (escribir un motor que pueda analizar una expresión regular de una frase de texto sin formato) antes de comenzar con el tercero.
Los objetivos posteriores incluyen terminar los artículos que van en las páginas de autómatas finos y gramáticas formales, y crear una página que le permita ensamblar un autómata a través de una interfaz de arrastrar y soltar y aplicarlo a una gramática formal predefinida para que pueda avanzar mucho en ese proceso como lo harías en una conferencia de CS.
He estado en esto por un tiempo ahora, alrededor de otras cosas que suceden en mi vida, diría que alrededor de cinco meses, hasta ahora. Tuve que parar para trabajar en mi sitio personal, pero tan pronto como termine lo que estoy haciendo en mi sitio personal, volveré a trabajar en el proyecto de expresiones regulares.
En cuanto a lo que he aprendido … ¡solo toneladas ! Tenía una comprensión mucho más básica de lo que estaba haciendo el motor de expresiones regulares que ahora, y una comprensión mucho más básica de lo que sucede cuando una expresión se alimenta a través de ese comando. Debido a que he tomado el código, ahora puedo seguirlo a través de todo el proceso carácter por carácter. Es sorprendente lo que logra esa cosa, considerando lo simples que son los procesos básicos.
También sé mucho más sobre Javascript, y un poco más (aunque no me halagaré y diré mucho) sobre cómo se dividen las tareas entre el cliente y el servidor.
Puede ser que estoy siendo demasiado ambicioso con este proyecto, pero realmente no me importa, el proceso es tan genial como puede ser. La libertad de perseguir esto para mi propio placer, así como la satisfacción de pensar que puedo ayudar a un estudiante de CS con algo que probablemente encuentren frustrante, realmente me hace feliz.
No volvería a hacer esto de nuevo, planeo pasar toda mi vida trabajando en algo ambicioso en el fondo para la alegría de aprender (aunque sé que de vez en cuando me va a volver loco). *
En varios puntos, para el trabajo del curso, también escribí juegos desde cero en editores como VIM o entornos de desarrollo como Eclipse; reescribimos Space Invaders en Java, una versión GUI del Juego de la Vida en Java, un solucionador de Sudoku en C, varios programas de cifrado / descifrado de juguetes en C, y cualquier cantidad de otras cosas tontas.
Si está buscando un proyecto y recién comienza a programar, los proyectos como pequeños juegos desde el principio del software son un excelente punto de partida. No puedo recomendar elegir un proyecto de hobby lo suficiente, ¡cualquier excusa vieja para ensuciarse las manos!
* Yo y todos los demás en la vecindad general, como me juro vivamente, la computadora, el código fuente, la documentación y el imbécil que escribió el código o la documentación que estoy leyendo.
A veces, esto también incluye gestos, lo que puede ser preocupante.