Allow me to answer this question as I have bought NEO coins from multiple places. Mentioning the 2 sites where you can buy NEO coins from.
1. BITTREX - Go to Bittrex, The Next Generation Digital Currency Exchange and sign up. Get your BTC or ETH address. Transfer BTC or ETH to Bittrex and send your exchange it with NEO.
For a detailed guide, read this: How to buy NEO from Bittrex? - Bharata Finance
If you are buying NEO from BITTREX, I strongly recommend you to shift your coins to NEO wallet to get free GAS.
2. BINANCE - Go to BINANCE.COM and sign up with them. They are a Chinese exchange. So, choose the English version. I agree the website UI sucks but they are good. If you buy from Binance, you will get free GAS even if you hold them on their exchange without shifting it to NEON wallet. Plus, the exchange does not charge any transaction fee.