The following story was published by Max Stern, a member of the CodeGym community. If this is a question that you've asked, take a look. Or if you know someone who is haunted by doubts about whether it's too late to start learning how to program, just share this story.

I simply didn't know that I had missed the train, so I went anyway

When I first thought about changing my profession, my youth was already in the past. Not that it was excessively long ago, but I did have three full decades of life under my belt, and as you probably know, for some HR managers working in the IT field this is a very advanced age.

But I had no idea that my age might be thought of as corresponding to "nearing retirement". It didn't even occur to me to ask "Isn't it too late for me?" And I think this thoughtlessness saved me. If I had stumbled upon motivational articles about how "it's never too late, even for a gray-haired 29-year-old!" at the beginning of my studies, I would gotten worried and concluded that I probably didn't understand something important about programming. For example, I might have come to believe that programming requires the young brain cells, and that at age 26 some sort of irreversible mutation begins — and then that's it, turn off the lights and go home. I might have either dropped the idea altogether or opted for radical brain surgery. I might have concluded that a programming career is like being in a boys' choir — you're welcome until age causes your voice to deepen.

Or take gymnastics. Due to the particular muscle requirements for these athletes, their careers end at the age of twenty, and young gymnasts are not be accepted on the professional track after the age of eight. And they will be called old men and old women for the first time in their lives.

I had not directly encountered such "young" professions. I studied mathematics and, for a while, science. Then left to teach at high school. A high school (even a vocational one) is the last place you will hear someone say "What?! You're <insert any number from 18 to 105> years old! You won't be able to become a teacher. It's too late (early)" or "You have no propensity for teaching at all." There, anyone who expresses even a fleeting desire to plant what is reasonable, good, and eternal into the minds of our youth will be snatched up forcefully. There isn't even a special check to assess whether candidates are suited to the profession. Just a check to ensure that there is no criminal record (and if you know, you know...).

I had never heard of strict age limits for mathematicians or non-programming engineers. So I decided that I needed to do something, because at some point I realized: if I remain a high school teacher, then I'll end up in a mental institution. Or I just won't last very long. When I decided to change my profession, I still loved mathematics. I was mostly indifferent towards kids, but there was some silent contempt. I was mildly perplexed by my salary, given the number of my nerve cells that died in my unequal struggle with those young creatures.

Okay, leaving high school is an idea. But where to go? Back at institute, I enjoyed solving programming problems. True, I didn't do very many, and I had already managed to forget everything. Still, I made up my mind. I had no idea that I was missing this train, so I just climbed aboard and away I went.

How I learned to program (very briefly)

  1. I learned just a little Pascal in high school.
  2. I studied a little C and Java at institute.
  3. I had tried full-time Java courses, but I quit (10 years after graduation).
  4. I landed on CodeGym (one year after I had quit the full-time courses) — I liked it, but quickly "flew away", since I lacked the time to go deeper.
  5. Then I decided to take it seriously. I quit teaching high school, though I tutored several students. By the way, if you show yourself to be a competent tutor, you can earn twice as much as a high school teacher in a quarter of the time — and I won't say anything about the number of nerve cells you will save. I continued to study on CodeGym. Sometimes I tormented my programmer friend with questions. I read books and searched for answers on the Internet, a classic!
  6. I got an internship at a company, and successfully completed it.

At some point, I did encounter various age-related problems, some of them directly, while others I learned about on forums or while talking to other future thirty-year-old junior developers. But are these problems real? Are they related to challenges of our physiological age, as is the case for the gymnasts mentioned above, or are they of a social and psychological in nature? I will describe these factors below. And I will expose them as false, although I won't argue that "just about anyone" can become a programmer.

Factor number one. A psychological barrier or "the clock is ticking..."

It wasn't until I reached Level 20+ on CodeGym and started to think about getting a job that I felt a little uneasy and began to suspect that I wasn't the young and upcoming person I felt (and feel) myself to be. And not because I was doing worse than 17-year-old John or 23-year-old Kyle, whom I chatted with on a forum. But because they wished me good luck all the time, since "it's so difficult to learn after 30". And to become a junior dev — that's just inconceivable! They won't hire you, and if they do hire you… it will be an embarrassment to be subordinate to younger folks. This self-doubt was also because I constantly came across articles expressing the idea that "It's never too late" and I realized that someone must be asking whether it is too late.

