El camino de un fumador: cómo ingresar a la profesión de programador, si usted es humanista

Cuando era niña, Anastasia Birillo soñaba con ser maestra de lengua y literatura rusas. Hoy, es investigadora en JetBrains Research, metodóloga y maestra en Digital Banana, y también desarrolladora de su propia startup. "El humanista no es una oración", afirma Nastya. En nuestra conferencia de noviembre, " Contenting ", habló sobre cómo aprender a programar por su cuenta, qué dirección elegir para un desarrollador novato, dónde buscar proyectos, qué dificultades se pueden encontrar en el camino del fumador y cómo superarlos.



Bajo el corte - decodificación de su informe.

Dos formas de programar


La gente a menudo piensa que la programación es muy difícil. Cuando no puedes escribir ni siquiera un par de líneas de código, parece que los programadores son una especie de dioses que hacen cosas increíblemente complejas. De hecho, nada de eso.



Puedes venir a esta profesión de dos maneras. El camino clásico es bastante estándar, a través de la educación en una universidad técnica. Lo atravesé, es genial, genial. Tienes mucho tiempo porque eres estudiante. Eres joven, tienes mucha fuerza y ​​energía. Alrededor de su comunidad, siempre puede hacer una pregunta al maestro o compañeros de clase. Además, recibirá un diploma técnico, que le brinda muchas posibilidades, incluidas las relacionadas con el trabajo en el extranjero.



Pero hablaremos de otra manera, sobre el llamado "camino del fumador". Esto es cuando ya recibió un primer diploma, trabaja en PR, por ejemplo, y de repente tiene el deseo de convertirse en programador. De esta manera tiene varias desventajas. En primer lugar, tienes poco tiempo, después del trabajo te sientas a leer libros de texto en lugar de ir a un bar o al cine con amigos. En segundo lugar, muy probablemente, no recibirá una educación y no tendrá un diploma. Pero con la debida diligencia, sorprenderá a sus amigos, se convertirá en el "dios programador" en el que estaban pensando: "Señor, esto es muy difícil". ¡Y ahora ya sabes cómo!



Primeros pasos, primeras dificultades y éxitos.


Me parece que iniciar sesión en la programación es más fácil desde la web. Al principio ni siquiera estará programando, pero puede comenzar con el diseño: estructurar las páginas, colorearlas usando estilos. Con la debida diligencia, muy pronto podrá obtener un buen dinero para esto, recogiendo pedidos por cuenta propia. Luego estudias JavaScript, HTML, CSS ... Crees que ya entendiste todo y, por supuesto, te equivocas.


Esta es una cita real de un VKontakte público bastante popular. Los muchachos piensan: "Dominé el frente, soy un programador web genial, ahora tengo que ir al backend". De hecho, esto no es así.



La interfaz es un área muy fresca. Muy a menudo la gente piensa que no hay nada interesante allí, solo necesitas sentarte y diseñar la página. Me gusta, incluso si lo domino, se volverá tremendamente aburrido. No entienden que hay mucha lógica en este front-end. Aplica patrones de programación que se utilizan en el desarrollo convencional, comprende los algoritmos y las estructuras de datos, y esto es bastante difícil.



Después de JavaScript, HTML y CSS, puede comenzar a aprender frameworks front-end. Después de 3-4 meses, ya puede escribir su aplicación simple en Angular o React. Anteriormente, al ver un montón de errores en la consola, tenías miedo: "¡Oh, Dios mío, ¿qué es esto ?! .." Ahora lo miras con calma, comienzas a buscar en Google y descifrarlo, cuál es la razón. Con la mención de Github, no te rompe el sudor frío: sabes que es un gato tan lindo, algo muy conveniente para todos los programadores. Tal vez ya te ríes dulcemente de un amigo de humanidades que de repente también quiere aprender a programar. No tiene éxito, se sienta y no entiende lo que le está sucediendo. Y ves que él simplemente olvidó el soporte en alguna parte.

Programador - como artista


