HACKER Q&A
📣 juansg

Getting into AI?


I'm a software engineer with ~10 years of experience in robotics and in more traditional full stack development. For the past year I've been looking at all the progress happening in ML/AI and each day I'm more convinced that there's a lot of game-changing stuff that will come out of it (what we're seeing with Stable Diffusion and GPT3 are some examples of this).

I would love to pivot my career from traditional backend/frontend web development type work towards, but I'm struggling to put a plan in place.

- What would be the main topics to learn? - What are potentially relevant companies to apply to? In the past I've been wary of companies throwing AI words around, as in reality many of them were just using some basic ML models and calling it ground breaking AI to hype investors and potential hires.


  👤 gyulai Accepted Answer ✓
If you get into it now, you'll probably be on the losing end of a pork cycle [1].

All of the hype is creating overinvestment on the side of "producers" of AI. All that overinvestment will mature at roundabout the same time. When it all hits the market at the same time, they'll have to fiercely compete with each other at the same time as having to deal with "reality" kicking in, i.e. learning the difference between hype and real demand to create real value for real paying customers. There will be massive oversupply.

You'd have to find some way to be short that thing, i.e. to somehow take the other side of that trade.

You want to be on the receiving end of that investment with no exposure to the crash that will follow (if any). For example, if you had an AI background now, you could start an AI school. Your customers would be people taking the hype at face value. You'd take their money now, but when it later turns out that the skill isn't worth in the job market what they thought it would be, you're not exposed to that. ...that's what acting school does for wannabe Hollywood superstars. Running an acting school for wannabe stars is definitely a better business than trying to actually be a star.

[1] https://en.wikipedia.org/wiki/Pork_cycle


👤 mark_l_watson
Given the uncertain job market in ML/AI, I would recommend taking a few online classes aimed at practical applications. If you are a full stack developer working at a company you like then perhaps there are opportunities to add value writing simple models with available data that would be valuable to your employer?

Sorry if I sound jaded in those comments, but I have mostly been employed as an AI practitioner since 1982 and I have seen severe cycles of plentiful AI work and little available work.

I really recommend having a generalist’s mindset, and adding data prep/model building/deploying models as yet another skill.

I mostly use deep learning now, and Andrew Ng’s online classes are very good. If you just want to have fun, you can read all of my recent AI books on my https://markwatson.com site, but to be honest I do less teaching of fundamentals and more just offering fun small programming experiments. In addition to Andrew Ng’s classes (still on Coursera?) I have found https://www.edx.org/ classes really useful and most can be taken for free.

I also recommend signing up for OpenAI’s APIs. I spend very little money for a lot of use, and I have all but given up writing my own NLP code, something I have been doing off and on for over 30 years.

I have a difficult time imagining what the future AI work landscape might look like for you but my guess is that tooling and applying new theories will keep getting easier and more people will at least have ML on their resumes. This is why, for both employability and work enjoyment, I recommend the generalist mindset.


👤 college_physics
Even ten years ago this would have been a difficult career switch without a serious (graduate school level) investment in the very specialized mathematical background of deep learning models. Nowadays its even harder. The mathematics haven't changed much, but the easy pickings are long gone. Now you'd have in addition to target specifically a sub-domain, with all its associated context and heuristics, whether that is text, image, audio or more exotic stuff like protein folding.

Nevertheless the above caveat concerns the overhyped "AI/ML" space. Digitization, quantification and automation of information flows is much more general phenomenon and with a more modest investment in statistics / data science you can be part of this general trend of productionizing "analytics". Just don't expect bubble era FAANG salaries. These were the product of very specific conditions.

If a general data science transition works out for you and you are still interested in the AI/DL/ML bandwagon after you are in better position to understand why and how it works you could easier drift into that space later as it is just an extremely specialized subset of that world.


👤 imhoguy
SWE ~20 years, curious I have spend like 4 days to learn and do some hacking around that Stable Diffusion hype :) Well, there are three types of "boring" work I discovered there:

- researchers - math and stuff, optimizing training, inference, reading tons of research papers, writing papers, implementing low level algos, a lot of trial and error work - that is like 0.0001% of the entire community,

- integrators - building workflow front-ends, wrappers, PS plugins, optimizing the stack, doing some Dreambooth training, tinkering with high-level Python, 0.1% guys,

- users - running one-click tools or just clicking thru some AI-art generator webapp, participating in reddit d* size contest, spreading the news, writing sensational articles for mass audience, hype preachers on YT, designers augmenting Photoshop skills, the best are trying to monetize the tutorials and AI-artwork, 99%.

