It's good to have an understanding of html and css - as a starting point.
I've built a number of sites for people and whilst I started out with Wordpress, I now much prefer flat file CMS such as GravCMS. Why? Essentially it's just a load of files that can easily be moved from one place to another. There's no database to be concerned with. That means (a) backing up the website is straight forward and (b) it's possible to have some sort of automated workflow that means you can deploy your site to 'demo' and see how it looks (that means I can do the development anywhere - I don't need a webserver running on my local machine) and (b) the websites are easy to backup (no database dumps to export)
These days I have all the 'source code' for the websites I look after in source control (git or subversion, take your pick). That means I can track the history of changes I've made and when I find myself wondering why I did 'x', I can blame the file and see the commit message. You could use public github repository for free or if you need to keep your source files to yourself, pay for private github repositories. The alternative is hosting git or subversion yourself - an old laptop running linux is probably a good choice budget option so long as you are able to back it up.
Committing to the source control repository triggers a build which deploys the code to a demo environment. Then I can push a button and it deploys the changes live.
Of course, with GravCMS you can use it in much the same way as Wordpress as it has an 'admin' section which will let you create and edit pages etc. and then schedule regular backups instead of deploying from source control. Otherwise you can create content using markdown files (much simpler than html) and template new types of pages or component parts of pages in twig (it's a bit like php, but much simpler).
Having the pipeline makes maintaining the websites much easier.
Of course, there's some outlay in setting it up, but in the long-term the productivity gains stack up quite well.
The only draw back with using a CMS and it's range of plugins to build a site, is that you end up doing a lot of "integration" work. And/or dealing with the mistakes and decisions other developers have made.