I went through the site you posted, it is mainly providing advice on best practices on writing your smart contract, e.g. when you write your dapp and release it for public use. Then all those external/public functions can be accessed by other people, including malicious ones.
If you really want to deploy your contract to the network and keep it super private temporarily, it is generally true that without correctly reverse-engineering your bytecode, a malicious party would not know your function names/abi. @Ismael illustrated a good example on how a malicious node can detect new contracts and trying to mess up with them, even though the malicious node may not know the contract address correspond to yours specifically. He also raised the example of randomly calling
kill() to kill contracts -- it's a good practice to implement ownership for the contract so that only the owner of the contract can
kill() the contract (you may want to check on
Ownable at https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol).
Remember, it's all about best practices. You can make your function name look like
TrrraAAnnSferrrooowneeershiIIPPp() which works fine. But you generally want to name it like
transferOwnership() as a "best practice".
Hope this helps.