Women Presence in the Programming World

Why is it today women are moving forward in all other worlds of business, while amongst the programmers the number of women is shrinking rather than expanding? Especially in the STEM (science, technology, engineering, and math) workforce over the past few years not only are women not interested in joining, but they’re actively leaving their jobs. 

Something in these facts needs to make a 180 in the not too far future. It is expected by 2020 in North America that there will be 1.7 million computing positions available. Now tell me, how are we going to meet these workforce requirements without the help of the all powerful women? Females also add a unique view point to the programming world that is urgently needed by the male-dominated field.

Also Read: The Top 5 Sexiest Female Programmers in the World

Back in Time 
If we go all the way back to the 1800s to meet Ada Lovelace, the first computer programmer, we’ll learn that women we’re essential to the history of computer programming. She began using an analytical machine to translate mathematical documents, and later this mechanical machine came to be the first computers. The computer programming language ADA is used in aviation and the military is named after her. 

It wasn’t always this way however, in the 1960s computer programming was a natural and inviting choice for tech savvy young women to go into. Cosmopolitan magazine even wrote an article describing women as ‘naturals when it comes to computer programming.’ In fact some of the world’s first computer programmers were young ladies from the University of Pennsylvania hired to do a project for ENIAC, setting up one of the first electronic computers.


Women Presence in the Programming World

Women continued to dominate this computer programming field for awhile thereafter. Mainly because programming at the time was seen amongst other ‘womanly’ jobs like secretarial work, filing, etc. They still left the hardware side of the computing, the more masculine job, to the men.

Also Read: The Top 10 Greatest Programmers in the World of all Time

When did the Shift Come along? 
Eventually, the intellectual challenge of computing code came along, and it was no longer mundane programming which many associated with other clerical work. Now the stereotypes that were there all along became apparent and relevant and the male oriented ‘math’ brain came to take over.


Women Presence in the Programming World

There was an addition in the late 60s of tools to help simplify the hiring process. These tools were heavily based on aptitude tests that singled out specific math and problem solving practices that men were more likely to know because those were the subjects they studied in school. There was another personality test used for hiring at the time that actually aimed to find antisocial and introverted behaviors, and then originated the stereotype of the anti-social computer geek and until now has effectively scared away most females from the profession.

Today, and Tomorrow 
Studies show that today, as society we’re still not making it any easier as it once was for young girls to enter into the field of computer science. We haven’t successfully found a way to combat this stereotype that says that programmers are anti-social or unimaginative and hence girls remain uninterested. In fact the stereotype formed in the 1960s has become its own self-fulfilling prophecy, employers seek employees who fit within this existing mold, and students when deciding what to study look within to match character traits with pre-existing stereotypes. This is why still today women make up just 18% of computer science majors.


Women Presence in the Programming World

Although there are certainly more men in the tech space than women, there are a couple of key leading ladies that can inspire young women to be the computer programmers of tomorrow. We all have a lot to learn from entrepreneurs like Marissa Mayer, CEO of Yahoo!, and Sheryl Sandburg, the VP of Facebook. 

It’s true that they’re often the only lady in the room, but they’re paving the way so girls going into the industry today don’t have to be.

Also Read: 5 Tips to Become a Better Programmer

There are a number of ways we can change these statistics for tomorrow. 

1. Lydia Thomas, CEO of Noblis emphasized that education about technical fields must start in childhood. If girls aren’t captured at a very young age they may reach a point of no return. It’s especially important that parents encourage their daughters not to be closed minded and embrace other opportunities in the technical fields.

2. Expose young girls to the technical field in a formal classroom setting. It’s also very difficult for women to become involved in these fields if they’ve never even been exposed to them.  It’s important for high schools and colleges to actively guide more women into technical courses to teach them and give them the chance to succeed in a classroom setting.

3. There’s more to be done in the workplace to ensure more women are being hired. Make technology positions seem more desirable to today’s youth and specifically women, and also work harder amongst HR and people in hiring positions to dispel the self-fulfilling prophecy of the programmer stereotype. Here are two more tricks that can help you get new female tech talent.