Ahora ha dominado bien la programación y puede acceder a la denominada Ingeniería de software. Viven allí los mismos tipos que escriben todo tipo de cosas complicadas en Java, C #, C ++, Python, etc. Y esto no es tan difícil: en este momento ya entiendes que un programador es como un artista. Simplemente aprendió a pensar como una computadora y la transfiere al código, con ciertas reglas estrictas. El artista no tiene un marco rígido, pero están en la programación. Pero ya entiendes: en principio, no es tan difícil, puedo manejarlo.



Que idioma empezar


Muchos caminos y lenguajes de programación están abiertos para usted. Por ejemplo, puedes comenzar con Python. Este es un lenguaje bastante simple, se hizo con fines académicos, para niños. Si sabe inglés, puede entender el código de Python, incluso si nunca lo programó. Los Servachki están escritos en Python: esta es la lógica en todos los sitios. Y si de repente descubres un talento para las matemáticas en ti mismo y encuentras mucho tiempo, puedes ir a la ciencia de datos más exagerada y ganar 300 mil por segundo allí. Pero hay dificultades en esta área.



Kotlin o Java es más difícil de aprender que Python. Hay muchas más sutilezas y una sintaxis bastante complicada. Pero conseguir un trabajo, especialmente al comienzo del viaje, será mucho más simple: las vacantes de Junior Java Developer son mucho más que vacantes para programadores principiantes de Python. También hay muchas oportunidades. Puede permanecer en Ingeniería de Software como Desarrollador Java, puede ir al desarrollo móvil o escribir los mismos servicios, solo en Java o Kotlin.



Y si ves mucha fuerza en ti mismo, te sientes como el maestro del universo, entonces aprende C ++ o Rust. Esta es la forma en que las personas que realizan una pasantía en Google, escriben aplicaciones súper complejas, hablan constantemente de algunas pérdidas de memoria o de que ellos mismos pueden disparar sus propios pies. Pero si realmente quieres hacerlo, estoy seguro de que no renunciarás a lo que puedas, ¿por qué no?



Escala de frescura




Mencioné algo como Junior Java Developer. En el mundo de TI, existe la llamada "escala de frescura" de Junior a Senior. Cuando eres Junior, eres como un niño: ves algún tipo de error y te sientes en pánico, no entiendes lo que está sucediendo. Simplemente lloras y pides ayuda a este superhéroe señor: él viene y resuelve tu problema, en el que puedes sentarte durante varias horas o días, literalmente en un minuto. Esto no es mágico, las habilidades se acumulan con el tiempo: se gana experiencia y la base de conocimiento está creciendo.

Que practicar




Ahora probablemente piense: "Elegiré un campo, aprenderé Python o iré a la web, me inscribiré en una montaña de cursos, leeré una tonelada de libros y seré un programador genial". En realidad, eso no funciona. Lo más importante es la práctica. No estoy hablando de proyectos triviales que se soliciten en los cursos, desde la categoría de "obtener los primeros 10 números de Fibonacci" o "intercambiar dos variables en la matriz". Resuelve tareas realmente interesantes, haz lo que quieras.

Escriba su versión de la aplicación que usa todos los días, simplemente pruébela. Por qué Una cosa es leer la teoría: "Sí, encapsulación, algún tipo de palabra aterradora ... bueno, entiendo más o menos para qué sirve ..." Otra cosa es enfrentar esto en la práctica: inmediatamente verás todas las brechas que pueden no ser suficientes más tarde, cuando Conseguirás un trabajo.



En las entrevistas, a menudo nos encontramos con personas que hablan sobre libros que leemos y sobre cursos. Usted pregunta esto: "¿Qué hiciste?" Él: "Bueno, decidí que había un par de ingenieros de proyectos de capacitación que estaban en Stepik". Es mucho mejor hablar de mi propia aplicación: "Hice esta arquitectura ... no tuve éxito, la rehice, me encontré con tales y otros problemas, los resolví así y así ..." HR lo ve, y esta es una ventaja bastante genial en karma Al solicitar un trabajo, sí, consideran el conocimiento en general. Pero para un joven es importante que pueda aprender y que antes no solo lea la teoría, sino que también practique algún tipo de práctica.

Dónde buscar proyectos




Encontrar proyectos es fácil. Por ejemplo, decidió participar en el diseño. Todos nos sentamos en Internet, probablemente tengas algún recurso favorito: Habr, Picabu, algún tipo de sitio web con fotos. Usted toma este sitio y crea el mismo. Sí, no se usará, nadie lo comprará. Pero si bien participará en este proyecto, se encontrará con un montón de problemas, y aprenderá cómo resolverlos: intentará hacer algo, primero no funcionará y luego lo solucionará.



