Most of the messaging apps convert symbols into emoji's whenever user type symbols like this :) continuously, is this really a good practice or is considered as a bad user experience
Bad UX in my experience if it is done on entry. Not so much because of being an unexpected behaviour but rather because of oftenly lacking error prevention.
For example you want to type :-) but instead tap on a closing bracket and end up with :-(
1) If auto converted in the input, when you recognize your error you hit backspace and the whole emoji is removed - forcing you to enter the whole 3 characters again.
2) If converted on send (when message appears in the public chat) at least user has an opportunity to review the input before posting, to fix the error. But in this way with complex emojis we loose ability of preview an validation before post.
Maybe this why more and more we are seeing emojis being entered using ":smile" with prediction & preview on entry.
It makes it easy to prevent errors, allows preview and moves away from mysterious, somewhat abstract characters to more descriptive words.