Thursday, May 15, 2014

Software Tools



The term "software tools" is a pretty vague and broad term that can apply to many things. Software tools can be the actual programs we use to help us achieve a task, parts of other programs we can use to write new code, or tools to help organize our thoughts and processes when programming.


Tools are important for each of those examples in computer science. Tools like the Agile programming method and Scrums are used to emphasizes empirical feedback, team self management, and build properly tested product increments within short iterations. These kinds of tools help keep a software development team focused and working on the important tasks at hand.


A recent post of mine, found here, details the software tool Git and Version Control Systems. These types of tools really help in maintaining code and are crucial in the development process.


My favorite types of tools to use are API's, or Application Programming Interfaces. API's are tools written by other people or companies that can be used to extend the usefulness of your own applications. API's can unlock new and exciting aspects of a program you may be working on, making it easier for you to build so you don't have to rewrite something that someone else may have already made.

References:
http://agilemethodology.org
http://en.wikipedia.org/wiki/Application_programming_interface

Wednesday, May 14, 2014

Version Control

Having version control experience  has become a majorly important part of developing software in the current job market.  Version control is a method of recording changes to a single file or sets of files over time.  Being able to record the changes enables developers to write code and create iterative changes without the fear of losing the previous working copy of the code.  It makes it easy for large teams to work on the same code by 'checking it out' and 'checking it in' without the fear of overwriting someone else's changes.  Because of this, several people can be working on the same code and then merge their changes back into the Master copy of the file.


One of the most popular version control systems is called Git.  Git is a type of version control called Distributed Version Control System, or DVCS.  What this means is that the clients who are working on some piece of code done just check out the latest snapshot of the files, the fully mirrors the entire working repository.  Essentially, every checkout of the code is a full backup of all the data.



Git allows you to do many things to keep projects and files organized.  You can revert files or entire projects back to previous states,  review changes made over time, see who last modified something or even recover lost files.  Software companies are looking for people with experience in version control because almost all companies creating software are using them.  Its an incredibly valuable tool to keep track of code and making changes.

References:
- Getting Started with Git.  http://git-scm.com/book/en/Getting-Started-About-Version-Control