All that reminds me a bit of "blockchain" career hype cycle which is now fading. For now it is all "vitamins" (vs painkiller).

I will definitely play with more of it on the side. But for now I am back to my boring and stable devops/backend web job, I see a lot of K8s pains to kill :)


👤 orbifold
You can do a PhD in the field, depending on your background this wouldn’t necessarily mean that you had to give up working. There are many companies interested in „Industry PhD“ and your experience and background in robotics would probably be a great fit at many places. To give you an example I recently interacted with someone that was doing a PhD and was working for Stabilo (a German pen maker).

Here is a random PhD job opening in Stockholm, that I just got send. I know the professor he would be very happy if someone with industry experience showed up:

We have a PhD opening in my group, addressing “event-based vision in challenging automotive environments”. https://kth.varbi.com/en/what:job/jobID:560761/type:job/wher...


👤 good_boy
SWE 20++ years. Same thing. And here is the way, I think. Get the basic skills, what is model, how do they work, how to train them. Get some product idea. Probably some web site with, say, image processing AI. You don't have to invent much at the beginning, there are many almost ready to use models. Stable Diffusion, for example. Check the license, make sure it's legal. You don't have to pay much, or quit your job. So it's just the time you are investing. If site becomes profitable - excellent, you are in. By this time you will know what do you want and what do you need.

As for myself, I consider several options. First, create a robot with computer vision, probably walking, doing something useless. With this proof of skills join robotic startup. (plus those 20++ years, CS, some experience building / training, reading, PyTorch, and so on..)

Second, create novel model solving existing problem, which many tried and nobody does well yet. I tried with promising results, and have ideas how to do it better. If it works then either a paper, or a product.

Third, put together models from different domains to create a useful product. Probably will have to reimplement some of them. There is so much free stuff around that it's almost a crime to not to use it.

Forth, keep current job and have AI as a hobby which may one day become a job.


👤 kevin_vanilla
I switched from being a SWE of ~10 years to a Research Engineer at DeepMind, so while it is difficult (as other comments have noted), it is absolutely doable. I wrote a blog post about it here: [EDIT: fixed] https://medium.com/@kfedvanilla/switching-from-software-engi.... Happy to answer any specific questions you may have beyond what's in the blog!

👤 tester756
>For the past year I've been looking at all the progress happening in ML/AI and each day I'm more convinced that there's a lot of game-changing stuff that will come out of it (what we're seeing with Stable Diffusion and GPT3 are some examples of this).

Wow, I must admit that out of all big branches of computer science AI/ML is the least exciting for me. I don't know, but all that unreliability is just putting me off.

I do agree that it's better to have something automated in 90% instead of 0% or 40%, but the impossibility to getting it to 100% is annoying.

It's been like over a decade of huge hype on AI/ML and yet I feel like biggest applied AI/ML that affects my life directly or indirectly is search & ad industry or things like chat bots, but it's mehhh.

I don't believe in autonomous cars based on computer vision


👤 Shinmon
A full career switch will likely be hard. For everyone working on stable diffusion or GPT3 there probably 1000s of people working on rather mundane tasks in ML (nothing wrong with that).

If I were you I would leverage your existing knowledge in robotics and see how AI might apply there.

For example, computer vision will very likely be a major part of robotics. I could also image that there will be Speech2Text models where you can just tell a robot what to do. However, the main driver here is not necessarily the AI model but the people understanding how to use it in the context of robotics.

I would argue that plain AI/ML is highly scientific work and unless you have a PhD in ML or a similar field it will be extremely hard to get into it. Applying models, tweaking them for your use case and all the work around that will create the actual value in most applications.


👤 mudrockbestgirl
You essentially have two choices:

- Get your PhD and try to become a researcher at one of the labs. Super crowded now, but basically the only way if you want to do research.

- Become a ML engineer, data scientist, etc. While you will be working with ML models and understand them to some extent, you may find that it's not exactly what you wanted. You'll likely end up spending most of your time on the same old engineering stuff: Calling into black-box APIs, data engineering, iterating on hyperparameters, building experiment pipelines, dealing with cloud scaling and setting up GPUs, etc.

For example, if you take a look at GPT, 99% of the work that has gone into it is standard engineering/scaling work, not AI-specific work.


👤 anyfactor
My 2 cents is that don't learn anything now.

Apply to SWE roles in companies that specialize in AI or ML. Tell them you are a veteran SWE and the work they are doing excites you. Find a place where you can keep using your SWE skills while you get paid to learn AI or ML concepts on a practical level.

