PREOCUPACIÓN – ¿Puede cualquier persona aprender a programar?
Si pensamos que cualquier persona es capaz de pensar críticamente, entonces podemos pensar que cualquier persona puede aprender a programar. El primer paso para pensar críticamente es considerar la posibilidad opuesta. Por eso me gusta pensar en la posibilidad de que yo pueda estar equivocado.
PREOCUPACIÓN – ¿Cuánto tiempo lleva aprender a programar?
Si querés aprender a programar, lo que buscás es que te lluevan ofertas de trabajo. Para eso necesitas dos años de experiencia. Para conseguirlos primero tenés que trabajar como junior, el cinturón blanco de los programadores. Esa es tu nueva dirección. No aprentando un botón; sino muchos, muchas veces. Leyendo mucho, también. Esto es mucho muy importante.
Por eso, lo bueno de esta duda es que presupone un elemento vital –la práctica–. Y lo novedoso es que no se requiere ninguna certificación. Tampoco tener una meta fija es algo que funcione. Entonces en vez de preguntarnos cuánto se tarda en aprender a programar, conviene pensar sobre cómo organizar tu tiempo para leer, ver videos y adquirir conocimiento, de manera acumulativa. Y consistente. Es decir, un sistema. Hábitos. Vas a tener que leer, entender, poner en práctica, darte cuenta que no habías entendido, entender una cosa que no sabías que existía, y te va a doler porque le dedicaste demasiado tiempo y esfuerzo, y así vas ir avanzando hasta ganar dinero para comprarte los juguetes o vacaciones que vos quieras.
PREOCUPACIÓN – ¿Es difícil aprender a programar?
Lo difícil es no distraerse.
CARNADA – ¿Cuánto gana un desarrollador de software?
Una persona con enfoque, que trabaja remoto hablando inglés puede embolsar unos u$s20 la hora. Multiplicado por 8 hs. diarias unos 22 días al mes la cuenta totaliza en unos u$s 3500. El número es aproximado y aunque lleva unos añitos, se puede conseguir en menos de lo que dura una carrera universitaria.
AUTODIDACTA – ¿Con qué lenguaje debería comenzar?
El pequeño y sucio truco de los programadores es que somos buenos usando Google. Verás, la mayoría de la gente no sabe buscar cosas. Por lo general sólo usan a Google de psicólogo, o a lo mejor, de meteorólogo. La mejor intención que podés tener al usar google es encontrar patrones comunes a dos o más ideas, buscar conexiones.
Si yo tuviese que aprender a programar de nuevo hoy, desde cero, sabiendo lo que sé, con mis 12 años de experiencia, no elegiría Python ni tampoco volvería a elegir Java. Me baso en un tema de competitividad. Vas a conseguir trabajo con Python, y con Java también. Con estos lenguajes, lo que probablemente no vayas a conseguir es una empresa dispuesta a hacerte de Sponsor desde un país primermundista si tenés dos o tres años de experiencia. Vas a necesitar más bien cinco o seis.
Entonces, te cuestionarás, ¿con qué lenguaje de programación deberías comenzar cosa de conseguir trabajo en el menor tiempo posible? Mi respuesta es que vayás por Ruby o Go. Y dado que seguramente entendés como funcionan los hábitos, también te servirá dejar de posponer, si es que lo hacés, la alarma al comienzo de tu día. Queremos pensar de nuestra vida como algo en donde se logran cosas; no dónde se postergan.
Volviendo al tema de por qué yo hoy iría por Ruby o por Go, en vez de Java o Python como sugiere el mainstream informático, más adelante paso a comentarte en qué me fundamento. Pero antes permitime decirte que no me olvidé de Javacript, React, HTML5, CSS3. Como verás, son más de un lenguaje, y por eso también más abajo me referiré a ellos.
AUTODIDACTA – ¿Necesitás ser bueno con matemática para programar?
La gente tiene una concepción errada sobre aprender programación. Piensan que se necesita ser buen matemático. Yo terminé el secundario y luego escogí mis estudios superiores basándome en mi negativa a continuar estudiando el trípode de materias duras. Ni matemática, ni física, ni química. No sé nada de integrales ni de derivadas. No sé identificar el límite de nada. Sin embargo pude trabajar de programador en Argentina, Alemania, Polonia, Australia y ahora en Barcelona.
Opino que el requisito número uno a la hora de programar no es ser introvertido, vestirse mal, o mirar animé. Es poder resolver problemas. A lo mejor te estés acordando que durante la clase de matemática es donde debías resolverlos. Y, a menos que la lógica se te de como algo natural, entonces tenías que dedicarle cuantioso tiempo de pensamiento. Lo bueno del pensamiento es que no requiere de esfuerzo físico.
AUTODIDACTA – ¿Por qué debería aprender a programar?
Tus antepasados aprendieron a hacer fuego. Eso les permitió vivir mejor. Si alguna vez armaste una fogata, habrás notado que encender un carbón o una madera voluminosa se torna imposible cuando usamos una llama diminuta. Conceptualmente, programar no es muy distinto a hacer un fuego: tenés que entender el significado y las interacciones de cada componente de un sistema, cosa de que siga funcionando solito.
BUENA DECISIÓN – ¿Es desarrollar software un trabajo estresante?
Hoy. Siglo 21. Hay internet. Tu lugar de trabajo tiene el aire a 24 grados. Hay café y medialunas con jamón y queso. ¿De qué estrés me estás hablando?
ARRANQUE – ¿Debería aprender Java o Python?
Aunque hay mucha demanda, yo, que vengo hace años con Java, noté un marcado descenso en la búsqueda de programadores Java y Python; sobre todo hacia quienes comenzaron hace poco. ¿Se busca y se paga bien? Sí. Aunque eso también es cierto de virtualmente todos los lenguajes.
Si te interesa indagar sobre lo que me llevó a abandonar Java, te invito a leer ¿Por Qué No Volvería a Aprender Java?
¿Y contra Python qué tengo? Nada. Lo respeto. Es simple. Es poderoso. Pero debido a que es el lenguaje de programación más popular, la oferta de programadores, tanto nuevos como experimentados, suele ser elevada. Y a mucha oferta, mucha competencia. Por eso siempre se piensa que una de las mejores estrategias consiste en la diferenciación.
Dicho todo esto, si querés aprender Java, sea porque te convenció alguien, encontrás racionalizaciones para elegirlo o simplemente querés llevarme la contra, andá y aprendelo. Tomamos decisiones buscando evitar el mayor arrepentimiento. La realidad es que no te vas a arrepentir de elegir un lenguaje. Sólo que exprimirás más prontamente al mercado laboral con uno más que con otro.
ARRANQUE – ¿Cuáles son los mejores sitios para aprender a programar?
Llegamos a punto de la historia en dónde quien no se capacita es porque elige no hacerlo. Al mostrarnos métricas de uso semanal, los smartphones dan cuenta de esto. El estar enchufados por intravenosa ocular anestesia dos de las fuerzas creativas más poderosas del mundo: la soledad y el aburrimiento.
Programar es la disposición de una serie de respuestas premeditadas ante un acontecimiento futuro. Una vez ocurrido un evento, se lo categoriza y se suceden una secuencia de metódicas rutinas; determinando, a través de la causalidad, un preciso resultado. Estás con sed; bebés agua. Estás con deseos de cobrar un destacable salario sin realizar mucho esfuerzo; aprendés a programar.
Así como queremos tomar una pastilla cuando nos duele algo, también queremos apretar un botón cuando nos sentimos aburridos. Yo no te voy a solicitar que dejés de entretenerte todo el tiempo; sería muy totalitario de mi parte. Lo que voy a pedirte es que te permitas analizar si hay algo que retrase tu aprendizaje de nuevas y bien remuneradas habilidades; luego que identifiques –y respires– el orgullo por adelantado1 de lograr algo, para que luego puedas utilizarlo como combustible y finalmente ejerzas tu derecho a planificar tu vida. Tu estrategia, como persona decidida a mejorar su calidad de vida, es cada día irte a dormir habiendo aprendido algo nuevo.
BUENA DECISIÓN – ¿Está y seguirá siendo demandada la profesión de programador?
- ¿por qué estarías leyendo esto sino?
EFECTIVIDAD – ¿Cómo me enseño a programar?
Aprendés sobre algoritmos acá. Una vez terminado, escogés un lenguaje. Lo instalás en tu computadora. Instalás un entorno de desarrollo. Programás una calculadora. Una vez que esté andando, te escribís un programita que te permita ingresar la edad de al menos 5 personas, que además valide que no se ingresen edades negativas ni letras o símbolos raros y que, al final, utilice tu anteriormente creada calculadora para informar por pantalla la edad mínima, máxima y el promedio de todas ellas.
SALARIO – ¿Quienes son los programadores mejores pagos?
Un desarrollador de software gana un sueldo que lo posiciona dentro el top 10% de la población. Los programadores mejor pagos son quienes perciben parte de su sueldo en acciones o capital social. Parece ser la mejor manera de dejar de percibir un monto fijo a cambio de un recurso escaso y no renovable como lo es tu atención. Para eso hay que destacarse. La suerte los tiene que encontrar. Y para que eso suceda, hay que hablar en un idioma particular.
SALARIO – ¿Ganan los programadores buen dinero?
Sí.
SALARIO – ¿Cuánto ganan los programadores HTML?
Nada. O casi nada porque primero HTML no es un lenguaje; es un etiquetado de cosas visuales. Además, para saber HTML y que te ofrezcan un trabajo también necesitás saber CSS, Javascript y algún framework (infraestructura/escritorio de trabajo virtual, estilo carpintero), el cuál te facilitará la organización de los elementos con los que interactúa un usuario. Botones. Ventanas. Notificaciones. Y más.
Al disponer de experiencia con un framework como React, Ember o Vue, serás asediado con tantas ofertas de trabajo que terminarás apagando las notificaciones de LinkedIn.
Este ámbito de software se conoce como front-end y refiere a aquellos componentes de software que son más visuales, y no tan abstractos. Según mi experiencia combinada entre programador y como recruiter2, el front-end posee un ratio femenino más elevado que el back-end; el cual suele ser no visual y más bien filosófico y abstracto.
Si ahora, dentro de tu navegador apretás CTRL+SHIFT+C podrás ver las entrañas del front-end.
PREOCUPACIONES – ¿Qué tipo de trabajos podés conseguir programando?
Aquellos trabajos que te arriman hacia oportunidades únicas. Donde la economía de tu región no afecte la demanda de tu profesión. Y si decidís animarte como yo, podrás conseguir un trabajo en CUALQUIER país de mundo al que desees conocer.
PREOCUPACIONES – ¿Es la programación una buena carrera?
No es la carrera ideal para potenciar tus habilidades sociales. Tu cerebro se comunica más tiempo con un aparato que con una persona. Por el otro lado, los salarios al rededor del mundo son tan buenos que, si primero juntás experiencia laboral, podrás tomarte un añito sabático por cada año trabajado y viajar por el mundo incrementando la charla social. De todos modos, estar leyendo esta página confirma tu preferencia por adoptar una visión optimista sobre un futuro que, inevitablemente, será menos físico y más virtual.
PREOCUPACIONES – ¿Es la programación considerada matemática?
Si sos una persona que detesta la matemática y encuentra una manera más eficiente de ganarse la vida, te invito a que la publiques en los comentarios de aquí abajo. Por otro lado, si buscás escapar a toda costa de la matemática y te interesa formar parte del nuevo mundo que se avecina –el del Individuo Soberano– te sugiero investigues otras ramas tecnológicas como son UX (user experience), Testing / QA, product management o business analyst.
PREOCUPACIONES – ¿Se es demasiado viejo a los 30 para aprender a programar?
En economía existe un término llamado costo hundido. Se refiere al sesgo por el cual le damos importancia a lo que no podemos recuperar. El comentario de Damian lo explica mejor que yo. El ya la vivió.