Saturday, 13 January 2018

skills a productive software engineer must have

WHO IS PRODUCTIVE SOFTWARE ENGINEER

software engineer productivity is defined as the measurement of lines of code per man-hours worked. He has to develop software i.e; write code.

To be productive the skills a software engineer requires are:

1) Object-oriented Design

Object-oriented design (OOD) is the process of using an object-oriented methodology to design a computing system or application. This technique enables the implementation of a software solution based on the concepts of objects.OOD serves as part of the object-oriented programming (OOP) process or lifecycle.

You must have an understanding of object oriented concepts such as class, object, Inheritance, Encapsulation, Abstraction, Polymorphism.
some important Object-oriented programming languages are:
  • Simula, the first object-oriented programming language
  • Java
  • Python
  • Ruby On Rails
  • C++
  • Smalltalk
  • Visual Basic .NET
  • Objective-C: OOP is a core tenet of iOS mobile app programming, and Objective-C is essentially the C language with an object-oriented layer.
  • Curl
  • Delphi
  • Eiffel
  • c#
  • javaScript (partially object oriented)
  • swift
  • php

2) One Programming Language

A software engineer must have a solid understanding of atleast one programming language mentioned above which is at his finger tips.

3) Data structures and algorithm

Algorithms and data structures are the basic tools of a programmer. They are as essential as a hammer (or nail gun) to a house framer. They are the tools that solve problems so you don't have to reinvent the solution.
You should understand what they are, why and how they work, and what their shortcomings are. Knowing this will save you a huge amount of time that could be wasted trying to solve a problem that has a solution. some basic concepts of data structures and algorithm are array, linklist, file, record, table.
4) structured code
Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of subroutinesblock structuresfor and while loops—in contrast to using simple tests and jumps such as the go to statement, which could lead to "spaghetti code" that is difficult to follow and maintain. structured code is understandable to everyone.
5) source control
Version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake. According to a recent GitLab survey, 98 percent of developers use open source tools, and 92 percent of developers prefer Git as their version control language. 
Example: 
Github,Bitbucket,DevHub, beanStalk, SourceForge, cloud source by google etc.
6) Frameworks
The designers of software frameworks aim to facilitate software developments by allowing designers and programmers to devote their time to meeting software requirements rather than dealing with the more standard low-level details of providing a working system, thereby reducing overall development time. For example, a team using a web framework to develop a banking website can focus on writing code particular to banking rather than the mechanics of request handling and state management.
Examples
  • Ajax framework / JavaScript framework
  • Web framework
  • Middleware

7) Meanstack
A meanstack is a stack of technologies.The term MEAN stack refers to a collection of JavaScript based technologies used to develop web applications. MEAN is an acronym for  MongoDBExpressJSAngularJS and Node.js. From client to server to database, MEAN is full stack JavaScript. This article explores the basics of the MEAN stack and shows how to create a simple bucket list application.

Node.js is a server side JavaScript execution environment.
Express is lightweight framework used to build web applications in Node. 
MongoDB is a schemaless NoSQL database system.
AngularJS is a JavaScript framework developed by Google.

8) platform

computing platform is the environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser or other underlying software, as long as the program code is executed in it.

Examples
  • Open Web Platform
  • Oracle Database
  • Java platform
  • .Net Framework

9) Database

A software engineer should know the basic concepts of database which are schemastablesqueries, reports, views, and other elements.

10) soft skills

Typically as a software engineer, all we think and care about is coding. We assume having the technical expertise is sufficient to execute our job duties. But little do we know that having the technical skills is only one of the many facets of being an effective person in the work place. The major one being ‘Soft Skills’.

Some of the most common soft skills include:

  • clarity of communication
  • writing skills
  • listening 
  • Degree of collaboration / Teamwork
  • Conflict Resolution






Thursday, 2 November 2017

Interview questions

Answers to challenging interview questions can reveal a lot about a candidate. You can expect to face several such questions during every interview. If you're prepared with thoughtful answers that are related to your specific situation, You are bound to make a good impression. Here are the questions.

  1) What was the toughest decision you ever had to make?
  2) If we hire you what changes would you make?
  3) Can we offer you a career path?
  4) What didn't you like about previous jobs you've held? 
  5) How do you spend your leisure time?
  6) Are there any weaknesses in your education or experience?
  7) What are your salary expectations?
  8) What type of positions are you interested in?
  9) Do you have any question about the organization or job?
