Cómo NO empezar a aprender a programar

¡Saludos, Khabrovtsy!



Decidí compartir mi experiencia de aprendizaje "exitoso" de los lenguajes de programación.



No quiero decir que sea un completo laico en la industria de TI, pero mi plan de capacitación "para convertirme en un desarrollador de TI" fue un éxito.



Un poco de trasfondo.



Debo decir de inmediato que no pasé por una formación específica en informática. Y mi especialización en educación está lejos de ser técnica. Trabajó desde 2005. hasta 2012 en diversas empresas, tanto pequeñas como grandes, directamente relacionadas con la industria de las TI. Aprendí un poco de todo: hermana. administración de Windows (incluso MCP, MCSA logró obtenerlo), un poco de VMware (VCP también está en la alcancía), además estudió un grupo diferente de programas de ese sistema. los administradores suelen utilizar en su trabajo diario.

Me probé en ventas corporativas, por cierto, funcionó bien. Me las arreglé para trabajar un poco con un distribuidor de software, así como con empresas integradoras, y tenía un buen conocimiento de las políticas de licencias de software. Planeaba convertirse en gerente de proyectos, incluso comenzó a estudiar PMBOK, administración del tiempo, varios estándares internacionales como ISO, Tier e incluso pasó a PCI DSS.



Pero en algún momento se quemó y lo dejó todo. Me fui de vacaciones durante 8 años, por así decirlo.

Después de un largo análisis, maduré y me di cuenta de que era hora de girar hacia el oeste, y preferiblemente más cerca de Silicon Valley, porque con el inglés es más o menos normal, puedes subir al nivel requerido.



Está claro que nadie me espera allí, excepto hermana. administradores, vendedores y gerentes de proyectos, ya son suficientes. Además, sin conocer la situación del mercado local, será inmediatamente posible encontrar un trabajo, bueno, al menos es problemático.



Se eligió un camino en mi cabeza que era hora de volver a capacitar como desarrollador. Será más fácil y mejor en términos de perspectivas y trabajo en el mercado occidental. Siempre ha habido escasez de programadores en el mercado laboral y todavía no hay suficientes programadores.



Además, durante mucho tiempo quise aprender programación y especializarme en dirección SAP. Se eligió el camino del estudio independiente de los conceptos básicos, el lenguaje ABAP, pero de alguna manera abandonó este negocio. No recuerdo por qué, parece por la dificultad de comprensión.



Ahora la historia en sí, vamos ...



Entonces, después de 8 años de descanso de TI en general, comencé a estudiar el mercado laboral en el extranjero y decidí especializarme primero en desarrollo móvil. Después de buscar en Google lenguajes de programación para aplicaciones móviles e inspirado por el hecho de que Google anunció oficialmente el lenguaje Kotlin como lenguaje prioritario para una aplicación de Android, decidí firmemente aprender Kotlin por mi cuenta en un máximo de 1 año y hacer planes de inmigración para la residencia permanente en los Estados Unidos.



Un par de semanas viendo cursos de formación y leyendo manuales me bastaron para asegurarme de que no hay nada que hacer en Kotlin sin conocimientos de Java. Aunque en Internet, mucha gente dice que se puede aprender desde cero. Y después de registrarme en GitHub, instalar IntelliJ IDEA, JDK y tratar de entender el código, ya comencé a darme cuenta de que tendré que estudiar mucho, mucho tiempo y mucho.

Se decidió dejar de lado a Kotlin por ahora y profundizar en el lenguaje Java. Y así lo hizo. Eh, recuerdo que en mi época Java todavía era una creación de SUN.



Rápidamente cambié a Java sin arrepentirme. y hay más manuales para autoaprendizaje y hay muchas más vacantes para desarrolladores de Java. Es cierto, no he decidido por dónde empezar, sería mejor: con Java, o todavía cambiar a JS, pero bueno, pensé que lo resolvería en una caminata. Leí en algún lugar de los foros que es mucho más fácil y rápido ingresar al mundo del desarrollo con JS.

Comencé a aprender Java de manera estándar, después de leer una montaña de artículos y ver un montón de videos "Cómo convertirse en programador de Java". Descargué el libro de Bruce Eckel "La Filosofía de Java", de acuerdo con las recomendaciones de muchos en los foros, como el comienzo más correcto para el aprendizaje del idioma para principiantes.



Así que te lo diré honestamente, no es para principiantes.



Traté de no prestarle atención y seguí leyendo, la digestibilidad es de alrededor del 20-25%, me di cuenta de que esto no funcionará. Tendremos que entender el lenguaje C, e incluso en el libro que escriben regularmente en blanco y negro, el material está diseñado para lectores con conocimientos de los conceptos básicos del lenguaje C.



Bueno, no hay elección. Nuevamente leo un montón de información, cientos de visualizaciones de videos sobre diversos temas sobre el lenguaje C. Descargo el libro de Kernighan y Ritchie "C Language", empiezo a estudiar, la asimilación ya es mejor que en Java, por así decirlo, alrededor del 50-60%, lo que no me agrada para nada.



Una cosa fue tranquilizadora de que todos los verdaderos desarrolladores comenzaron con el lenguaje C, y también que después de aprender C, otros lenguajes, en particular Java, se entenderían mucho más rápido y más accesibles.



Sin embargo, títulos del libro como:

