Friday, July 30, 2010

Does Experience matter for software programmers ?

Software programming needs understanding the problem and the programming language and tools and platform being used for solving the problem. Experienced programmers tend to solve the problem with old procedural methods where as for object oriented programming you need a different approach. Even if a person is having experience in objected oriented programming, it does not mean that he or she is well versed with new updates being delivered on that platform.

The easiest way to become a good programmer is to read help thoroughly for each and every control or statement, that you are going to use to solve the problem at hand. Another important aspect is code refactoring. Whenever you repeat any 2-3 lines of code in more than one method or form, just think that is it possible to create a class or inherit a class or create a new method and call that repeatedly. If you make this decision only second or third time while repeating code, it is easy to implement. Later on, you think that it is more work involved in changing old methods or classes as they have been used at many places and you tend to avoid the change. At some point later, you realize that it has become a headache to maintain so many repetitions of code, and you plan to launch a code refactoring project and need resources for the same. Whereas if you are aware about code refactoring at all times, it saves your time, energy and does not require you to take code refactoring as a separate job.

Just be aware of new versions/updates to the tools being used and read what the developers of these tools have written for you and you will start belonging to the class of just 1% good programmers out of the whole set of programmers getting bored with their job or blaming others for not getting enough rewards. To be really successful, you don't need to be only programmer or only UI designer or only system analyst. You must be all at the same time, aware of everything what you do and aware of every tool, statement and function you use.

8 comments:

  1. i agree with Mr. Gupta's views but i think a company should have both experience and fresher’s because both have a different qualities. i mention some myths and the reality with experience programmers
    MYTH: Older software developers are less flexible and less capable of learning new technologies because of their legacy knowledge
    REALITY: It’s actually because of their past experience that more experienced software developers can migrate to new technologies, frameworks, and systems more quickly and in greater depth. For example, if you learn a GUI framework in C/C++, you have a mental model about message passing, event handling, MVC patterns used to design the system and separate presentation from back-end logic. The very first time you learn a GUI framework, in addition to the syntax, the examples, and the quirks of the library, you also need to learn all the conceptual stuff. And after two, three or more GUI frameworks, you notice that they all have very deep similarities outside of the syntax. You might even notice newer frameworks have overcome substantial limitations that you used to have to work around with complicated hacks. Those insights are lost on someone new to the framework. And those insights can really boost productivity in ways you’re not able to directly measure.

    ReplyDelete
  2. MYTH: Older software developers are less able to perform the arduous tasks of software development (read: work long, painful hours) because of family commitments and other attachments that younger workers don’t have.
    REALITY: I think it would be fair to state that experienced software developers are less willing to work those long, painful hours because they’ve learned the hard way that there are productive limits to pushing yourself 80 hours a week for months on end. It’s called burnout, and I’m willing to bet that anyone who has already experienced it in the past simply isn’t as eager to go there again. But with that said, the supposed reason of “family commitments” is bogus. High-quality, experienced software engineers are ruthless time managers, and those with families are even more motivated to get things done in allotted times. They may have dance recitals and soccer games to attend to, but they also make up that time in off hours and highly focused work during the 40 hours they’re given in a week. Good software engineers with families must become highly efficient with personal time management or they quickly get buried with the deluge of work coming their way.

    ReplyDelete
  3. MYTH: Older software developers are less mentally agile than younger ones.
    REALITY: Aging does affect the brain and it is measurable to show that older workers think more somewhat slowly than younger ones. But mental agility is only part of the equation. Thinking faster isn’t always better. What about judgment? There’s an old expression:
    Good judgment comes from experience, experience from bad judgment.
    Lost mental agility is a poor excuse to not hire an older software engineer in light of the fact they’ve seen, done, and lived many more successes and failures than a younger developer. Experienced developers have tons of past projects to draw from and assist in avoiding bad decisions today. Younger developers have new ideas which are important, but often untested and unproven. Having both perspectives on your team is of great value

    ReplyDelete
  4. MYTH: Older software developers are more jaded and cynical and therefore, less desirable in the workplace than younger ones. Younger developers are more enthusiastic than older ones.
    REALITY: Anyone who believes this is probably someone who doesn’t like their ideas criticized by those who’ve been around long enough to see really stupid decisions put into practice again and again. Experienced software developers smell crap a mile away. They don’t buy your stories about how the product isn’t well received in the marketplace because they’ve been interacting with the customers for years and know you’re trying to cover up a future layoff in the company. They won’t put up with managers asking them to work 80 hours a week because the customer wants the software next month and they already told you it will take 3 more months to complete with the features agreed upon.
    Younger developers haven’t been in those situations as frequently and therefore, have less resistance to bad management practices. The only desirable trait management wants here is naivete. If you want a great team and great products coming out of it, having people that can call you out on bad decisions will save your bacon again and again. But only if you have the courage to admit you don’t know everything
    And as far as enthusiasm goes, you can’t tell me age dampens enthusiasm. If that was the case, Donald Knuth, Ward Cunningham, Bill Joy, Bill Gates and hundreds of others who’ve crossed the magic 40 barrier would be less interested in our field just because of age. But they’re not. Passion is passion. If you have it when you’re 40, chances are you really love that field. That kind of love isn’t going to die overnight. Younger developers still finding their footing in the world may have short-term passion, but that can be swayed in the face of obstacles and challenges in the field along the way.
    In conclusion, let me be absolutely clear about a few things: Young is not necessarily bad. Old is not necessarily good. And most importantly, anyone who can’t program their way out of a wet paper bag shouldn’t be hired, no matter how old or young they are. Keep your teams a vibrant mix of age and experience–where diversity exists, learning can take place. But if you’re the person looking to hire someone, don’t write off the dude with the gray hair sitting across from you.

    ReplyDelete
  5. I Agree With Pankaj Jain's View
    "Good judgment comes from experience, experience from bad judgment."

    Basic Logic Are same,Only syntax are different, There is a only change in Front end and Framework But the way to handle the problem comes by experience.

    ReplyDelete
  6. A Fresher is a good Hard Worker
    But an Experienced Employee is a Smart Worker.

    What a company Wants ??? A Hard Worker Or A Smart Worker ????

    ReplyDelete
  7. Greetings to all of you..

    I believe a company needs Smart Worker. But wait a min...

    I am not favoring a experienced employee. What I want to express is that a fresher can be a smart worker as well.

    You can't judge the smartness of person through experience. Bcoz there are people who have good experience but they prefer to work in the same old fashion even if there are some easier new methods. Not all experienced persons are what Mr. Pankaj Jain has mentioned. But those who are, they are successful even if recession is talk of the town...

    Time favors those who smartly adapt the new environment, new technology, new methods...

    ReplyDelete
  8. i agree with permita's view but i am not saying that freshers are not going to be a good programmer my means is that i can't ignore experience programmer .Today company's ignoring the experience programmer.Experience means Experience not old.i am not talking about rgid programmers who think that they are always right.i am talking about flexible programmers who can improve and update ourselvs everytime and add experience to improve and gains profit to their company.
    i am not talking about that programmers who say that "hum to aise he hain ab badle nahin sakte ".
    that lines is for a govt. employee. i am talking about that programmers that saying we can learn many more things about new technologies and if we have any mistake about working then we should improve.i previously said that "Young is not necessarily bad. Old is not necessarily good. And most importantly, anyone who can’t program their way out of a wet paper bag shouldn’t be hired, no matter how old or young they are. Keep your teams a vibrant mix of age and experience–where diversity exists,

    ReplyDelete