If you occasionally make fun of someone's accent, frequently get frustrated with slow and broken English, talk to an immigrant like a child because they have the same language level, or just can't make yourself respect a person attempting to speak your language, I urge you to try to learn another language fluently. The funny thing about most people who make fun of immigrants is that they cannot learn Spanish after years of classes. Yes, you are blessed to live in a prosperous country where there are more immigrants than emigrants. You don't need to learn another language to survive or make a better life for yourself, like the people who you make jokes about unfortunately must (all while trying to understand your jokes).
Anyone who is able to function in a culture speaking a foreign language deserves a round of applause. To survive, you must first understand the language when it is spoken. Understanding the quick pace of foreign words is a daunting task that can render any new learner helpless. Native speakers speak fast, they shorten long words and in English, they often use contractions that aren't mentioned in textbooks. I have spent a significant portion of my time trying to become fluent in Brazilian Portuguese. If I get to the level of clearly understanding native Brazilians when they speak angrily or excitedly, I will still have an uphill climb to complete fluency. Same goes for beginner-English speakers.
Language is more than just grammar, verb tenses and vocabulary. You have to have them memorized to even start to become fluent. Words that mean one thing in a certain sentence, can mean something entirely different in another (example: Don't hit me vs. hit me up). In Brazilian Portuguese, there aren't two verbs for "make" and "do," there is only one, "fazer." Saying "I made a cake" and "I did my work" in English is a challenge for my language partners. This is despite the fact that English and Portuguese have similar tenses and sentence structures. Imagine how difficult it must be for native Chinese and Hindi speakers to translate their thoughts into English, when sentence structures are nowhere near similar.
By the time you can understand native speakers somewhat and have a good handle on the grammar, verbs and vocabulary needed for every day speech, you now have a lifelong challenge: Associating words to culture. Language is one of the most significant facets of culture. You have to use different words when you talk to your friend and when you talk to your grandparents. You've grown up knowing almost all the popular American words and phrases because your parents and grandparents use them with you since you were born. You are familiar with many words in the urban dictionary because you've been watching American TV and movies for as long as you can remember. A non-native speaker must memorize all these phrases and then get used to using them. Misuse slang and it can change the entire mood of a conversation. Even for the most dedicated learner, perfectly understanding and using cultural connotations of words can take a lifetime.
An immigrant who speaks English poorly may be writing beautiful poetry in their native tongue. The thoughts they are trying to express, which come out as rudimentary, child-like sentences in English, are actually complex, funny and heartwarming.
It wasn't until I was lost for words to express my sadness in Portuguese that I could understand what it must feel like to be an immigrant trying to do the same. Knowing how impossibly challenging it is for an adult to learn English as well as you have, if you ever meet someone who speaks it pretty well, has mastered the use of some slang and a sprinkle of popular idioms, but, god forbid, hasn't perfected a "normal" accent that you don't think is "sexy" and "exotic," don't even think about making fun of them.
They are smarter and more capable in two languages than you will ever be in one.