6 ms·
> One problem is that some older IT workers who get too comfortable with their skills risk falling behind, especially in the era of artificial intelligence I a
by Iv 7y ago
> One problem is that some older IT workers who get too comfortable with their skills risk falling behind, especially in the era of artificial intelligence
I am 38, I am in the gap they point out, and I almost fell in it because for too long I thought deep learning was a hype that would eventually die out. I had to have a client force me to look into it to realize that half of my skillset in computer vision became obsolete almost overnight, and the other half is eroding quickly.
We think we know better than the youngsters and in several fields, that's painfully obvious, but let's not be oblivious to the fact that tech still evolves and that half of our job is catching up with it.
- ecnahc515 7y agoWould you mind elaborating? As a young developer who wishes to remain a in the engineering track long term, Id like to understand more about how you realized your skill set was no longer “up to par”. I’m surprised computer vision is becoming less relevant, is it because the techniques have shifted from known algorithms that work to using machine learning to develop better algorithms from training?
- mikekchar 7y agoNot the OP, but this is incredibly common. I will say that if you wish to continue working as a programmer for your entire career it is a mistake to specialise in a particular technology. It doesn't matter what technology that is. The more you specialise, the less versatile you appear to employers. It just doesn't matter what you are working on. It could be a website, or it could be a computer vision system. You use a handful of languages, frameworks, techniques, etc and 10 years later these are no longer in vogue. I think the most important thing to keep reminding yourself is that your career will hopefully last 40-45 years! The pace change of technology is increasing, rather than decreasing. If you think the flavour of the month JS frameworks are hard to keep track of now, wait 10 years when there are 4 to 5 times as many programmers working and what's hot changes practically every day. You are not "safe" with any technology. Even ML techniques will change completely an absurd number of times in the 45 years of your career. Your only hope of staying employed as a programmer for the entire time is to build yourself as someone who can pick up and work on anything at the drop of a hat. Similarly, you need a "story" that explains why you are worth more money than a person with 2-3 years of experience that has specifically trained for the flavour of the month that the company is using now. They will happily chew up and spit out those young programmers and pick up new ones when they go with the new technology. Why would they spend a premium on you? You need an answer (and a good answer) for that question. (I was going to try to answer that question for you, but it's probably better for you to figure it out for yourself... Plus any answer I give is undoubtedly piss off a bunch of people who will identify overmuch with the group I'm marketing myself as "better than" ;-) )
- streetcat1 7y agoNot so true. If any, technology only got less innovative, which is evidence that the field is stagnating. For example: 1) docker / container - an OS process (circa 1960). Basic OS design (os/360) did not change in 50 years. 2) Computer architecture (Von Numan) did not change in 50 years. 3) Basic DS and alg (not ML), did not change in 50 years. 4) Programming lang (C based). 5) Database/SQL (50 years) The only things changing today are (as you mentioned): 1) JS frameworks. but not so much as react won (probably vue js) 2) ML. Here again, most of the work is abstract by pytorch/tensorflow. 3) cloud-native app design. This is a major shift. However, in parallel, there was a massive productivity boost due to free tools / cloud / open source. So today's programmer should be equal to a team of 10 , 10 years ago, and a team of 20 , 20 years ago.
- NotSammyHagar 7y agoSure, core concepts like vms are still around but the practicality and common usage and comfort and ability to understand how they can be applied (like containers) does change, and does affect your ability to get jobs, or at least interview well. I'm also older, over 50, and I'm frustrated at all these people who are similarly experienced and complain that companies don't recognize their abilities. You have to update your skills and be able to talk about the current stuff. You are foolish if you don't practice before an interview. Before I switch jobs, I take it seriously and do something like 1 hour practice every day for a month. I look at current software engineering topics (I'm usually wasting time on hackernews so I'm up to date on the latest gossip). You have to try, people!
- streetcat1 7y agoAmen to that!
- mikekchar 7y ago25 years ago, if you knew C++ and were and expert in MFC you could write your own ticket. Now I know a lot of unemployable MFC experts. When I first started I was encouraged to learn Cobol, APL and DB2 because that's where all the money was. These days I meet people who think that they Ruby on Rails with a bit of React thrown in is going to last them a lifetime. My point is that becoming an expert in a particular language, framework or technology and expecting it to pay you for your whole career is a recipe for unemployment eventually.
- Iv 7y agoMy skills are still up to par :-) But that's because my skills are not in using a specific library or in a specific technique. I was lucky to have engineering teachers who were very adamant that engineering was about understanding, learning, problem solving and the ability to adapt to new tools. It is almost reluctantly that they taught us a programming language, knowing it may become obsolete by the time we finish our curriculum. But they spent a lot of time explaining notions in algorithmics, architecture, mathematics and electronics constraints that I could easily get into the new techs as they arrived. Maybe I was not clear in my previous message. No, computer vision is not less relevant, quite the contrary. But a lot of the techniques we used to have, and where I was kind of pretty expert, were replaced by much better DL models. I saw that in a very direct way. In a previous job (I am a freelancer) I had to make a classifier to judge if a robotic gripper worked correctly. Did not look too hard. I got a few hundreds of OK/NOK cases, fired up my OpenCV custom program and started hacking. I found some good parameters, found that by extracting some blob and computing the diameter/area ratio I could make a good classifier for most cases and managed to get a decent classifier for a huge class of the remaining samples. After 3 days of work, I had a classifier with a 80% accuracy. That's pretty good for that amount of work. But in the end the client decided to go with deep learning. "Oh, they'll be back" I thought, pretty sure they would find out it is just hype and they did not have enough data. They did not come back. Two months later, a client asks me to evaluate some deep learning techniques and pays me enough so that I can spend two weeks getting up to speed in it. I fire up all the tutorials I can find (FastAI classes are very good for people in my case) and one of them is doing transfer learning using VGG. I thought about the previous problem I had and thought that I would give it a go. First run, no tweaking of parameters, no normalization, ugly scaling, no change in the model, I got 87% of accuracy. Using a tutorial anyone can do in 3 hours outperformed what I did in 3 days with (what I thought were) valuable and hard-earned skills. I know specialize in deep learning but still retain a lot of very useful knowledge from classic computer vision and robotics. CS is a field were experience is less automatic than in others. Experience can actually be a drag for an old engineer who stops to learn. We are in a Faustian pact with technology: we are surfing the wave a bit in front of the others but the day you stumble, you are going to fall back-first on the cutting reefs. My main advice would be to always learn and read new things. Reading tech articles, trying new libs, new frameworks while at work? This is not procrastinating, this is staying alive.Take time to understand new tech in details. To go deeper than just "going by" requires. Don't understand why SSDs require new kind of databases with different constraints? Well maybe you need to take a dive into database design and IO bottlenecks. Don't understand why Facebook pushes for a new type of float for parallel computing? Time to dive into IEEE 754 and brush up your maths skills. And yes, this is engineering work. Your employers will often see engineering like a bit of black magic. They are not sure how it works, but they want it. Staying up to date is a part of this magic that they need without knowing they need it. But at one point, you'll be the one your boss turns to (trying to hide his confused look) when asked by a client if you can support Kulisch accumulation and will be very happy that you read about it during your work time.