And my good programmer friend once said, "hurry up, otherwise it won't happen — they won't even look at your resume". Hearing that, I was completely deflated... And I understood what women must feel when they constantly receive rude hints to get married and have children. Remember that biting phrase that is disguised as concern: "the clock is ticking."

I definitely came to a standstill and found myself unable to complete a single task. I opened IDEA, but I could not type a single line. Instead of feeling my heart beat, I heard a "ticking clock", and each tick was actually a full-on battle, threatening and loud, like the tolling bells of the Kremlin Clock.

Frankly, these tolling bells in my head took me out of action for a while. I concluded that I had just been wasting my time. That for a thirty-something-year-old beginner, programming is at most a hobby, and I couldn't become a professional. When I was 22, I started learning how to play the guitar and went to swing dancing. But learning the guitar and dancing took much less time, and I had zero hopes of becoming a pro dancer or guitarist. So what could I expect here?

Fortunately, this self-doubt did not last long. Logic kicked in. And this logic said that this was all ordinary anxiety. That the problem was just in my head — "There are 23-year-old senior developers, and here this old guy isn't even a junior dev." "I'll never keep up with them." But then I asked myself, "Why chase after them? Wouldn't it be better just to keep studying diligently and see what happens?"

And I was able to resume writing code. And the more I wrote, the better I could do it. Quite logical, huh?

Factor number two: Are adults worse at school?

It's true that learning doesn't always come easy for adults. But this is not because adult brains shrink automatically at age 28 regardless of what a 28-year-old is doing with their life. In reality, the reason for this difficulty is that many adults are simply out of the habit of regular study. It's like going to a gym. If you go, then at least you stay in good shape or increase your fitness. If you don't go, then all your fitness metrics slowly deteriorate. As in the beautiful but silly words in "Through the Looking Glass", it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that.

So, if you're 30 or older and you regularly engage your brain in a broad sense (e.g. you read, write, study a foreign language, study a musical instrument, or build model planes), then it won't be more difficult for you to study than for you at age 20. The only thing that is important here is that you are doing something regularly. I've had been studying regularly. First, there was my study of mathematics. Then I learned how to teach (in all seriousness, I studied child psychology, thought about how to convey mathematical information to unprepared minds; wrote abstracts, etc.), and also learned English, dancing, and the guitar. And more recently, I am learning how to box.

I've been a teacher for several years, and I can competently declare that the importance of a child's age is extremely overrated. I've met incredibly, unimaginably dimwitted kids, pardon my harsh words. They sat in class like ninety-year-old invalids, or rather like opium addicts. In the eighth grade, they could not add fractions, and some had only the vaguest idea of multiplication. But I also encountered extremely weak-minded kids who began to learn and develop their abilities. I've seen very gifted children, and I am sure, barring some very bad incident, they will turn out to be equally gifted adults.

Similarly, as an adult, I met a former classmate who barely passed English class and only out of pity. At the age of 29, she took up English again, studied the language, and now works with translations, and what's more, she brought me up to speed.

Yes, there are some things that kids can do better. But that's not the case with programming, believe me. If you've fallen out of the habit of learning, then it is important to try to get used to it again, to give yourself time for just that — to form a habit. Perhaps those who are "out of the habit" should take face-to-face courses (not even necessarily about programming) and then proceed to CodeGym or a self-study of programming. If you are not willing or not very motivated to study, then yes, it's really too late for you. Even if you are 20.

Factor number three: not enough time

I encountered this issue at the beginning of my attempts to study. For students in elementary school through university, two-thirds of their active time is devoted to studying in some sense. As a result, the appearance of another academic subject is not so noticeable for them, nor does it critically affect them if the learning processes are structured properly.

Half of my time was spent at work. Another part went to my personal relationships. I devoted an hour a day to hobbies. And part of the day, I rested (but most of the time I was checking my odious homework). Oh, and I slept sometimes. Given my schedule, even if I completely abandoned all hobbies, I did not have enough time for serious brain-intensive study. I was too tired from work.

