Just got an interesting and worth reading Q/A session in an email loop that I want to share. Basically this session holds some great thoughts that are sleeping in my mind from last 4 years. I can find myself easily here and can now judged and conclude many things fairly. I like and totally agree with them. I have shared some peoples comments here too just want to make things visible. I personally like last two answers as there are so real.
Some, rather most organizations reject his CV today because he has changed jobs frequently (10 in 14 years). My friend, the job hopper (referred here as Mr. JH), does not mind it. well he does not need to mind it at all. Having worked full-time with 10 employer companies in just 14 years gives Mr. JH the relaxing edge that most of the “company loyal” employees are struggling for today. Today, Mr. JH too is laid off like some other 14-15 year experienced guys “ the difference being the latter have just worked in 2-3 organizations in the same number of years. Here are the excerpts of an interview with Mr. JH:
Q: Why have you changed 10 jobs in 14 years?
A: To get financially sound and stable before getting laid off the second time.
Me :M still at one place from last 4 years, i got many chances but i decided not to switch
X : X don't wanna leave job as he is loyal to his company and loves working there. Main reason is that he is having a dependency of family and don't want to take risk.
Y: Quit after 6 years and was sad that it took him 6 years to make that right decision.
Q: So you knew you would be laid off in the year 2009?
A: Well I was laid off first in the year 2002 due to the first global economic slowdown. I had not got a full-time job before January 2003 when the economy started looking up; so I had struggled for almost a year without job and with compromises.
Q: Which number of job was that?
A: That was my third job.
Q: So from Jan 2003 to Jan 2009, in 6 years, you have changed 8 jobs to make the count as 10 jobs in 14 years?
A: I had no other option. In my first 8 years of professional life, I had worked only for 2 organizations thinking that jobs are deserved after lot of hard work and one should stay with an employer company to justify the saying ˜employer loyalty. But I was an idiot.
ME: well it’s better to decide path earlier rather than blaming yourself later on.
X: He is still not agreeing with that. He still loves that.
Y: Before quitting he was having same flavor but after that he woke up and start thinking about future. Previously the slogan was Loyalty and later on changed too if there is money then loyalty comes automatically
Q: Why do you say so?
A: My salary in the first 8 years went up only marginally. I could not save enough and also, I had thought that I had a ˜permanent™ job, so I need not worry about ˜what will I do if I lose my job™. I could never imagine losing a job because of economic slowdown and not because of my performance. That was January 2002.
ME: hardly getting that amount that i deserved but happy that m getting industry experience. Well for me money isn't that important at that stage but now.
X: Surviving even he knows that he is not getting salary that fits in industry of experience person like him
Y: Quit after 6 years due to progress of others and felling of left behind
Q: Can you brief on what happened between January 2003 and 2009.
A: Well, I had learnt my lessons of being “company loyal” and not money earning and saving loyal. But then you can save enough only when you earn enough. So I shifted my loyalty towards money making and saving “ I changed 8 jobs in 6 years assuring all my interviewers about my stability.
ME: Interesting point, I have a save point here that quitting job in early stage is not that Sweet apple always as lack of experience. Deciding about “Company loyal” or “Money loyal” when you have experience in hand always go in your favor
Q: So you lied to your interviewers; you had already planned to change the job for which you were being interviewed on a particular day?
A: Yes, you can change jobs only when the market is up and companies are hiring. You tell me “ can I get a job now because of the slowdown? No. So one should change jobs for higher salaries only when the market is up because that is the only time when companies hire and can afford the expected salaries.
Q: What have you gained by doing such things?
A: That's the question I was waiting for. In Jan 2003, I had a fixed salary (without variables) of say Rs. X p.a. In January 2009, my salary was 8X. So assuming my salary was Rs.3 lakh p.a. in Jan 2003, my last drawn salary in Jan 2009 was Rs.24 lakh p.a. (without variable). I never bothered about variable as I had no intention to stay for 1 year and go through the appraisal process to wait for the company to give me a hike.
Me: wow, look at this variable. One thing is to make sure that, normally company will not give you that salary that you can get from market. And that's a REAL fact. My personal experience of hiring and observing people of same industry has many concrete examples like these.
Q: So you decided on your own hike?
A: Yes, in 2003, I could see the slowdown coming again in future like it had happened in 2001-02. Though I was not sure by when the next slowdown would come, I was pretty sure I wanted a debt-free life before being laid off again. So I planned my hike targets on a yearly basis without waiting for the year to complete.
Q: So are you debt-free now?
A: Yes, I earned so much by virtue of job changes for money and spent so little that today I have a loan free 2 BR flat (1200 sq.. feet) plus a loan free big car without bothering about any EMIs. I am laid off too but I do not complain at all. If I have laid off companies for money, it is OK if a company lays me off because of lack of money.
Q: Who is complaining?
A: All those guys who are not getting a job to pay their EMIs off are complaining. They had made fun of me saying I am a job hopper and do not have any company loyalty. Now I ask them what they gained by their company loyalty; they too are laid off like me and pass comments to me “ why will you bother about us, you are already debt-free. They were still in the bracket of 12-14 lakh p.a. when they were laid off.
Me : Question that is still un-answered “what you gained by company loyalty ?”
Q: What is your advice to professionals?
A: Like Narayan Murthy had said “love your job and not your company because you never know when your company will stop loving you. In the same lines, love yourself and your family needs more than the company's needs. Companies can keep coming and going; family will always remain the same. Make money for yourself first and simultaneously make money for the company, not the other way around.
ME:I personally like these last two points defining all in fight between Loyalty and Money.I have so many thing in my mind from other tech persons that they don't have time for family as they are IT people and their jobs demands more time and they hardly gets time to come back home on time. Well when I started my Carrier in IT as Internee SE, I saw that too. But till now like after 4 years am keeping myself away from this typo habit. I just hate late sitting and like to spend time with family and other stuff. I still don't understand why people encourage that? In start we can go with late sitting as you are leaning but don't make this your habit as this will hurt a lot (anther experience of mine)
Q: What is your biggest pain point with companies?
A: When a company does well, its CEO will address the entire company saying, ˜well done guys, it is YOUR company, keep up the hard work, I am with you. But when the slowdown happens and the company does not do so well, the same CEO will say, it is MY Company and to save the company, I have to take tough decisions including asking people to go. So think about your financial stability first; when you get laid off, your kids will complain to you and not your boss.
Me: this is another point that I liked, well this is true as everyone has a right to save himself so do the CEO =). But the point is when person is not leaving you in your good time then why company kicks him in bad time? Where is respect and loyalty?
Random: For me jumping in IT sector in earlier stage is cancer, and staying more than one place after 3-4 years is a killer. A common theme at starting point should be” It's not all about the money but getting knowledge and learning“. One should be clear what he is up too, like Loyalty or Money. As a starter, don't look for jobs and change rather then get experience in that field. After that 3 years. Well world is yours and it’s time to earn money. Earning money is not hard when you have experience in hands. Company will not pay you more till then you show that you deserved more.80 Percent of companies’ don’t pay according to your industry experience but keeping this as low as possible.
Now move back to the question, Loyalty Vs Money or whether higher pay makes employees happy and loyal, I would say Yes, because i think Money is that main reason that make people to quite or move to another place, if you remove that reasons for people to leave, you are more fortunately to have a Loyal and strong workforce team. As soon as the package of pay and benefits that you offer matches the employees demand, the next best is the Quality of work . as some one says “that a sufficient-to-generous pay package is the best way to ensure that people stick around.”
Cheers
Hansmukh
Last night i came accross a bug on production server. Some times we were facing Time out in calling service.
Exception is
System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (502) Proxy Error ( The specified network name is no longer available. ). ---> System.Net.WebException: The remote server returned an error: (502) Bad Gateway.
Was unable to find out the root cause that but this blog…
http://weblogs.asp.net/gunnarpeipman/archive/2009/02/07/apache-iis-and-502-proxy-error.aspx
Its says
The problem also only occurs for us when we use an IIS backend device, with an apache its ok. From a tcpdump the only diff I can see between the two sessions is that the IIS closes the connection when the keep-alive time out is reached with a TCP RST packet, while the apache does a Fin/Ack handshake. When IIS sends this RST packet the next request to the mod_proxy device that’s hits the worker with the RST connection returns the 502 error msg.
Thanks Gunnar Peipman
Just found an interesting comparison between different software houses in Karachi. Comparison between timings, transport facility , increment thing. Software engineers always have a hard time with office timings and late sitting is a MUST so do exclude that from list =)
|
|
Kolachi |
TPS |
Matrix |
Systems |
Deadulus |
Folio3 |
Mazik |
|
Timings |
9-5:30 + 24/7 support |
9:00 - 6:00 |
Timings 9-6 (late will be marked after 9:30) |
10:00-7:00 |
10:00-7:00 |
9:30-6:30 |
12:00-9:00 |
|
Transport |
Yes - van amount is distributed among the persons in van and 70% is given by company |
No |
No |
No |
Yes - total free |
Yes - 2000 given for van, if come by own transport then amount is fiven |
Only for Girls - For male employees 4500 rupees given |
|
Increment |
Annual |
Annual |
Bi Annual |
Annual (20% of current gross salary) |
Annual |
Bi Annual |
Annual |
|
Bonus |
Once |
2.5 - 3 Basic salary |
Full Salary Bonus on Eid |
No |
No - eidi hai |
Accural Bonus after 6 months + Eidi |
upto 3 |
|
Medical -OPD |
No |
Yes |
Yes |
Yes |
No |
Yes |
No |
|
Medical Insurance |
Yes |
Yes |
dont know |
No |
Yes |
Yes |
Yes |
|
Trainings |
No |
Yes |
yes, organizational wide trainings |
Yes |
Yes |
Certifications |
Project based |
|
Masters Reimbursement |
No |
No |
Yes sponsored by company |
Yes sponsored by company |
No |
No |
No |
|
Abroad |
No |
Yes 45 dollars per day + salary |
Yes |
Yes |
No |
No |
Yes |
|
Additional facilities |
Cell phone with 2500 credit limit, Laptop, Internet |
Games, cell phone allownce, gratuity |
No |
Over time |
No |
Gym |
GYm, table tennis, gaming zone, carom and other indor stuff, internet at home, mobile credit, daily lunch |
|
Saturday |
Off |
Off |
Off |
Off |
Off |
Off |
Off |
|
Late Sittings |
Oftenly, depends on deadline |
Above Average |
Oftenly, depends on deadline |
Above Average - depending on Project |
Oftenly, depends on deadline |
Oftenly, depends on deadline |
Oftenly, depends on deadline |
|
CMMI level |
1 |
1 |
2 |
4 |
1 |
1 |
1 |
Happy Camparision
Fasih Hansmukh
Just found an interesting presentation taking about things that force us to motivate, do check out
Happy Motivating
Fasih Hansmukh
I have seen many question posted on forums asking that Linq doest generates schema of second record set if using Linq to SP. Well this is so true, Linq always generate schema for very first record set and forget rest of record sets. So here is simple workaround for doing that.
For example consider demo SP returning two record sets
Create PROCEDURE GetData
@MasterId int
AS
BEGIN
-- Master Table Records [Record Set 1
]
Select * From MasterTable Where Id=@MasterId
-- Child Table Records [Record Set 2]
Select * From Child Where MasterId=@MasterId
END
when we drop that Sp on designer, notice it will only generate schema of first record set like this
<Function Name="dbo.GetData" Method="GetData">
<Parameter Name="MasterId" Parameter="masterId" Type="System.Int32" DbType="Int" />
<ElementType Name="GetDataResult">
<Column Name="Id" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
<Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
</ElementType>
</Function>
Now the workaround, Just comment out first select statement in SP and re-drop that into designer, but before that copy that generated schema on Notepad (as we have to reuse that). It will generate schema of second record set now like this
<Function Name="dbo.GetData" Method="GetData">
<Parameter Name="MasterId" Parameter="masterId" Type="System.Int32" DbType="Int" />
<ElementType Name="GetDataResult">
<Column Name="Id" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
<Column Name="MasterId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
<Column Name="NameChild" Type="System.String" DbType="VarChar(50) NOT NULL" CanBeNull="false" />
</ElementType>
</Function>
Now just copy that schema and mixed with the first one that we copied on note pad. and rename the ElementType Name="" of the second schema of record set (just to be unique else it will not compile). I named it GetDataResultChild. So final structure of schema will look like this.
<Function Name="dbo.GetData" Method="GetData">
<Parameter Name="MasterId" Parameter="masterId" Type="System.Int32" DbType="Int" />
<ElementType Name="GetDataResult">
<Column Name="Id" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
<Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
</ElementType>
<ElementType Name="GetDataResultChild">
<Column Name="Id" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
<Column Name="MasterId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
<Column Name="NameChild" Type="System.String" DbType="VarChar(50) NOT NULL" CanBeNull="false" />
</ElementType>
</Function>
Now it is according to our need. Yeah ! well it is just a workaround and i find it the easy one among that are available on google. We can generate as many schema of record set like this.
Happy schema Generating
Fasih Hansmukh
In last posts, i have given some basics concepts ragarding Classes, Objects, Properties and Methos. Now, some Core things. This post is dedicated to Inheritance, one of the core pillar of Object Oriented Principle.
By definination it is just what it defines.. wikipedia says
Inheritance is the practice of passing on property, titles, debts, and obligationsupon the death of an individual. It has long played an important role in human societies. The rules of inheritance differ between societies and have changed over time.
Inheritance mixed with encapsulation and polymorphism, is one of the three primary pillars of object-oriented programming modal. Inheritance helps you to create new classes that extend, reuse , and modify the behavior that is defined in other classes.It is very important concept. why ? well you will get the answer in last of this post . Till then Consider a class of Basit, Zain, khurram and Ayesha. both defines some Methods and possess some Properties (As we already discussed in last post that every object consist of properties and methods ).
Both posses method like Eat(), Sleep() , Walk() ect .
This post is for Beginners learning OOP and having hard time in digesting Classes .Well this post is part of series OOP's Part1 post that I wrote some time back and didn’t get time to write its second part. So here it is. Hope you get well in last post about Objects , properties and Methods. Now start from Class. Class is very important in OOP modal and we always code for real world application and to classify them individually we make classes other wise it will be hard to distinguish between Car, basit, Animal, Radio. Classes are container or objects , Properties and methods (we have many more in class too bt for a time being take these three) So our first class for Car like
public class Car
{
// Cars Properties and Methods place here
}
And same for Human
public class Human
{
// Human Properties and Methods place here
}
Lets now define some Properties and method that we discussed in [OOP's Part1 post]
public class Car
{
// Car's properties
public string CarName { get; set; } // Holds car name
public string CarNo { get; set; } // Holds car No
// Car's Methods
public void StartCar()
{
// Car is started =)
Console.WriteLine("Car Started ! ");
}
}
Here is a complete class with minimum things that we need (we acan add many other too depending upon our requirments) As you can see , we can add any property in car class to map to real world application that can be in Real Car . That what all OOP about =). Class can also be use like 'Template'. What I mean is that, we have a Car's Templet above that can u use to create many Cars in future and we don’t have to write code again and again as long as we need same thing that are in Templet. How?? We use Objects for this.(if you are not familiar with it , read my first post http://fasih-hansmukh.posterous.com/object-orented-progemming-part-1 ) Now start using this class
// introducing my first car to world
Car oCar1 = new Car();
oCar1.CarName = "My First Car"; // Its Name
oCar1.CarNo = "NO# 001"; // Its No
// Starting my car
// introducing my second car to world
Car oCar2 = new Car();
oCar1.CarName = "My Second Car"; // Its Name
oCar2.CarNo = "NO# 002"; // Its No
// Now time to drive my first car
oCar1.StartCar();
// Now time to drive my second car
oCar2.StartCar();
No practice with and. I will post on Some core concepts of OOP in upcoming post, till then Happy Practicing
Me
Fasih Hansmukh
Welcome to the world of RIA
Many people asked that they have good skill now and its time to learn some thing new to add flavor to carrier specially Silverlight but they are not very much sure how to start.
Well first thing first, if you are interested in business applications, then there's very comprehensive hands on labs on the topic
More general overview, on one topic each here is a Quick start http://www.silverlight.net/learn/quickstarts/
Higher level overview, it might be worth taking a look at some of the White Papers
Jesse Liberty as always has the best tutorials: http://www.silverlight.net/learn/tutorials/
Many developers start with that and move on . I wana add some sort of list containing some essential thing that every developers must learn in order to move on in SL world. This list can be use as a Handout too. These are MUST to KNOW things from my point of view
Binding/Database connectivity
Dependency Properties
The Layout System/ Styling & control templates
An Architectural Pattern (like MVVM or similar)
Async Programming
Threading
How to Write Value Converters
How to Use Expression Blend
How to Hand-Code XAML
Visual vs Logical tree
UserControls
I like Scott Gu's 8 part blog
http://weblogs.asp.net/scottgu/pages/silverlight-2-end-to-end-tutorial-building-a-digg-search-client.aspx and Tim's http://timheuer.com/blog/articles/getting-started-with-silverlight-development.aspx Best and shortest Intro on web covering maximum from above list.
Hope this helps
Fasih Hansmukh
I seen a question posted on SO asking what are best initial things that i must know in order to jump in to asp.net development.
So i decided and make a post to share my views in this.
Firstly, Web based software development involves a whole new way of thinking It’s not harder, or better, or worse, it’s just something different. Web programming only require different kind of thinking and most importantly client and server. In .NET win app kind of programming it is not. You always have to think “client = HTML” that’s it!!! which can customize through JS.
Like everything, you will need to spend learning the tools, the concepts and then practice, practice, practice! If you have sound fundamentals, you will have no problems picking it up. Just stick with it. Motivation of any server side logic (most of the time) is send HTML to client.HTML can be beautiful but need CSS.
Unfortunately, they aren't really that great (imo) that t teach you good practices with the web.
As starting, divide your journey and fill them with same task in order to move on. List so far ...
Presentation Layer :HTML / CSS/ Java Script/xHTML, CSS, XML, XSLT /JavaScript, Ajax, JSON, jQuery. With general web development and Learn about html creating pages, look into websites like W3schools which will teach you the basics. Remember to separate presentation from markup with CSS and make sure you are using JavaScript to add value to a page, but make sure your page is still usable without it. As for JavaScript development, it has improved considerably in the past few years with frameworks which in theory are cross-browser. Maybe try looking into JQuery which syncs well with ASP MVC and has intelligence in visual studio
Advance Presentation Layers GUI Silverlight, Flex, RIA tools.
Server Side Programming A Server Side programming – C#, Asp .Net, MVC, Java, PHP, Ruby. HTTP Request VS Response ,GET/POST Page State , Session, Cache etc ASP.NET Page Lifecycle/ Server Control and UserControl, HTTPModules and HTTPHandlers And Need to know how asp.net page works and reacts with users.
Web Servers Definitely you will need to know how to host you application IIS or other hosting envirnmnets (Initial knowledge in start will be fine enough) Web server - Apache or IIS
Data Base knowledge: It is likely the same as you are using in win application.
For Debugging and Unit testing Tools like Fiddler, Firebug, Selenium, IDE, Build, Unit Testing, Deployment, Continuous Integration tools,e.g. JUnit, NUnit.
Additional things Knowledge of Scrum, Agile, Waterfall Methodologies. Multiple browsers and O/S for testing. Usability, Security, Accessibility standards, Performance, Privacy.
Frankly Advice on Level 8 in C# out of 10
Most of the people jump into web programming but they're not smart in compilers, concurrency, 3D or class inheritance. They have not got a clue why I'd use an abstract or an interface class. They don't understand Static methods and virtual methods, pointers, references, garbage collection, finalizers, pass-by-reference vs. pass-by-value, virtual, destructors, or the differences between C# structs and classes. They also know nothing about process. They've never seen a requirements document, they've never written a design document, they've never drawn a UML diagram, and they haven't even heard of a sequence diagram.
But they do know a few things: they know how to throw an ASP.NET webpage together, send some (poorly done) SQL down into a database, fill a dataset, and render a grid control. This much they've figured out. And the chances are good it didn't take them long to figure it out.
Don’t fall in this category, Learn basic thing first and in detail and start without shortcuts.
Helps that helps