   UML is it important
  These days i am learning C#. Mostly I am interested in Artificial Intelligence (Algorithm design and implementation). Do you think its necessary for me to learn UML.   
  It's not necessary until you work with teams on large systems, but exploring some elementary concepts of UML modelling is useful once you're fluent with an object-oriented language. Just don't do it if you have better things to do, like learning C#.   ;  In an usual business setting knowing UML is somewhat important. Most of customers know a subset of it. In addition it is the language you use to convey ideas concerning larger systems. Not that all the myriads of features would be needed in detail, but the main concepts are good to know, especially class diagrams and user interaction diagrams. I've found state machine diagrams and sequence diagrams also useful especially in describing some reactive behaviour.So, to answer your question, it is good to know something about them. Though you'll learn the basics in some minutes in enough detail you can understand the most important things. There a is table at Introduction to the Diagrams of UML 2.0 in Agile Modeling if you feel like using  an hour and get the level of knowledge I'm writing about.[EDIT]People tend to use some modified syntax of UML charts whilst in meetings and using a whiteboard for quick drawings, for instance. UML is the base, but many times it is adapted.[/EDIT]   ;  UML is a common language developers use to discuss software design. Without it, it can be very hard to formulate your ideas.If I were you, I would make a habit out of designing a system in UML before you code anything. Even if it is a very small system with only 3-4 classes interacting. That way you will slowly get the practice.Furthermore you will see that doing some thoughts on the design up front can save you alot of time, compared to just jumping in the deep end coding.IMO UML is imperative for any serious developer, and if I were you, I would make an effort of slowly working it into the way I work, instead of seeing it as an after-programming effort, that is a seperate - very boring - documentation step.If you do it right, UML can help you save time, and help you build better software, because you give the design alot more attention.Check out Design Patterns as well. They are also very useful for building good designs.;  Whether or not it helps you, in a software job it's often expected you know it. Well class diagrams anyway, those I would make an effort to understand so when someone says "I think we should do it like this" and scribbles a class diagram, you know what it means.If you already make sketches of how your design should work, what classes you have and how they interact, it's worth doing that in UML for practice.   ;  Thanks a lot guys for your opinion. As I said before on a thread that Programing is my hobby but I am extremely serious about it. What I get so far is, always work on drawing board before jumping into the coding so why not do it in UML. Maybe one day I will start my own open source project.   