Aug 14, 2013

Ten Job Search Rules to Break

One of our clients – we'll call her Linda – got a job offer from a global oil & gas company last week. Her hiring manager, Jack, left a voicemail message to tell Linda that an offer letter was on its way. Next came an email message from the company's recruiter, sharing the same news.
Finally, a Fedex package arrived in the mail with the hard copy of Linda's offer letter.
"Gotta be honest, I didn't love the process right at the end," Linda told me.
"Jack called to say the offer was coming. Sarah Jane in HR sent an email message with the same news. Then the offer arrived – but nobody ever talked to me about what would be in it. They just sent it and told me it was coming, and they both used asynchronous means to convey the news, kind of a weenie move if you ask me."
"How does that make you feel?" I asked her.
"I still want to take the job, but I'm going to call Jack and lay it out straight," Linda said. "They've told me in a million ways during the interview process that they need me to get in there and help them step their game up. I guess this is my first chance to do that."
Linda called Jack and told him she'd been startled to get an offer whose contents were a mystery to her until she opened the package. Why wouldn't Jack have called her to talk about the offer before sending a hard copy (by Fedex, no less)?, she wondered.
"I had left you a voicemail a week ago, hoping to connect and talk about specifics," she said. "I know you're busy. I had the impression from you and others in the company that this is a high-priority role. It seems as though a live conversation by phone to talk about the offer details would have been an important step to take before committing anything to paper."
Jack reflected.
"You're absolutely right, Linda," he said. "I had the same reaction when I was being hired here two years ago, and to tell you the truth the same thought went through my head and I didn't say anything. I'm glad you brought it up. I have to be honest, I don't quite know how that pre-offer conversation would go. I haven't had one of those discussions before. Got any tips for me?"
Linda shared the Supposal™ process she had learned at a Human Workplace workshop. ASupposal™ conversation is one that says "I'm not making you a job offer at this moment, but we're moving in that direction. Supposing we were to make you an offer (and this conversation is part of the process that gets us there), what would that offer need to look like in order for you to accept it on the spot?"
Jack was grateful for the Supposal™ advice, and the conversation moved on to the specifics of Linda's offer. Linda and Jack ended up in a one-hour phone conversation that ended with a change in Linda's title, a shift in her bonus plan and most significantly, a reorganization in the Product Development group that gives Linda greater scope in her new role.
"I am SO glad I called Jack and told him the truth," she said.
We're not coached to tell the truth when we're job-hunting. We're told to be whoever we think the employer wants us to be, playing the part of a person who has our experience and talents but none of our quirks, complications or entanglements – and certainly none of our authentic feelings in evidence!
We're coached to grovel, beg and kiss whatever tush appears in front of us when we're job-hunting. It's heinous how we expect job-seekers to bow and scrape on a job search – and for what? All that bowing and scraping doesn't help anybody get hired, much less help companies make better products or outperform their competitors.
It's a new day on the job search front. Every organization has problems – we call those problems Business Pain – and they need people who can solve those problems and alleviate their pain. You bring all kinds of powerful medicine with you to a new job, so why would anyone expect you to grovel?

Remember: only the people who get you deserve you.

Here are ten traditional job search rules I hope you'll start breaking the second you get the chance.

Ten Job Search Rules to Break

