This kind of question gets thrown around quite a bit around here, but I think my current situation has yet to be addressed. I'm currently studying Informatics ("Information") at a school in the midwest (whose national rank is in the high 20's).
A bit of background - my concentrations are User Experience Design and Data Analytics. My GPA is a 3.6 and I have work experience as a web developer at the university's school of engineering, in a professor's research group, and an internship at a large internet corporation this past summer. I also do freelance and contract web dev work. In sum, much of my work involves front end web dev although I am also proficient in backend/database languages and have written some web scraping programs and done some natural language processing.
I am considering pursuing a master's degree in CS. Though I'm somewhat of a "jack of all trades" currently, further breadth in a more specific topic (AI or NLP for instance) via a master's degree is something that interests me greatly. Considering I want to apply to very good (top 20) schools, I'm worried my application may be considered subpar when compared to undergrads who have studied strictly CS, rather than a more HCI-tinged degree like the one I'm currently in.
Is this a rational thought, and how should I proceed? Should I take a year off before applying and go into the workforce to acquire more desirable CS skills? Should I study certain materials on my own? Or would I already be considered an acceptable applicant with my current academic standing and skills?