You've been promoted from Developer to a Team Leader?

TeamLeaderLast year during this time, I was packing my bags for an unexplored journey. Before I was signing off, champs  asked me to share my learnings of Transformation from Developer to a Team Leader. Their wish was my command! I did that and they liked it so much!
I was checking few old folders [At times, you should try this. Rather than surfing the web – FB,Twitter, Google, Mails. Try to surf folders from your machine. You will find a gold out of it! It recharges you. And it’s always good to STOP and look back!] and found that same document. I thought rather than having it with me. Why don’t I share with you! And that’s how this post came in to this world.
Since starting of my career, I was always a developer. Who would like to solve most complex business solutions. And convert Software Blue Print in to reality. While working lot of people asked, you are planning to be a Team Leader or Manager? When there was an internal openings for such places, people used to ask me. Have you applied? And the answer was always NO. As I was clear that will never go in to managing people. The reason for that was my myth. As per my perception Leaders/Managers should be :

  • Able to get angry on people
  • Should have shouting and dominating nature
  • Most of the time Political
  • Person who always sits at the other side of the Table
  • Doesn’t get involved in Development
  • Does Micro Management

And as far as my knowledge, I was far far far away from all above qualities. And still today I love spending most of the time with Visual Studio. Which I was afraid that I won’t be able to spend. And as it is said that “Human Plans and God Laughs“. Everything is already scripted! [The Wold is Stage, Life is Drama, We are Actors, God is Director]. One fine day, the need of an hour was.  I have to lead the team. When I’ve been asked — Would you like to lead? The first answer was NO. But finally after discussing a lot. I’ve thought to give it a try! [Would like to Thank you! To all the people who identified a leader within me — Please remember Only Good leader’s eyes can spot other potentially good leader!]
Long story short, Here I am in the role of a Leader from the role of a Developer.  I was not sure. How I will do it. But one thing I was sure. Will give my best to it! [Do your best, forget the rest!] and I was lucky that I got a chance to lead few of the best people I know!
As per the rule of Change, It is initially tough! [“All change is hard at first, messy in the middle and gorgeous at the end” – Robin Sharma]. But leadership is NOT as tough as I was thinking of. If you are thinking Can I lead? The answer is here : Yes, If you can breathe you can lead! But please be aware leading is sacrificing!

I believe that, Building Nation’s responsibility is on — Parents, Teachers, And Leaders — as per your life’s stage. They play a crucial role in our society! [If as a leader, you’ve insulted someone in public or you had a bad day for some one in office. That frustration shows up in that person’s personal life as well. As per stats 90% of people in the world are NOT Happy with whatever they are doing — I believe few might got caught in to a wrong job, and few of them might got caught in to wrong leaders]
I’ve already written my thoughts on Leadership in my earlier posts:

As per my experience and observation, have worked with few nice leaders (and at the same time few bad as well!) and would like to thank both of them. Because knowing what not to do takes more time than knowing what to do! 🙂 and the other ones helped me to do so very quickly! In this blog post, will try to summarize the characteristics of a good leader [what I’ve seen], it’s solely based on my observations and reading whatever I had during my working experience as a leader since 2 years!

As per my above blogs, I took learnings from :

  • Good Leaders with whom I worked! — They taught me What to do?
  • Bad Leaders with whom I worked! — They taught me What NOT to do?
  • Lessons from Best Public Leaders/Icons, History — By their life examples, Reading from their book
  • Sports — Sports makes us good team player/leader
  • Started treating others, The way I wanted to be treated
  • And the best example to remember is — Leading is like parenting!

So, you are also in same situation? Eager to know what was my learnings? Eager to see what I shared with champs? Looking for some points, what all things you should take care when you start as a leader?

Disclaimer : This is based on my learnings. I am not expert on this subject. But few basics which I learnt through my journey and have noted it down. Which I am sharing with you. So, if you think something might not work for you. Feel free to ignore it