1. Follow the defined process.
This is the first rule I want you to break. For many people it's the hardest one to ignore, because of all the follow-the-rules Kool-Aid we've drunk over the years.
We've been trained since childhood to do what we're told to do. The Black Hole will eat your resume and shred its atoms, but people keep lobbing resumes into those gaping corporate recruiting portals nonetheless. Don't do it! Reach your hiring manager directly with a Human-Voiced Resume™ and PainLetter™ instead.
2. If you know someone in the company, give that person your resume and tell them to give it to the hiring manager.
Just like in other kinds of marketing and sales efforts, your job search needs to focus on your message, your audience and the best channel to connect them. Your friend inside the company may be a great channel partner for you or a wretched one.
What good does it do to have your friend trudge down the hall to HR or even the hiring manager's office if your resume just gets dumped on a desk or re-routed right back into the same Black Hole you were trying to avoid?
Choose the most powerful channel for your job search, whether the channel is an intermediary friend, the direct approach via Pain Letter™, or a third-party recruiter. Don't assume that your in-house friend is your best job-search conduit.
3. Use a traditional zombie-style resume and cover letter.
Are you a zombie? I doubt it – zombies can't read. You're a creative, colorful and vibrant person, so don't brand yourself using zombie-style jargon like "Results-oriented professional with a bottom line orientation!" (Ropwablo for short.)
You can sound like yourself in your resume, and you'll make a stronger impression on a hiring manager if you do. As for your cover letter, toss that out the window and write a compelling Pain Letter™, instead.
4. In your overture to employers, emphasize the way your background matches the job spec.
If you have already held a job, you know that the typical job spec has as much in common with the actual job as I have in common withHuckleberry Hound. Focus on the pain behind the job ad, rather than the goofy and often arbitrary (not to mention delusional) bullets in the job ad.
5. Spend most of your energy applying for posted jobs, and do so online.
If you want to feel discouraged, isolated and very, very tiny on your job search, spend your days lobbing resumes into the gaping maw of the Black Hole. If you want to get your brand and story out, build your muscles and start pithy conversations with real people, step away from the Black Hole and take a more active role in your job search.
Split your job-search time three ways in equal proportions: spend one-third of your available time and energy responding to posted job ads, one-third of it reaching out to target employers whether or not they have jobs posted, and the final one-third networking.
6. Use your networking time and energy letting people know about your job search, your specific skills and how each friend can help you.
Your friends are awesome because they support you, not because they know hiring managers or might have an inside track on a certain opportunity. Use your networking to counsel your friends (nothing grows mojo better than coaching someone else) and to get their moral support in return.
Networking is for building glue, not trying to turn your friends into means to your job-search end. When people get jobs through networking – and they do, every day – it's because they focused on the relationship, not the transaction.
7. If you're asked to report your salary history, share every detail going back as far as the employer asks you to.
Why would an organization consider hiring you if they don't trust you? If they ask you to verify every salary you've ever had and you say "Fine!", what will the next request be: the names of the presidential candidates you've voted for, or the list of people you've gone past second base with? Keep your salary history to yourself.
8. When the employer asks you to jump, do it.
Remember Linda, way back in the first paragraph? She spoke her truth, let her new manager rise to the challenge she presented him, and walked away with a huge win. Don't start a new relationship by playing Doormat Guy (or Gal). A hiring manager will never love you more than they do the week before they hire you. If the love isn't showing in the interview process, run away fast.
9. Don't bring up the topic of salary – let the employer bring it up.
We demolished this bad advice over here.
10. Do whatever you need to do and say whatever you need to say to get the job.
When you swap your integrity for money, you are done. Your flame will get dimmer and dimmer that way. Survival is paramount, of course – you can take a survival job as a maitre d'or selling suits if you need to. You can even take a survival job in your industry in a firm or a role that doesn't feel great, just to tide you over. That's a perfectly fine strategy.
Just don't delude yourself that the survival job is anything more than that, and don't stop looking for something better and settle for a bad situation instead. If the water in the fishbowl looks murky from the outside as a job-seeker, you can bet it's even dirtier on the inside.
Stay yourself on the job search trail. The quicker you say "No thanks" to the wrong opportunities, the faster your awesome new assignment can roll in – the one that deserves your talents.

BONUS! Q & A

So Liz, how do I avoid making a job interview like a citizenship exam, where I answer each question and then sit there like a dork and wait for the next question?
You do that by answering the question (in depth or just a little) and then asking your own question back. Here's an example:
SALLY, HIRING MANAGER: So Linus, have you used Framemaker much?
LINUS, JOB-SEEKER: A bit – tell me, how do you use Framemaker here?
SALLY: Well, we create a lot of documentation and we use it for version control and so on.
LINUS: Do you want to hear a quick version-control story? It's a topic near and dear to course developers, as you can imagine.
SALLY: Sure!
LINUS: Well, one time at Acme Explosives we had a situation with a beep bop biddem boddem waddem chu...
... and off you go. Don't be passive on a job interview. Make it a human conversation!
=========================================================================
I don't know who Mumford & Sons is either, but I have a 20-year-old daughter and she told me to use Mumford & Sons in this badge (below). This is also the badge for our 12-week virtual coaching group JOB SEARCH AFTER FIFTY that begins August 24th.
If you want to send me a LinkedIn invitation at liz@humanworkplace.com, please do! In that case please send me a joke or a palindrome in the invitation. Thanks!
JOIN Human Workplace when you have time, and JOIN our LinkedIn group, too!
LIKE us on Facebook and follow us on Twitter (@humanworkplace)!
Our mission at Human Workplace is to reinvent work and career education for people. We're fanatical about people and their spirit, energy, creativity, randomness, resourcefulness, warmth and wit.
We're out to dismantle the destructive and mojo-sucking Godzilla structure of fear-based rules, policies, overpowering hierarchy and red tape that siphons the life out of organizations and keeps them from doing anything new or worthwhile.
We know there's a better way to lead people than that.
We teach Human Workplace ideas and methodologies, we promote them and we sing about them (no joke: listen to this podcast) and talk about them in our webinars and live presentations. Join the Human Workplace movement. We are bringing work to life and bringing life to work!