There is a huge demand for SWEs who specialize in specific industries and are not considered more generalized SWE. So first try to become the SWE with an AI interest then look into AI focused roles.


👤 discordance
I found the Fast AI course to be a great way to learn the foundations. It was recently updated after some years too:

https://course.fast.ai/


👤 lossolo
> as in reality many of them were just using some basic ML models and calling it ground breaking AI to hype investors and potential hires

Without Phd in ML your chances for any leading AI company to hire you to work on SOTA ground breaking models as researcher are near zero, unless you are fine with devops/support roles. As to normal work of ML engineer on not ground breaking stuff it's actually really boring. You’ll spend a lot of your time just collecting + massaging data, slightly tweaking parameters to see tiny incremental improvement in your model.


👤 numlock86
Learn what ML and AI "really" is (start with neural nets, simple classifiers, get into GANs etc.) and just experiment with PyTorch or whatever else you like. Pick up Ray at some point and just go on from there. Rebuild models from papers and understand them. I wouldn't recommend "toying around" with ready to use stuff like premodeled and/or pretrained models (especially stable diffusion, the hype is really big right now) right at the beginning because that won't really teach an understanding of what is going on exactly. Compare with "script kiddies" as people called them back the days: They just use ready-to-use tools but have no idea what is happening and hence never surpass those tools or the level they are on, unless they bother to actually start at the beginning some day after all ... Like just using Linux won't make you an OS developer. What's all that generated prompts and content worth if you can't even tell at first glance if 0.05 or 0.0003 is a better learning rate for Adam optimizer?

👤 samoit
If you want to learn A.I. try https://www.fast.ai/ Its probably one of the best places to start. Highly recommended.

👤 analyte123
It seems like a decent path would be to learn enough to start integrating AI into the type of things you are already working on, for example adding recommendations, AI-based tagging or autocomplete to apps that don’t already have it. Users are coming to expect these in more places. Or perhaps building small projects that use off-the-shelf models with some fine tuning. This seems more commercially valuable and less competitive than trying to publish at the edge of the field or being a full-time researcher like some people are talking about here.

👤 yagodragon
I'm in a similar situation. I have 1,5 year of experience working in a web dev full-stack job, but the FOMO is so strong with all the advancements in AI. I fear my skills won't be future-proof and eventually AI is going to take my job. These thoughts are taking a toll on my mental health and as a result, I can't focus on improving my skills because of the constant fear of me losing the hype train / making the wrong career decision.

Is this fear justified? How should I proceed? Is software development dead? So many questions and uncertainties...


👤 obert
what you’re probably looking for is becoming an AI app developer, leveraging inference to create new types of products. No need to become an expert in ML and training, to start with. That’s similar to what some people did about 12-15 yrs ago pivoting from web development to smartphone apps development.

👤 arketyp
You can make the transition, there's demand for all kinds of roles along the spectrum, likely in different companies though. Start working closely with the ML team as a SWE would be a start, then take over some of the pipelining stuff, and so on. Just be realistic with it being precisely that, a transition, and that you will have to apply yourself and take initiative. No, probably you won't become a Google AI researcher, but probably that's not your genuine desire anyway.

👤 habibur
The other job is data processing for AI.

Collect data from field, cleanse, and then feed to ML. Lots of work. Especially the organizing, cleansing side, which can be pseudo automated upto a point and then manual process the rest.

This data collection for ai already has a large market. And if you want to get involved in ML/AI, either you need to buy data from the market, or do the heavy lifting of collecting processing by yourself.


👤 rjmill
SWE 10 years. I got into ML/AI recently after a background in UI development (from JS GUIs, to Python CLIs and APIs.)

AI was not on my radar as a realistic career option until the startup I was working for got acquired by . A couple years after the acquisition, I started exploring options and ended up taking a transfer to an AI SDK team (even though I had no experience with AI at the time.)

I build tools for the people doing the actual AI work, so in my case, it was more useful to know how to talk to users and build systems to steer people toward best practices. I'm learning more about ML/AI on the job, but I was productive from day 1 because of my software engineering skills.

I'd look at companies doing AI and see what they're looking for. You might be surprised at how much overlap there is with your current skillset. If you learn some AI skills on your own and look for jobs on the tooling side, you can probably stand out from the crowd earlier than you'd expect.


👤 otsaloma
There's already way too many people in the field who see these Stable Diffusion, GPT etc. in the news and want to do something like that. Stable Diffusion looks impressive, but I have no idea what the business use case for that is. Likewise lots of people want to do "deep learning" but most companies don't have that kind of data or it doesn't make sense otherwise. 99% of data science work is more boring -- what you need is try to understand the business, be familiar with a wide range of different methodology and have an exploratory mindset to look for a good solution to a particular problem. This is not to say you can't do "AI" or "deep learning", but a narrow focus, overcrowded market and no existing skills are not a good combination. There's plenty of business need for general data engineering and data science though that can also serve as a path forward if not interesting to you as an end.