10) What courses in college did you like the most? Least? Why?
11) Do you think Your extracurricular activities in college were worth the time you spent on          them ?Why or why not?
12) When did you chose your college major? Did you ever change your major? If so, Why?
13) Do you feel you did the best scholastic work you are capable of?
14) Which of your college years was the toughest? Why?
15) What job have you held? Why did you leave?
16) What percentage of your college expenses did you earn? How?
17) Have you served in the military? What rank did you achieve? What jobs did you                    perform?
18) What do you think about how this industry operates today?
19) Tell me a story
20) Have you ever had any difficulty getting along with colleagues or supervisors? With              instructors? With other students?
21) Would you prefer to work in a large or a small organization? Why?
22) How do you feel about overtime work?
23) Do you think grades should be considered by employers? Why or why not?



Most Important Interview Questions

Going for an interview? Want to go prepared and confident? Then you’re absolutely at the right place. Here I have compiled the most frequently asked questions in an interview. Go through these toughest and most important questions.

1)    Why should we employ you?

Explanation:

Emphasize your academic strengths, job skills and enthusiasm for the firm. Tie specific skills to the employer’s needs, and give examples of how you can learn and become productive quickly.
Mostly this question is asked at the end of an interview. This question gives you another opportunity to sell yourself. Mostly people react to this question as “I am hardworking, I can do this job sir etc.” However this reply should be short, concise and impactful. This answer should be striking, different and confident so that there will left no doubts in an interviewer’s mind whether he should hire you or not.

Sample:

Sir you should hire me because of my attitude. You can find candidates better than me in terms of experience and asking less salary than me, but you will not find any anyone who can beat my attitude. Moreover, if you compare your job requirements and my skill set, you will find 100% match, I can’t see any reason that I should not be selected. As my resume shows, I’ve been enrolled in other co-curricular activities as well. Just give me one chance to prove myself. I will put all my skills and efforts to take your organization to another level and I promise that if u will give me the opportunity to serve your company, no candidate will be better than me.

2)    What are your greatest strengths?

Explanation:

Mention your strong points like leadership qualities, punctuality and hardworking skills. Try to give an example from your past experience that shows your strengths.

     List of Strengths Valued by Employers
  1. Honesty/trustworthiness
  2.  Creative
  3.  Excellent communication skills
  4.  Leadership skills
  5.  Intelligent
  6.  Reliable
  7.  Likeable
  8.  Positive
  9.  Independent
  10. Problem-solver
  11. Detail-oriented
  12. Hard-working
  13. Team player
  14. Quick learner
  15. Flexible
  16. Passionate about doing a good job
  17. Organized
  18. Strong work ethic
Sample:

Sir once in my academic years I did a project all alone. I had not only completed it but submit it before the deadline and the project did extremely well. I have a habit of submitting and completing my work way before the deadline.

3)    What are your greatest weaknesses?

Explanation:

People react to this question as I am short tempered, I trust everyone easily however this is not the right way as this displays negativity. You should summarize the answer in such a way that your weakness reflects your excellence and your high qualities. Describe your weakness so that it sounds like a virtue.

Sample:

Well I think my weakness is that I try to make things perfect so much that I loose on a budget/sometimes on time.

4)    Where you want to be five years from now?

Explanation:

Your answer to this question should always be positive and effective.

Sample:

I see myself working as a CEO of some company or on some senior post.

     5)    Tell me something about yourself?

     Explanation:
     
     Sir I am born and brought up in Karachi. I have completed my education from XYZ                School. The School and all the teachers out there were very helpful. They not only          educated me but thought me   how to believe in myself. They boost up my confidence.        They thought me how to handle any difficult situation and work under pressure. I have          learned to communicate with people. Later my college further enhanced my skills and my university groomed me to do multi-tasking.
   
     Sample:

     Sir I am born and brought up in Karachi. I have completed my education from XYZ School.The School and all the teachers out there were very helpful. They not only educated me but thought me how to believe in myself. They boost up my confidence. They thought me how to handle any difficult situation and work under pressure. I have learned to communicate with people. Later my college further enhanced my skills and my university groomed me to do multi-tasking.

    6) Why did you chose your particular field of work?
   
    Explanation
