Sunday 25 September 2016

The Difference Between A Programmer, Coder, Developer And Engineer

Do you know the difference between a Programmer, Coder, Developer and Engineer?

The titles such as Engineer, Programmer, Coder, Developer, and Computer Scientist are very confusing even for those who are working in the technology industry. Do you exactly know what do they do and in case of a problem or help whom should you approach?In reality, it depends upon organization to organization and how these terms are used by them in their industry, as these terms are often interchangeable. It can change and mean different things based on the situation.So, how do you differentiate between these terms and know who’s who and what kind of expert you will require for a particular job? While there is no specific rule to follow, we will have a look at each title below and see what it means. 

Developers and ProgrammersThey are more experienced code-writers who are versed in at least two to three languages and write awesome, clean, error free and well-factored codes. They can apply their algorithmic knowledge to create more sophisticated levels of software coding.Developers in some firms are sometimes referred to as the start to finish overseers of a project, who are responsible for the overall design of the application. The developer within these companies will often oversee a team of coders and programmers to ensure that the design of the application is user-friendly and a cohesive end product is created. The developer in these cases would most probably be the client’s direct point of contact and would then interface with the rest of the team to solving problem, make requested changes, and answer client questions.

CodersAnyone who writes code is often referred to as a coder by the people outside the tech industry. However, this all-surrounding term can be considered judgemental for those who live and breathe programming every day. Coders are commonly considered the least trained or experienced level of programmers. These individuals do not have the same algorithmic knowledge as a programmer or developer, as they are often a beginner in the field, skilled in just one coding language. Coders are usually given the job of writing forthright pieces of code that can easily be delegated by the developers. As some are put-off by the title, it is sometimes used interchangeably with “Junior Programmer” or “Junior Developer.”

EngineersThe title of engineer or software engineer is normally reserved for the highest level, or most expert coders around. Engineers are well versed in three programming languages or more and use their skills to design and implement the overall architecture of the application. They modularize the final product to develop a clean interface, and then work with the programmers and developers to implement the more comprehensive features of the design.


Source From :
http://www.techworm.net/2016/09/difference-programmer-coder-developer-engineer.html

Sunday 21 August 2016

5 Best Microsoft Office alternatives

NEW DELHI: Even though there are many types of productivity software available out there, office suites are arguably the most commonly used. There usage might vary, but they are used almost everywhere. And when it comes to office suites, Microsoft Office is pretty much the gold standard.
Whether we talk about MS Office as a whole, or take its constituent applications (e.g. Word, PowerPoint and Excel), the sheer number of advanced features offered is amazing. Not surprisingly, it costs quite a lot.
But as good as MS Office is, there might be some users whose needs are basic and who find its vast expanse of features a bit overkill. If that includes you, check out these really good Microsoft Office alternatives that you can use.
1. Apache OpenOffice
Probably the best thing about Apache OpenOffice is that it's free and open-source. It comes with a standard set of applications including a word processor, spreadsheet application and presentation software, along with a graphics editor and DBMS manager. It's fully compatible with MS Office's file formats and supports some extra ones (e.g. ODT) as well. What's more, its functionality can be enhanced by numerous extensions. It's available for Windows, Mac OS and Linux.
2. LibreOffice
Interestingly, LibreOffice is a fork (means it builds upon the existing code base) of Apache OpenOffice. But it still has some really great features. The UI is
quite different and the three basic applications (for handling documents, spreadsheets and presentations) are included, in addition to some extras. Due to optimized code, it's a bit faster than OpenOffice. It can be used on Windows, Mac OS and Linux as well.
3. WPS Office
For those looking at a lightweight yet functional MS Office alternative, WPS Office is just perfect. It just includes the three essential programs (word processor, spreadsheet application and presentation software) and is fully compatible with Microsoft Office's file formats. WPS Office comes with a nice collection of templates and fonts too. However, a downside is that saving a document in Microsoft Office formats requires an upgrade to the paid version.
4. Softmaker FreeOffice
Softmaker FreeOffice's interface might look a little dated, but it's still a very good program for those whose productivity needs are not that intensive. It supports all Microsoft Office formats and also has better XML compatibility. The free version works just fine, but those wanting more features can upgrade to a paid version. Oh, and Softmaker FreeOffice is also available on Android.
READ ALSO: http://timesofindia.indiatimes.com/tech/tech/infotech-slideshow/happy-birthday-satya-nadella-9-interesting-facts/Happy-Birthday-Satya-Nadella-9-interesting-facts-about-Microsoft-CEO/itslideshow/53761506.cms
5. NeoOffice
Another fork of Apache OpenOffice, NeoOffice is specifically available for the Mac OS. In addition to having all the standard features, it adds some Mac OS specific extras like text checking and drag and drop functions. But a major downer with NeoOffice is that it's not compatible with MS Office file formats.