There’s no reason, in today’s day in age when you tell someone to think of a computer programmer the image brought to mind shouldn’t be equally male or female. There are things we need to work on as a society to invoke these changes, so we’ll be prepared for the technological future we’re riding into.

Author Bio:-
Eli Lopian is the Founder and Head of Products & Technology at Typemock. He enjoys a white board, code and transforming developing environments. Secretly his one true love is Unit Testing and he has dedicated his life to making unit testing easier for everyone else.

Image Credits: WikipediaThe Clayman institute for gender research

Setting up Android Development Environment

Due to the increase in the android users the demand for quality applications is also increasing. As a result more and more programmers are jumping into the field of android development. Developing any android application requires certain development tools. In this android tutorial I am telling you the step by step procedure for setting up android development environment.

Also Read: How to Make a Calculator App for Android

Setting up Android Development Environment

Steps for Setting up Android Development Environment

The first step of getting started in android application development is to setup an android development environment. There are two choices:
  • The first one is using Eclipse IDE
  • The Second one is using Android Studio 

Since Android Studio is still the beta version (that means it is not completely tested) so we will focus on setting up Eclipse IDE

1. The first thing we need to do is installing Java JDK. Download the latest version of java from below link.
http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. The next thing we need to do is install Eclipse IDE (the software we are going to use to develop android applications). Visit the link below and download eclipse for java developers.
https://eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr1

3. Now we need to is install the android sdk. This sdk is required to run your custom android projects on emulator in order to debug it. You can also use android devices to debug your projects. Download Android SDK from the following link.
http://developer.android.com/sdk/older_releases.html

4. After downloading extract the sdk folder and open sdk manager, select available packages, check the android Repository and hit install selected.

5. Accept all the licenses and download it (if you are an advance user you can select only the required packages).

6. Now we need to set preferences so open eclipse IDE go to Windows > Preferences > Android > SDK Location > Browse the files that we have extracted (SDK MANAGER).

If you are getting any difficulty in above steps then you can check below video tutorial.


Video Tutorial for Setting up Android Development Environment


Image Source

Top 10 Popular Programming Languages of All Time

In this article I am giving the list of top 10 popular programming languages which was shared by IEEE Spectrum. The ranking of these languages are based on 12 metrics that are Google search, Stack Overflow, Hacker News, Reddit, Career Builder, Google trends, Github, Dice, Topsy, and IEEE Xplore. Java language is at first position while MATLAB at tenth. This list also contains popular programming languages that are ranked from 11th to 30th position. So if you are thinking to learn a programming language and start your career in programming then this list can help you to find the best.

Also Read: List of Biggest and Popular Programming Contests
Also Read: Top 5 Programming Languages That Are In Demand By Employers

List of Top 10 Popular Programming Languages

Top 10 Popular Programming Languages of All Time
(Click on the image to enlarge)

Head First C Pdf Download

Head First C is written by David Griffiths and Dawn Griffiths. This book provides an awesome experience of learning C language. Earlier I have shared many others books of Head First Series. You can also check them here. In this article I sharing the link for Head First C pdf download for free.

Also Read: Head First Java, 2nd Edition Pdf Download

Head First C Pdf Download

Book Name: Head First C
Author: David Griffiths and Dawn Griffiths
Size: 53.7 MB

Table Contents

Chapter 1: Getting Started with C: Diving in
Chapter 2: Memory and Pointers: What are you pointing at?
Chapter 2.5: Strings: String theory
Chapter 3: Creating Small Tools: Do one thing and do it well
Chapter 4: Using Multiple Source Files: Break it down, build it up
Chapter 5: Structs, Unions, and Bitfields: Roll your own structures
Chapter 6: Data Structures and Dynamic Memory: Building bridges
Chapter 7: Advanced Functions: Turn your functions up to 11
Chapter 8: Static and Dynamic Libraries: Hot-swappable code
Chapter 9: Processes and System Calls: Breaking boundaries
Chapter 10: Interprocess Communication: It’s good to talk
Chapter 11: Sockets and Networking: There’s no place like 127.0.0.1
Chapter 12: Threads: It’s a parallel world
Appendix Leftovers: The top ten things (we didn’t cover)
Appendix C Topics: Revision roundup

