I read a comment on an article in which a young programmer writes that he does not want to work where older programmers who use obsolete tools are relieved of their duties instead of retraining.
This guy didn't mean anything bad, but he still pissed me off. Firstly, if a programmer is older, it does not mean that he uses outdated programs (and if someone is young, this does not mean that he uses the latest programming products). This is what I learned from this comment: it is your responsibility to do your education and learn the latest approaches, and not your employer.
I was a programmer for 32 years, and I always tried to be one step ahead of the all-destructive
technological power . I knew a lot of people, bachelor of science in the field of computer science, who, after school, did not learn anything new and, eventually, fell into the rank of "obsolete." I studied chemistry for 6 years, but when I took the post of programmer, I suddenly realized that I needed to know what was going on outside of my work, I was overwhelmed with the desire to constantly learn new things and try all kinds of programming. Of course, at that time everything was much slower, and even reading was a daunting task (lack of the Internet - you had to read from plain paper!).
In the third year, I realized that microcomputers would become our future, then I was introduced to the
group that worked with them . As soon as I got there, I read about the new C programming language and convinced my manager that it was worth buying. It turned out that knowing C, I could write my first application in this language instead of Pascal.
')
Later I read about the PLO - and it interested me. I added a couple of objects to C in order to gain some advantages for myself. As a result, when C ++ appeared, I was ready to take advantage of its benefits.
After my temporary joining Apple, when it became unbearable, I thought that I needed to continue working with the network, and then I went to work at a consulting firm that used WebObjects from NeXT, written in a strange language called Objective- C. As soon as the Java J2EE platform appeared, I convinced the company to start working with this technology, and completed my first project. It just so happened that the project was implemented in a company that is now the parent company of my employer, and this was their first completed Java project.
This is what happens when you pay attention to what is happening in the industry, instead of focusing only on what you are working on. You never know what the next boom will be, but you can always be aware of everything, even if you can't try everything.
I sometimes remember one of my colleagues, in the mid-2000s he was a leader in C ++. I once advised him to use the Firefox browser, as he had some difficulties with Internet Explorer. He looked at me as if I was a complete idiot: he had no idea that other browsers besides Internet Explorer were available. Even then, he showed no interest in using it, since it would not change his work. I do not understand this attitude. You never know where the next important new product will come to us from and at the same time refuse to recognize that the world is changing, and it will always be so.
My friends, who received bachelor of science degrees and eventually lost their jobs when the basic computer resigned, and they realized that they could no longer work as programmers, complained that they needed time to learn something new. But as soon as you realize that your knowledge is outdated, it is already too late. The impossible dream of believing that your employer will retrain you. Nowadays, employers can leave you, your job, your projects or even a company without any warning, and then you have to look for a new job. Expect them to retrain you instead? This will never happen. If you are a worker on a car conveyor, yes, it is still possible, but the programmer has no such chance.
You should be aware of everything, try new things, even if they seem insignificant. Learning everything is useful because the more programming technologies and tools you try, the easier it will be for you to work with the rest. You can learn useful things. Learning can never be useless. It doesn't matter if you are writing open source projects, you are inviting yourself to code something, or you work at home on something that no one will ever see. It trains your brain to take on new things. Even knowing what is happening in the programming world can help you answer all the questions that your future employer may ask.
When I first heard about Ajax (a couple of months after the term was coined), I wrote a web application. I immediately took advantage of this approach. And again I ended up teaching my teammates a new gadget. Unfortunately, this frightened the architectural team: they thought that I had bought some new technology without being approved, and wondered if they would support it. None of them had heard about it and had never heard of it (since they did not pay attention to it), and when I told them that it was just Javascript, they hardly calmed down. It was my responsibility to keep abreast of new products, but this attitude could not help but annoy me.
When the iPhone first came out with no development tools, I already thought that it
represents the future . Surprisingly, my knowledge of Objective-C is useful again!
Today, to be aware of new products sometimes seems ridiculous work. People working on web applications in Javascript have at hand a steady stream of regular “explosive” new products every week; you cannot learn everything quickly enough, because the old is constantly replaced by the new. I do not work in this area (only iOS), but I also try to keep up to date, because you never know how things will go or when you successfully complete your project.
The few activities that the employers provided me usually were useless, as I already knew newer technologies, or they offered technologies that were unimportant for my future. But you never know what might come in handy in the vast future.
In graduate school, studying chemistry, I learned the programming language APL. I did not use it for anything else, like to run, but with it I built the base for my first product, Trapeze. I forgot about Objective-C after 1999, but today it is my main language. You never know about relationships that may be useful in the future.
It annoys me most when programmers ignore everything that is beyond the scope of their workplace. I once worked with the guys who used the 4GL tool that generated the RPG code. They boasted that this tool is the best in the world and that they do not need to know anything else. I can easily imagine how one day they will be fired, and they will wonder why they lost their jobs. Technologies are unlikely to be lost, but your work is possible; you can do nothing except disgusting technical support, you can become redundant, and you will be put out of the door. Today, apart from yourself, no one will help you become useful again You can wait until it is too late, and then the crushing power of progress will crush your career.
So do not wait for tomorrow, learn about something new or, even better, learn something new. Be alert, you may notice that the future is approaching you. And when it suddenly appears, you will be ready. So far I have dedicated some of my time to new products, and this has led to the fact that after three decades I am still engaged in programming and still learn something new.
So look in both ways and do not think that someone will help you keep up with the times. As the baseball pitcher Setchel Page once said: “Don't turn around. Something can catch up with you. ” In programming, you need to look only forward, because the only thing behind you is the same ruthless crushing force of progress.