Si desea escribir algún tipo de lógica, por ejemplo, para aplicaciones web en la parte frontal o posterior, simplemente busque un recurso similar en Internet e impleméntelo ... En general, puede escribir código para cualquier cosa. Encuentre un tutorial trivial en Internet: cómo hacer una lista de tareas pendientes. Esto es lo que muchos aconsejan: una lista de tareas en la que se anota lo que ya se ha hecho. Puedes implementar algunas fichas que jugarás con el amigo que también decidió estudiar. Incluso pueden unirse y escribir un proyecto juntos.

Cómo hacer todo y obtener dinero para un pasatiempo




Usualmente no duermo mucho. Pero en general, puedes pintar todos los días. Si tiene una lista de las cosas que quiere hacer, lo más probable es que las haga. Lo principal son los plazos estrictos. Si dice: "Necesito presentar una solicitud de prueba, tengo dos semanas para ello", no funciona. Pero si necesita "cortar la aplicación de prueba antes del 4 de diciembre", entonces se sentará y vio. Simplemente comencé un calendario en mi computadora, escribí cosas todos los días e intenté hacerlas. Al mismo tiempo, encuentro tiempo para caminar con amigos, bailar e inglés.



Esto solo funcionará si realmente te gusta el trabajo. Mi colega se convirtió en desarrollador front-end porque estaba muy cansado de trabajar en relaciones públicas. Se dio cuenta de que realmente le gustaba el diseño de los sitios, y dedicó todo su tiempo libre a ellos. Pero a él le gustó. No es de extrañar que digan: encuentra lo que te gusta y luego no trabajarás un día. Suena patético, pero es verdad. Amo tanto lo que hago que no puedo llamarlo trabajo. Resulta que me pagan por mi pasatiempo.

Punto de entrada: por que la web es mejor que los juegos


Los juegos también son un buen punto de entrada. Pero necesitas hacer lo que quieras. Por ejemplo, odio los juegos y no podría convertirme en programador a través de ellos, incluso si realmente quisiera. Si usas cualquier Construct (es muy simple hacer juegos en 2D), entonces esencialmente no programas. Y cuando comienzas a inventarte, todavía te acostumbras al menos a alguna disciplina: ves estos paréntesis, te acostumbras a no tener miedo de escribir código y te será más fácil adaptarte a cosas más complejas. Luego miras con calma los grandes fragmentos de código: "Bueno, está bien, yo también escribí eso, está bien".

Lo principal es no tener miedo


- Piensas: “Sí, ella lo dice, como si todo fuera fácil. De hecho, todos estos son sueños ". No, no es fácil, pero es posible. Cuando ingresé a la universidad desde una escuela de artes liberales, fui el peor en el curso. Pero lo intentas, e incluso si no tienes éxito, intentas más. Pensé que nunca entendería todos estos OOP, gráficos, estructuras de datos y más. Pero ahora trabajo como programador y enseño programación infantil. Puede sonar patético, pero el humanista no es una oración.



Si quieres ir a TI, lo principal: no tengas miedo. Necesitas superar el miedo, no tener miedo de escribir código. Por alguna razón, todos piensan en la programación, que esto, maldita sea, es muy, muy difícil. Incluso los niños a quienes enseño a veces tienen miedo de ejecutar un programa que ellos mismos escribieron: "Ahora habrá un error, todo se caerá y no podré entender cuál es la razón". Lo principal es superar este miedo. Puedes comenzar con la web, es bastante simple. Y recuerda: práctica, práctica y muchas, muchas prácticas. ¡Nada funcionará sin ella!



Todos los informes de " Contenting ", que son 16 horas de información útil, 26 discursos y 3 discusiones sobre cómo crear contenido interesante sobre tecnologías y el uso de tecnologías, están en formato de video aquí . Descuento para usuarios de Habr con el código promocional habr_online_promo.

Por apoyar la conferencia, agradecemos a nuestros patrocinadores:

Source: https://habr.com/ru/post/es435562/


All Articles