Let’s go! (Just a note : will write pointers or one liners only. In future, will expand few points from following list If you think you need detailed explanation on any pointer, feel free to drop it in a comment) :

  • Basic characteristics which a leader should have :
    • Good human being : You can’t be a good professional, without being a good person first!
    • Good Listener — God has given two ears, and one mouth. So, speak less and listen more!
    • Patience — You need to have full patience!
    • Stithpragya — This one is from Hindu scripture– Shreemad Bhagvat Geeta – This word is used for someone who doesn’t get so much excited on Winning and doesn’t gets down on losing — Read more here : http://bhagwadgita.nimblefoundation.org/what-we-learn-from-bhagwad-gita-chapter-3/
    • Self motivated – Need to motivate team, When they are down!
    • Control your emotions/Channelize your anger : At times your role comes with lot of frustration, Anger etc. But that’s part of it. You’ve to find a way out of it. So, spend quality time with Family, Friends, Listen Music which recharges you, Read books which talks to you – Books are your best friends! — I always get most of the critical solutions while reading one of my favorite book!
    • Honest, Transparent : If you are driving a car, will you drive it. If you can’t see the road because of foggy or something? No, Correct? Then how you can expect people to follow you. When  things are NOT Transparent. Honesty and Transparency people always like to have! [Honesty is still the best policy!]
  • Initial meeting : Talk to your team first. What are their problems? What makes them happy? What makes them unhappy? What they would like to change? What are their old open issues? Old promises? Take a note of them. And act on them ASAP. These points are your first and important project. If you can’t do something, please update team with logical reasons.
  • New Place always full : When you go at new place it will be always full. People to whom  you are going to lead. Will say. Why we need a leader. We are doing our things perfect? Aren’t we? They are right. But do you know story of  – Kissa-I-Sanjan? : Read here : http://delhiparsis.com/2007/08/19/the-story-of-sanjan-kissa-i-sanjan/ — So, You’ve to be Sugar in the Milk
  • Understand the process first : Initially Understand everything and then try to improve the process. I’ve seen that, lot of leaders join new place/role and try to change everything. Based on their past learnings. But do you know that, One Size Shirt, doesn’t fit for all?
  • Reading : Keep reading, Switch off everything just 30 minutes to read, it will enrich you, boosts you! – “Reading is to the mind what exercise is to the body”Story of a wood cutter
  • Understand And Analyze : When you’ve to take any decision. First, try to understand, Analyze and then conclude. Good story to read : http://rishikajain.com/2012/05/16/a-heart-touching-story-with-moral-and-inspiration/
  • Be on TOP of Everything : Be Technically Strong and have full knowledge of everything! – I know you can’t master everything. But you should be on top of everything! – Be expert! Good leaders are the one who are ready to roll their sleeves and start working if their team needs it.
  • Stand Firm : Stand firm in tough time – Leaders are like TEABAGS This is the time, When your TEAM really needs you. And based on this time’s stand. People with respect you or NOT respect you
  • Let them fail : At times, let them fail! – Story of a baby Giraffe
  • Small things matters : Team’s small issues are Important may it be Cupboard, Mouse etc.
  • Act promptly :  No one likes a leader, who just takes an issue and works on it for ages, we are living in 4G world 🙂 Take a decision and act on it!
  • Appreciate in public : Appreciate team, Make sure they are always highlighted and NOT You
  • Criticize in Private : Appreciate [Public]/Criticize[1:1] on time. Give them honest feedback (We Indians have to learn about Constructive feedback) – Don’t go and shout on people. Explain them specifically what was NOT right? And how can you help them. So, it doesn’t happen again. [Doing mistake is fine. But repeating Mistake is crime!]
  • Focus on Basics : Whatever complex the situation is — Always stick to basics. Most of the times follow your guts/Intuition — They know what you want or should do. [“Have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.” – Steve jobs]
  • Know your Team : Know your team very well. Individual’s Strengths and weakness. Their likes and dislikes. It is proven that if you give people stuff what they like. They do it by heart! I call it Know your weapons. – Do it Krishna way [This is again from Hindu scripture — Mahabharata – Where Shri Krishna assigns tasks to individual as per their strength. Like if some task needs more Strength — it goes to Bhim — as he was the strongest in Pandavas. But if it needs focus then it goes to Arjuna — As he was the Sharpest in Pandavas ]  – Because If you give someone what he/she likes he/she will enjoy!
  • Make them feel safe and trust them – No one would like to work with leader who can’t cover them from outsiders. Who is NOT Strong enough to fight for their teams. Good to watch : Simon Sinek: Why good leaders make you feel safe Fight for their rights, Even though you need to get wounded for that. At times, when someone is not in form. Help him/her out and boost them up! Rely/Trust on your champs always!
  • Know them personally – Don’t always talk about WORK, WORK, WORK — Know them personally. It will help you to understand them more. What’s their personal likings.
  • Do their tasks on time : If you promised them something to happen by some date. Make sure you do it. If their appraisal is due. Do it first. Remember Lead by Example? If you do their tasks on time, Then only they will do yours!
  • Use Technology as much as you can : Use Softwares like Google Doc/Excel/Outlook calendar to manage and remember tasks – And keep space in your mind! Learn Outlook and office softwares! They are your friends!
  • Share Expectations : Share your vision, and work for a common goal, Convey them! I’ve seen people shine when they know what exactly is expected from them. Clear expectations from both side – Rather than explaining this is not right. Be specific!
  • Share knowledge : Don’t feel insecure – Good leaders create good leaders other create followers!
  • Chunks : When you are working/going to start working on any task. Try to create small chunks of it. Ask your team to do the same. It clarifies your and teams understanding. And you will see the flaws, issues before they arise. And gradually your estimates will become more accurate!
  • Sharpen your memory : You need to have good RAM. Because you’ve to keep track of lot of things
  • Promises : Keep note of your promises – It will be a good option not to promise rather than doing false promise
  • Focus on Solution : Always be cool. Even though everything is down! Think on a solution rather than problem source. Never blame anyone
  • Accept Mistakes : Learn from Mistakes, Accept your mistakes! – And even if it’s team’s mistake for outer world, you should take it on your own! – Story by Abdul Kalam
  • Communicate : Always try to be clear in your communications. Small miss communication can create big confusions. And people starts speculating — That’s human nature
  • Be accessible : No one likes a leader, who is not accessible. And always busy with meetings or closed in Cabin. You are because your team is!
  • No False Justification Please : If something you are not convinced, don’t try to convince them. Fix it OR let them know you can’t fix it. And you are not happy. But no false justification. Because they are engineers and they are as logical as you.
  • Everyone is Special : Accept people the way they are — Everyone is special – Never bad mouth your team — NEVER NEVER NEVER do it in front of others
  • Respect Seniors : Respect seniors in your team. Complement them and never try to compete with them
  • Lead by Example – Don’t ask a task to team, which you don’t do!
  • Take decisions for team – for a team not for individual and stand by them and make them true!
  • Say “Thank you” to your team always! – Because whatever you are, is just because of them!
  • Never lose hope – The game is not WON till the last ball – Challenges for which you don’t find solution/direction don’t worry, Just stay on pitch, runs will come automatically – Story of Two Frogs and Milk
  • Leading is like parenting – Take care of your team, And one day step back. See them shining from afar. Remember the way your parent did when they taught you cycling?!

