Friday, June 24, 2011

How to get your first software engineering job?

Self evaluation is the first step, as a software engineer, you can be part of various interesting job profile. Even though software programmers is most glamorous, there are other posts that tend to be easily ignored. What I mean by self evaluation is can you judge yourself truthfully that you are logically strong enough to be a programmer? And wait, programming like learning music is a long process, if you are not coding already whether professionally or as hobby then it is going to be a hard journey to the day you become productive.



If you want to become programmer, start coding from day 1, don't wake up in your fourth year of college and google "library management software source code", there is no shortcut to learn programming other than lots of practice. Start coding in any language of your choice at least 2-3 hours a day, download source code examples and study them. Participate in submitting new source codes to planetsourcecode.com, codeproject.com, etc (yeah, people not only download, submit too!). If you are even more enthusiast, participate in open source community to improve any opensource project like, Firefox, Linux, or Android. And if this sounds boring, leave it for something else more suitable for you. 

If programming doesn't look like your piece of cake, be happy that the software engineering paradigm doesn't end there. You can be a software test engineer, also called as Quality Assurance engineer, the people responsible for ensuring the quality of software.




QA Engineers are tech-enthusiasts, geeks who will dive in to new projects and try different ways to break it. Who wont like to be paid for reporting other people problems! If this sounds interesting, luckily software testing can be self learned by reading some good books. You can also do some course from any reputed institute. The key ingredient to this profile is the interest to explore uninhabited lands like Sir Vasco Da Gama.

Another profile is system administrator or database administrator, the people responsible on ensuring you see the home page of retinasoftwarein.com, and not an Internal Server Error. The sysadmin and DBA looks after the health of computer servers, forseeing problems and applying fixes along with system updates and optimizations. To be one, you need to master either Linux or Windows Server, do a certification from a good institute. And practice.

Other profiles are web designers, animators, technical support executives, technical writer, business development analyst and others. 