Jul 31, 2013

ScrollView inside ScrollView (Inner scrollview not scrollable)

UI :
---

<ScrollView android:id="@+id/parent_scroll" 

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:focusableInTouchMode="false"> 

<LinearLayout 

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ScrollView 

android:id="@+id/child_scroll" 
android:layout_width="fill_parent" 
android:layout_height="100dp" > 

<TextView 

android:id="@+id/text_description" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="5dip" 
android:scrollbars="vertical" 
android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." 
android:textAppearance="?android:attr/textAppearanceLarge" /> 

</ScrollView> 


<ImageView 

android:id="@+id/imageView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_margin="10dp" 
android:scaleType="fitXY" 
android:src="@drawable/a" /> 

<ScrollView 

android:id="@+id/scrollView1" 

android:layout_width="match_parent" 

android:layout_height="wrap_content" > 

<LinearLayout 

android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 

android:id="@+id/textView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?" 
android:textAppearance="?android:attr/textAppearanceLarge" /> 

</LinearLayout> 

</ScrollView> 

</LinearLayout> 

</ScrollView> 

Java :


MainActivity.java 

public class MainActivity extends Activity { 

private ScrollView parentScroll, childScroll; 

private String TAG = "SNS"; 

@Override 

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
parentScroll=(ScrollView)findViewById(R.id.parent_scroll); 
childScroll=(ScrollView)findViewById(R.id.child_scroll); 

parentScroll.setOnTouchListener(new View.OnTouchListener() { 


public boolean onTouch(View v, MotionEvent event) { 

Log.v(TAG,"PARENT TOUCH"); 
findViewById(R.id.child_scroll).getParent().requestDisallowInterceptTouchEvent(false); 
return false; 
} 
}); 
childScroll.setOnTouchListener(new View.OnTouchListener() { 

public boolean onTouch(View v, MotionEvent event) 

{ 
Log.v(TAG,"CHILD TOUCH"); 
// Disallow the touch request for parent scroll on touch of child view 
v.getParent().requestDisallowInterceptTouchEvent(true); 
return false; 
} 
}); 
} 
}


Top Programming Mistakes You Should Stop Making

When you start out as a programmer, you can easily fall into the habit of following bad practices while programming.


As a programmer, you can't avoid mistakes and that's part of learning your programming lessons. You'll make many mistakes in your career - some unique, some common ones - and that's how you'll learn to avoid them in future.

But if you are a beginner, you'll likely make some mistakes more often than others. How do you avoid these common mistakes that many programmers do everyday?

To avoid any mistake, you've to become aware of it. And that's why I would like to share with you some common mistakes that many of us still do that keeps us from growing as a programmer.

But before I share that with you, you may want to know how do I know that these are mistakes and not the right methods?

There is a simple answer - I have done all of them at some point in my career. Some more often, while some only a few times. And I regretted doing them later.

But I didn't knew then that I was doing anything wrong by following such bad practices. Once I realized that I was doing the wrong thing I started avoiding them. And now my code is at least better than what I wrote before.

And you too can avoid doing such mistakes. Part of the solution is just to realize that what you're doing is wrong. I know that most programmers won't do anything wrong, if they knew right then that their actions can have a negative impact on their application and their professional growth.

Most of our wrong programming habits are due to our ignorance and nothing else.

To become a good programmer, we have to remove these ignorances one by one. And that's what good programming books try to show us.

Part of the reason that we do such mistakes is because they do get the work done. And isn't that what we are payed to do - make our programs run, and finish our day's work.

But to make something work is only part of your job. If your application is any good, you'll have to update it regularly, and fix any new bugs that may arise from time to time. And then the only thing that'll make your work easier is following good programming practices.

Also, while you can get away with such mistakes in small programs, you simply can't afford them when you make bigger applications.

If you still do them, your application may work and do the needful tasks. But it'll be buggy, full of unoptimized code, and hard to maintain. And even you'll find it difficult to understand the code, when you look at it after long time.

As programmers our job isn't just to make our applications work and let the users deal with the bugs. Our job is to make sure that there is no way users get undesired results even if they give it wrong input.

So to create high-quality applications, make sure you don't do these common mistakes while programming:

Copy-pasting code without understanding it
Often you'll find that the code you are looking for is already available in some other program. It's very tempting to copy the code entirely and use it as it is, without bothering to understand each and every line of it.

Sometimes, the code you are copying may be so large that you don't have time to understand it completely. If you copy any code this way, there is a risk of making your applications vulnerable and buggy.

While this may get the job done, but what if the code does some undesirable activities in the background. What if it slows down your application or does some malicious activity. For that you need to understand the code properly, or you need to be absolutely sure of the source from which you copied your code.

