I don't see how tagging can work at all.
You have control over it. You can add to your filter tags "algorithms", "programming", "compilers" and see more wide set of posts. In addition, you can exclude posts with unwanted tags. For example, you can see posts with the tag "web-development" except posts with tags "php", "asp.net" etc.
You need a much better interface to the editing of the tag-based filters.
And content.
Another question - suppose there's an item about an algorithm in PHP. How do I know it will get given the "algorithm" tag? How are tags assigned/chosen?
> How are tags assigned/chosen?
If you submit a post you should give it correct tags. For example, if you submit a post about some algorithm on PHP you should attach to it tags "php" and "algorithm". And in this way any user who subscribed to tag "php" or "algorithm" will see it in his feed.