:
    This question gives you the chance to display your passion and enthusiasm for your field. Delve into all the aspects of the career that truly excite you and explain why they are meaningful to you. You should balance your passion with details about how you developed experience and skills in the field- too- to show that you’ve taken action to apply your enthusiasm in a constructive way.

     Sample:

     Well I have been learning android development since my high college. I am passionate about learning computer oriented courses. I have good programming and algorithm solving skills. My passion for this field makes me perfect to fit into your job.

      7) What are the disadvantages of your chosen field?
    
      Explanation:
    
     Be honest while answering this question. If your field have any disadvantages highlight them.
    
     Sample:

     Well, I think the disadvantage of my chosen field is that you have to spend more and more time on a project to figure out bugs that may take hours and hours and I have to even face sleepless nights.
     
      8)    Why do you think you would like this particular type of work?

      Explanation:

     Give your honest clear feedback that why you want to work in this field.  They want to know that you’re interested specifically in this job—and not that you just need a paycheck.

     Sample:

     I think my skills and your job requirements has 100% match. I would also benefit          personally, professionally, and financially from that. If I can come in here and solve              problems and accomplish your goals, it will be a great future for me. I always wanted to        work as a  web-developer. I have been hearing about your company since a long time. I      am eager to work for your company. I am really excited about being a part of it.


      9) Do you prefer to work in any geographical location? If so, why?
      
      Explanation:

      First of all employer may ask this question when the work involves travel or maybe they are thinking to relocate you. They are trying to ascertain whether or not you would be willing to relocate if they need you to work elsewhere. Answer this question honestly. Unlike many interview questions, this one is not an opportunity to sell yourself. Unfortunately, it is an opportunity to disqualify yourself. Tread lightly and speak sparsely.

Sample:


I love to travel and explore new things. I would not mind travelling because I don’t have
responsibilities that makes me stick to one place so travelling for me is not at all a problem.


      Mistakes You Should Avoid

·        This question can invite specific or binding answers that could put a jimmy       on   the interview.
·     Avoid mentioning that you have family in a particular city that you or your         spouse cannot live without.
·     Don’t tell any funny horror stories about how you couldn’t get out of a certain area fast enough.
·     Be very careful on the subject of kids. Some interviewers focus on the fact that most parents do not want to move their kids around during their school years. Decide beforehand how honestly and in how much detail you want to answer this question.

10) How much money do you hope to be earning in 5 years? In 10 years?
      
 Explanation:

Don’t give specific digits. For example don’t answer like I would be earning $10,000. Always give an estimate range. It is good to mention double digit salary.

Sample:

May be $20,000 - $1, 00,000 so that I can shop without looking at the price tag.

11) What do you think determines a person’s progress in a good  organization?

Explanation:

The interviewer asks this question to know what it takes to become a successful person in your eyes. The answer will reflect your personality and shows your attitude in an organization so be careful while answering this question.

Sample:

The interviewer asks this question to know what it takes to become a successful person       in your eyes. The answer will reflect your personality and shows your attitude in an organization so be  careful while answering this question. 

12) What personal characteristics do you feel are necessary for success in your chosen field?

Explanation:

Interviewers will typically present this type of inquiry in order to better understand how you view your own skills, how they apply to your career field, and why you believe you’re a good fit for the position.

Sample:

From an IT perspective, when you do something you love, you do it better. This shows in the quality of your work, your commitment to the task, and your willingness to take on challenging assignments. You can’t be a successful IT expert unless you love technology. Trying to think out of the box and believing in yourself are some characteristics that I feel are necessary to become a successful specialist.

13) Do you like to travel?

Explanation:

It is good to know in advance if the job you are applying for requires travel. There is no
need to lie. There is no reason to say you are willing to travel if you are not. If you have
limitations in travelling then state your limits.

Sample:

I wouldn’t mind travelling if it is for work purpose. I suppose face- to –face is the best form 
of communication. I know your job requires a lot of travelling which is not at all a problem
for me.

14) Do you prefer working with others or by yourself?

Explanation:

Saying that you prefer working alone will leave a negative impact. This shows that you
are not good at communicating. You are the person who can’t deal with your co-workers
temperaments.

Sample:

I have been the part of so many group projects in my education career and I think this is     
the best  way to produce remarkable results. This increase your knowledge and boost          
up your confidence.Working in a team motivates you. It also counts for better outcome.

    
15) What type of boss do you prefer?

Explanation:

This question shows whether you have any issues with authority, and the nature of your
work style. When answering these questions, try to balance your ability to take direction
from a boss with your ability to work independently.

Sample:

I prefer a boss who is tight on schedule, punctual, has leadership qualities and democratic
in nature. Most of the employees leave their job because of boss’s bad attitude.  A good 
boss can make a bad job tolerable or even enjoyable, and a bad boss can turn 
an otherwise gratifying occupation into a miserable experience.


 16) What have you done that shows initiatives and willingness to your work?

