Knowing how to program does not mean you know how to develop. Once you reach the point where you know most, if not all, ins and outs of your programming language, then it’s time to move on. Move on to stuff like programming patterns and application architecture (design). These terms are basically language independent, meaning if you are good at application architecture and know your way around common programming patterns then you reach the point where programming language is almost irrelevant. Good and extensible architecture is good no matter what programming language you use.
Internet is full of “your language sucks, mine is better”, “your language framework sucks, mine is better”. To be honest, I’m sick of it. The way I see it; C#, python, php, ruby, java… are all great and powerful languages. Using one over other will not make you write great application just like that. There is only one thing I consider advantage in web development, and that is using interpreted language over compiled one. This however is merely my preference.
Here’s a link to some pretty useful material on application architecture, Application Architecture Guide 2.0. Architecture Guide 2.0 is about designing applications on the .NET Platform.
Here is another one for web apps, Web Architecture Pocket Guide.
I’m a PHP developer, however I like to throw a few lines of code in C# from time to time. Although books are related to Microsoft .Net platform, if you are not short sighted (in terms of technology), I’m sure you will find these books useful reading whatever platform you might be using.
<a href=”http://video.msn.com/?playlist=videoByUuids:uuids:e615c682-0b89-4c90-8b31-d7b5dbf40283&showPlaylist=true” mce_href=”http://video.msn.com/?playlist=videoByUuids:uuids:e615c682-0b89-4c90-8b31-d7b5dbf40283&showPlaylist=true” target=”_new” title=”Train the Trainer – Application Architecture Guide 2.0″>Video: Train the Trainer – Application Architecture Guide 2.0</a>