“Este libro no es un curso de introducción a la programación; asume cierta familiaridad con conceptos básicos de programación como variables, sentencias de asignación, bucles, funciones "

o:

" asume conocimiento práctico de los elementos básicos de programación; no explica qué es una computadora o un compilador, no explica el significado de expresiones como N = N + 1 ”

y frases como:

Constantes simbólicas.

etc.

gradualmente me llevó al hecho de que no puedo prescindir de estudiar Ciencias de la Computación.

Al mismo tiempo, comienzo a ahondar en Computer Sciense, nuevamente descargando toneladas de libros. Me inscribo en el curso Harvard CS50, empiezo a aprender los conceptos básicos de la programación, leo detenidamente el libro de Vladston Ferreira Philo "Mínimo teórico en informática".



Me doy cuenta de que el aprendizaje del lenguaje C está pasando a un segundo plano, cada vez se dedica más tiempo a los conceptos básicos de la programación.



Y si en binario, variables, funciones, bucles, compilador, intérprete, ecuaciones simples, etc. Lo descubrí aún más o menos, luego una expresión como N = N + 1 y ecuaciones más complejas me llevaron a un estupor fácil.



Pasé mucho tiempo investigando por qué 0 elevado a 0 es igual a 1, y tengo la sensación de que no he entendido completamente todo el punto.



Pero esta tarea me hizo detenerme en leer un libro sobre informática. cuanto más leía, más complicadas eran las ecuaciones y los problemas:







tenía que buscar en Google sobre ecuaciones cuadráticas, como está escrito en el libro, y profundizar en los discriminantes. Bueno, me olvidé, pensé, del álgebra, con quien no pasa. Sin embargo, no pude resolver el problema por mi cuenta, tuve que recurrir al maestro de matemáticas de la escuela del niño en busca de ayuda.



Conseguí una solución, pero no pude entender cómo la resolvió el profesor:











A mi pregunta: “¿cómo se resuelven tales ecuaciones?”, La respuesta fue muy sencilla:

“enseñar el estudio de una función, iniciar análisis y problemas de optimización. Álgebra Grado 10-11 ".

Bueno, creo que, ok, veré un par de ejemplos de videos para escolares en youtube, entenderé cómo resolverlos y seguiré “glock” estudiando en informática.



Y después de ver estos videos sobre álgebra caí en la cuenta ...



www.youtube.com/watch?v=RbX_QHxu7Lg

www.youtube.com/watch?v=FVSG7Neopuo



No es que no recuerde cómo resolver tales problemas - soy elemental como ¡Resultó que simplemente no sé Álgebra para los grados 10-11!



Expresiones como: límites, pensamiento matemático, extremo, derivadas, polinomios, etc. para mí resultó ser como habla en el idioma de la tribu maya.



Probablemente, mi conocimiento de las matemáticas se mantuvo al nivel de las lecciones de matemáticas en los grados 5-6.



Estoy empezando a darme cuenta de que para tener una idea completa de la comprensión de la informática, tendré que volver a aprender álgebra y luego HigherMat. No excluyo que la campaña probablemente necesite repetir lecciones de física y algo más del plan de estudios de la escuela. Y antes de aprender Java y JS, necesitaré 5 años de estudio de álgebra y matemáticas superiores.

Volar a Marte y regresar más rápido, solo 1,5 años, según los científicos ...



Entonces, después de analizar el último mes y medio de aprendizaje independiente, me resultó obvio que soy como un "hámster en una rueda", como si estuviera corriendo (aprendiendo ), pero de hecho me quedo quieto. No he aumentado mis conocimientos de programación, excepto que puedo ejecutar un programa en lenguaje C ("Hola, mundo").

Además, después de que una tonelada de nueva información ha caído en mi pequeño cerebro, parece que se ha "apagado" en absoluto y se niega categóricamente a aceptar nueva información.

El algoritmo que construí para aprender a programar falló casi al principio.

Quedó claro que necesita revisar su plan de capacitación y su enfoque.

Sin embargo, todavía no soy del todo consciente del panorama, y ​​desde qué lado debería abordar la adquisición de la profesión de "desarrollador Java" ahora, porque la educación estándar, desde los fundamentos del álgebra y la educación superior, será muy larga y no es adecuada en mi caso.



Y fue entonces cuando ya estaba bastante triste.



¿Se tarda tanto en convertirse en programador sin conocimientos técnicos?

Por supuesto, me inspiran artículos en Internet, donde la gente escribe que en 1,5 años se convirtió en desarrollador de Java y se fue a Alemania, Canadá, EE. UU., Pero al evaluar mi triste experiencia, no estoy seguro de que esto sea posible.



¿O todavía no es mío? ¿Y es la profesión "promotora" para la élite, para la "casta de personas especiales"?



Sé que hay personas que dominan la programación sin completar una educación superior en informática. Hay muchos de ellos.



Y estoy ansioso por unirme a personas tan maravillosas y decididas.

Darse de baja en los comentarios, pliz, quién logró dominar la programación, así como su visión de por qué mi plan y enfoque de aprendizaje fracasaron. Tus recomendaciones me serán de gran utilidad, revisando mi plan de aprendizaje de programación, así como la ambición y expectativa del resultado final.



Dudo que yo sea el único que se enfrenta a un problema similar. Incluso puedo decir que hay mucha gente como yo ... ¡



Gracias de antemano!



All Articles