Explanation:

This interview question can pose an excellent opportunity to show your ability in a project
from start to the end while highlighting some of your achievements beyond the office. Talk
about a time where you benefited the business. Discuss a project that was challenging for
you. 

Sample:

Back in my university days I was leading a project and my team members were not only   lazy but also they were unwilling to do any kind of job but then I took a stand and not            only completed the project all alone by myself but also submit it before the deadline and        the results were pretty good.

Thursday, 26 October 2017

types of web-hosts

Types Of Web-hosts


1) Free Hosting

free website hosting is a free non-paid web hosting service, usually supports forced ads on subscriber's website for earning revenue. 
  • suitable when you are building web-sites for fun, education or practice
  • However, it has limited features
  • slow speeds, no uptime guarantee, advertisements

Example:

  1. angelfire
  2. tripod
  3. wix
  4. infinityfree.net


2) Shared Hosting

Shared hosting is web hosting in which the service provider serves pages for multiple web sites, each having its own Internet domain name, from a single web server. Most Web hosting companies provide shared hosting. Although shared hosting is a less expensive way for businesses to create a Web presence, it is usually not sufficient for Web sites with high traffic. These sites need a dedicated Web server, either provided by a Web hosting service or maintained in-house.

  • It is recommended for beginners
  • speed will be slow
  • website performance is unpredictable
  • It is a good choice for building personal & public web-sites and traditional blogs.

Example:

  1. a small orange
  2. GoDaddy
  3. DreamHost
  4. HostGator


3) Virtual Private Server (VPS) Hosting

Virtual Private Server (VPS) is a virtual machine sold as a service by an Internethosting service. A VPS runs its own copy of an operating system (OS), and customers may have superuser-level access to that operating system instance, so they can install almost any software that runs on that OS.

  • It is the advanced version of shared hosting
  • Your web-site has its own partition on the web-server
  • Web-sites using VPS hosting do not compete for resources with other web-sites
  • If you are a more advanced user and  you have consistent amount of traffic as well as reliability is important to you VPS Hosting is a good choice
  • It is good for high traffic, e-commerce websites and websites that run resource intensive script

Example:

  1. a small orange
  2. DreamHost
  3. HostGator


4) Dedicated Hosting

dedicated hosting servicededicated server, or managed hosting service is a type of Internet hosting in which the client leases an entire server not shared with anyone else.

  • You have the entire web server to yourself
  • It is a good choice when there is a high traffic and security is important
  • However, it is expansive

5) Managed Wordpress Hosting

Managed WordPress hosting is a concierge service where all technical aspects of running WordPress is managed by the host.The idea behind managed WordPress hosting is to offer a completely hassle-free experience, so you can focus on running your business and doing what you are good at.

  • Excellent hosting environment and excellent features
  • very high cost

Example

  1. WP engine
  2. pagely
  3. synthesis
  4. VPS.NET



Monday, 23 October 2017

Platform as a Service and Ruby on Rails

Platform as a Service (PaaS)

Platform as a Service (Paas) provides a computing platform for developing and running applications as a service over the web, rather than installing the tools on your computer. Some PaaS providers are Google App Engine, Amazon EC2 and Windows Azure.


Ruby On Rails

It was created in the mid 1990s. It is an open-source, object-oriented programming language with a very simple syntax which is similar to the syntax of python. It is the combination of scripting language Ruby and Rails framework developed by 37Signals. Many Ruby on Rails developers have reported productivity gains over other languages when developing database-intensive web applications. 


Saturday, 21 October 2017

Networking Engineering

What is Network Engineering?

Network engineering involves implementing, maintaining, supporting, developing and, in some cases, designing communication networks within an organisation or between organisations.

Job Opportunities

Network engineers may work internally as part of an organisation's IT support team, or externally as part of an outsourced IT networking consultancy firm working with a number of clients.

A network engineer can pursue his career in one of the following domain:


1) Switching


Switches are used to connect multiple devices on the same network within a building or campus. For example, a switch can connect your computers, printers, and servers, creating a network of shared resources. The switch, one aspect of your networking basics, would serve as a controller, allowing the various devices to share information and talk to each other. Through information sharing and resource allocation, switches save you money and increase productivity.

2) Routing


Routing refers to the movement of packets from one device(source) to another (destination) and the device that implements routing is called router. Routing is a key feature of internet because it enables messages to pass from one computer to another and eventually reach the target machine. Routing is often confused with bridging which performs a similar function.