👤 qolop
If you are interested in on cutting edge research oriented work like development of models like GPT-3 and Stable Diffusion, then you should know that such opportunities are rare and limited to large FANG type companies. And you need to be super talented with a PhD from a top tier college.

The next group of ML practitioners are data scientists or ML engineers in smaller technology companies and startups. Their work involves applying advancements in these areas to improve their products or services. Very rarely do they do research oriented work. You could look into applying for such roles. An ML engineer role would be more suitable given your background. My advice would be to get your hands dirty and try to build a product on top of some ML model. It would give you some experience in model deployment and MLops type activities which companies often look for.


👤 RustLove
In addition to gaining a strong foundation in math and computer science, there are a few other things you can do to get started in the field of AI. One is to start building your own projects and experimenting with AI technologies. This can be a great way to gain practical experience and develop a deeper understanding of how AI works. There are also many online resources, such as tutorials and courses, that can help you learn about AI and get started with building your own projects. Finally, networking with others in the field and staying up-to-date with the latest developments in AI can also be incredibly valuable. Participating in online communities, attending conferences and workshops, and even collaborating with others on AI projects can all be great ways to learn and grow in the field.

👤 stealthcat
The spectrum is too wide, might need to dabble to see which works for you:

- Mainstream vision/text/speech, something Huggingface et al do. The classic advice where you learn SGD, stack net layers and put loss, train, deploy on web, clean and collect data, retrain

- Hardware accelerators, inference and training. Check out startups like tenstorrent, tinygrad, mythic. Also involve compilers, net graph data structure and good software frontends and abstraction to hardware to write models onto hardware.

- Anything else, applying ML for finance, manufacturing, oil and gas, all those boring but important stuff


👤 good_boy
Just in case someone wants to apply. Computer Vision Engineer at robotic startup, already 159 applications in 4 days. Looks like this area is overcrowded. Other than that it's cool.

https://www.linkedin.com/jobs/collections/recommended/?curre...

Computer Vision Engineer Lawrence Harvey Boston, MA On-site 4 days ago 158 applicants

$160,000/yr - $220,000/yr · Full-time · Mid-Senior level 51-200 employees · Staffing and Recruiting


👤 rcarr
This sounds like what you’re looking for:

https://github.com/AMAI-GmbH/AI-Expert-Roadmap

Interactive version:

https://i.am.ai/roadmap


👤 aew4ytasghe5
> In the past I've been wary of companies throwing AI words around, as in reality many of them were just using some basic ML models and calling it ground breaking AI

What made you change opinion? Afaik, nothing has changed in the field except the amount of hype surrounding it.


👤 sideshowb
> basic ML models

Disclaimer: I don't work in the game changing language model stuff, so maybe I'm the wrong person to answer

But I'd kind of assume basic ml models are one of the essential prerequisites, so go read Elements of Statistical Learning if you haven't already?


👤 curious_cat_163
You should leverage your SWE skills for the transition.

As things stand today, here are some things to start with:

- Python 3 - PyTorch - Transformers

Some overarching advice:

Write your own code when possible. Test it with the most realistic data you can find. Iterate over your models and code, always.

There is no magic. It is all software.


👤 bitL
Get a PhD in ML if you are serious, otherwise all you'll be doing is data engineering/cleaning. Eventually, take at least online Stanford grad courses for credit to have some credibility and to be able to stand out.

👤 pneumatic1
This is an excellent and not-often-suggested course: https://bloomberg.github.io/foml/#home

👤 k__
I would like to create one that helps me write. I tried a few and they were very superficial.

Something like I supply an article and the AI optimizes it with well known techniques that help learning the conten, etc.


👤 theGnuMe
Find a problem that you think can be solved with AI or ML. Work on solving that problem. Based on your background I would do something in the AI space that intersects robotics.

👤 la_fayette
For many problems large companies have, decision trees or SVMs work just fine :) The rest is a huge hype, were a hyped solution searches for problems, like blockchain.

👤 CrystalSage
Not a generalized advice, but once you start learning, please check out the Sci-Kit documentation. It's very concise in its explanation of concepts.

👤 affgrff2

👤 Dwolb
If you’re excited about Stable Diffusion, why not join the Hugging Face Discord and participate in their community?

👤 gjvc
AI bubble coming!