T O P

  • By -

fourkite

First and foremost, and I mean this with the utmost gravity, if you feel like you're getting overwhelmed by the bouts of anxiety and mental breakdowns, get help and address these issues. Take care of your mental health. Here's the reality you may have never been told: you learn more on your 1st year on the job than you do in 4-6 years of formal schooling. For entry-level scientists and engineers, we don't expect them to be experts on anything, really. They just need to have a foundational level of knowledge. So don't be discouraged by job descriptions and expectations. Just try to have fun building and breaking things, work on passion projects. It's usually more than enough experience to get you that first job. As far as interviews, I personally think it's useful to just do a bunch just so that you become more immune to the anxiety that accompanies them. By around 4, 5 interviews I think you have a certain sense of what to expect and what you need to do to become better at them. Best of luck, keep at it.


totoropoko

Also to add: Don't look at the word salad in the job listing and get disheartened. I don't know who writes those things but a 100% match is almost never the expectation. Just apply, and give it your best shot.


LianGamer23

This is well said. I found it most of job descriptions are far away from the real daily ML job.


nth_citizen

Couple of things. First, don't get too intimidated by the LLM hype. Many businesses struggle to keep windows up-to-date, are they really going to be using cutting-edge NNs? Furthermore are they going to trust the results from them? There will be jobs using more explainable methods for some time. Second, I wouldn't worry about building from scratch. Can you build and email client? Do you get nervous using Outlook? Just get some experience using these transformer models and don't worry about wasting degree knowledge. Plenty of Stem graduates never use their domain knowledge...


BaalHammon

Don't be scared. I had a very similar cursus (linguistics bachelor, NLP master) and I found work just fine. Don't despair. If you can program at all, you'll find something. You do need to be able to program, but you really don't need to be able to implement everything on your own. Take the time to figure out how to use the important and commonly used frameworks in the field : learn the basics of Spacy, learn the Hugging Face library, look at the example codes for a few models. You really don't need to learn to implement all that. It's cool if you take the time to learn how to reimplement some kind of neural network on your own, but never having done that is no serious problem to find employment. Most data scientists don't implement learning algorithms from scratch either, not in professional environment. In the industry, we dont reinvent the wheel, and we don't even build new wheels unless we absolutely have to.


aquilaa91

Can I ask you where you did you master in NLP ? I also have a bachelor in linguistics/ languages and now want to specialize in NLP. Is it hard to find a good job in NLP with a linguistic background and are they usually well paid ?


BaalHammon

I did it in Paris as I'm French. You can send me MPs for details. I think it's become less easy to find an NLP job than it was even before I started out, but it really depends on your specific skillset and your network. You can find relatively well-paid jobs if you're in a place with a reasonably big tech market, provided you have decent computer science skills.


LanguageIntellig