And if any bugs do arise later, you'll find it hard to understand the code as you didn't even write it. And you'll find it hard to trace out a bug and fix it, especially if you copy lots of code at different places in your program.

So be careful when you copy even a little piece of code. Make sure you understand it completely. If you have already used a piece of code before and are 100% sure about the way it runs, then it's safe to copy it. But otherwise be cautious.

Starting from scratch every time
This goes exactly opposite to what I said before but it's another mistake that many beginners do. You may think that it's best to start from scratchevery time you create a new application. But that's a huge waste of resources - your time, energy, and mind - that can be better used elsewhere.

If something you need to do is already out there, use it and make your job easier. There is no need to reinvent the same basic concepts again and again.

You can use the same time to make your application more better in other aspects.

If an API, framework, or game engine eases your task, there is no reason you shouldn't use it. Your goal shouldn't be to show off how talented you are, and how you can do everything on your own without anyone's help. Your goal should be to make sure that your application works perfectly, and it takes as little resources as possible to create it.

This way you can do the same work in less time and save tens or even hundreds of hours. And as time is money, even if you work for yourself, you earn more for the same amount of time.

Searching google without trying yourself
Many times, by habit, as soon as you come across a new problem, you hit google and search for solutions. This isn't the way to become a good programmer. If you always search for solutions outside, without even trying once on your own, you'll never challenge your mind.

When you stop challenging your mind, you stop growing thoseprogramming skills inside you. To become good at any skill you have to solve new problems on your own. That applies to programming too.

Else you'll only create what's already there. You'll never create any original work. Is that something you want to do?

While it's smart to look for existing solutions, but if you blindly do it, your laziness will stop you from becoming a better programmer. Even if you do want to look for solutions, it's alright, but first at least spend some time and think upon the problem.

Maybe you can solve it on your own without wasting much time. Maybe you can solve it in a better way than what others have done. Maybe your solution is more accurate than the other ones.

You'll never know these if you don't try.

Ignoring warnings
This is another mistake that I did earlier while developing applications. I can't tell you what a huge difference it makes when your application shows a hundred warnings and when it doesn't show even one - the most important being the ease with which you can recognize new problems.

Warnings are a sign that you are potentially trying to do something that may not work every time. Sometimes, these warnings aren't serious and it's safe to ignore them. But the real problem comes when you have a big application that shows hundreds of warnings, and something doesn't work right.

It becomes difficult to find the cause of that error. And you have to spend more time to analyze each warning and to find the root cause of the problem. Instead it's always better to resolve any warning issues at the start itself, as soon as they arise.

And usually you just need to use the right variables or functions to resolve most warnings. It doesn't take hours to do so; mostly a few minutes, if you remove them as soon as you come across them.

Try to remove any warnings as early as possible. A clean code not only looks good but works good too. Just remember the old saying - treat warnings as errors.

Making Quick fixes instead of Permanent ones
Yes. I am guilty of doing this one too. And I am not proud of it. So often, we just come up with a quick fix that's barely enough to solve the problem at hand.

And it works and makes the problem go away. But if you aren't careful it ends up coming back again and again in different ways.

Whenever you fix a problem, make sure that it doesn't break the system in any way. A fix should improve the overall working of a system, not make it slower or more bulkier.

Also, make a fix that'll solve the problem permanently. Think of long-term, not just short-term. Sometimes, due to our laziness or ignorance, we just want to do our work quickly, instead of spending more time on it. And that's why we write code that does the intended work, but might not work in all possible scenarios.

If you skip on doing your work now, you'll only have to work even more on that problem later.

Just knowing these above mistakes can help you in avoiding them. If you know what you're doing is wrong, most times you won't do it.

And to do a good job you should love what you do. If you don't like programming for some reason then you'll rarely take the extra steps that are needed to write good, maintainable programs.

And if you do intend to write such good programs then you need tochange the way you look at programming.

Think of programming as an art and yourself as an artist. Then you'll never make this mistake of being lazy or careless.

Would a writer write incomplete article and publish it? Would a painter leave his painting incomplete and sell it? Would a singer just sing any useless words between his songs?

Definitely not.

The same applies to programming. Don't write incomplete code that doesn't test all scenarios. Don't leave your application unfinished and ship it. Don't write useless code if you can do without it.

These are just some basic mistakes that we do, because we are tempted to do less work and do something else. But we can't go far with this approach. Sooner or later, you have to become responsible for your work and make sure that there is no flaw in your code.

The sooner you start practicing the right programming methods, the better it'll be for you and your users. Sometimes being a good programmer means just to make sure that you don't do the same mistakes that bad programmers do.

Thanks for reading this post. If you know anyone who unknowingly follows such programming practices please share this post with them and help them become a better programmer.