- Click Here For Head First C Pdf Download -

C/C++ Program for Priority Scheduling Algorithm

Priority Scheduling Algorithm

In priority scheduling algorithm each process has a priority associated with it and as each process hits the queue, it is stored in based on its priority so that process with higher priority are dealt with first. It should be noted that equal priority processes are scheduled in FCFS order.

Also Read: C Program for Shortest Job First (SJF) Scheduling Algorithm

To prevent high priority processes from running indefinitely the scheduler may decrease the priority of the currently running process at each clock tick (i.e., at each clock interrupt). If this action causes its priority to drop below that of the next highest process, a process switch occurs. Alternatively, each process may be assigned a maximum time quantum that it is allowed to run. When this quantum is used up, the next highest priority process is given a chance to run.

Limitations

The problem occurs when the operating system gives a particular task a very low priority, so it sits in the queue for a larger amount of time, not being dealt with by the CPU. If this process is something the user needs, there could be a very long wait, this process is known as “Starvation” or “Infinite Blocking”.

Solution

Many operating systems use a technique called “aging”, in which a low priority process slowly gains priority over time as it sits in the queue. Even if, the priority of the process is low, there is a surety of its execution.

C Program

#include<stdio.h>

void main()
{
    int bt[20],p[20],wt[20],tat[20],pr[20],i,j,n,total=0,pos,temp,avg_wt,avg_tat;
    printf("Enter Total Number of Process:");
    scanf("%d",&n);

    printf("\nEnter Burst Time and Priority\n");
    for(i=0;i<n;i++)
    {
        printf("\nP[%d]\n",i+1);
        printf("Burst Time:");
        scanf("%d",&bt[i]);
        printf("Priority:");
        scanf("%d",&pr[i]);
        p[i]=i+1;           //contains process number
    }

    //sorting burst time, priority and process number in ascending order using selection sort
    for(i=0;i<n;i++)
    {
        pos=i;
        for(j=i+1;j<n;j++)
        {
            if(pr[j]<pr[pos])
                pos=j;
        }

        temp=pr[i];
        pr[i]=pr[pos];
        pr[pos]=temp;

        temp=bt[i];
        bt[i]=bt[pos];
        bt[pos]=temp;

        temp=p[i];
        p[i]=p[pos];
        p[pos]=temp;
    }

    wt[0]=0;            //waiting time for first process is zero

    //calculate waiting time
    for(i=1;i<n;i++)
    {
        wt[i]=0;
        for(j=0;j<i;j++)
            wt[i]+=bt[j];

        total+=wt[i];
    }

    avg_wt=total/n;      //average waiting time
    total=0;

    printf("\nProcess\t    Burst Time    \tWaiting Time\tTurnaround Time");
    for(i=0;i<n;i++)
    {
        tat[i]=bt[i]+wt[i];     //calculate turnaround time
        total+=tat[i];
        printf("\nP[%d]\t\t  %d\t\t    %d\t\t\t%d",p[i],bt[i],wt[i],tat[i]);
    }

    avg_tat=total/n;     //average turnaround time
    printf("\n\nAverage Waiting Time=%d",avg_wt);
    printf("\nAverage Turnaround Time=%d\n",avg_tat);

}


C++ Program

#include<iostream>

using namespace std;