So once you decide on which profile you want to work in, the next step is to put the extra efforts to learn about it. If you are not one of the lucky guy to have been placed through your college campus program in an MNC, you are left with three options. 

  1. Spend money to do some courses and receive valuable certifications,
  2. Join for company's internship programs,
  3. Be different (when everyone is learning Java/C#, learn LISP or ADA and look for job in that section).
There is no fourth way, don't waste time applying for every job posted in Naukri.

And finally, while you are applying for jobs, waiting for interview results and so on, use your creativity. The best way to get hired is to stand apart. With open source, fast internet availability, and lots of information on net, it is easy to stand apart. There is internet beyond facebook, spend your time exploring your choice of profile, language and projects. Actively participate in forums, blog, submit source codes and projects, and browse freelancer projects.


Do that and job will run to you, rather than you running after jobs.

Thursday, April 21, 2011

Finance for Geeks

... we understand stack overflow, fails to understand compound interest.

Two interesting things happened in last year reality shows, one guy won 1 crore in KBC and lost at the next question. Secondly, Shweta Tiwari won Big Boss 1 crore, had no idea what to do with it - so her interview with a financial planner was shown live on TV.

Shweta Tiwari (Trying to understand investment)
And yeah, you might want to pity on the first guy who lost at the last question in KBC, but wait, if you are going unplanned you should pity yourself more. There is tons of opportunity that you have lost already, and the time to act is now.

Following my traditional way of writing, here are some acting points for a basic idea of where to invest?

1. Provident Fund:

PF is an investment for your retirement, do not cut it. Not only it gets tax exemption, gives a guaranteed return on maturity, is far safe.

2. Insurance with Term Plan:

Who will cry if you die tonight? Well, may be many tonight! But if you are not insured or under insured may be your dependents will cry for a very long period.

The thing to understand with insurance is, its not an investment, its a well, insurance. Like a car/bike insurance, if you have paid some money this year as your vehicle insurance and it is not stolen, do you get a return on your insurance money? No. What instead you get is peace of mind, when parking your vehicle.

Same applies to life or medical insurance, term plans, you pay for the insurance for the peace of mind of knowing that even though you would be irreplaceable, your dependents will get sufficient income to continue living the same standard.

Its also advised now to take Medical and Accidental Insurance and not just Life insurance.

3. Don't Mix Insurance and Investment 

Stay far away from ULIP, insurance linked investment. They are horrible, you are highly under insured, the return on the investment is terrible and there is no peace.

4. Debt is for short term, Equity is for long term

Debt based investments are for short term, if you have excess money lying in your saving or even worst current accounts, and you foresee a use of it in next few years debt is the way to go.

However, if the goal of your excess money is your new born child education, or your retirement, something that got enough time, equity gives a better return for long term.

5. Invest using SIP and STP

Its highly impossible to time the market, and specially for geeks watching the CNBC graphs is just not a nice idea. So the best way of investment in both debt and equity is using Systematic Investment Plans (or SIP), in a layman term, with SIP/STP your money is invested in regular interval and not in lump-sum. Like the Monthly Investment Plan (MIP) will invest in market every month, and hence on an average a profitable return can be measured avoiding the fluctuation of the market.

6. Stop misusing Credit cards

Loans should be taken to help you in your need, a house loan, loan to launch a business. But most people these days are using the loans for monetary gratifications. As your good investments grows by Compound interest, so does the loans you take. Be careful when taking loans, it need to be repaid. And several times, much more than the principle.

Understand what is expense and what is investment, a land is an investment, a house is an expense. Gold is investment, car is expense.

7. Educate yourself about Finance


Turn on your financial intelligence
"Intelligence solves problems & produces money. Money without financial intelligence is money soon gone."
— Robert T. Kiyosaki



With technology now its very easy to learn, and its very easy to not learn. So give some better use to your television set, besides watching the reality shows, and listen to the investment programs. Once in a while browse some good financial articles, here's the guys writing specially for Indians about Financial Literacy.

Tuesday, April 5, 2011

How to get into the "Zone" for software programmers

I do feel like taking my hats off sometimes to the programmers coding software from the uncomfort of a hall filled with cubicles. From my personal experience, its hard if not impossible to get into zone in any room with more than one person. Yes, one.

What is Zone?



Zone, aka, Flow is a mental stage where a person is most productive. In programmers its the state where they write productive codes unaware of the surrounding, yes music is playing but they dont hear the lyrics. The exact state where the Milk will burn in the kitchen and mother wont understand why can't you remember to turn it off.

Its difficult to get into the zone, can take 10 mins or just wont come that day, the trouble is, its too easy to get off the zone with a little disturbance.

How to get into zone?

1. Kill Distraction:

You see that Yellow smiley in your tray bar? Turn if off right there. Feeling urge to check your email every 15 seconds, turn that off too. Turn the voice mail on in your mobile. Close Facebook and Twitter. Let people who live or work with you, be aware of the situation. I seldom code from office due to this and am best in my study room. James has also built a room specially for creative working (go see www.retinax.com).


Timing is also critical, usually programmers are in habit of working late night. However for professional employees, they need to adjust themselves to the sunlight. But ending disturbance is critical. Respect "zone", and ask for respect for your "zone".

2. Music:

The best that helps is rock, and songs in foreign language. As you don't care about the lyrics. Yeah, the idea is not to get you sobbing tears, but to shake your head every time F5 works with no compilation error.

3. Caffeine:

For some Coffee works, for us (J&Z) coke works. I have tried lemonade and juice, doesn't work for me. Ice cold water also helps.

4. Tools:

Here too I have a dreadful habit, for long I can only work on TVS mechanical keyboard. It plays a thak sound with every press of key that coders will enjoy, got it added to the iMac too.


Anyway the point is, ensure you got the tools, hardware and software, that you are comfortable in to work with. An internet connection, and a fair enough screen size with sufficient RAM to compile fast. Wear what you are comfortable, seat how you are comfortable. Software cannot be made in Suits.

5. Push yourself a little:

The first few minutes is difficult, manage your playlist in iTunes, get your drink, seat at your desktop and fire the IDE. And just start.

References:

http://en.wikipedia.org/wiki/Flow_(psychology)
http://www.joelonsoftware.com/articles/fog0000000068.html
http://www.randsinrepose.com/archives/2006/07/10/a_nerd_in_a_cave.html