Sunday, March 17, 2013

"I am still looking for a job! I don't have any experience!" OR "I am on Bench! What experience can I have??"

This post is mainly for aspiring software engineers or similar. You can read this even if you are not of the group I mentioned and apply the principles in your own respective domains.

There were these two big dreaded words that all of us would fear when getting placed through campus requirements. One was "recession" and the other was "bench".

The first word, everyone knows. The second , "bench" is mainly referred to people who are recruited by firms and put in a dormant resource pool. They would remain inactive until a project would turn up and they would be assigned to it. That period of not having any project to work on is infamously referred to as "Being on a Bench".

Then there are other capable people who in our Indian educational system are deemed as average and will not be able to find jobs through campuses because either the campus may not be able to attract  a lot of companies or the candidate did not pursue job opportunities aggressively enough during his penultimate semesters.

There are other reasons like our obsolete Indian "Reservation" System which recruit employees in Govt organizations because they are from, so called "backward" castes. Here the people who have lesser merit are blatantly chosen over candidates with better merit because they belong to "backward" category. But this topic is for another blog.....

As of now ,fortunately I do have a full time job which I enjoy as a coder. After having 2+ years experience in this domain , I see many people sending me many resumes for job referrals.

Though I have never been in this "bench" phase during my entire career. I have some suggestions to give to my younger friends who are either looking for jobs.

The main complaint of these 2 sets of people is that they lack "industrial" experience and this will make it harder for them to find jobs as they get older.

Here are some points you can use:
  1. Do Your OWN Computer Science Project! Get coding experience!!
    Gone are the days when knowledge was held in silos or within the heads of scary looking lecturers. If you have :
    a. A computer
    b. An internet connection
    at your reach, you can very well teach yourself programming and get some coding experience.
    And once you finish a project upload the source code on github or or sourceforge. Some potential recruiter may stumble upon your project and may contact you. This will prove to the potential recruiter that you have an appetite for development. If you are not particularly interesting in development and want to pursue your career in testing I am sure having some projects like these will prove to them that you are interested and serious about software as your career.
  2. Start your own technical blog.
    How many times have you asked  a friend for information and the reply came back as "google it" .  I was thoroughly annoyed when I got this reply when I asked a gym instructor at my office gym if there were any martial art classes near our office. Internally I was yelling, "Dude! I came to you after searching on the internet. I am in a profession who lives by google for information!" What we all need to understand by this interaction is, people now live by the internet for any tiny bit of knowledge.
    There are two main reasons for you to start a technical blog:
    • It acts like your notes: Remember during our good old school/college days you would photocopy the notes of the nerdiest person in the class? Well, on a blog you don't have to worry about your scrawny handwriting. If you feel, you will need the information you learnt now later on put it in a blog. Actually this blog started out that way. Not only do I refer to it, people from all over the world will hit it. Unexpectedly this article got a lot of attention(about 100 hits a day!)
    • Reinforces your learning: When you write something on a blog, you will be careful enough not to make any mistakes. As a bonus, you can put it on your resume.Your blogs will prove that you *HAVE* good communication skills by example.

  3. Take up certification exams.
    This statement has got votes both for and against it. Some say its your experience that matters. Worse still, is the face that they don't believe it because many people have asked someone else to write the tests for them. On the other side, my previous employer encouraged us to take up the exam.
    In my personal experience, I have found that taking up the OCJP/SCJP exam was one of the best things I ever did. There were many things I studied that helped me in answering the questions at the interview. Though putting the certification on you resume may not hold a lot of value for every recruiter, you will see a level up in your thinking in terms of code. This also means you were actively learning when job hunting.
  4. Trace existing code.
    If you have to go to japan, how comfortable would it be if you could read write japanese?As a
    programmer,  the biggest skill a person has to know is how to read,understand and debug existing code. How many times have you wondered how these computers worked? or how that software you installed made your life so easy?
    When you are on bench
    trace though the existing code and undertsand how the information flows. Not only will you be competent enough to work on that project if your manager asks for it, it also teaches you good (or bad) their design was.
    If you are yet to get a job, there are many open source projects that you can contribute to. Download small projects and go through them. Learn how to create your own development environment. Creating your own dev-environment itself is a challenge in itself.
    For those who are in testing, reading code gives you an idea of how to write test cases, unit or functional or integration tests.
  5. Learn how to use software tools.
    Software needs software to be built quickly. Learn what the industry is using right now to expedite development, integration  collaboration and testing  software. Get yourself competent in a software you might end up using later.
    There are many people who have landed jobs or work as freelancers because they were competent in that tool which brings us to the next point.
  6. Take up freelancing work:
    Who is a freelancer? he/she is a person who is self employed.Once you finish your project for one client you move on to the next.
    There are many websites which connect potential employers to freelancers. , are some I remember  right now. But be careful not to fall for job scams!
  7. Solve programming challenges online.
    Codechef, Project Euler, TopCoder
    a. Go to any of these websites. 
    b. Pick up a problem .
    c. Start solving in  a programming language you like. Its that Simple!
    You can even show off your solutions on github or similar websites!  
Hope you guys/gals  got some useful information from this post. When I resigned from my previous employer to do my MTech. , I learnt how anxious one feels without a paying job.
Keep learning! All the best, people!  

1 comment:

  1. This website also has a large number of freelance projects for you to consider working on: XPlace. There are higher rates than on other online platforms for freelancers and no commission fee. I believe you could use such a valuable source (and your readers could benefit from it too!)