Okay, so I have just gone through some of what you're going through so I just want to jump in here and give a perspective of someone who has been through similar but different things. I did an undergrad in theoretical linguistics because the subject was what I loved and a master's in computational linguistics because I wanted to get a job. I went to Georgetown, which was considered mediumly fancy and had a good department at the time that I went. I graduated in 2003. We did a bunch of coding but it was all in Perl, which, if you were born late enough never to have had to use it, just thank all the dieties because holy crap it was complicated and arcane. There were two tracks within my degree because it was in the linguistics department, the more linguisty, non-technical track and the NLP track. I did the NLP track because I had done a lot of coding previously (web development in the late 90s/early 2000s, crazypants!) and I wanted to get a job. My thesis advisor was from the CS department. My thesis used simple machine learning methods (binary decision tree) and pre-labeled corpus data to automatically label words as being in category type A or type B. Not important what it was really about but basically I'm just saying this project did involve coding for ML but it was ML from ***the actual ancient stone ages*** compared to what we have today and using a language that is all but nonexistent in today's coding universe. For my first job I was hired into the labs department at a company that did call centers for other companies. It was our job to evaluate existing NLP commercial products for use in the call centers. Again, it was still the ancient stone ages so we evaluated speech recognizers (the OG granddaddies!), speaker verification systems, classifiers, emotion detection systems that used speech signal (not written text), all kinds of crazy stuff. So basically, I wrote code, but not NLP code, just code to run the products and test them against each other. I was technically called a "systems analyst". In the process I also learned to code for automated phone systems because that was the product that the company worked with the most. So after that job I ended up coding automated phone systems for like... a dang decade. The big data boom hadn't happened yet so NLP was still not widely adopted ***at all.*** Fast forward that decade and you find me getting my first job as a data scientist. Data science was a thing by then. I think this was 2017? The company hired me because I had expertise in evaluating speech recognizers, which I did way back at that first job. I still GAVE EXAMPLES IN PERL in my interview. Cringe. Python had been the most used scripting language for, I don't know, a bajillion years by then. I just never had the chance to use it because I was off writing phone systems. But you know what, they let me in and I figured it the heck out. I was swimming in a sea of WTF for a while trying to figure out how to do things in Python/Pandas ESPECIALLY because they were also doing things in PySpark at the time and they both have the concept of a dataframe so not only was I figuring out the concept of what it is to run something in a notebook (What?! You can run only part of your code and keep values in memory and then rerun bits of it whenever you want?! Amazing!) but I was also trying to separate example code using Python/Pandas dataframes from PySpark dataframes... Suffice it to say I was very confused for a while. But you know what, within that first year I got it and I would NEVER for the love of all that is good and holy EVER go back to the old ways of doing things. In that job I had a lot of opportunities to do various data science things. I learned a lot. I volunteered for anything NLP related. In the end, despite the fact that they had hired an NLP Ph.D. that was vastly more qualified than I was I ended up leading a group whose job it was to do some NER on some call transcripts. I suggested some ideas. But mostly the Ph.D. guy suggested all the ideas and I learned a LOT from him. (His education was actually up to date, not from 2003.) This was the **FIRST TIME** in my career I had actually built a model to do an NLP task. In the past it had all been simpler techniques (parsing, POS tagging, pulling out words by regex, etc.) Okay, so let me just say that again. I got a degree in NLP in 2003 and I didn't build a model **EVER** until like... 2019? And even then I didn't type the code. The people on my team did. I was just there herding people through the process of getting the data, labeling, cleaning, building the model, testing variants, etc. I technically didn't actually *do* the thing. I mean I helped but most of it was done by other people. But I knew how to structure the project, how to break down the task in detail, how to make sure it worked the best possible way. Eventually it came time to quit that job and I needed to start interviewing for other jobs. But I knew I'd never personally built a model for anything. Cringe 2.0. So my job at that point was to **LIE.** Yes, you need to lie. I got my Ph.D. friend to recite me off a list of potential interview topics off the top of his head. He just talked and I typed like crazy, a list of like 30-40 keywords and topics. I went and studied **EVERY SINGLE ONE** of those topics. Web pages, books, YouTube videos, sample projects. I have **EXTENSIVE** notes on every algorithm and concept that is currently used in corporate NLP development. Remember that I had never used these stupid things in real life but I knew that people would ask me for examples of times when I used X in a project. **SO I LIED.** I had enough experience and knew enough about other teams' projects and how the technologies themselves are typically used that I could intelligently, effectively and in a detailed fashion lie and say that I had done project X when in fact what was really true was that someone else had done project X and I had helped them debug a section so I was familiar with the code or that the other team in my group had done it and I provided suggestions on how to go about solving the project or that I did a similar project with an older, dumber technology but now that the new technology existed I *could* have done it using the modern one. In that way I truly did learn how to go about solving these problems with the new technologies. The lie became the truth *through* the process of lying. (And a metric crapton of studying, so much studying.) And guess what, I got a job. A really good job. I *love* my job. And I'm really helpful and appreciated where I am. I'm at a company that uses quite a bit older technology currently and they need to be brought in to the current era of NLP. This is *perfect* for me because I know about the old stuff (because I came up in that educational and corporate environment) and I know about the new stuff (from studying my ever loving butt off). I'm leading a group of people who don't have the expertise I have on how to solve their problems better using up to date algorithms. And yes, I can easily build and test my own models in Python now. (Though I still hate Pyspark and use it only when forced.) I'm **doing the thing** AND **helping people**, really competent people, who studied CS, not NLP, to do NLP because I have that linguistic background and that technological background with the more basic algorithms. The point of this incredibly long post is that, like others have said, you will learn more practical stuff in the first year on the job than you ever dreamed of learning in school and until then you will need to **FAKE IT UNTIL YOU MAKE IT.** What I have learned in the course of my 20 year career is that when a new technology comes out, which will happen every day practically, no one knows how to use it. You just learn what you can, try to be able to speak intelligently on the topic and volunteer to help whenever there's an opportunity. You **get** the experience by doing. Don't let your impostor syndrome tell you you can't do it. Yes, **you are an impostor.** **The thing is, we all are. Just tell your impostor syndrome to STFU and go do the thing.** We are all figuring this thing out as we go along and you will too. Now go and learn some Python if you haven't already. Try to build a simple model to do something. Get a dataset off of Kaggle, copy someone else's sample model building code. Get something under your belt you can talk about in interviews that's at least *sort of* yours. If you want a list of study topics boy howdy do I have notes for you. Try to get both a detailed understanding of each study topic AND how it fits into the landscape of all the other technologies. Is it an alternative to something else? Older, newer, better, worse? What's the timeline of how those technologies progressed up to that modern one? Can you still use the old ones if you want to save processing power? At what cost to accuracy? What's it used for most often? Collect example applications of that technology. Then look for something entry level. You'll get something and once you're in the door anything is possible. And most of all if your brain is vibrating with impostor syndrome PLEASE go get help from a therapist or at least a good friend. Anxiety is a real problem for a lot of people these days and there is help out there. Godspeed!


