Another vote for WordPress here, with something like WooCommerce (plugin) for the shop bit. You can make your own theme quite easily (or child theme which extends/modifies an existing theme - that's even easier) which would teach you a lot about HTML and CSS and maybe a bit of PHP depending on how much you play with it.
I would start somewhere easier though - design the site in CSS, HTML and jQuery and then you can eventually port that into WP quite easily.
[Edit]
As for a program, use Brackets for your HTML and CSS. It includes a live editor so you can immediately see the effect of your code.