Source  : 

http://www.techgig.com/tech-news/editors-pick/5-Best-Microsoft-Office-alternatives-61686

Monday 15 August 2016

The key difference between a Developer and a Programmer


We all have used these terms interchangeably, after all, at back of the mind we think they all have a degree in computer science.

The terminology has also been used by organizations to their convenience, like a Senior Software Developer at Google may be called Programmer Analyst at IBM



The key difference between a Developer and a Programmer - Image 1


So below are my findings and descriptions for few other roles as well
Developer: Expected to be an expert level at one programming language (Java, PHP, etc.)
Description :

They write code. Making it well-factored and clean is important, but other factors often take priority. Math skills are very much optional, but it does help to be aware of common problems and solutions related to the domain they are in. 
Communication and people skills are paramount. Process and team dynamics are bread and butter skills. They are consummate generalists without any truly deep specializations. They are expert at finding ways around problems and plugging components together to fulfill a set of requirements. 
In their personal time they are either trying to build the next Facebook, or engage in activities that have nothing to do with programming, developing, or computer science.
  • Developer are programmers to a greater or lesser extent.
  • Computer scientists are programmers to a greater or lesser extent.
  • Enterprise software is the domain of the developer.
  • The Googles and Microsofts of the world are after programmers (and to a lesser extent computer scientists). The developers who end up there become product managers. 
  • RnD and academia are the domain of the computer scientist (and to a lesser extent the programmer)
The thing to remember here is that none of the three is derogatory or "bad" in any way. One is not more or less desirable than any of the others. They are simply different dimensions (with some crossover) of the field we are all involved in.
 Particular personalities will identify more with one but that does not mean that all three can't "bleed" into each other and combine favorably. It is entirely possible to be both an awesome developer and a great programmer (although it is difficult with so many important things to focus on).
 In rare cases you may even get an all 3 in 1 type of deal, in which case I'd love to hear from you, cause we should start a company together, so that I can ride your awesomeness all the way to easy-street :). But no matter where you fall, it is entirely possible to be highly successful if you fit snugly into just one of the three.

Programmer: Expect to be an expert at several different languages.
Description : 
Programmers write awesome code.
Making it clean, well-factored and error free are very important concerns, but not at the expense of getting the job done. It is all about knowing the meaning of "good code" within their domain. 
They need to have some math skills, but this is not a paramount concern. 
They need to know of good (best) solutions to problems, but they don't need to prove it is the best solution.
A good breadth of algorithmic knowledge is imperative. They have a depth of skill in a wide area of expertise and have reasonably good knowledge of related areas as well. Communication and people skills are desirable traits, but not emphasized.
 Software process and team dynamics skills are desirable traits, but not emphasized. They work on personal software projects they find of interest in their off time.

Programmer Analyst: Expected to be able to program applications that integrate between different systems.

Systems Analyst: Expected to Design Information Architecture to improve business information systems

Software Engineer: Expected to design core components that Developers & Programmers can use. As per US law, you need to have a professional engineering degree/license to add the title engineer.

Computer Scientist: They write code, but they do it prove something. They are not bothered about design or good practices.

These are just my thoughts based on some research. I may be right but, you can always post your views below.




Sources:
http://www.skorks.com/2010/03/the-difference-between-a-developer-a-programmer-and-a-computer-scientist/http://www.webopedia.com/TERM/S/software_engineer.html
http://www.mytechlogy.com/IT-blogs/7289/the-key-difference-between-a-developer-and-a-programmer/