Have I missed something? Does it matches with your good leader’s perception?
Happy Leading! 🙂

You are starting your career in IT Industry? Here are my learnings for you!

Hello Folks, Sorry I am facing challenges in keeping this blog updated. I wish can get more than 24 hours :-). I know it’s not possible. But will keep posting on this blog. Because from this blog only I got to learn lot of things. While sharing things with you. Quantity will be less compared to earlier. But quality will be same/more than earlier for sure! Because I believe in never compromising with quality!
Start-CareerMonth of May-July is the month, when every company starts on-boarding university/college pass-outs in their company. So, lot of new people start working professionally in IT Industry. So, if you are one of them — I welcome you to an IT Industry!
Now, when you start working in this Industry, You feel lot excited. But more confused as well. Because what you learnt in college, and what people do in industry is totally different, until and unless you are from Good College/University. Who encourage to have working professional as a guest lecturer.
When you start working for any company. And you got a nice mentor — Who can clear all your doubts, Help you understand what is right, what is wrong, Guide you in getting comfortable with all the tools and terminologies, Who is always there for you. But if you get one then you are lucky!
As per my view good mentor should have :

  1. Lot of patience
  2. And passion about the profession what they are in

When I started my career, I’ve been lucky at times, by having great mentors, who taught me What To Do, And How To DO. And have been super lucky to have some not so good mentors, from whom I Learnt — What Not To Do, How Not To Do, And How Not To Behave. And my big thanks to second one. Because I learnt a lot from them then the first one!
Since few year, I’ve been lucky enough to mentor — super talented and smart people. And I’ve thoroughly enjoyed them shining. Because they were Diamonds. I just got a chance to polish them and make them shine! You are also a Mentor? Then buddy you got a big responsibility on your shoulders. Because I believe Mentor has to play a role, Which Parents played during nurturing, Teacher played during School/College. So, when your mentee comes to you with small questions — Don’t lose patience, answer them politely.  Quench their thirst. And while doing so, you will learn a lot of new things — It’s a two-way process. I learnt a lot from my students. Basically if we just look around, We’ve a lot to learn from each others! — John West Sitecore CTO nicely said on Mentoring:
When a new developer joins your team or project, be friendly and let them know you are available for a two-way learning process. If an inexperienced Sitecore developer has a newbie question, instead of ignoring it or feeling frustrated, show that you care, take pride in trying to educate them on the topic, and try to provide pointers to the next few areas they could research. This works best when we all approach it the same way. Consider everyone with whom you interact to be both your mentor and your mentee. When I used to teach CMS training, I was surprised constantly by how much I learned from my students. In fact, I think each of us has something to learn from every other individual.
Source : http://www.sitecore.net/belgie/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/06/My-Sitecore-Story-Mentoring.aspx
You may also like these:

While mentoring them, What I used to do, used to go back in my career and check, What Good things I learnt? — So, I can pass on to them. What Bad Things I learnt? — So, I can’t pass same to them. What I haven’t got? — So, I can get it for them.
So, each year – I meet a lot of young people joining our industry, and I make sure I share my learnings with them and help them shine! At one evening I thought, At each year — How many young folks — I will meet — 4,5,6 That’s it! — So, Why don’t I share my learning via my blog. So, who are starting your career, can focus on it. And if someone is new in mentoring and one of my learning can help them then I feel paid off!

Disclaimer : This is based on my learnings. I am not expert on this subject. But few basics which I learnt through my journey and have noted it down. Which I am sharing with you. So, if you think something might not work for you. Feel free to ignore it

