Buen dia
Mi nombre es Dmitry, estoy en un par de meses 30 años, de los cuales aproximadamente 10 años soy un programador de tyzh y hace medio año decidí crear algo mío (cojo, oblicuo, secundario, pero mío).
Hace un par de días hablé con un amigo de mi alumno y en él me reconocí como una muestra de 2009: los mismos problemas, los mismos pensamientos. Este texto es una recopilación de nuestra conversación y correspondencia en la noche del 24 de septiembre. Se perdieron momentos personales y ejemplos concretos, pero el texto se volvió más lógico y generalizado.
Lo que ayudó a una persona podría ayudar a otra.
Entrada
La introducción no se puede leer, pero a partir de ella será posible comprender la plataforma del conocimiento inicial.
En el 11 ° grado, tenía la opción de elegir a quién estudiar: un profesor de historia o un programador. Amaba y entendía la historia, la programación me parecía una actividad muy interesante y prometedora. Elegí el segundo, porque también puedes practicar historia en tu tiempo libre.
No pude elegir una institución educativa: mis padres hicieron clic en una calculadora y me enviaron a una escuela técnica local, que se convirtió en una universidad el 1 de septiembre. No escribiré sobre los problemas de nuestra educación, pero mi deseo de escribir código ha disminuido considerablemente. Después de recibir el especial secundario, me negué rotundamente a estudiar más y decidí trabajar. Un amigo me llamó para trabajar como administrador del sistema en una organización presupuestaria:
“La información sobre la atención médica está a punto de comenzar, es necesario recolectar computadoras y recoger el papel atascado de las impresoras y explicar todo a las personas de manera inteligible. Trabajarás durante dos o tres años, y allí verás qué y cómo continuar " . No escribiré sobre los problemas de las reformas en Rusia, pero revisé mis puntos de vista sobre la vida y las personas. Después de haber trabajado durante casi 6 años, renuncié, ya que todo se puso muy triste. Descansé, cambié de trabajo y luego el deseo de programar se hizo realidad.
Marzo de 2018 - septiembre de 2018
Al principio surgió una idea: "aquí habría un sitio en el que podría ver estadísticas más detalladas y el historial de cambios de datos". Estamos hablando de la clasificación de jugadores en los servidores de un juego en línea (apodo, nivel, clan, etc.). El recurso oficial solo proporciona valores actuales, que se actualizan una vez al día. Sin historial de cambios, sin visualización, es difícil elegir cualquier cosa y opciones de clasificación limitadas. Hay una versión no oficial en la que ya hay más funcionalidad, pero también es inconveniente para mí, e incluso con el minero. Por lo tanto, el segundo pensamiento llegó para el primero:
“¡Necesitamos hacer algo por nuestra cuenta! Conveniente y sin minero " . Y es deseable que el proceso de creación demore de 1 a 2 horas en la noche, ya que no hay suficiente tiempo libre y no quería reducir el sueño. Durante la noche, pinté un plan de acción aproximado y comencé a traducirlo en realidad.
Pero para hacer algo, uno debe aprender a hacerlo. Durante varios días estudié artículos y videos sobre el tema "¿qué se necesita para crear un sitio web?". Después de un par de días, cambié a "comparar diferentes PL: sus pros y sus contras". En aproximadamente una semana, viendo un video y leyendo artículos todos los días durante 2-3 horas, llegué a un conjunto aproximado de tecnologías:
- html5
- css3
- pitón 3
- django 2
- sql (postgresql 10)
- linux (debian9)
Una vez que el conocimiento adquirido fue olvidado y todo tuvo que comenzar desde cero.
Autoformación: esta habilidad es muy difícil para muchas personas. Alguien o algo distrae constantemente: el gato decidió ronronear de rodillas, llamó el vecino, una nueva serie de sus series favoritas, un nuevo mech en las redes sociales y cientos de otros ejemplos. Además de la fuerza de voluntad, la determinación y el deseo de crear, no tendrás aliados (todavía hay hambre, pero no siempre está presente). Cierre las redes sociales, cierre la pestaña de la serie, apague el sonido del teléfono, cierre la puerta de la habitación, elimine temporalmente todas las distracciones. En el ansia de información, el cerebro mismo querrá recibir información y aquí, antes, los conceptos básicos de SQL, que serán una buena alimentación.
SQL y un script para escribir datos en la base de datos
SQL es interesante porque hay pocas vacantes de it donde sea que venga en primer lugar, pero hay muchas vacantes donde va en segundo o tercer lugar. Si recién está comenzando a involucrarse en la programación, los principios básicos de SQL pueden ser un buen comienzo. Elegí
postgresql como DBMS porque a menudo se escribe que esta es una buena opción para python (en la medida en que esto sea cierto, no puedo juzgarlo). Gracias a Postgres Professional por
traducir la documentación .
Si aprende de los materiales disponibles en Internet, es posible que no siempre se las arregle para entender todo: en algún lugar se transmitió una teoría de manera inexacta, en algún lugar un ejemplo no refleja la esencia del tema, en algún lugar que no explicó un momento interesante para usted. Después de leer un artículo, refuerce lo que aprendió leyendo un artículo similar o viendo un video sobre un tema similar.
Y al final, implemente el material que ha cubierto utilizando el ejemplo de su idea, incluso si luego se rehace o se descarta por completo como un elemento innecesario. No tengas miedo de experimentar. Agregue marcadores interesantes a su navegador.
Así que nos familiarizamos con SQL, elegimos un DBMS, creamos una base de datos para nuestra idea y decidimos pasar al siguiente punto: registrar de alguna manera la información de una página en Internet en nuestra base de datos.
Python viene al rescate, que trae consigo sus paquetes
psycopg2 ,
json ,
datetime ,
solicitudes . Ah, y fue divertido resolverlo todo. En aproximadamente una semana de experimentos, resultó un script de trabajo que escribe cambios en la base de datos de aproximadamente 20-25 mil caracteres.
HTML5 y CSS3
Ahora debe mostrar todo esto en forma de tabla en el sitio. Pasé sin problemas a los conceptos básicos de html5 y css3: el esqueleto de la página y la tabla. En busca de buen material, me encontré con un portal que promete convertirme en un desarrollador front-end por un poco de dinero. Las primeras dos lecciones son gratuitas, y luego una pequeña cantidad, en estas lecciones solo se da el conocimiento básico mínimo. Realizamos lecciones gratuitas, aplicamos los conocimientos adquiridos y obtenemos estos bloques:
<div id="header"> </div> <div id="main"> </div> <div id="content"> </div>
Todo está claramente explicado, pueden tener un curso si es necesario. Y después de un par de días descubrí que esta es una forma de escritura obsoleta y que solo puedes escribir el encabezado, las etiquetas principales, etc. Y en este paso me di cuenta de que en la etapa inicial de aprendizaje, comprar cursos en línea no vale la pena. Simplemente no puedo entender cuán relevantes son (y a menudo los autores no indican la fecha de los artículos) y cuánto conocimiento necesitan. Por lo tanto, eliminé el marcador y un poco más tarde encontré lo que estaba buscando.
Vale la pena señalar que cuando compra un curso, se compromete financieramente a tomarlo:
"bueno, no fue en vano que le diera un denyuzhu, pero podría pagar por Internet" . Y comienza el estudio de la información que no necesita para el objetivo actual, y si es necesario, no es un hecho que lo recordará. Y si abandonas el curso, te reprocharás a ti mismo: “
¿y por qué
tomaste el curso? colgó peso muerto y en 3 días termina, y nadie necesita este certificado ... todo el dolor " .
De lo interesante, me gustaría destacar lo siguiente:
- htmlbook.ru y - la mayoría de las solicitudes de etiquetas html me llevaron a este sitio
- webref.ru - heredero de htmlbook.ru
- htmlacademy.ru : en algún lugar vi las recomendaciones de este recurso y decidí ver su conjunto gratuito de lecciones. Armado con el conocimiento de las lecciones gratuitas, ya puede hacer la página: encabezado, sótano, unidad principal, menú, tabla y tornillo CSS para todo esto.
Django 2
Simplemente lea el
sitio web oficial y la
traducción de la versión 1.9 , que en la mayoría de los casos es adecuada para la versión 2.0. Eso es todo. Errores incomprensibles, copiar y pegar en el motor de búsqueda. Con una probabilidad del 90%, después de 1 a 5 minutos encontrará una situación similar con la solución del problema, a veces con el análisis de la solución.
Nuestro asistente principal será
stackoverflow , un popular sistema de preguntas y respuestas de programación. Inicialmente, solo había inglés, pero en este momento hay 4 versiones más de las cuales estamos interesados en
ruso .
Aquí, me gustaría llamar la atención sobre algunos recursos que a veces aparecían en mis resultados de búsqueda: preguntas / respuestas con stackoverflow traducido por traducción automática y con publicidad (por ejemplo,
https://stackoverflow.com/a/3123/ ). A veces se paraban sobre el desbordamiento de la pila. La traducción en algunos lugares fue bastante buena, y en algunos lugares fue solo un montón de palabras, lo más probable es que esto se deba a la construcción correcta de la oración, ya que las personas con diferentes niveles de inglés (y no solo) la escriben en stackoverflow.
No importa cuán de alta calidad se haga esta traducción automática: lea el texto original y, si su inglés no le permite comprender completamente el texto, use traductores en línea; con el tiempo comenzará a comprender más y más palabras y un día simplemente mire la respuesta y comprenda lo que está escrito allí. .
El segundo recurso más popular donde me llevó la búsqueda de la respuesta fue el
lanzador , gracias a todos los que dejan las respuestas y explican estas respuestas.
Océano de información y versión borrador del sitio
Han pasado aproximadamente un poco más de 3 meses desde que comenzó la capacitación: hubo descansos de 2 semanas, y lecturas repetidas de artículos y manuales, y problemas que tropezaron durante 2-3 noches. Los marcadores del navegador están hinchados, en un telegrama cada 15 minutos aparece un nuevo artículo sobre la tecnología que me interesa, VKontakte está repleto de reimpresiones de estos artículos. Información de ahogamiento en el mar es más fácil que un pulmón.
Y en ese momento llegó la conciencia, pero después de todo, comenzó a ahogarse. Y por la noche revisé todo mi plan, desde la apariencia del sitio y su funcionalidad hasta las tecnologías que se usan o se planean usar.
El plan en sí se reponía con subpárrafos y a cada subpárrafo se le asignaba importancia, prioridad, puntos críticos designados sin cierre, lo que prohibía seguir adelante. Pero, sobre todo, había preguntas: se hizo una pregunta, encontró una respuesta, se la explicó a sí mismo, hizo los cambios en el plan.
El mes siguiente fue la terapia de choque: puse Debian 9 (que estudié desde cero), en el que durante el primer mes no hubo redes sociales, foros, programas de televisión, películas, Skype, discordia. Simplemente desaparecí durante un mes de Internet habitual para mí (y para la mayoría de los usuarios).
Mi horario de noche era así:
- problema o pregunta
- busca soluciones y respuestas
- implementación
- escribimos la solución en un cuaderno o un marcador en el navegador
- si nuestra creación se sale de control, eliminamos todo y comenzamos a hacerlo desde cero (la versión 4 se usa actualmente)
En algún lugar, en agosto, restauré algunos de mis contactos sociales: volví a las redes sociales, instalé Discord, voy a Windows cada 2-3 días y verifico que aún no lo haya transferido a Debian. La tasa de ejecución del plan se ha ralentizado, pero no me asustó mucho, porque la primera versión preliminar del sitio ya se estaba ejecutando en la computadora local y para el 1 de septiembre había planeado mudarme a VDS.
Y no tuve tiempo. Mientras descubrí las complejidades de la configuración de VDS, mientras descubrí cómo comenzar mi creación, mientras las reglas del sitio estaban bloqueadas, mientras resolvía problemas en la vida real, mientras estaba distraído por las redes sociales, mientras resolvía problemas de salud, el sitio se lanzó tarde en 4 días. Por alguna razón, esto me afectó: había una reserva de casi un mes, era necesario no hacer absolutamente nada, pero llegué tarde y no se hizo todo. Anteriormente había violado mi propio horario, pero prácticamente no lo noté, y estos 4 días de retraso me golpearon. Triste y pensé la noche, me puse a trabajar más. Y comencé enviando la dirección del sitio a mis terceros conocidos. Después de esperar la reacción, me animé: la calificación promedio fue "el tema es normal, lo asimilé y será genial".
Ahora los deseos de los usuarios se han unido a mi plan; la mayoría de los deseos estaban en mi plan (y aún existen). Entonces no necesito esto solo.
Y en ese momento me detuve.
El trabajo ha cambiado (me estoy alejando cada vez más y me entristece incluso más de 4 días de retraso en el lanzamiento del sitio), las actividades diarias, el bazo de otoño y otras cien razones están perdiendo cada vez menos tiempo. Durante la semana pasada, solo me senté un par de veces para el proyecto. Y me da miedo que no lo termine. ¿Y lo que más me asusta es cómo viven las personas en situaciones similares, pero con esposas e hijos? ¿Cómo logras hacer todo?
¿Por qué escribí todo este texto?
Una vez más, recuerde a los lectores las verdades:
- si quieres hacer algo, tómalo y hazlo
- experimente, no tenga miedo de cometer errores: la computadora resistirá todo, lo principal es que al final obtendrá un producto de calidad
- si eres un estudiante que ha perdido interés en aprender, o simplemente está aprendiendo algo nuevo, entonces trata de estudiar material de fuentes alternativas, si esto no te ayudó, entonces cambia tu profesión: trabajar en un trabajo no querido e incomprensible te agotará y molestará a tus colegas
- nunca es demasiado tarde para aprender, pero es mejor comenzar lo antes posible
Epílogo
En los últimos seis meses, aprendí un montón de información nueva e interesante, cambié algunos de mis hábitos, me deshice de algo, me acostumbré a algo.
Brevemente de lo interesante:
- cambió google.com a duckduckgo.com , ya que duckduckgo está integrado con stackoverflow y la respuesta a su pregunta ya se puede mostrar inmediatamente en la página de búsqueda
- rechazó windows, skype, eliminó la última cuenta en las redes sociales
- ya no le temo a nano e incluso sabe cómo salir de vim
- Pensé en la privacidad en la red, después de ver qué información puede dejar un usuario simplemente yendo al sitio
- se detuvo leyendo inglés
- Me enamoré de la consola y analicé el resultado de la información sobre las solicitudes al sitio (qué contento me sentí cuando hice 1 solicitud de cada 100 solicitudes a la base de datos, y luego también reduje su tiempo de ejecución al restringir la selección solo a las columnas y filas necesarias)
- Me di cuenta de cuánto no sé las tecnologías que uso
- y lamento que hace 5-7 años nadie me mostró Python y no podía explicar SQL claramente (por cierto, ese maestro todavía enseña, los estudiantes aún no entienden sus explicaciones y aprenden SQL por sí mismos)
- Pude crear algo propio, y un día dejará de ser cojo y oblicuo.
Bueno para todos
Solo hazloPD: Soy realmente complejo y ahora mentalmente no estoy listo para proporcionar enlaces al sitio para el público en general. Por el momento, hay 3 elementos "rojos", después de lo cual se abrirá el elemento "puedes presumir de tu oficio".
pss rehizo un poco mi flujo de pensamientos, gracias por las críticas y comentarios