4 ms·
My 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 t
by Iv 7y ago
My 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.