Let’s go!

  1. Learn : When you start your career, Keep focusing on Learning and NOT Earning! [As Allan Border Said to Harsha Bhogle — Take care of the runs – the dollars will take care of themselves.] An Advice I follow and give — For Initial years — Just learn as much as you can! Spend as much as time you can to learn the things, understand things. Ask questions. Do R&D
  2. Mentor : If possible find a Good Mentor and follow him/her
  3. Don’t Say No : If some new task is coming up to you. Don’t say NO — If you don’t know, tell them I will need sometime. But i will do it.  Be a Go-Getter [Quotable Quote : Richard Branson — ‘If somebody offers you an amazing opportunity but you are not sure you can do it, say yes – then learn how to do it later!’] But Yes, don’t get overburdened and over commit.
  4. Give Respect : Give respect to your seniors, subordinates and even office peons!. Be a team player! And they will love to work with you!
  5. Master your Skills : Whatever skills you are in for example .NET Developer/Java Developer/QA — Master it! And to be different from crowd — Get your self certified — I did most of my Microsoft Certifications during initial years — It not only added value. But also clarified lot of my basic thoughts about programming, I came to know lot of new API — Which made my work easier, and faster. [Yes, please read Microsoft certification books before giving exam, and DON’T GIVE EXAMS BY JUST READING DUMPS]
  6. Focus on your Coding Standards : They will consider that you care for your code!
  7. Read Read Read : In the era of internet as well, disconnecting from live world and reading a book for Minimum 30 minutes Enriches you. First read as many technical books you can may it be – OOPS, Design Patterns, .NET Frameworks, 97 Things every programmer should know or talk to your colleagues and find out which book they like more. Apart from that read the books you like Fiction/Non-Fiction/Self Help — This will keep you motivated! This is so long back I wrote on World Book Day : Did you know that, today is World Book day?!Books can be really your best friend! – Who gives a lot, and asks nothing in return!, which expands your vision about life! Who helps you to stand like a rock in difficult situation! Who makes you laugh, who makes you cry!If you read technical books – your technical knowledge will get increased and if you read other books (Biography, self-help, novel etc.) – your life’s knowledge will get increased – at last you will feel enriched for sure!It’s interesting, when I talk to people and ask about reading books they say – “Where is time to read the books?” – It’s same as driving a fast running car. But you don’t have a time to fuel it!:-)In this fast pacing era, promise yourself to daily read for min. 30 minutes, it will surely change your life – it worked for me, and I’m sure it will work for you as well!So, grab a copy of a book which you was “planing” to read from a long time and start reading it “today”!Happy World Book day!
  8. Document your learnings : In your initial days you will learn new things at every footstep. Our teacher taught us, Whatever new thing you learn document it. So, your knowledge gets organized in a proper manner, it gets stored in your permanent sector. And if you can write  your blog then nothing great like that! The one blog you are reading is the best example of it! It improved my writing Skills and when people comment on blog — “You saved my day, God Bless you!” — That’s the best feeling you can ever have — Good Reads : http://pluralsight.com/training/Courses/TableOfContents/get-involved and http://www.hanselman.com/blog/YourWordsAreWasted.aspx
  9. Communication Skills : Sharpen your written and verbal skills. Because along with compilers you’ve to work with HUMANS. And when you get stuck with something. You’ve to explain it nicely to your senior, colleague, subordinate, Or In Global era to someone else sitting in U.S/U.K Or in Forum or To Support guys. And before you start working you’ve to understand requirements as well. If you can’t deliver something as committed, please communicate before hand.
  10. Develop Tools —  When you learn something new in Technology. Think of how you can use it in your day-to-day life. If not in your project then can you build a small tool for your personal use or professional use or for your company’s use? It will give two benefits — It will clarify your concepts thoroughly, and at the end of  the day, you will have a tool which simplifies someone’s task. See Tools i wrote for fun — PolyglotSkype, TimeZoneConverter or you can start your open source project on GitHub!
  11. Stand in tough time :When something is not working and the whole team is in tough time. Go and stand their. You might not be able to help. But see what you can do. At times fresh perspective might show a way to solve a problem! And you learn more in tough situations than day-to-day situations!
  12. Share Knowledge — Learnt something new? Share with someone else as soon as you can! Don’t feel insecure while sharing the knowledge. Good Read : http://prakashiyer.com/a-tale-of-two-seas/
  13. Track your progress : Periodically, take a halt and check how you are moving? What good things you did? What bad things you did? If needed talk to your Mentor/Senior and ask for an HONEST Feedback — Don’t wait for Annual Appraisal. BTW, I’m big fan of writing Journals. Give it a try, It will give you astonishing results!
  14. Usergroup meetings : If possible go for user group meeting
  15. Focus Focus Focus : Be focused, In this era of Social Media, you have no idea, how much of your time this social media mediums can eat. I’m not against in being touch with friends and family — That matters a lot! But while you are working — You are working! And When you are playing, You are playing — Then don’t work! I believe in “Work Hard, Play Hard” And you got finite number of key strokes in your life, please don’t get it wasted — http://www.hanselman.com/blog/YourWordsAreWasted.aspx Check your keys left : http://keysleft.com/ [I have only 156,038,394 keystrokes left before I die.] and “Choose a job you love, and you will never have to work a day in your life.” – Confucius
  16. Quality : Never Never Never compromise on quality. If you’ve to delay your software delivery by a day or deliver one feature less — In place of a quality — It’s a good deal! If you’ve to burn yourself for a quality — Just do it! Steve Jobs is the prime example of quality lovers and he nicely said “When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back, even though it faces the wall and nobody will ever see it. You’ll know it’s there, so you’re going to use a beautiful piece of wood on the back. For you to sleep well at night, the aesthetic, the quality, has to be carried all the way through.” Good Read : http://blog.hubspot.com/marketing/steve-jobs-inspirational-quotes-im-slideshare
  17. Be Efficient  : Complete your assigned tasks on time. Do a Time management. Say No where you can Say NO.
  18. Be Responsible : If you take more responsibility you will be assigned on more and important projects — and you will be important player of your team!
  19. Basics : And one advice, I always give — “Always Stick  to your Basics” In whatever things Technical/Non Technical — Because it matters! “Back to Basic, Stick to basics, because a basic always works!”

