For this type of site you need to learn frontend and backend. Frontend you can learn here “Front End Libraries Certification (300 hours)” and backend here “Apis And Microservices Certification (300 hours)”.
Saying that, there’s a lot of alternatives. For frontend you’ll basically need HTML, CSS and JS, but you can use react, angular or vue to make it easier to create full-fledge applications. For backend you can also use JS with node, but you can use PHP, PYTHON, JAVA, or anything actually…
You can also forget backend and use google firebase instead.
If you are a beginner, I recommend you go through the FCC curriculum. By the end of it you’ll know how to build your site. If you already know at least something about algorithms or one “real” programming language (HTML and CSS does not count), you can do some crash courses in the languages you want and build your site using google.
It really depends what your goals are. If your website is based on content (like blogs for example), then CMS are great, you can focus on the content instead of worrying about developing a website. For anything else, you need to learn to code. For example, if you need a webapp, let’s suppose a note taking app (like evernote), you can’t do that efficiently with a CMS.
In any case, you don’t really need to learn to code, that’s something you do if you like to do it. It’s a job. You can always pay someone to do what you need.
You may find CMS plugins that can do it, and if you find it, it will probably cost some money.
To do manually, a site like tripadvisor will require a huge amount of work, you need to understand frontend, backend and databases. Not taking in account the work to design the whole thing. If you are starting now, it will take you some months (or years) before you can do it.
Of course, if you learn to do it, then you won’t know only how to do a clone of tripadvisor.