PhpStorm is my favourite IDE for PHP development and is a great tool for Drupal development. Drupal hook autocomplete used to be available via 3rd party plugins with varying reliability.
To style a block, you first need a way to target it in CSS. When you inspect a block's HTML, you will see that it has an ID selector. You can use that to target the block in CSS. But this is not the best way to style blocks in CSS.
Form validation is an essential part of any web system. You need to ensure that the user has added valid data and if not, show them a meaningful error message. Validation functions are normally implemented in the module where the form is defined.
You build Drupal websites. You know which modules to download and configure and how to make a pretty slick website. You might be able to use Views to build up complex queries to add some fizz to sites that you build.
Ever feel like your Drupal code is becoming a disorganised mess? Most Drupal sites contain a decent number of contributed modules. Before long, you might write your own custom modules. And then you might generate Features, which are also modules.
When you are developing a new Drupal website, you often need to populate it with dummy content. Manually added content is tedious and wastes time. Fortunately with just one Drush command, you can generate as much dummy content as you want.
Are you sick of having to always be in the directory that your Drupal installation is in order to run Drush commands? What if you run more than one site? Changing directories all the time is a pain.
So, you want to allow other modules to hook into your own module. You may have implemented hooks that other modules provide, but does invoking your own hook for a module seem like a dark art?