Have I missed something? Feel free to comment
I hope this pointers, help you to shine in your career! Always Remember — “No idea works, Unless you do!”

“Twenty years from now you will be more disappointed by the things that you didn’t do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.”

And If you need any help from my side, Just give me a shout!
Have a Happy and Nice Vacation! 🙂 [“When Passion becomes Profession, life Becomes Vacation!”]
Good Reads:
Driving Your Career : http://www.brianhprince.com/2010/04/14/driving-your-career-series-transcripts/

How to get Microsoft certification?

Challenge:

Since last couple of weeks, few friends asked me that how can they get Microsoft certification? Any tips and tricks? I replied to them via email or any other source. But as per Scott’s formula [“You have a finite number of keystrokes left in your hands before you die.” – http://keysleft.com/], rather than replying to email write a blog on it. And share the link. So, next time if someone asks same question to me [Or may be you] Can send this blog’s link.

Solution:

So long back — I wrote Microsoft certification quick start guide
This document is a best place to start! Few things have been changed. But the basics remains the same.
If you don’t have time to go through the document, and need a quick summary. here you go!

  1. Target one exam at a time. Visit each exam’s Home Page – Understand what this exam covers. And start preparing. Best way to prepare for MS Certification is MS Press Books. You can find it from each of the following link – Better to have a hard copy. For example you are aiming to give 70-480 exam. It’s exam detail page is here : https://www.microsoft.com/learning/en-in/exam-70-480.aspx check “Skills Measured” section to understand what this exam covers. Check “Preparation options” section for all resources related to this exam.
  2. Select your exam track from here : https://www.microsoft.com/learning/en-in/certification-overview.aspx for example if you are ASP.NET Web Developer then you should go for this track : https://www.microsoft.com/learning/en-in/mcsd-web-apps-certification.aspx
  3. Before you go for exams. Start giving exams from Dumps, Search for your exam. E.g. http://www.examcollection.com/70-480.html there will be the lot of dumps. But I follow this formula to select a best dump [You will need a VCE Software to run this VCE files]:
    1. Select a dump – Which has MOST number of questions
    2. And which got Max number of votes. So, as per this example it goes for Microsoft.Actualtests.70-480.v2013-12-31.by.MARY.169q.vce
      [As it got 169 questions and 162 votes]
  4. Then book your exam slot, Pearson is best!
  5. All the best for your exams!

Happy Certification! 🙂

Basics for .NET beginner developers

Challenge:

Luckily, I’ve been crafting on .NET since last 7+ years. Initially I learnt .NET in college. And then after explored it further during my professional career. Some time back few of my friends asked me, How can they also learn .NET? Which are the best resources to begin with? And then be a .NET Ninja!
You are also learning .NET? Or would like to start learning .NET? Or you work on .NET. But would like to brush up your fundamentals? Then this post is for you!

Solution:

Start with following links :
http://www.pragimtech.com/c-sharp-video-tutorials.aspx
http://www.pragimtech.com/Free-aspnet-video-tutorial.aspx
https://www.youtube.com/playlist?list=PL8598C97BA1D871C1&feature=view_all
https://www.youtube.com/playlist?list=PLAC325451207E3105&feature=view_all
Then move to this :
http://www.learnvisualstudio.net/free/c-training/
http://www.itorian.com/2012/08/LearnDotNet60days.html
http://www.youtube.com/watch?v=W3lHQdoYsUo&list=PL0BB0AD0F12A24B6E
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework
http://www.codeproject.com/Articles/20694/Net-Framework
http://www.codeproject.com/Articles/3992/What-is-NET
http://www.c-sharpcorner.com/uploadfile/puranindia/net-framework-and-architecture/
http://www.completecsharptutorial.com/basic/parameter-examples.php
http://www.microsoftvirtualacademy.com/training-topics/c-app-development
http://www.microsoftvirtualacademy.com/training-courses/c-fundamentals-for-absolute-beginners
http://quickstarts.asp.net/QuickStartv20/default.aspx
http://www.microsoftvirtualacademy.com/training-courses/software-developmentfundamentals#?
fbid=-dwjFvfio5-
– http://www.microsoftvirtualacademy.com/training-courses/database-fundamentals#?fbid=-
dwjFvfio5-
Please note Programming is like swimming. You need to delve in to it. To be a master of it. So, most of the above resources are videos. But would strongly recommend you that. Do practice after watching each video!And here are
And here are some exercises for you:

  1. Create a console application which takes user name as an Input and tells moon sign – as per his/her input
  2. Create a console application which takes a Number – for which user would like to print a Multiplication Table
  3. Anything else?

Few nice to read books:

  1. CLR Via C#
  2. MCTS 70-536 Self-Paced Training Kit – Application Development Foundation
  3. Murach’s ASP.NET

Please remember you can’t be master of .NET/any field over the night. As per research it takes 10,000 hours of deliberate practice to be master of any field. So, have lot of patience. Practice as much as you can! — The harder you practice, the luckier you get!
Also, If possible give Microsoft certification exams — Here is Certification Quick start guide for you!
If you know any other .NET resource, which you think is excellent. And should go in this list. Then please do share it with others via comment!
Happy Programming! 🙂

Dark vs Light Visual Studio Theme

Challenge:

This post is Not on any Technical Coding concept. But it is on Visual Studio – Lifeline of  all .NET Developers! You might think a post on Theme? Sounds funny?! But If you are a developer then you spent most of your time looking at your monitor and mostly Visual Studio! And few developers who are passionate about Code. Might do Code till midnight. In dim light! 🙂 (Yes, I am talking about you!)
If you have following questions:

  1. Why lot of Developers started using Dark theme of Visual Studio?
  2. What should I use Dark or Light theme?
  3. Why should I use Dark theme?

Then this post is for you!

Solution:

I noticed that lot of people have stated using Dark Theme of Visual Studio. I never thought I should try that. But people whom I admire and follow started using that. And I also thought to change it. When I changed it first time.  Haven’t liked it [You know ComfortZone!?] So, rolled back it, But after few days. Don’t know why thought o re-try it. And after that I never thought I should go back to light theme. I am enjoying Dark theme of Visual Studio.
I was just curious to know what people across the Globe uses and recommend. And for that did a quick search and found following articles. Which are really good to read:

  1. http://www.hanselman.com/blog/ChangingYourColorsInVisualStudioNETBlackVersusWhite.aspx
  2. http://weblogs.asp.net/infinitiesloop/Join-the-Dark-Side-of-Visual-Studio
  3. http://ux.stackexchange.com/questions/8153/what-are-the-negative-and-positive-aspects-of-dark-color-scheme

Few excerpts:
The default scheme sports a bright white background color with dark text over it. But monitors these days are brighter than ever. You’re presumably a programmer, so you’ve no doubt had those late but productive coding nights, nights that are lit by only the glow of your monitor. The glow is bright enough to light up the room and cast shadows. Not unlike… a light bulb.
So there you are, staring straight into a strong light source, looking for the few pixels on it which are not illuminated. Can you read the wattage and manufacturer letters on the head a light bulb while it’s turned on? Ahhh… but what if the bulb were black, and only the letters on it were illuminated?
Another benefit someone pointed out to me once — if you’re on a laptop, it saves your battery life! Horray for an extra 20 minutes of mobile coding!
It seems to me the only reason a black-on-white background is so standard is because the GUI was invented to be an analogy to pen and paper. Paper is white. Your screen doesn’t have to be. Don’t conform to the status quo! Plus, it just looks really cool… I think.

Other links:

http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx
So, Which Color Theme you were using before reading this blog post? And which you will use after reading this blog post? What’s your Visual Studio environment settings?
Happy Coding! 🙂

Error while using Cascading DropDownList with AjaxControlToolkit

Challenge:

While Implementing Cascading drop down we faced following error:
Error: Error: Sys.WebForms.PageRequestManagerServerErrorException: Invalid postback or callback argument.  Event validation is enabled using in configuration or <%@ Page EnableEventValidation=”true” %> in a page.
For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.
If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Source File: http://OURHOSTNAME/ScriptResource.axd?d=3VKrK_7HFd3y9jouIWGfT0xsPUpPWsWH7SoDffy51nkCL04Nc90n7Ein_H4RztbD1yDGLUI-Zz15U7kAewqh2RASTjlbBKaWvjs5uaWOHUtXwDXAq22ilJZaUX8Iu9W_HK9ITwo1waG12DLEuDRxogn2m-XmlhYYCX-66L12c6NnjBet1rAqn3G588BxLbc40&t=348b0da
Line: 1534
Yes, you are right. Our DropDownLists were wrapped within Update Panel. You are also facing similar error? Then this post is for you:

Solution:

We did a quick search and found following links:
http://ajaxcontroltoolkit.codeplex.com/workitem/8103
http://forums.asp.net/t/1903036.aspx?how+to+set+EnableEventValidation+false+from+userControl+DotNetNuke
From Link what we understood is that, It is a BUG of AjaxControlToolkit and to resolve  this you’ve to try following workaround:
[sourcecode language=”csharp”]
protected void Page_Init(object sender, EventArgs e)<br clear="none" />        {        <br clear="none" />            Page.EnableEventValidation = false;<br clear="none" />        }
[/sourcecode]
So, Just use this code where you are facing this challenge. We were seeing it from one of the Sublayout. So, we kept it there and it worked!
Happy Coding! 🙂

Country specific phone number validation with ASP.NET

Challenge:

Before few weeks back, I have been assigned a task, Where I need to validate a phone number. Sound simple? Yes it is! But I needed to do it country specific? Now, how it sounds?
Basically, User will have a list of countries to select. And based on his/her country selection he/she will provide phone number and we should validate based on country selection. Sounds challenging? That’s how life should be!
You are also working on such thing and looking for a way to get out of it? Then this post is for you!

Solution:

As per every software engineer’s practice, I started my research and our common friend. Google presented option of using Regex for each country. But it sounded bit complex to me. Then continued my research and found a super hero!
LibPhoneNumberIt’s a library from Google champs to validate phone number (Excerpt from their main page — Google’s common Java, C++ and Javascript library for parsing, formatting, storing and validating international phone numbers. The Java version is optimized for running on smartphones, and is used by the Android framework since 4.0 (Ice Cream Sandwich).)
And after reading this description, It attracted me! (To you as well?). It’s good we found HERO. But how to fit him in our picture? Then after doing bit of a research found this two nice components:

  1. http://phoneformat.com/ — Javascript version of Google’s libphonenumber library
  2. http://libphonenumber.codeplex.com/ – C# port of Google’s libphonenumber

This was a Eureka moment. Just plugged both of this libraries with CustomValidator and you are done! So, here’s how CustomValidator clientside and server-side functions looks like:
Blogs
SUGIN
[sourcecode language=”html”]
<asp:<span class="hiddenSpellError">TextBox ID="txtPhone"  runat="server" />
<asp:<span class="hiddenSpellError">RequiredFieldValidator ID="reqTxtPhone"
runat="server" ErrorMessage="Please enter a phone number" Text="*" ControlToValidate="txtPhone"
></asp:RequiredFieldValidator>
<asp:<span class="hiddenSpellError">CustomValidator ID="custPhoneNumber" runat="server"
OnServerValidate="PhoneNumberValidate"
ErrorMessage="Please enter valid phone number"
Text="*"
ControlToValidate="txtPhone"
ClientValidationFunction="PhoneNumberValidate"
/>
[/sourcecode]

[sourcecode language=”javascript”]
/*
This function will be used to validate
Phone Number client side by CustomValidator
*/
function PhoneNumberValidate(oSrc,args) {
// Call PhoneFormat.JS function which takes Phone Number and Country Code
// in ISO 3166-1 format
var isValidNumberOrNot = isValidNumber(txtPhone.value, ddlcountry.value);
arg.IsValid = isValidNumberOrNot;
}
[/sourcecode]
[sourcecode language=”csharp”]
/// <summary>
/// This function will be used to validate
/// Phone Number server side by CustomValidator
/// </summary>
/// <param name="source">Source</param>
/// <param name="args">Arguments</param>
protected void PhoneNumberValidate(object source, ServerValidateEventArgs args)
{
PhoneNumberUtil phoneUtil = PhoneNumberUtil.Instance;
// TODO : EXCEPTION HANDLING
string countryCode = ddlcountry.SelectedItem.Value
if (string.IsNullOrEmpty(countryCode))
{
args.IsValid = false;
}
else
{
PhoneNumber phoneNumber = phoneUtil.Parse(txtPhone.Text, countryCode);
bool isValidNumber = phoneNumber.IsValidNumber;
args.IsValid = isValidNumber;
}
}
</span></span></span>
[/sourcecode]
Just a note : LibPhoneNumber accepts country code in ISO 3166-1 format. But if you’ve drop down Text and Value both in full form e.g. “India” and you need to pass it as “IN” and If it’s not possible to do any change at your DropDown value level then you can use function, Which has been submitted at — https://github.com/albeebe/phoneformat.js/issues/9 It converts CountryName to CountryCode
Happy Phone Number Validation! 🙂

Bootstrap with ASP.NET Basics and learnings

Challenge:

Howdy Folks, Sorry for being away from you for so long. But was occupied with lot of other things. But now, I’m here to share my learnings with you.
Before couple of weeks back, I’ve to create one functionality to make user’s task easy. I was clear with back-end code. And to make UI intuitive, I thought to use Bootstrap (If you are new to bootstrap, then I would recommend you to take a moment and give it a read here : http://en.wikipedia.org/wiki/Bootstrap_%28front-end_framework%29 and http://getbootstrap.com/)
Long story short, Bootstrap is a framework for creating UI more intuitive rapidly! Developed by Twitter champs!
And If you know Bootstrap, you must be knowing that how easy it is to integrate bootstrap with your application. And yes, you are right it is. But while working on it, I found few challenges and learnt something which I thought to share with you!
Let’s go!

Solution:

If you are new to bootstrap, and looking for a way to integrate it with your ASP.NET application, then following are a good read to do so:
If you are using VS 2013 then you don’t have to worry. Because MS guys has integrated bootstrap within it.
http://techcrunch.com/2013/06/27/microsoft-adds-bootstrap-support-to-visual-studio-2013/
http://www.asp.net/visual-studio/overview/2013/creating-web-projects-in-visual-studio#bootstrap
But if you are using VS < 2013 then this posts will surely help you:
http://geekswithblogs.net/JeremyMorgan/archive/2012/09/18/how-to-use-twitter-bootstrap-on-an-asp.net-website.aspx
http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms
http://elbruno.com/2013/10/02/vs2013-howto-create-a-website-project-in-visual-studio-using-bootstrap/
So, have you tried it? Looks simple, Correct? Till this point of time, everything was simple. But Life is not as simple as it seems to be!
So here are my learnings:

  1. Dismissable alerts : When I tried to use it (http://getbootstrap.com/components/#alerts-dismissable). It didn’t worked. Then figured out that it needs Jquery reference on a page. So, If you are facing same challenge, give it a try! Or if you are going to use first time, don’t do such mistake 🙂
  2. Modal : The default example of Modal given in documentation, didn’t worked for me. Then this tutorial helped me : http://www.w3resource.com/twitter-bootstrap/modals-tutorial.php
  3. Width of Modal Dialog : If you would like to change width of a modal dialog then here’s a way to do it: http://stackoverflow.com/questions/10169432/how-can-i-change-the-default-width-of-a-twitter-bootstrap-modal-box
  4. RequiredFieldValidation and Validation and State : Wanted to apply styling as shown here: http://getbootstrap.com/css/#forms-control-validation

Initially tried with RequiredFieldValidator. But due to it’s complexity avoided doing so. Then used CustomValidator, Here’s how ClientValidationFunction function looks like:
[sourcecode language=”javascript”]
function ValidateALTText(oSrc, args) {
var isValid = false;
// label label-warning
isValid = args.Value.trim();
if (isValid) {
$("#" + oSrc.id).prev(".form-control").parent().removeClass("has-error");
}
else {
$("#" + oSrc.id).prev(".form-control").parent().addClass("has-error");
}
args.IsValid = isValid;
}
[/sourcecode]

  1. Jquery Plugins : Cool, Jquey Plugins which has been designed to use with Bootstrap
    1. Wizard : Would like to create Wizard? http://vadimg.com/twitter-bootstrap-wizard-example/
    2. Confirm, Alert, Custom Dialog : If you would like to take a confirmation from user before doing postback then go for http://bootboxjs.com and if you are facing issue while showing confirmation box and doing postback then this thread will surely help you : http://stackoverflow.com/questions/20389205/bootbox-with-jquery-and-bootstrap-with-a-net-page-no-working/21433099#21433099
    3. FileStyle : Change look and feel of your file input box : http://markusslima.github.io/bootstrap-filestyle/

Found it useful? You have your own set of learnings? Why don’t you share it with all of us?
Happy Bootstraping! 🙂
Good reads:

  1. Twitter Bootstrap Tutorial : http://www.w3resource.com/twitter-bootstrap/tutorial.php
  2. The original list of resources and plugins for Bootstrap : http://bootsnipp.com/resources

 

ASP.NET Application from where CultureInfo.CurrentCulture reads culture?

Challenge:

Before couple of weeks back, we spent the good amount of time figuring out from where an ASP.NET reads CultureInfo.CurrentCulture settings? Why? Because for one of our application it was English – UK and we wanted to change it to English – US.
Yes, we can modify it globally using web.config by setting [globalization culture=”en-US”]. But it will apply to whole application, Yes, you are right we can apply it on page as well. But it was working fine on our live server without configuration change either on page/config. And we wanted to know why? [Sometime rather than finding a solution, It’s good to find out a root cause]
We did a lot of read and finally, we fixed it and found the root cause. What, you are also searching for the same? Eager to know from where it reads? let’s go

Solution:

To reproduce the issue, you can do following test scenario:

  1. Print “System.Globalization.CultureInfo.CurrentCulture” in a command prompt application
  2. Do the same in ASP.NET page — Simple Response.Write on sample page should do. [Make sure your site is hosted under IIS and running as NETWORK SERVICE user, same as live scenario]
  3. Now run both samples and note your CultureInfo
  4. Now, from Regional Settings do change your Culture settings.
  5. Repeat step#3

Analyzed the results? Surprised? Your changes will get reflected in console application. But not in ASP.NET application. Why?
We did a quick search and following thread came up :
http://stackoverflow.com/questions/9697604/from-where-cultureinfo-currentculture-reads-culture
As this thread says it reads it from System definitions

No matter what browser is in use, the definition for System.Globalization will always come from the Operating System definition

But our simple test says, it’s not true correct? Then from where it comes?
Also, did a quick search and found following thread:
http://stackoverflow.com/questions/14322910/cultureinfo-values-differ-between-applications-for-the-same-culture-is-this-a-b/14323336#14323336
And it did a trick!

Jason Evans’s comment pointed me in the right direction. See the link he posted: ASP.NET application doesn’t reflect Regional settings
It turns out that regional settings are stored per user in Windows. This is something I should have been aware of. Updating the application pool to run as myself produced the same result across both applications.
To be fair, what is still confusing is how Network Service (the account the application pool was running under) came to have the incorrect value. I’m not even sure how I’d rectify that.
Edit:
If you need to update the regional settings for reserved accounts. You have two options.

  1. Control Panel > Regional Settings > Click the administrative tab and then select “Copy Settings”. On the screen that launches, ensure you check “Welcome Screen and system accounts”. Older versions of Windows are similar I believe.
  2. For the brace. Registry: HKEY_USERS > SID… > Control Panel > International. The security identifier for Network Service is: SID: S-1-5-20.

Ensure you restart the application pool for settings to take effect.

We followed approach#1, and it worked for us! [This is how it looks like!]
CultureInfo-DateTimeSettings
In summary, our ASP.NET application was running under NETWORK SERVICE user, and we were trying to change Regional settings for current logged in user and NOT Network Service user.
Happy Coding! 🙂