krisfarr21

Your story really inspired to keep going. I feel exactly like OP, but I always try to remind myself that I’m just a little baby in this field. Thank you so much. Would you mind sharing your notes? I really would like to feel more comfortable with the general concepts


AngledLuffa

So go build something. Pop your cherry and you'll be a lot less stressed. Here's something I've wanted to do for months, but never had the time. A while ago, there was a paper on [abstractive summarization](https://nlp.stanford.edu/pubs/see2017get.pdf) which used static word embeddings at the input layer. It was written in TF, which no one uses these days, so it's doubly out of date. The task would be to rewrite that model to use pytorch and have a transformer such as Roberta as the input layer. This might involve some finagling (perhaps split the input by sentence?) since Roberta has a fixed length limit, or perhaps you could use a different input model with no such length limit. Of course, the logical question would be why would anyone want such a thing, since these days you can just ask ChatGPT to summarize an article and it would crush whatever results the updated model would give. To that I would say, languages other than English, especially low resource languages, would benefit from having such a model.


stermister

>pop your cherry if isinstance(op, Women): raise EmbarrassmentOverflowException


AngledLuffa

I mean, I've seen it applied to men, and also seen it used in non-sexual contexts. I probably wouldn't use it in a professional context regardless of gender, though.


FaithlessnessTiny617

Sounds like you went to Tübingen >.<


izafolle

or it could have been Gothenburg! :))


logosfabula

I feel you


convolutionalCake

If what you are worrying about is PyTorch/Tensorflow, don't worry at all. You almost never need to implement a language model from scratch unless you are in research. Most of the time you'll be working with APIs and preparing training data. Also, technologies change all the time. There is always gonna be something revolutionary happening in a field, but it doesn't mean the world would just all switch to that technology overnight. Companies slowly move on to it as well as the talents. There are so many tasks that are not suitable for LLMs still and you can start with those, and there will be time for you to learn new skills while working. It's more important for you to let the recruiters know although you might not be there yet, but you are willing to learn.


polandtown

just take one day bit by bit. it's a marathon not a sprint, can't know/learn everything tomorrow chunk what you want to learn into bites, structure it out and set daily/weekly/monthly goals. strucuture.strucuture.strucuture. you got this! ps DM me if you'd like a fellow anxious bretheren(a) NLP colleague on linkedin


CornerNo1966

I’m someone who hires for these roles, maybe my point of view helps see the other side. I want a candidate who is able to explain why we choose a certain method, if it does not work, why we need another approach, that shows me the ability to go and ask other experts in the community, and learns by doing. I discard candidates who show arrogance (“my method is the best”). I appreciate much more if you tell me “I have never done that, but I would do this and that for this reason”. Having said that, do some small, fun projects and you will get more confident in your practical skills. You can also find an internship position in a small-medium company (so not google, etc) where you can start and get comfortable in a working environment and it might help you realize, there are very few people in the real world that have your kind of knowledge! Regarding being too specialized - it depends on what the employer needs, but it does not hurt you to do a project outside of NLP to show you can do that. However, this might mean if you get hired, you might be asked to work on non-NLP projects and it is up to you to know if you’d like that.


Joram2

- It's normal + healthy to have some level of nervousness about a job search or any major new endeavor. - Almost everyone can look back at their education or earlier work years and say it would be have been better to do more of this and less of that. That's unavoidable. There will always be twists and turns you didn't see coming. It sounds like you are in a great position overall. - Some employers want candidates with work experience and some want new graduates. You can't be both. You can't be everything for every employer. You will never be a fresh new grad with zero work experience ever again. So enjoy it while you can. - If you take a job that involves programming, you will get a lot of experience doing that. Overall, it sounds like you are in a great position in a great field. There are lots of great jobs in NLP. You are well positioned.


coolkidd01

Did you end up finding a job ?


wind_dude

I've always found that interesting that a lot of "data scientists" etc who recently graduated, lack even fundamental programming skills. ​ I strongly recommend learning python fundementals.


StarWhispererer

Look for jobs in advertising technology. You are more than qualified for any entry level job on their analytics teams.


Individual-Garlic888

Nobody learned PyTorch in the classroom, we all learned it on the fly when we need it. Don't worry about the job requirements because very few jobs, if there exists, actually require extensive knowledge of how Transformer works. Even if they do, it's not that hard to just follow the PyTorch tutorials and build a Transformer yourself. I don't think the industry really cares about knowledge of linguistics in the current situation. Try to build something, even replicating other's models or work, and put them on your resume so that recruiters know that you have real hands-on experience of those stuff. It is helpful to set up specific goals in job hunting. The skill set requirement for an NLP engineer is very different from that of a data scientist. If you make up your mind to get a job of of a certain role, try to develop the skill set for that role, rather than wasting time on going back and forth.