Basically, you can create solutions for sharepoint in visual studio, or by simple clicking in SharePoint Designer or by web browser.
As @Amadeo Gallardo said, it depends on project specification. If it's simple project, with does not require any features that sharepoint doesn't offer out of the box, the second approach is better and faster.
Creating sites, document libraries and SIMPLE workflows using web browser is much faster than visual studio. However, you must know that SharePoint Designer is very limited tool. Only basic workflows can be created using Designer. It was probably designed to be used by Power User or Designer.
Also, in my personal opinion - is bad tool. Works awfully slow, it like to crash without reason, and has funny "Advanced view" which allows you to... edit html code. However you should know how to use Designer, sometimes it can be useful, especially for managing lists.
In answer to main question, "To code or not to code". We choose only visual studio development path. Why?
- Everything is organized as Features that may be activated / deactivated where you need them. Also, they can be set as "hidden" so user won't be able to activate them without using powershell.
- We create lists and libraries only using code. It allows to easily manage these list - content types, fields, views, injecting webparts in list forms.
- Content types are created using visual studio, because we use custom field iterators and validation for fields.
- Using Visual Studio you can create any workflow - basiclly, you have much more "items" (Activities) in workflow designer, even that allows you to run custom code.
In response to some comments mentioned higher:
You can export/import sites as wsp. However, when your site is using Features, they probably won't work on site missing these Features. I'm not sure about it, but custom Features are not included when you export site as template by UI.
In conclusion
You can create sharepoint solution using only web browser. Many things cannot be done using UI, here with help comes SharePoint Designer. However, it is also limited, although you do not have to know how to code. Just simple click and drop.
Visual Studio is the most advanced approach to sharepoint, which allows you to do nearly anything. There are some things that cannot be done, or will just require you to spend many hours hacking - anyway, you will get used to it.