Perhaps this is a very thorny issue for most people. You have to coordinate study time with loved ones, give up some entertainment, come up with a study plan, and not lounge around, despite your fatigue. I was able to quit my job easily, because, first, I had given prior thought to how I could bring in an income (tutoring), and second, I knew that I could always get my job back for the reasons I described above. So here I'm not going to shout "It's easy, just do it!" This is not true. Especially when you have a family. But in most cases, you can find a way. For example, a family friend cut down on the number of smoke breaks and chitchat with coworkers. After doing the math, she realized that these activities took up roughly two hours of her work time. She began to work harder and freed up another hour. As a result, she managed to do all her work and used her reclaimed two or three hours to study on CodeGym. By the way, she is the one who introduced me to the website. And yes, she's already a mid-level developer. And yes, she is my age. Here's my conclusion: the problem is serious, but in many cases there is a solution. A radical solution, like mine. Or a labor-saving solution, like my friend's. Or something else. At least try to find one.

Factor number four: someone's gatekeeper complex or "Oh, that woman in HR..."

I've always been able to easily communicate with people who are much older or much younger than me. But after observing my acquaintances, I realized that this is far from the norm and that I'm rather unusual in this regard. I don't know why things are this way, but they need to change. Both in IT and in life generally.

Even though in all the IT forums people trumpet that "it's not your age but your knowledge that is important", in reality, age often affects whose resumes get selected. Especially when it comes to internships at companies. My friend completed a decent paid full-time programming course, and said that the most intelligent guy in the group, who was my age, was constantly praised by their teacher. By the way, the teacher is an excellent active senior Java developer. Before I got my internship, which I successfully completed, I consulted with him several times, receiving invaluable advice. This teacher's group also include two university students. A "good" one, and a "bad" one.

Well, these guys applied for an internship (not the same one as me, a different one) after completing the course on "Java Enterprise, Spring, and Hibernate". Out of the whole class, two applicants were accepted. Who would you think? That's right, the two university students. Even the "bad" one. True, he quickly abandoned the internship, but his acceptance changes the situation: he was given a chance only because of his age, just like the most promising candidate in the group was not given a chance — also because of his age. As a result, the "promising" student became a programmer, but the "old guy" had to really exert himself.

I didn't get a single response to my resume when it included my date of birth, but as soon as I removed it, things started to happen. I'm not kidding. HR managers, are you serious? It was another matter when I was already at an interview and was able to win people over. Then my age really was insignificant, and my knowledge and communication skills easily come to the fore. So my advice to you is to remove your date of birth, and remove any information that reveals your age from social networks (HR managers sometimes look at them). Don't let them judge you by your age.

To be fair, I'll note that there are excellent HR managers who do not screen resumes for being "too old".

Conclusions

  1. Programming is not ballet. It's not a boys' choir. It's not gymnastics. Here, changes that come with age are not an inherent barrier. Your lifestyle is more important.
  2. It's important to overcome the psychological barrier. Are younger folks in higher positions? Just ask yourself why you're even comparing yourself with them. Enough already with measuring yourself against future potential positions. Measure yourself later. Is it too late to become a pro at something new? Well, maybe you won't be quite the programming virtuoso you would have become if you had started at 17 (and that may not be a fact), but Java projects need decent mid-level developers no less than, if not more than, they need "stars". If you like programming or you know how to think logically, and you are determined to enter a field that pays well, then boldly take the first step.
  3. You must set aside time for regular study. This is indeed a challenge for an adult burdened with a job and family, but in many cases this problem can be solved if you diligently look for a solution. Analyze what you do on weekdays and on weekends. Think about what you can cut out, what you can rearrange, and then move forward.
    "It's never too late to learn," said the person who never stopped learning. If you've had a break of ten years or more, then it will be really difficult. It might be worthwhile to dedicate a couple of months to some simpler hobby or some courses just to try to get used to the learning process. If you are already currently learning (something, somehow), then learning programming won't be a problem for you — at least not an age problem.
  4. Can you address items 2-4? Then it's not too late for you to be a programmer. And I'm not asking how old you are =).
  5. A narrowminded HR manager can be a major hurdle for an older job seeker, but this can be overcome. Still, when sending out your resume, don't let strangers know how old you are. Let them look at your technology stack and your communication skills.
  6. It's too late only if you are too lazy to study and take action, if you are not willing to sacrifice anything for your education and cannot set aside time. And if this is the case, then it's too late even if you're only 19.