Wednesday 27 July 2016

Dynamic Table Manipulation Using jQuery

 Using jQuery article, we learned how to append a new row to the end of the table. One reader asked how we could modify the appendTableRow() function to insert the row at a given index instead, such as the first row after the headers. To do that, we need to find the row in question using the .eq() selector of the jQuery DOM collection object. It accepts a 0-based index argument that it utilizes to fetch the item from the collection at the given index. Once we've got the correct row, it's just a matter of inserting the new row after it:
?
1
2
3
4
5
6
7
8
function insertTableRow(table, rowData, index) {
  var newRow = $('<tr/>').insertAfter( table.find('tr').eq(index) );
  $(rowData).each(function(colIndex) { 
      newRow.append($('<td/>').text(this));
  });
    
  return newRow;
}
Hence, the following call to the above function inserts a new three-column row immediately after the headers:
?
1
insertTableRow(table, ["Calgary", "Ottawa", "Yellowknife"], 0);

Updating the appendTableRow() Function

The appendTableRow() function's size can be greatly reduced by delegating to our new function. An interesting thing about the .eq() selector is that it accepts negative numbers. That causes it to select items going backwards from the last one in the collection. Therefore, passing an index of -1 to our insertTableRow() function inserts the new row after the last existing one in the table.
?
1
2
3
4
function appendTableRow(table, rowData) {
  //table.find('tr:last').index() also works
  return insertTableRow( table, rowData, -1 );
}

Inserting a New Column

Columns are a little more challenging to work with because there is no column element per se. Rather, a column is made up of a collection of TD elements, each contained within a different TR. Therefore, looping over each TR works well for this purpose.
Insofar as inserting the TD elements, neither insertBefore() or insertAfter() work every time, because there may not be a TD before or after the insert position. For that reason, appendTo() is employed if the index is larger than the number of existing columns:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function insertTableColumn(table, columnData, index) {
  var newColumn = [],
      colsCount = table.find('tr > td:last').index();
 
  table.find("tr").each( function(rowIndex) {
    var cell = $("<t"+(rowIndex == 0 ?  "h" : "d")+"/>").text(columnData[rowIndex]);
    newColumn.push(
      index > colsCount
            ? cell.appendTo(this)
            : cell.insertBefore( $(this).children().eq(index) )
    );
  });
 
  return newColumn;
}

Appending a New Column

The insertTableColumn() can be utilized to append a new column to the right side of a table, but calculating the index is more difficult that it was with rows. We essentially want to supply the function with the number of columns plus one. Any row may be used as the reference, but I chose to go with the table headers (TR). The "tr > td" selector gets us the all of the columns. To obtain the last one, we can use the ":last" jQuery extension selector. From there, we can call the index() function to obtain its index. Hence, if the table header contains four cells,table.find('tr > td:last').index() returns a value of 3.
?
1
2
3
appendTableColumn = function(table, data) {
  return insertTableColumn(table, data, table.find('tr > td:last').index() + 1 );
};

The jquery-tables Library

I got so carried away with the demo for this article that I wound up creating a whole script to help with the dynamic creation and management of HTML tables. I christened it the "jquery-tables" library. To use it, simply extract this zip archive to your device and open the jquery-table-demo.html file in your favorite browser. The demo references a hosted jquery script, so you'll need Internet access for the demo to work. The demo showcases a few of the library's functions, such as makeTable(), appendRow(), appendColumn(), updateData(), as well as the $TBL() wrapper. The latter accepts a selector string and behaves exactly like the jQuery $() function, except that it iterates over the matched elements and adds the table functions to tables so that they may be invoked as instance methods, i.e.:
//fetch every table in the page
var tables = $TBL('table');
tables.each(function() {
  //print the contents of every table to the console
  //getDataAt() is a member of the table element
  console.log( this.getDataAt(0,0) );
});
Full instructions on using the script are included at the top of the jquery-tables.js file.


Source From :
http://www.htmlgoodies.com/beyond/reference/dynamic-table-manipulation-using-jquery.htm