Boyer-Moore is far from non-obvious. I remember having the same basic idea when I was a kid, when I was programming on the C64 and before I had access to the internet or decent programming books. The details - e.g. jump distances based on whether and where the characters occur in the search string etc. - come up in trying to create a working implementation.