A web developer must be proficient in a number of scripting and full blown programming languages. They must understand one of the following languages dependent on the server they are using: ASP, ASP.NET (C# or VB.NET), PHP, Perl, Java, JSP or Ruby On Rails ( to name only a few). If a web developer designs and implements the database, they'll also need to understand one of the database servers that the server hosts including but not limited to: MySQL, SQL Server, Postgres etc.
To design a web application a web developer will need to understand the general dynamics of the program being built. They will need to interview users to determine what functionality the program should contain and then extrapolate what code will be needed to implement the required functionality. Quite often a website proposal writer and a web designer will confer with a web developer when writing a proposal or designing the front end of a website.