As mentioned above make sure your ports are open, use http://canyouseeme.org to check, but there is another common mistake people do mostly when they host listen servers… not sure if this is the case or not but its worth a shot.
Make sure your giving them your WAN ip to connect with (The IP assigned by your ISP)… use a site like http://ipchicken.com to find it, or you can find it by other means. Give your friends that ip to connect with, have them add your server to their favorites list or use the connect command in console.
Most of the time people try joining through steam friends (When you join a friends game through steam), when your connected to a local server or when you create a listen server it will try to connect your friends to your local ip (ex 192.168.X.X).
So be sure to give them your WAN address and not your local ip, if that still fails recheck your ports ( sometimes it’s something small you forgot to do) and make sure your ISP is not blocking any ports… most of the time you don’t have to worry so there is no need to use Hamachi, unless for any reason your ISP is blocking ports or your behind some firewall you cannot open ports on.