No, your career is not doomed. Follow your insight. Keep reinventing yourself, keep curious, keep learning be it in your career or AI/ML or anything.Try to make friends, get involved in projects.Good luck!
I've been a professional web developer for 8 years. I don't have a C.S. degree either, though I did go through calculus (not really relevant). Honestly, I think it's far more important to be a solid programmer than learning the hype of the month. That's not to say you shouldn't keep up with developments in technology though. I think it's just a fad that will fade out. Sure, it sounds like you can do some cool stuff such as image generation or natural language processing. However, I think those applications are not as numerous as the posts on HN would lead one to believe. Not everything needs some magical AI to synergize the widgets.
No you're fine. What you're seeing is the emergence of another subfield in computer science.Your question isn't to dissimilar from: Is my career as a backend developer doomed if I don't become a JavaScript/React developer?
No.1997: Is my career doomed if I don't become a web developer? No.2007: Is my career doomed if I don't become a mobile developer? No.2017: Is my career doomed if I don't become an AI/ML developer? No.2027: Is my career doomed if I don't become a/an [...]? No.
If you're worried about this, I would recommend learning about the "complements" to AI -- data preparation and distributed computing. Those both involve a lot of conventional software skills.What you don't get from the flashy news articles is that a lot of ML work is programming and sys admin work: writing code to prepare the data, and a cycle of tweaking and re-running large jobs (including debugging them when they run out of resources, etc.).You can also read papers like this which talk about the software engineering challenges of machine learning systems."Machine Learning: The High Interest Credit Card of Technical Debt"https://research.google.com/pubs/pub43146.htmlThere's a big difference between "we got this thing to work once" (which is most of the new articles you read), and a system that does useful work over a long period of time. That latter is what you should know about as a software developer.
You know, being able to make a microprocessor from scratch and being able to supply the right instructions to get what you want -- these are different domains. As long as you can understanding what Machine Learning is _doing_ I think getting practice with some libraries and watching a lecture or two will give you the ability to play with and train them.Basically, you have a training set of data that has "this is the data in" and "these are the outputs I expect." so if you are training something to learn the different animals of the animal kingdom, your data set might be portraits of giraffes and gorillas, and your outputs might be simple labels like "gorilla, snake, giraffe, tucan" etc. The neural net part of it is like the parameters you can hone. You can hone how many layers deep it is (try a layer for each dimension, like if you are tracking 5 facial features, you can try a network of roughly 5 layers). You have an "activation function" [usually sigmoid] because the _neurons_ sum their inputs and only fire on activation threshold (like your brain neurons).Anyway, don't let the maths hold you back. When you can find a Python library on neural networks and play with it well enough to get results, you have pretty much figured out the puzzle. Not many people have deep intuition on how it works exactly, because the parameters (the "brain" of "neurons") is really an abstract mathematical object that is adjusted regressively over the course of learning [the training data].Don't be discouraged, there is plenty of growth in software, and unless you are trying to help make a breakthrough in ML or "artifical intelligence" which, in my opinion, is something we have not even come close to touching, you don't really need to know the nitty gritty. The promising modern day results in ML came about because someone wanted to model a brain with a computer and ended up learning how to pattern match. (Results match Data? Accept : Adjust)
There's plenty of comments on saying no your career is not doomed. I'll add that using HackerNews is not a strong way of grasping industry needs. If one took their advice solely from HackerNews, one might think the only tech that matters is JavaScript and associated framework of the season. This is simply not true...check out indeed.com, many many languages are in demand. Lastly, AI might be the thing of the future but the press, even the "tech" press, has a way of bubbling up and propagating hot stuff.Remember "nanotechnology" from a few years ago? I recall reading, in a respected source, soon we would all have nanotechnology technology infused clothing off which would just roll all foreign particles! Well...still wearing my cotton slacks today...
I think you'll be okay.If you want to get a look at how AI and ML are going to end up being applied to a huge number of business problems, try out the Azure Cognitive Services APIs[1]. I'm not associated with them in any way, I've just played around with the APIs and enjoyed them.A huge number of developers today wouldn't be able to re-implement the frameworks they build applications on top of. And that doesn't stop them from being productive and well-paid. They add value be being able to to recognize real-world problems, and understand how various libraries and frameworks can be combined to solve those problems.I think that AI/ML over the next 10 years will be like SaaS was over the previous 10 years. When frameworks like Rails became popular and gained wide acceptance, it became easy to very quickly come up with web-based solutions to a huge number of problems. And people didn't do this by being experts on how the whole tech stack worked. They did it by knowing how to solve problems with specific technologies, and then recognizing problems that the technology could solve. Lots of startups have made piles of money this way.I'm a huge proponent of understanding as much as possible of the theory and math behind the technology to use. But being able to solve problems with the technology requires you to be out the world, recognizing problems that can be solved. For example: take a look at the kinds of output the Azure Computer Vision API can provide when provided with a given image[2]. Now think of all the businesses you've encountered during your career. Most of those businesses have problems you could solve using that API. And if you don't like MS or Azure, they're far from being the only provider of such APIs.There is, and will continue to be, lots of opportunity (and money) available for people who can understand how to use new technology and recognize how to apply it to problems in a way that will save companies money, or help them make more money. Be one of those people.[1]https://azure.microsoft.com/en-ca/services/cognitive-service... [2] https://azure.microsoft.com/en-ca/services/cognitive-service...
I could easily be wrong, but suspect the solve for AGI will not involve much in the way of complex math (I have been of the opinion for a long time that NNs are not the solution, see my recent Twitter thread here for elaboration: https://twitter.com/gavanw/status/929085831104512001).Analogously, my advanced calculus is pretty weak these days, but I have found a strong understanding of basic algebra and vector math is all you need to be a good graphics programmer. There are many fields like this where you do not need to read or understand a single whitepaper in order to be functional within it.
There is going to be a massive infrastructure built out in the way of AI services. You're going to be able to interact with those services using numerous existing languages, including Java, C#, Python and on down the line to include PHP. There will be several tiers of complexity, what we're seeing built now is the most difficult first tier. In the coming years, more and more layers of simplicity will be built, abstracting away the complexity. AI broadly is another tool, that's all it is, we'll build a lot of ways to use that tool.
If your toolkit is centered around 'web' programming then I think you should consider widening your reach. If there is a phyla of developers it could arguably defined as; * embedded * web * control systems * data analysis * finance * networking * systems The more bases you cover the more likely you will find a job developing code during a transition. Note that for senior engineers it isn't about the programming language it is about the domain knowledge around the programs.
no, if you can just write scripts to clean up the data used in the ML/AI models, you'll likely spin gold for the next decade or so.
Although having AI/ML expertise is obviously overkill for most engineers, understanding the concepts and limitations of AI/ML is a helpful skill for any engineering field. (specifically it is not a magic spell that can solve any problem no matter what)But don’t say “I took Andrew Ng’s Coursera class and now I’m an expert on AI/ML!” like many engineers tend to do nowadays.
What's cool for developers like you and me is the AI/ML technologies are being commoditized.I have no idea how to build an image processor, or a database, or cloud infrastructure, but I can use Pillow, Postgres, and AWS to build products on top of those capabilities. AI is starting down the same route, where the number of developers who use it will vastly outstrip the number of developers who contribute directly to it.
I would bet a small fortune that the ML hype will not live up to expectation on a 7 year horizon. It is true that there are cool things coming out of the field, and it is true that there are a lot of smart people are entering the field. But the demand for researchers, using actual mathematics day-to-day, is going to be incredibly slim compared to what you'd think it'll be if you read the news about this stuff. Data science has been hyped up for close to 10 years now. And all that time were there fears that we'd all have to become statisticians in a not too far away future. But the day has not come. In fact, you could argue that there is even less reason to get dirty with pen and paper than ever, since a huge mountain of frameworks have been developed (e.g. tensorflow) precisely with the motivation that it'll be able to bring in math-afraid coders into the ML sphere.
I'm a distributed systems person. Not worried at all. There are lots of specializations - just choose one that is interesting to you!
I have the same questions, but to my surprise, there are more software engineer/senior software engineer jobs in bay area than data scientist/machine learning engineer, according to LinkedIN. This is the scenario now ! No idea hows its going to be in 3-5 years from now !!
A lot of people are saying here that your career won't be doomed, and I think they make decent points. However, to play devil's advocate, I would like to argue that your career is in fact doomed if you don't learn AI/ML.A lot of folks like to smugly predict the future based on their individual experience during past technology cycles. The advancements coming out from AI, however, are completely different than anything humans have seen before. It is entirely possible with deep learning that entire sectors of tech could be automated away. Maybe front end development doesn't get fully automated, but perhaps we build tech that makes a single developer 10-100x more productive? Then the labor demand for front end developers could drop in the same way that bank teller jobs have dropped due to ATMs and online banking. I would argue that while software is eating the world, AI is going to eat software.Don't discount AI. Learn as much as you can about it and perhaps your career will be the last one to be automated away...
There is still a need for COBOL developers. I think Java will be fine for a fair few years yet.
If you are interested in the field, it might be helpful to pay for a teacher and ask for advices. A teacher will be able to trace a path from the level you are now and help you learn just enough math for you to get started. It's way easier, take less time and is less frustrating. In France it's possible to get a math teacher from 30€ to 50€ an hour.
Not at all. You can still learn about blockchain.Jokes aside, you don't have to learn AI/ML specifically to remain relevant, but you have to learn something. You can learn:- about a domain (energy, finance, medicine)- a toolset (math, stats, programming, design),- a "hot" new technology (bitcoin, drones, wearables, VR),- put together a network of talented people and so on.You have to do something, but not necessarily any particular thing.
It's not practical to do complex math every time there is a new application of AI. So the amount of math necessary will be limited. Devs will probably shortly need to be able to use AI libraries and/or cloud systems. This may be complex and use a little math sometimes but doesn't require a math degree. Less math becomes necessary over time as off the shelf becomes more powerful.The next part is controversial but I personally believe the first unimpressive but totally general AI systems will appear in 2019. They will be animal-like intelligences, with real or simulated embodiment, inputs and outputs that can serve any purpose, online learners that can reuse the same nets across tasks.As AGI becomes more powerful in the early to mid 2020s it will become apparent that most of the existing jobs will either be replaced or have to change to something the AIs can't or aren't allowed to do. AIs will be able to code.
You'll be fine.Yes, it's true that if you happen to have expertise in ML or a related field then your career prospects right now are looking good. But not having ML absolutely doesn't mean that your career prospects are bad. To use medicine as a parallel: sure, it might be sexy and lucrative to be a Brain Surgeon (or whatever), but 1) only a tiny percentage of doctors can be brain surgeons, and 2) being a doctor is a solid and well-paid career no matter what you specialize in.As for the people who say ML is going to make most software developers obsolete because machines are going to learn to write code - don't believe the hype. A large chunk of the work programmers do is translating vague specifications from other humans into precise technical concepts (and only then into code). The only kind of machine thay could really do that kind of work well would be a general AI, and that is 1) not even on the horizon in terms of our current technical knowledge, and 2) basically a social and cultural singularity for humanity as a whole, so that worrying about your own career prospects I those circumstances would honestly be kind of silly.
You're never doomed if you keep learning -- and humans will be writing a lot of code for quite a while yet I believe.
1) ML is still going to be a tiny niche in numbers of all the software things that need to be done, it's just a comparably new and trendy niche, so it gets talked about.2) In most ML projects, the majority of the necessary code written has nothing to do with ML, it's all the data transformation, transformation pipeline, service backend, data management tools, etc etc; so in a multi-person ML project usually most developers don't touch the ML part.