3) Wireless


Wireless networks use radio waves to connect devices such as laptops to the Internet, the business network and applications. When laptops are connected to Wi-Fi hot spots in public places, the connection is established to that business’s wireless network. 

There are four main types of wireless networks: 
  • Wireless Local Area Network (LAN): Links two or more devices using a wireless distribution method, providing a connection through access points to the wider Internet.                                                                                                                                    
  • Wireless Metropolitan Area Networks (MAN): Connects several wireless LANs.                   
  • Wireless Wide Area Network (WAN): Covers large areas such as neighboring towns and cities.                                                                                                                                  
  • Wireless Personal Area Network (PAN): Interconnects devices in a short span, generally within a person’s reach.

4) Network Security


Network security is any activity designed to protect the usability and integrity of your network and data. It includes both hardware and software technologies. Effective network security manages access to the network. It targets a variety of threats and stops them from entering or spreading on your network. For example email service, firewall, access control etc.

Network security, a subset of cybersecurity, aims to protect any data that is being sent through devices in your network to ensure that the information is not changed or intercepted. The role of network security is to protect the organization’s IT infrastructure from all types of cyber threats including:
  • Viruses, worms and Trojan horses
  • Zero-day attacks
  • Hacker attacks
  • Denial of service attacks
  • Spyware and adware


5) Network Design


Network design involves planning,evaluating, understanding, scoping and implementing the computer network infrastructure e.g  cabling structure

6) Data Center


data center (or datacenter) is a facility composed of networked computers and storage that businesses or other organizations use to organize, process, store and disseminate large amounts of data.


7) Cyber Security


Cyber security, a subset of information security, is the practice of defending your organization’s networks, computers and data from unauthorized digital access, attack or damage by implementing various processes, technologies and practices. With the countless sophisticated threat actors targeting all types of organizations, it is critical that your IT infrastructure is secured at all times to prevent a full-scale attack on your network and risk exposing your company’ data and reputation.

8) Collaborative Network


A collaborative network is the collection of businesses, individuals and other organizational entities that possess the capabilities and resources needed to achieve a specific outcome.
Organizing in collaborative networks is a dynamic process, requiring great agility and resourcefulness. 



9) Network and computer administration


Network and computer systems administrators are responsible for the day-to-day operation of these networks. They organize, install, and support an organization's computer systems, including local area networks (LANs), wide area networks (WANs), network segments, intranets, and other data communication systems.


10) Computer system analysis



Computer systems analysts troubleshoot hardware and software issues for companies and organizations. Continue reading to learn about educational programs and career opportunities in computer systems analysis.

11) Computer network architecture


Network architecture is the design of a communication network. It is a framework for the specification of a network's physical components and their functional organization and configuration, its operational principles and procedures, as well as data formats use.


12) Cloud Computing


Cloud computing is a type of computing that relies on sharing computing resources rather than having local servers or personal devices to handle applications.
In cloud computing, the word cloud(also phrased as "the cloud") is used as a metaphor for "the Internet," so the phrase cloud computing means "a type of Internet-based computing," where different services — such as servers, storage and applications are delivered to an organization's computers and devices through the Internet. The cloud infrastructure is maintained by the cloud provider, not the individual cloud customer.

13)  Internet of Things 

(IoT) is a system of interrelated computing devices, mechanical and digital machines, objects, animals or people that are provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction.

Job Titles

The titles associated with networking jobs are vexingly similar. Here are the titles you should know and the skills typically associated with networking jobs:

  • Service desk analyst
  • Network administrator
  • Network engineer
  • Network architect
  • Network manager
  • Wireless network engineer
  • Telecommunications manager or specialist
  • Pre-sales engineer



Networking Certificates

  1. CCNP 
          The Cisco Certified Network Professional
    
    2. CCIE 
        The Cisco Certified Internetwork Expert
    3. JNCIE-ENT
       Juniper networks certified Enterprise Routing and Switching Expert
   
      4. CompTIA Network+
  
    5. WCNA
        wireshark Certified Network Analyst


                               Outside of the top five networking certifications, there are lots of other choices for networking professionals to investigate and pursue.



Salary


The featured certifications represent all major tiers of networking job roles, from the entry level (Network+) to the expert level (CCIE). 

  • A person just starting out in networking, most likely as a technician or junior administrator, can expect to make about $45,000.

  •  Mid-tier network administrators and engineers make an average of $63,500 to $80,500.

  •  CCIEs average around $110,000.