How to become a good Software Developer/Programmer

1. Learn Promramming instead of Languages.

– Everyone is behind the computer programming languages, computer courses etc. but very few of them try to understand basic concepts of programming and develop logic. In my views if you are good in logic, you know how things work in programs then you can work on any language. But you should learn programming ethics then languages.

2. Learn to debug and removing errors.

– Debugging skill in very important for every programmer, a good programmer write a code to report errors properly for easy debugging and helps removing errors. Need thinking up to end user.

3. Always stay motivated and keep learning new skills and technology.

– Always stay motivated, don’t think you are typing a code line. Think you writing a poem in your language in well structured form 🙂 . Always keen to learn new techniques, develop new skill in you.

4. Write good quality code with proper comments so that everyone can understand what you did.

– Good quality code here is reusable code, properly commented and structured so that others can understand what you did and you can work in a team in proper manners.

5. Remove impossible from dictionary, its your duty to make things happen.

– Don’t say this is not possible to develop. Everything is possible, some thinks take time, Some times you have to work hard to do impossible things, its your duty to make things happen.

Everything is fair/possible in War, Love and Programming. So have fun and love to code.

Build a good PC under 25,000

Dear friends,

I get lots of queries for PC configuration under 25,000 INR. I always prefer AMD for Home and Office usage because of performance and less prices.

Here is a good PC configuration as follows:

Processor: AMD 5200+ X2 Athlon
MotherBoard: ASUS-M2N68-AM
RAM: 2 Gb Kingstone 666 Mhz RAM
Hard Disk: Segate HDD 320 Gb
KeyBoard/Mouse: Logitech Keyboard Mouse Combo
Optical Drive: LG DVD R/W Sata
Monitor: Acer 19″ LCD X193hqa
Speakers: Creative SBS A300
Cabinet: of your choice ;)

You will get this configuration for under 22,000 INR. 😮

Performance is great for home and office usage. If anyone want to have this and unable to find the part shown above then comment the post, I will tell you the vendors 🙂

Dell UltraSharp 2208WFP

I got my new “Dell UltraSharp 2208WFP” and I’m realy happy with Dell’s Support and fast delivery. I ordered my LCD on 18th Nov 2008 and expected delivery date is 1st Dec -2008, But I got on 26th Nov 2008. Well done Dell :).

Following are the features at glance of “Dell UltraSharp 2208WFP”:

  • 1680 x 1050 native resolution – Stunning detail and more viewable real estate without compromising desk space.
  • 5 millisecond response time (typical) – Helps reduce ghosting and motion blur when gaming or watching movies.
  • 1000:1 contrast ratio – Produces darker blacks for sharper images, crisp text, better colour saturation and greater detail for HD entertainment.
  • High Definition (HD) – Everything looks better in HD.
  • Dell UltraSharpTM Advantage – Adjusts to fit your optimal viewing position allowing you to tilt, swivel, pivot, raise and lower with little effort.

Best thing I found is its clarity and Stand, You can rotate and adjust it anyway.

Another best thing I notice is its presets as shown in pic:

Now my workstation looks like:

Ah! Great. Good to increase my productivity. Now I can read tutorials and implement them simultaneously, the main reason to use dual monitor for development 😉

Agile Software Development

The term ‘agile‘ is a philosophy and is a conceptual framework for undertaking software engineering projects. Most agile methods attempt to minimize risk by developing software in short time boxes, called iterations. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini increment of new functionality: planning, requirements, analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration.

Agile software development refers to a group of software development methodologies that are based on similar principles. Agile methodologies generally promote: A project management process that encourages frequent inspection and adaptation; a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.

Agile Software development lay stress on:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Some of the well-known agile software development methods:

  • Scrum
  • Agile Modeling
  • Agile Unified Process (AUP)
  • Agile Data Method
  • DSDM
  • Essential Unified Process (EssUP)
  • Extreme programming (XP)
  • Feature Driven Development (FDD)
  • Getting Real
  • Open Unified Process (OpenUP)

Here are some Characteristics of Agile Methodologies:

    • Incremental

– Iterative with short cycles enabling fast verification and corrections.
– Time bound Iteration cycles (Daily, Weekly and monthly).
– Modularity at development process level.

    • Cooperative

– People oriented.
– Collaborative and communicative working style

    • Adaptive

– Incremental and convergent approach that minimize the risk and facilitate functional additions.

We will discuss Agile Methodologies and Compare with traditional Software Development methods one by one in upcoming posts. Stay tuned 😉 .

Wake Up BSNL and provide us Good Services

Huh, Can not believe this. Just read the news that BSNL will launch 3G phones by December

In most of the India BSNL is the only provider who provides pathetic services. In my area BSNL DSL downtime is about 2-3hrs a day. Even you can not count the disconnections per day. I have to call SDO (BSNL Kapurthala) always to get problem fixed. Thank God he helps, I think he’s the only person I dealt with who knows the exact technical problem and have manners to talk with a customer.

One of My friend have BSNL mobile and I call him daily about 19:00 and I will take 15-20min. to get contact with him. Here are some messages from Operator I got “Switch OFF”, “Number Does Not Exist”, “Not in coverage area”, “Unable to locate” or simply disconnected without any message. What a bad service.

Now, What if you talk to the officials to fix my DSL problems? Here are some common answers, “Sir, You have to call this number, I’m not handling the DSL problems”. Person give you one or two numbers to contact with them and this chain never ends until you QUIT. lol.

Here what my point is all above things is, Just to tell BSNL officials “WAKE UP and Improve your services instead of launching new plans.”

Oops! forgot to say that My net is down today also and no one is picking phone so, most probably they will fix tomorrow morning. I have to work from My Reliance data card (Very very stable and great service, even it works where your mobiles not, On hills 😉 “.

Oh! you know why I’m using BSNL because in My area no other DSL provider is available.

I used “HATHWAY”, AIRTEL and Reliance and found everyone is great except BSNL.

You know what’s the slogan of BSNL “Connecting India”. I think it should be “Disconnecting India” if they do not provide better support and reliable services.

May be in coming days BSNL improves. Hope for the best.