My Thoughts & Views

Archive for the ‘General Programming’ Category

Interfaces
–contain only abstract methods
–interface can’t be inherited from a class
–using interfaces we can achieve multiple inheritance
–doesn’t allow accessibility modifiers (Public/Private/Internal)
–can’t contain fields, constructors
–is must implementable & its scope is upto any level of its inheritence chain.

Abstract Class
–contain both abstract methods as well as concrete methods
–can extend another class and implement multiple interfaces
–we can’t achieve multiple inheritance
–allows accessibility modifiers
–can contain fields, constructors
–class Abstract class is must inheritable & its scope is upto derived class

Advertisements

Here is the list of tips & insights compiled from StackOverFlow.


1. Never be afraid to say I don’t know.Manage expectations, learn to say “no”.But always give it a try before you say that.
2. Never stop learning.Accept your mistakes and take that just as a new learning opportunity
3. Ask for help sooner rather than later,know that you can’t do everything by yourself.Don’t take all the responsibility for a problem. Sometimes you can be furiously trying to solve a problem alone and carrying the problem on your back. Get other people involved, escalate, get other folks involved.
4. Learn to take backup
5. Assumption is the mother of all screw-ups. So never assume something which you are not sure of.
6. Estimates are always off by at least 50% either way.
7. First make it work, then make it better.
8. Always negotiate deadlines/deliverables.
9. Don’t hesitate to do overtime IF the situation requires it
10.Underpromise and over deliver
11.Find the balance between being realistic and being positive.
12.Be confident in your skills
13.Listern patiently to others opinion. Especially when you talk to a client.
14.Share your skills – Help others and the community with the knowledge you’ve got.
15.Make sure you get proper recognition and appraisal for your good work.
16.Manage your time effectively
17.Don’t give people what they ask for, give them what they need.
18.No matter where you are on the pecking order of a team or project, you CAN make a difference.
19.It’s more important to manage people’s perception of the problem than it is to fix it.
20.Never trust the data. Validate your inputs.
21.”It works on my machine” doesn’t cut it. It HAS to work for them, too.
22.Show your code to other people – and listen to their comments.& Look at other peoples code and talk to them about it.
23.If you can’t figure out a problem then take a break and come back to it in 10 or 20 minutes – makes finding a solution so much easier.
24.Realize that specifications are going to change.
25.Never implement new features unless you have a written request ( mail is just fine )
26.Be prepared to reinvent yourself every five years.
27.Before you roll anything out TEST TEST TEST
28.Use Source Control
29.Communicate, communicate, communicate
30.You can never have enough clarification and detail with project requirements

Here is the list of tips & insights compiled from StackOverFlow.


1. Never be afraid to say I don’t know.Manage expectations, learn to say “no”.But always give it a try before you say that.
2. Never stop learning.Accept your mistakes and take that just as a new learning opportunity
3. Ask for help sooner rather than later,know that you can’t do everything by yourself.Don’t take all the responsibility for a problem. Sometimes you can be furiously trying to solve a problem alone and carrying the problem on your back. Get other people involved, escalate, get other folks involved.
4. Learn to take backup
5. Assumption is the mother of all screw-ups. So never assume something which you are not sure of.
6. Estimates are always off by at least 50% either way.
7. First make it work, then make it better.
8. Always negotiate deadlines/deliverables.
9. Don’t hesitate to do overtime IF the situation requires it
10.Underpromise and over deliver
11.Find the balance between being realistic and being positive.
12.Be confident in your skills
13.Listern patiently to others opinion. Especially when you talk to a client.
14.Share your skills – Help others and the community with the knowledge you’ve got.
15.Make sure you get proper recognition and appraisal for your good work.
16.Manage your time effectively
17.Don’t give people what they ask for, give them what they need.
18.No matter where you are on the pecking order of a team or project, you CAN make a difference.
19.It’s more important to manage people’s perception of the problem than it is to fix it.
20.Never trust the data. Validate your inputs.
21.”It works on my machine” doesn’t cut it. It HAS to work for them, too.
22.Show your code to other people – and listen to their comments.& Look at other peoples code and talk to them about it.
23.If you can’t figure out a problem then take a break and come back to it in 10 or 20 minutes – makes finding a solution so much easier.
24.Realize that specifications are going to change.
25.Never implement new features unless you have a written request ( mail is just fine )
26.Be prepared to reinvent yourself every five years.
27.Before you roll anything out TEST TEST TEST
28.Use Source Control
29.Communicate, communicate, communicate
30.You can never have enough clarification and detail with project requirements

Sometimes I just can’t get anything done.

Sure, I come into the office, roam around, check my email every ten seconds, read the web and even do a few brainless tasks. But getting back into the flow of writing code just doesn’t happen.

These periods of unproductiveness usually last for a day or two. But there have been times in my career as a developer when I went for weeks at a time without being able to get anything done. I was not in flow. I was not in the zone. I was not anywhere.

Everybody has mood swings, for some people they are mild, for others, they can be more dysfunctional.

It makes me think of those researchers who say that basically people can’t control what they eat, so any attempt to diet is bound to be short term and they will always return back to their natural weight. Maybe as a software developer I really can’t control when I’m productive, and I just have to take the slow times with the fast times and hope that they average out to enough lines of code to make me employable.

What drives me crazy is that ever since my first job I’ve realized that as a developer, I usually average about two or three hours a day of productive coding. One fellow worker mentioned me that he too can work productively for 2 to 3 hours a day.

Sometimes I feel guilty when I see how hard everybody else seems to be working, & I get about two or three quality hours in a day. But its not the days when I “only” get two hours of work done that worry me. It’s the days when I can’t do anything.

I have thought about this a lot, as per my understanding the productivity greatly depends on the work environment like Google or Microsoft Office.

Many of my days go like this:
(1)get into office
(2)check email, read the web
(3)decide that today I will work productively
(4)lunch time comes I go out for lunch, at hotel I think that once I go back I will do work
(5)Come back from lunch, read news paper
(6)Check email, facebook, read the web
(7)Finally decides to start working and realize that its already 8:00
(8)leave office

This reminds of Newton’s law, An object at rest tends to remain at rest……
And over the years I have figured out what we have to do in such unproductive periods, the rule is simple, get started & stick to it………… once you get into the flow, its not too hard to keep moving as other part of Newton’s law mentions it, an object in motion tends to move until and unless an external force is applied………

What do you do in such unproductive situations?

There is a huge interest in Cloud computing these days. Last month i attended Google Developer Day, Google has already providing Cloud called Google App Engine, where developers can host applications developed in python.

Now it’s Microsoft’s turn, with their Azure Platform they are providing cloud services.

Let me know what you think about the latest trend like Cloud Computing of these big companies.

Intelligent Cloud

 public static String Reverse(String strParam)
{
if(strParam.Length==1)
{
return strParam;
}
else
{
return Reverse(strParam.Substring(1)) + strParam.Substring(0,1);
}
}