Should the Designer Write Code?

Yes

The designer should write the primary code and test his / her theories in interactions by doing so, much like a prototype. It’s even better if you can create prototypes that can work just as well in production. Without this, much of the Design is of no use as you are always at the mercy of the person writing the CSS and HTML and their skill set. Writing your own HTML, CSS, some part of Javascript and PHP never hurts, that’s what makes things work exactly how you wanted them to be. A good place to start practicing your skills is a dummy install of a wordpress blog and then changing it one step at a time using the theme editor.

Should one use a visual editor

No. They are mostly for people that don’t want to do the hard work and create a lot of junk code. Avoid editors like dreamweaver where things can be dragged and dropped. Best way to do it is using Notepad (Windows) and TextEdit (Mac) and a bunch of stuff that are free on Linux. If you want it to be a bit more colourful you can use editors like Coda, Netbeans or Sublime Text. They help you just a bit by colour coding the different aspects of the code.

When do I use Photoshop?

Only when you need to create graphical elements that are not possible through CSS3 and HTML5