The recession caused many developers to cut their losses and grab what they could in terms of jobs. This often led to many developers concentrating on short term goals. As economies start picking up worldwide, it is only natural that the job market will come back. But the difference is that this time the requirements will change. More often than not, as a developer you will be required to function as a Jack-of-all-trades or something to that effect. In this regard, there are several skills that might be worth looking into which could help your prospects.
1. Unless the apocalypse prophesied by the Mayans arrives in 2012, the big three – .NET, Java and PHP will still be the languages to know. If you can’t get to study all of them, try and learn at least one of them. Note that the keyword here is Master, meaning that you need to know everything about at least one of them.
2. Rich Internet Applications (RIAs) will be big in the coming years. The emergence of Flash as a versatile content delivery mechanism has prompted Microsoft to release Silverlight and Sun to put out JavaFX. Adobe itself has released Air and Flex to complement and enhance Flash. The upcoming HTML 5 standard also has RIA capabilities built in, so this is one area that will definitely experience growth.
4. Web services will also be a key area that employers will look at. Experience in using or creating web services will be extremely useful for a developer.
5. Soft skills are more in demand than ever. No longer can developers be stuck using jargon or having someone translate requirements to them. Developers need to be able to converse with clients and understand their requirements. They also need to be able to let clients know in plain English, why their requirements are not practical so that a compromise can be worked out.
To be continued…
The Android operating system is a vital player in an extremely competitive market. It emerged as a competitor to the Blackberry and the iPhone at the end of 2008, both of which were well established at the time. The outstanding feature of this operating system is that it is open source. This means that anyone can develop applications for Android-based phones. The aim of the Android OS is to create a better mobile phone, an effort which is spearheaded by Google. Although currently the OS is an offspring of the Open Handset Alliance, Android will forever be known as Google’s phone OS due to the massive initial push they gave it.
Developing applications for Android phones is easy as it can be done on a Mac or PC which runs the Windows or Linux OS. To begin developing you must download the Android SDK which is free. The SDK or Software Development Kit contains tools and API’s (Application Programming Interface) which will help you in your development process. You can test your application using the provided Android Emulator but at some point you may wish to purchase an actual handset to complete final testing.
The Android OS is gaining ground slowly, but will take some time to be a big player in the handset market. The dominance of Apple’s App Store and the familiarity of the iPhone are the biggest hurdles to overcome by Android. It also lacks a few killer apps, which could see the Android OS rise to dominance. Nevertheless it is evident that with the current support behind it, the OS will only grow from strength to strength.
As you learn programming you will find that repetitive code is both annoying and unsightly. Although in terms of writing the code, a simple copy-paste action will satisfy the requirement, it is still a bad way to do things. It can cause your code to become long and the chances of making a mistake in copying & pasting code are also there.
To avoid these problems and also to compartmentalize your code, you can use certain constructs found in modern programming languages called Procedures and Functions. The usage of these constructs enables you to write code which is structured and therefore easier to debug. The biggest advantage of using Procedures and Functions is that they are not executed unless they are called for. For example, you can have a million Procedures and Functions in your source code, but if none of them are called for in the main part of your code they are non-existent in your final compiled program.
You can visualize Procedures as a mini-program within your program. This means that you can define variables, arrays, etc within it as well as call other procedures or functions. One of the most useful features of Procedures is that any variables defined within that Procedure (aka Local Variables) only exist within the scope of that Procedure. The moment the procedure completes execution, those variables disappear.
Functions are similar to Procedures except that they are expected to return a value. In order to do this the Function is given certain values to work with which it then manipulates to return a value. For example, a Function that calculates a circles radius will require the value of the radius to be added to it.
When writing a program, there are many occasions where an action needs to take place due to the triggering of an event. This requires the programming language to possess the ability to evaluate situations and take action. In programming terms, this ability is described as
Condition Testing exists in all programming, but in different forms. The evaluation they do is the same, but how they are represented in the code is very different. In languages like Modula, Pascal and BASIC (which are also known as Procedural Languages) condition testing is found in the form of IF, THEN and ELSE.
The IF and THEN condition are the most commonly used of condition testers. The format of a statement would be as follows: IF <condition> THEN <action>
Here <condition> refers to any type of validation. The validation is the comparison of a value against an expression. The value can be either a variable, constant, expression or function result. Based on this comparison, the condition will execute the action.
For example in Pascal:
IF Age>17 THEN
WriteLn (“You are an Adult”);
To test multiple statements an ELSE statement is used in two ways. To immediately execute an action based on the failure of the IF statement or to initiate another IF statement.
For example in Pascal:
IF Age>17 THEN
WriteLn (“You are an Adult”);
WriteLn (“You are not yet an Adult”);
Another example would be:
IF Age>17 THEN
WriteLn (“You are an Adult”);
ELSE IF age>13
WriteLn (“You are a teenager”);
These are the basics of Condition Testing. The more advanced sections will enable you to conduct intensive and complicated testing of statements.
Loops are a common occurrence in any programming language. They are used to perform repetitive tasks to achieve an objective. Usually there are three types of loops to be found in programming languages.
Condition tested – Loops of this type repeat their task until a specified condition returns the desired result. The condition can be specified at the beginning, middle or at the end of the loop. This is because the condition will be testing a result returned by the loop. Therefore, the placement of the condition really depends on what type of operation the loop is performing.
Counted – These loops are performed for a specified number of times. A loop can be used, for example to get 100 names entered. So the code would ask “Enter Name 1”, “Enter Name 2” and so on until the number 100 was encountered. Once it hits this number, this loop stops. Some of the lesser programming numbers do not feature this type of looping as they consider it to be part of Condition Tested Looping.
Endless – This type of loop is used for special purposes. They are designed to continue looping forever until the program crashes, the computer is physically turned off / rebooted or it receives data that satisfies its only EXIT condition. A somewhat common use for this type of looping is for monitoring messages from the OS. Using this type of loop for any purpose requires more in-depth knowledge of how looping affects processing and memory requirements.
Loops are used by programmers to replace a piece of code which has to be repeated X number of times, where X is either known or unknown. Thorough knowledge of this aspect of programming is a must for any programmer.
Databases are applications that are able to rapidly store and retrieve data. A relational database is a reference to how storage and organization takes place within a particular type of database. The term relational database is actually a shortened version of Relational Database Management System (RDBMS).
All data is stored in structured tables and have more or less the same appearance as other databases. However, the relationship between the tables is the thing that sets a relational database apart from the others. Popular commercial examples of RDBMS are Oracle, IBM DB 2, MS SQL, Ingres and of course the FOSS MySQL and SQLite.
In an RDBMS, all data that is stored in tables are normalized. Normalization is the process of removing repetitive data and placing it in a separate table with a reference number. The reference number is used in place of the original data thus reducing the usage of space. When that data is required, it is simply retrieved from the table where it is stored by using the reference number.
Data storage can be on a single file on a local machine (e.g. MS Access) or on a database server. If a database server is used, users will need to have the IP address of the server, Port number, User Name & Password and the name of the database to access the data.
SQL is a popular and powerful language that will allow you to play with and gain experience on RDBMS. Skills in this language are almost a staple requirement in any database oriented job these days.
Structured Query Language, known more popularly as SQL is an extremely popular non-procedural language that allows you to manipulate a relational database. In this regard, SQL can be categorized under two classes.
Firstly, it falls under the Data Manipulation Language (DML) class as it is used for retrieving and storing data. Secondly, it falls under the Data Design Language class (DDL) as it is used to create, alter and drop tables. Usually, SQL is used mainly as a DML, but when the requirement does pop up its features as a DDL come into play.
There are many different varieties of SQL available today. Some have proprietary SQL features which mean that they are not portable. However, most SQL versions conform to Ansi-89 and of late, Ansi-92 standards.
Data storage in SQL consists of tables that have individual rows of data. Once defined, the columns cannot be changed without affecting the rest of the rows as they are common to all rows. Indexes help the system locate records efficiently. When you consider a database with over 150,000 rows, you will begin to understand the value of an index in locating a record. To manipulate data there are four main SQL commands.
Select – retrieves information from one or more tables
Insert – stores information in a fresh row in a table
Update – allows changes to be made to existing values in one or more rows
Delete – destroys one or more rows in a table
This is a very basic introduction to a very powerful language. If you want to learn more, you should look for some tutorials on the internet which will help you get some hands-on experience on one of the most popular DMLs at the moment.
Knowledge of Visual Basic Application (VBA) programming can be very useful when dealing with Microsoft Access. You should keep in mind that VBA is event-driven and very good when dealing with customized user forms and dialog boxes. Do not worry if you have no experience with VBA, as it is easy to learn and perhaps the best way to start is by trying out some basic code.
You can actually start by writing code to improve the efficiency of a form that you have already created or are in the process of creating. The goal of a good form is to allow users to enter data quickly and with little or no errors. This can be achieved by using VBA, so let us try a simple operation.
You should begin by creating a new form in the design view. You will notice that all your objects and controls (text and combo boxes, command buttons etc) have events associated with them (click and change events etc). All these can be modified with code.
Select the control you want to modify by clicking it once and choose to display its properties. Click on the property you want to change and click again on the “(…)” that you will see next to it. Now click on Code Builder and the VBA Editor will be displayed.
Now you can write code that will affect the way the form works. You can even write a function that will notify the user of any errors detected in the form and then saves the information in a record once the error has been corrected.
There are many free VBA tutorials available on the internet which will allow you to try out the example suggested above. Sometimes the best way to learn is by practical experimentation.
A “behavior” is the title given to how an object will react. Behaviors can be triggered by “events”, such as double clicking or clicking an object. The rollover effects, drop down menus etc are all results of behaviors as a result of an event taking place. These effects serve to make your webpage look dynamic and less boring.
Variables can are found in all programming languages. These are designed to be used to store values which can then be manipulated by the program. In a very basic way, variables can be thought of as containers of differing types. The differentiation comes with the fact that each variable has to be associated with a data type, i.e. Integer, Character, String etc.
Variables are used in programming for various reasons. They are commonly used to capture data from the user and also to store temporary values. For example, when the program requests a user to enter their name, the resulting input is stored in a variable which could be named “username”. This variable can then be accessed by other parts of the code for its data whenever required. At the end of the program or on its next run it will not hold the previous data that was entered as it will have new data entered by another user (hence the term variable).
In most languages, variables can be defined as Global or Local. Global variables can be called up anywhere in the program, so they can be defined only once. To continue with the previous example, if “username” was a global variable, another variable with the same name cannot be defined. However, local variables can be defined with the same name in different parts of the program within Procedures, Functions etc. For example, a variable named “temp” can exist in many procedures if it is only defined locally i.e. within that procedure.
Variables can be defined anywhere in the program except in the case of a Strongly Typed programming language. In this instance, the variable has to be defined before it is used.