I can't give you a precise linguistic description of what code switching is. Wiki and the other writeups in this node have a fairly good descriptions at any rate, or at least they seem good to my untrained eye. But what I can do, is that I can tell you what code switching feels like.

I can, however, give you a brief and possibly innaccurate explanation of what it's supposed to be. It's a multilingual phenomenon when a speaker changes the way they say a word, phrase, or sentence to a different language but completely adhering at least to the phonological rules of the other language, often the syntactical and morphological rules too. It is different from pidgin or creole languages in that the two different languages do not blend into each other; rather, the two languages are kept distinctly separate and the discourse completely switches between the rules of one language or another, hence the name, code switching.

I suppose my definition is broad enough to admit that a code switcher may not sound like a native of speaker of any of the languages they code switch from, but at least I always think of a code switcher as someone who has more than one native language (like myself, whom I consider to have English and Spanish as native languages). In my very unscientific opinion, (remember kids, linguistics is a science after all), if you aren't a native speaker of both languages, then you aren't really code switching. It's different for an L2 speaker to dig around in the vocabulary or grammar of a different language for an expression not found in the L1 language, or viceversa, than for a speaker of more than one L1 language to once in a while, even though they're perfectly capable of restricting themselves to just one language most of the time if they really need to, to once in a while just feel that one language or another can express a specific thought in a better way.

Remember that like everything else in our language, there are some systematic rules on when and how code switching can occur and when and how it can't. Code switchers develop their own precise grammar, as it happens with almost all other linguistic phenomena, and it's thus vulnerable to the same systematic and scientific analysis of the rest of our language skills.

Now for my personal experience. I acquired my code switching as a blessing from my parents who managed to give me the best education that money could buy. Usually when people hear me code switch from Spanish to English, they assume that I am able to do it because I lived in an English-speaking country. Well, as a matter of fact I did, but I was able to code switch before I lived there. I've been able to code switch almost since I've been able to speak, for I was given two native languages, and I was fully educated in two native languages, in two cultures. I do not feel like a third culture kid, but I am close in a way because of the extra language I was given that most people around me don't have.

As a child, code switching seemed like the most natural thing for me, and of course it seemed ordinary enough, since all the other students at my school could do it too. We would speak both languages freely switching between the two, admittedly sometimes mangling one language or another due to interference between the two. This is a different phenomenon from one all too common in many parts of the US with a high proportion of Spanish-speaking immigrants and colloquially known as Spanglish, where in some places it's already evolving into creole or pidgin languages. I remember once in New York state in a bus station listening to some kids speaking this Spanish-English creole language, and I had difficulties understanding what they were saying because they already had a different grammar than either of the languages that spawned their creole. I do think that within the next couple of decades we may see a creole language such as this one properly established in many parts of the US.

But again, code switching is different. My classmates and I didn't create our own personal private language with different grammatical rules than the two languages we created it from. I mean, yes, there are grammatical rules on when and where you can code switch, but the resulting sentence should be understandable to any speaker of both languages, not just to other code switchers (well, if written down anyways, perhaps the mixing of two different phonologies may confuse some listeners). I guess that having three hours of class in Spanish by a native Spanish speaker followed by recess and three more hours of class in English by a native English speaker, and usually exact same subjects too, at least in elementary school up to grade five, was what prevented me and my classmates from mangling either language too much. After all, we were forbidden from addressing our Spanish teacher in English or our English teacher in Spanish, and supposedly we couldn't talk to each other in a language different than the class we were in (but yeah, right, I'll dare any teacher to really enforce that rule). Of course, in recess, in the playground, any language was free for all. Korean, Japanese, Portuguese, and French were the most popular alternatives, and perhaps an expletive in Yiddish, Hebrew, or Arabic now and then for the kids who still had some vestiges of it in their ancestry.

Middle school and high school were a little different, with everything in English except the courses that had to be in Spanish (Mexican history, Spanish etymologies, Latin American literature, that sort of thing), but it did keep on cementing the notion that there were two languages and that they were different, and that's how they should stay. The net result of this is that the other kids like I that stayed for twelve years in this school, or for a similarly long enough period, ended up becoming fully bilingual in formal situations and fervent code switchers in informal ones. We talked to each other freely code switching from one language to another, now interspersing a sentence in English amidst Spanish discourse, sometimes doing the reverse, sometimes only a word, but without ever assimilating an English word into Spanish phonology nor the reverse. We wrote term papers in both languages, sometimes confusing the punctuation rules of one language for the other, and sometimes even charmingly spelling things like "alphabeto" which in Spanish would be pronounced "alpabeto" if written like that instead of "alfabeto". All of this seemed ordinary to me at the time, but now that I recount it, I'm seeing more and more what a wonderful lifelong gift my parents gave to my brother and me by giving us a fully bilingual, bicultural education like that, making the world a little smaller and a little more digestible for us.

I know that my experience is by no means unique. In places like fully bilingual Montréal, where a large portion of the population speaks two languages (60%-70%, as I recall, maybe more) or even three (about 30% of Montrealers speak three languages fluently, as I recall), code switchers abound. Nevertheless, and again, very unscientifically, sometimes being a code switcher is a little lonely.

When you're a code switcher, you're a bit of a freak to everyone. Speakers of the languages you code switch from get a little envious of your abilities, wishing they could speak the languages as well as you could. They even chastise themselves for not paying enough attention in their foreign language classes in school when the fact remains that all the code switchers I know acquired the skill effortlessly through the benefit of simply being immersed in more than one language since childhood. When you're a code switcher, you can't always find the exact words in one language or another to say what you want to say, although you can almost always find a good enough approximation. You can't speak in your most natural state to almost anyone; you have to rely on the aforementioned approximations. Sometimes, when someone sees you code switching, you become a little foreign to them. Being from more than one place sometimes means you're from nowhere.

Of course, being a code switcher also means that you have at least two separate worlds and cultures completely at your disposal, that you can move between one and the other with great ease. It means being able to understand cross-linguistic puns, and to read several authors in their respective native languages. It's an amazing gift (in my case, literally, since it was a gift my parents were able to give me) that I wouldn't ever trade for monolingualism, even if this meant that I would be less of a freak. At any rate, most of the time I can keep my code switching under control, as I am doing now, and stick entirely to one language or another for the benefit of my audience.

When you get very specific, though, my most natural language environment is the one I grew up in, with heavy Mexico City slang code switching back and forth between English. This greatly narrows down the possibility of fellow code switchers with whom I can feel at greatest ease. Whenever I meet a girl who code switches from exactly the same colloquial Mexico City Spanish and English, it is by itself almost an immediate turn on and makes me want to get down her pants as soon as possible. If the code switcher is a guy, I feel a special connection with him too. You're like me! You understand me! Oddly enough, the precise variety of English isn't as important for me, no doubt because I never lived as a child in a specific English environment, having as teachers native English speakers from all over the world (mostly from the US, but I've had Canadians, Australians, Brits, and a few from other places too).

I never realised it as a child and teenager, while I was in my little code switching bubble where most everyone else was like me, and it seemed like the most natural thing in the world. As I've broken out of that bubble through the years and stumbled across other code switchers around the world, I've come to realise how important code switching is for me and deeply embedded into my identity it is. Bilingualism is cool, polyglots doubly so, but if you can code switch with me into the same languages I can, I'll probably fall a little in love with you.