int main()
{
    int bt[20],p[20],wt[20],tat[20],pr[20],i,j,n,total=0,pos,temp,avg_wt,avg_tat;
    cout<<"Enter Total Number of Process:";
    cin>>n;

    cout<<"\nEnter Burst Time and Priority\n";
    for(i=0;i<n;i++)
    {
        cout<<"\nP["<<i+1<<"]\n";
        cout<<"Burst Time:";
        cin>>bt[i];
        cout<<"Priority:";
        cin>>pr[i];
        p[i]=i+1;           //contains process number
    }

    //sorting burst time, priority and process number in ascending order using selection sort
    for(i=0;i<n;i++)
    {
        pos=i;
        for(j=i+1;j<n;j++)
        {
            if(pr[j]<pr[pos])
                pos=j;
        }

        temp=pr[i];
        pr[i]=pr[pos];
        pr[pos]=temp;

        temp=bt[i];
        bt[i]=bt[pos];
        bt[pos]=temp;

        temp=p[i];
        p[i]=p[pos];
        p[pos]=temp;
    }

    wt[0]=0;            //waiting time for first process is zero

    //calculate waiting time
    for(i=1;i<n;i++)
    {
        wt[i]=0;
        for(j=0;j<i;j++)
            wt[i]+=bt[j];

        total+=wt[i];
    }

    avg_wt=total/n;      //average waiting time
    total=0;

    cout<<"\nProcess\t    Burst Time    \tWaiting Time\tTurnaround Time";
    for(i=0;i<n;i++)
    {
        tat[i]=bt[i]+wt[i];     //calculate turnaround time
        total+=tat[i];
        cout<<"\nP["<<p[i]<<"]\t\t  "<<bt[i]<<"\t\t    "<<wt[i]<<"\t\t\t"<<tat[i];
    }

    avg_tat=total/n;     //average turnaround time
    cout<<"\n\nAverage Waiting Time="<<avg_wt;
    cout<<"\nAverage Turnaround Time="<<avg_tat;

    return 0;
}

C/C++ Program for Priority Scheduling Algorithm

How to Create a Web Browser in Visual Basic

In visual basic the simplest application ever could be created is a web browser. Visual basic already contain a web browser control within the toolbox, after adding it we could easily play around with the many web browser functions like navigate (to navigate to a particular website), refresh, etc. In this tutorial we will see how we can create a simple web browser in visual basic.

Also Read: How to Create a Keylogger in VB.Net?


How to Create a Web Browser in Visual Basic

How to Create a Web Browser in Visual Basic

1. First of all create a new windows form application in visual basic.

2. Now add 4 buttons and change their text as given below.

Button1 - << (To move backword)
Button2 - >> (To move forward)
Button3 - Refresh
Button4 - Go

3. Add a textbox and align them in the manner shown below.


How to Create a Web Browser in Visual Basic

4. Now double click the form to switch to code view and paste the code given below.

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        WebBrowser1.GoBack()

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        WebBrowser1.GoForward()

    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        WebBrowser1.Refresh()
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        WebBrowser1.Navigate(TextBox1.Text)
    End Sub

    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyData = Keys.Enter Then
            Button4.PerformClick()
        End If
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    End Sub
End Class

5. You have done!! Hit Debug and browse some of your favorite sites with your own fully functional web browser.

If you liked this tutorial then please take your few seconds to share it!

IOS vs Android - Difference and Comparison [Infographic]

Apple’s iOS and Google’s Android both are very popular mobile operating systems. It’s still a debate topic that which one is the best Android or iOS?

In this article, iOS and Android are differentiated over various perspectives.

Globally, around 1 billion units of smartphones have been sold out of which android has 80% market share and iOS has a 15 % market share. Thus, the global revenue generated by smartphones is approx. $265 billion.

Also Read: Top 100 Android Apps 2014
Also Read: iCloud - How to Backup iPhone Data

The reason behind the largest market share by android is that it is also available at cheaper rates that make it popular in emerging countries where per capita income is low. Out of 227 countries, Android has leadership in 138 countries and iOS is popular in 38 countries which are developed countries with high capita income.


IOS vs Android - Difference and Comparison [Infographic]

There are 1.4 million android apps, 85% of which are available for free while out of around 1.3 million iOS apps only 25% apps are free.  Apple’s iTunes charges $99 per year and Play Store charges $25 per year to publish any app.

If we look at revenues and profits, iOS make more profit than android apps. There are 67% shopping apps for iOS and 33% for android. iOS users spend an average amount of $93.94 per order, while Android users spend average amount $48.10 per order.

It is also considered that iOS users are more internet savvy than Android users as share of web traffic comes more from iOS devices that is 62% than android devices that is 38%. It makes more employment in iPhone app development as 60%, while 40% employment in android development.

Find more interesting facts regarding iOS and android in the following infographic.

IOS vs Android Infographic

IOS vs Android
Image courtesy: Nine Hertz