Wednesday, June 8

Best way to learn a new technology on your own

When you start learning a new technology,you might get lot questions and there might be lot of uncertainty about many things such as
Where to start?
How to proceed ahead?
what are the things you should do right?
what you should not do?
Here are my thoughts on it.

Identifying the right book/material
Collect the required materials/books. Go through the chapter which attempts to give an overview of that technology from those materilas/books. This will give you a fair idea on which book you could understand easily, stick to that book till you get a little grip on the technology.

Software installation
Get the required softwares for learning the technology. While installing the softwares, maintain an excel sheet to keep track of the issues you have faced during installation. this will help you a lot in the longer run when you are trying to replicate the setup elsewhere, this would b your troubleshooting guide.

Prepare a feasible Plan for learning
Once you have the required softwares, make a plan as to how u can go ahead with the learning process. Always remember 'Rome is not built in one day". Learning a new technology needs a fair amount of productive time. Dont expect wonders to happen in day, dont be over anxious. be patient and dedicated towards the task.

Analise, how many hours in a day you can dedicate towards this learning. Out of this time, keep some time for reading and some time for practicing what you have learnt. Espeacially, learning technical things; say for example a programming language, the more you practice the deeper it gets into ur mind, the more chances you will remember in the longer run. So plan your time accordingly. Initially, you need to have more time to read to get a hang on the subject, dont be hesitant to spend few more hours on reading. once you have got the basic understanding, start practicing. The key here is to practice/implement what you have understood.

Maintain a Troubleshooting Doc
When you are trying to learn a new technology, you can be sure that you will come across many errors or exceptions in a programmatic terms. Again, maintian an excel sheet with the exceptions/errors you have faced and what you have done to resolve them.
The sheet should contain the following details:
Type of exception/error
what caused this exception,
The resolution
If you maintain this, this becomes your treasure chest which will save lot of your time later on. Initially you would have spent few mins/hrs to resolve a particular error to find a solution for a particular problem/exception. If you encounter the same error again later on, u don't have to waste the same amount of time again if you have maintained it in a doc/xl sheet.

Implement the concepts
One you have understood the concepts in the new technology, best way is to start applying them or implementing them through examples. You will gain confidence by this practical application of the concepts into concrete programs.

Dont indulge in too many things at a time
Its often, people become more ambitious and put their foot in many things simultaneously and try to learn so many things at time. This is not a good idea because, it not only leads to confusion but also wont let a single thing you are learning to sink in. You wont be able to concentrate on anything properly.

Join the technology Forums
Join the respective technical forums. Now a days for almost all the fields/technologies you have forums where in experts in that field are very eager to help you with the problems you have faced, or to guide you in your learning process. So register in the forums and be active in reading what the members are posting. This helps you/ gives you an idea of what kind of errors you can get, whats the latest happenings in that technology, what kind of people are working on that technology.

Google to see the real-time application of this technology
Once, you have learnt fair amount of the technology, do a bit of google search to find out what real-time applications developed using that technology. you will get to know the different functional domains this technology is being used, the challenges involved in applying this technology in those domains.

Orient yourself in applying the concepts where ever possible
Refer more books to get the broader n wide range of knowledge on the same subject. Always be active and keep thinking in the perspective of where this concepts you have learnt could be used ex:- in your day to day work.

Friday, March 11

Webdevelopment made simple and easy?!

The greatest challenge that today's Web-designing/development facing is the cross browser compatibility. i.e. the Cascading style sheets(CSS), javascript which are used extensively in web development may not work as expected in all the different browsers. To overcome this problem, one has to develop different CSS, javascript specific to each browser, which is a very tedious job. With the dawn of web2.0, Ajax, there is a demand to develop websites which are simple, more user-friendly, and which give rich user experience. In this case, the cross browser compatibility becomes a major setback in modern web designing.

To address this problem, there two very good technologies available in the industry. Google's GWT framework, and Adobe's Flex. GWT uses the Java language, and flex uses actionScript which is almost similar to java. Especially for java developers, adapting to these two technologies becomes a cakewalk!

Google Web Toolkit(GWT)

Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript. It uses the java language for developing the code. Once the Java code is finished, the GWT compiler translates the Java code into HTML and Javascript. The compiler creates browser specific HTML and JavaScript to support all the major browsers correctly. GWT supports a standard set of UI widgets, has build in support for the browser back button and a JUnit based test framework.

It saves the user from learning javascript, css and allows the java developers to easily build rich user interfaces using java.

Flex

Flex is a developer toolkit for building Rich Internet Applications. Its almost similar in principle to java applets which needs JRE plugin(Java virtual machine which executes the bytecode(.class)) to be installed in browser to run them. A Flex application runs in the Flash Player which is typically installed as a browser plug-in. A major piece of Flash Player is the ActionScript Virtual Machine that executes the Flash bytecodes(.swf) to which a Flex application is compiled.

The Flex programming model includes:

  • ActionScript - an ECMAScript-compliant, object-oriented programming language. With some syntactical differences, ActionScript looks and feels similar to Java, and supports the same object-oriented constructs: packages, classes, inheritance, interfaces, strong (but also dynamic) typing, and so on.
  • MXML - MXML is an XML markup language that you use to lay out user interface components. Like HTML, MXML provides tags that define user interfaces. MXML will seem very familiar if you have worked with HTML. However, MXML is more structured than HTML, and it provides a much richer tag set. MXML includes tags for visual components such as data grids, trees, tab navigators, accordions, and menus, as well as nonvisual components that provide web service connections, data binding, and animation effects. You can also extend MXML with custom components that you reference as MXML tags.

Flex enables the developers to develop simple, rich and interactive user interfaces very easily without much development effort.

Wednesday, April 16

Software Programming!

Just happen to see this innovative programing(so real!!!) Structure definitions. My intention is not 2 hurt anyone's feelings(sorry if i hurt anyone's!!), just for the fun of it..
If programing is taught in such a natural way who wont be ready to learn? and more importantly they will remember for ever!!

struct female_professionals
{
double styles;
short skirts;
long time_to_understand_problems;
float mind;
void knowledge;
char non_co-operative;
}


struct married_females
{
double weight;
short tempered;
long gossip;
float hopes;
void word;
char unstable;
}

struct engaged_females
{
double time_on_phone;
short attention_on_work;
long boast;
float on_cloud_nine;
void understanding;
char edgy;
}

struct newly_married_females
{
double dinner_invitation;
short time_at_work;
long lunch_break;
void bank_balance;
char hen_pecked;
}

struct husband_wife_professionals
{
double income;
short tempered;
long time_no_see_each_other;
void love_life;
char money_making;
}

struct beautiful_city_girl
{
double boyfriends;
short affairs;
long stories;
void greymatter;
char flirt;
}

struct old_lady
{
double chin;
short memory;
long sighs ;
void attention_from_men;
char chatterbox;
}