When employees could collect a gold watch and a pension check at the end of their career, companies could count on employee loyalty. Now that those perks of longevity are gone, it's harder to find employees who won't chase after bigger rewards elsewhere. But because the impact of turnover on business is so significant, companies can benefit by trying to assess whether an interviewee will stick around to make a long-term contribution.
If a candidate's held eight jobs in six years, that's a sure sign they're likely to move on rapidly from your company, too. On the other hand, if they've held six jobs in eight years, that may not indicate a lifetime commitment, but does means they've stayed in one place long enough to see a project through to completion.
Sometimes there are good reasons for leaving a previous job after a short time period. Moving on because a company failed is different than moving on because of boredom. It's also useful to note how they describe their previous employers. Speaking positively about former employers is a form of brand loyalty that can benefit you, even once they've moved on.
If the interviewee has researched your business and can talk about the specifics of your company, that level of interest can mean they're emotionally invested in the idea of working for you. It also indicates they would be committed to the position.
Keeping employees isn't only about tangible rewards like money, or offering them interesting projects. The employee also needs to feel comfortable about themselves after a day spent at the office. Ask about the candidate's personal values to see whether they mesh with the business's values. If the company operates in sensitive lines of business, ask the candidate whether they're comfortable working in those areas.
Candidates who've thought about their career path are often motivated strivers. Ask them about their long-term goals, and discuss how they can achieve those objectives within your company. Help candidates envision themselves staying with your company before they start the job; once they begin working for you, be prepared to back up your interview talk and support them on their career journey. Company loyalty goes both ways, after all.
Small companies often partner with bigger companies to work together on projects. The small companies gain access to opportunities they can't win on their own; the bigger companies get the smaller firms' specialized expertise, dynamism, and creativity. For these partnerships to succeed, the responsibilities and obligations of both firms need to be spelled out clearly in the contract. These are some of the aspects contracts should address:
The most basic aspect of the contract will be the price to be paid for services. Neither side should agree to the contract if the financial terms are unsatisfactory. However, even if the contract's financial terms are acceptable, other contract points may need to be negotiated.
Indemnification clauses state that one of the parties to the contract will be held harmless, in case a third party sues over a specified matter. Typical contracts dictate that the larger firm will not be liable for matters related to new technology introduced by the smaller firm. Because the smaller firm cannot rely on the resources of the larger company to support it in case of a lawsuit, indemnification insurance may be necessary for both parties to be adequately protected.
These clauses state that the smaller firm represents that its intellectual property is its own, and not infringing any existing patents. Agreeing to this clause can be difficult for firms that use emerging technologies where patents have been applied for but not yet granted. This contract clause may therefore require negotiation and flexibility on the part of both parties to reach agreeable wording.
If the partnership between the two firms will generate patentable ideas, the contract should specify where patents will be applied for and which party will pay for the applications. Big firms may have global reach and require patent coverage around the world, while the smaller firm may not have resources to apply for patents in every market. Frequently, contracts specify that the larger firm will pay the fees in certain markets or split the cost of filing fees with the smaller firm.
Limitation of liability clauses cap the damages that can be owed due to breach of contract. Agreements between large businesses often cap damages to a low multiple of the prior year's fees. However, small firms may be heavily dependent on a single contract, and financially devastated if the contract is breached. Negotiating the limit to an appropriate value is one of the critical points to be addressed when large and small firms need to do business together.
There are many business applications still running on Cobol, but new developers would never base their career solely around learning Cobol. Even for developers who are working with more modern languages and methodologies, specializing in a single technology isn't the best basis for a career.
Besides the fact that technology changes rapidly (Cobol aside!), developers with a skill set across the technology stack are more valuable to their organization. These developers can step up and pitch in wherever help is needed, and their understanding of the challenges of different technologies provides a foundation for working in architecture, project lead, or managerial roles in addition to a varied programming career.
Software ultimately runs on physical facilities, so understanding the limitations of hardware and networks helps engineers make appropriate design decisions. Projects can either take advantage of, or be limited by, the specific operating system they are running on, so understanding this is key. Network configurations raise performance issues and security concerns, especially with growing use of the cloud. Mobile devices offer unique challenges as well. Applications won't succeed unless developers understand these issues and handle them appropriately.
There are fads and trends in programming, so while knowing a specific language is helpful for a while, having a solid foundation in good software engineering practices is more important. Developers need to fully grasp the concepts of object-oriented design in order to write reusable code that speeds projects. Debugging skills are often overlooked, but crucial. So is the ability to reverse engineer and work with existing code, so developers should practice reading and analyzing code they didn't write.
Ultimately, most applications require manipulating data, so developers should be comfortable with a variety of databases. Developers should be able to write SQL queries and work with stored procedures. Although many data-dependent projects will have DBAs to fine-tune the database, developers should be comfortable with the basics of database design and performance tuning. Because "big data" is increasing in importance, developers should learn how to work with very large datasets.
Applications aren't useful until someone uses them, so developers need to understand what makes an effective front end. A designer may polish the look and feel, but developers should understand what works well on different platforms – thick clients still exist, and web applications and mobile apps present different challenges.
When you're at a job interview, your goal is to convince the interviewer that you can do the job. Part of the way you do this is by backing up the credentials listed on your resume with strong answers to the interview questions. Part of the way you do this is by simply appearing confident that you can do the job – nonverbal communication is an important contributor to the impression you make.
It used to be necessary to wear a suit and tie for every job interview. In tech today, that's no longer the case. Try to find out what's appropriate for the company before your interview. Wearing the wrong clothes will undermine your confidence; wearing clothes that make you look like you fit in will help the interviewer picture you doing the job. Whatever style of dress is appropriate, make sure you wear something you like and feel comfortable wearing.
First impressions form almost immediately and carry a lot of weight. Make eye contact, shake hands firmly, and don't be hesitant when you walk into the room. Sit up firmly in your chair – a chair with a firm back where you'll sit up straight will help you present better than a comfy chair where you slouch down. Keeping your feet solidly on the floor will help you maintain good posture. You don't want to be rigid, but don't be fidgety, either.
If you don't seem interested in the position, the employer probably won't be interested in you. Lean forward during the conversation, but be careful not to intrude on the interviewer's personal space. Avoiding eye contact makes you seem hesitant, but don't engage in a staring contest. Be aware of your voice: tone and speed can make you seem either bored or engaged.
Try not to cross your arms; it's a defensive gesture. It's better to keep your arms loose and to talk with your hands, as long as you don't wave them around crazily. It's also fine to smile; if you look like you're enjoying the topic, the interviewer will enjoy talking with you.
When you do practice interviews, practice your body language as well as your responses to interview questions. It may be harder to overcome habitual behaviors than to come up with answers for tricky questions, but presenting yourself well is an important part of succeeding at interviews.
Companies invest heavily in technology to protect themselves from cyberthreats: firewalls, antivirus software, and other tools to keep out intruders. Not all threats are external, however. Whether deliberately through malicious actions, or accidentally through online naïveté, company employees present the biggest threat to corporate information security.
Employees can misuse company computer resources in several ways that expose a company to risk. Use of the Internet for personal matters, like online shopping or visiting social media sites, can overload a company's computer network. This can mean companies invest money to upgrade a network when that isn't supported by business needs, and the money would be more beneficial elsewhere.
When employees bring adult content into the office, they can create a potentially hostile work environment that can lead to sexual harassment lawsuits. Employees who use corporate resources to download illegal copies of software, movies, or music also expose the company to lawsuits. In addition, these sites are also often infested with malware, so files brought onto company computers can risk introducing viruses and other dangerous software into the corporate environment.
Employees also misuse resources by removing them from the company. If files aren't appropriately protected, employees can remove confidential company information by emailing them or carrying them out on a USB drive. Employees may be able to take advantage of code bugs to escalate their privileges in an application, and view data they aren't supposed to be able to access.
Phishing and social engineering are still extremely effective ways for hackers to gain access. It's surprisingly easy to trick humans into sharing confidential data like passwords and company bank accounts. Employees also can accidentally expose company data if they lose a company laptop or access the company network from an insecure hotspot. The increased popularity of BYOD means that company data is accessed from devices the company doesn't control. If these devices aren't appropriately protected, confidential company information may be at risk.
Companies that want to protect themselves from these risks need to take a comprehensive approach to information security. They need to use the right technological tools; firewalls and antivirus software remain important. They need to have – and enforce – policies that govern the appropriate use of company resources; these policies should also govern the handling of company information on non-company, BYOD devices.
But the most important step companies can take is to train their employees to recognize online risks, and how to defend against them. Educated employees will help defend against these online dangers because they recognize they aren't only a threat to information security; information security failures that seriously damage a company are a threat to their job security as well.
Some apps on the iPhone free up our time; other apps, like great games, eat up our spare time. Either way, there are great apps that make our lives better. Here's what you need to be a great iOS application developer.
When it comes to developing apps for the iPhone, you have two choices: Objective-C and Swift. The newer language is Swift, and you may think that learning Swift positions you better for the future. But if you learn Objective-C, you can leverage the past better. There's more example code, more online help, more legacy code you can leverage if you start with Objective-C.
Knowing the right programming language is only a start. You need to know the ins and outs of developing for the specific platform. To develop efficiently, you need to become comfortable with the IDE and the Simulator for testing your code.
Too many would-be app developers think having a great idea for an app is enough. Don't forget that smartphones are, in reality, portable, powerful computers. The software engineering methods that make code maintainable and supportable on bigger computers are still needed if your app is going to be anything more than a throwaway. Don't just learn how to write code that compiles; learn how to write a well-designed program that will be able to easily grow and adapt, as iOS and the Internet change.
Programmers traditionally write a "Hello, world" application whenever they learn a new programming language. You may not want to start quite that small, but you probably shouldn't try to write your million-dollar idea as your first application, either. You'll learn a lot by writing several small, experimental projects first, and it'll be much less frustrating to solve technical challenges when you don't have the pressure of getting your big idea to work.
Despite the image of great developers cranking out code alone in the wee, dark hours, there's actually a great, supportive community of developers out there. You'll find questions answered in forums like those on Stackoverflow, and you can use and build on code from sources like Github. Don't overlook the possibility of learning from other developers at work, either. Lots of companies in all industries do mobile app development. Work for one of them, and you can get training on the job and learn from more experienced colleagues.