Vision and dreams are the blueprints of soul and achievements.
-Mohammed Ahmed F

Showing posts with label Internship. Show all posts
Showing posts with label Internship. Show all posts
10 Mistakes done by the developers

10 Mistakes done by the developers

Learning from the top 10 mistakes developers make

I present to you a list of a few common mistakes new devs (and sometimes even experienced) usually do. I believe that learning from these mistakes would be of some help to you. So, here is my pick of the Top 10 mistakes.


10. Trusting user’s input
Never trust the inputs provided by the end user. Also don’t blame them, mostly they do it unintentionally. We all make mistake mistakes. This might not be of great concern to them but a piece of bad data could potentially bring down the application or cause compliance-related issues. Apart from naive non-technical users we also have users with a certain level of technical know-how which they could potentially use to circumvent the system and get their work done. These are the users who pose a threat to your application and application needs to be safeguarded against the malicious activities.

The only option to save from landing into trouble at a later stage is to build a strong validation with self-explanatory and human understandable error messages. Cryptic messages hardly help the naïve user accomplish any task. Validation should be done in both user interface and database level just to be sure that even if by some means front-end validation was turned off the application still does not accept trash values.

9. Manual unit tests
Code changes that you do, needs to undergo unit testing and further rounds of Quality Assurance testing. All tests or at least a few minimum number of tests need to be done to ensure that the changes you made in one unit of code do not have side effects on the others. This is a necessary evil. Having automated unit tests and integration tests save you a lot of manual efforts in validating side effects of the changes.

8. Skipping documentation
The evilest thing that you can do is skipping documentation. Off course you can read the source code and try to understand the functionality. Reverse engineering the functionality from the code is a daunting task. This is good enough for a tiny functionality but definitely not a go for the entire application.

"Requirement changes, code changes and more frequent - members of development team change."

Knowledge about the application might not be transferred 100%. Sometimes people just forget. You need not create dozens of documents, create only a few like requirement specification and technical document and make sure to keep them updated, this should be a part of a stringent process which needs to be followed at any cost and must be accommodated in the project planning. This would help at later stages when the application is in support/maintenance phase.

7. Forgetting about Audit and Error logging
Not all end user/stakeholder would be bothered about cross-cutting concerns like audit logs and error logging. A stakeholder would simply come with a one-liner requirement which you would have to drill down till it becomes good enough to work on and deliver a solution addressing the stakeholder’s problem.

Data change audit and error logging might never be a part of user’s requirement but is implicit that it needs to be maintained. One fine day user would simply approach support team and ask them to provide data related to access and roles or some business critical data required for compliance or audit purpose and then you would have nothing to share.

Error logging is also crucial, you might do defensive coding but you never know what might fail in such cases effective error logging comes in handy. Monitoring error logs and trying to work on resolving recurring error would help in making your application more stable.

6. Careless use of privileged access
First and foremost, full control and access should never be provided. The system cannot protect itself from malicious activities if you leak the superuser or privileged account passwords. Risks involved in the reckless usage of privileged access should be a part of learning for inexperienced new members of development or support team. There might be times when you would have to make a modification to production database and having privileged access can lead to many issues.

“With great power comes great responsibility”

I remember once unintentionally deleting data from the master table and the query was auto-committed. I went cold but soon realized I had taken backup of the data, phew! It is always good to provide limited access for data modification via an interface which keeps data backup. One should also note that this tool should also be capable of doing bulk operations, else you will find yourself doing manual updates for a very long time.

5. Configuration menace
Scattered configurations in different files and database is a menace. Change in a configuration which affects multiple applications would have to be replicated in many files and databases. This probably is not much of an issue if you have a handful of applications but would soon become an overwhelming task when you have hundreds of application in an enterprise environment. Moreover, naked passwords in config files are yet another threat. If configurations are database driven then it reduces the later hazels also safeguards sensitive configuration entries.

4. Hard-coded time bomb
Hard coding values in the program are definitely a bad practice. Strange issues could occur because of the hardcoded value which silently sits there in your source code. One such incident is when you make use of hard-coded values for some maximum number, assuming that the maximum will not be hit. Such cases could take months or years to raise an error. Combined with no error logging and you will be in a very bad situation. Try to avoid hard-coded values. Move them to configuration variables if needed or try to completely avoid situations which would require them.

3. Prevent Burnouts
Working continuously without any breaks will just lead to burnouts. You should always take breaks at regular intervals. When you are overworked even doing simple things take a whole lot of time.

Set small achievable milestones for yourself and don’t forget to reward yourself for it. Chocolates, cakes, quick games just about anything that makes you happy and feel free. Learning how to prevent burnouts will make you more productive.

2. Code / Suggest for building resume
Having a strong resume with a listing of all new technologies is great but don’t just do it for inflating the resume. Learn them but use them only if you see the benefit and high maintainability over the existing things. Sometimes adding new tech options would not even be required.

Increasing the complexity should at least pay off in providing ease of maintainability. So I strongly believe that when you suggest some solution, check if it makes the application easy to maintain and makes everybody’s life easy.

1. Finding comfort zone in just one technology
Being a ninja in one technology is awesome and is always beneficial. But don’t stay limited to one technology. Try to expand your knowledge, sure there is a learning curve but challenging yourself helps you become a better technologist – a person who uses various technologies as effective tools and provides business enabling solution.

Times change, technology may become obsolete but your learning should never stop. Always try to explore new technologies and try weighing the pros and cons before using it as a solution for solving a problem.

I would like to hear about your views on these points. If you have any experiences to share, go ahead and post a comment. Remember…

The only real mistake is the one from which we learn nothing. ~ John Powell

This article was originally published on Skill Hive Blog

10 things to shape yourself

Every day, and in every way, we consciously and unconsciously analyze everything about everyone. This is part of being social; it is part survival; and it is how we size people up to establish some level of predictability about who and how people are. This is a natural and nonstop process we experience with everyone we come in contact with. As business leaders, managers and colleagues, we pay attention to everything about a person, to gauge who is successful and driven, whom we want on our teams and whom we would prefer to avoid. Here is a list of 10 subtle things we get judged on:


1. Appearance

The very first thing to notice about anyone is his or her overall appearance -- in a bigger picture sense, before we pay attention to detail. The first things others notice is gender, race, height, weight, hair and clothing, all of which create deep psychological assessments about us in others. Meeting someone for the first time is like going through a TSA checkpoint: We are immediately sized up from the second we come in contact. To make a good first impression, make sure you’re well-kept, nicely dressed and clean, and that you smell good and smile.

2. Handshake

Many believe handshakes reveal everything about a person. Through a handshake, people can sense if we are confident or insecure. Those with a natural confidence shake hands with a balanced and kind sense of authority. Too strong a handshake, however, reveals the need to dominate, while a weak or limp handshake reveals insecurity and/or frailness of personality.

When making a first impression in an interview, or meeting a new customer or salesperson, we need to recognize that our handshake is often a litmus test right from the start. No one wants to start a new relationship with a weak future. Find a balance among the factors of intelligence, elegance and confidence when shaking someone else's hand.

3. Teeth

Our teeth function like our business card. Teeth reveal everything, from social status, income level and hygiene, to our overall state of health. Attractive, successful people are associated with pearly white Hollywood smiles. Teeth expose things such as our age and gender and the type of personality we have, all of which have a huge impact on the first impression we give.

Bright, white teeth make people look more successful, more employable and appealing. Pretty, white, straight teeth also make people appear five years younger, so head off to get that whitening treatment to improve the first impression you give.

4. Nail-biting

As a psychologist, one of the first things I look for is the condition of a patient’s fingernails. Nail-biters, or those who pick and chew the skin around their nails tend to have anxiety issues and issues with perfectionism. Perfectionistic, nervous people are viewed as having difficulty relaxing and performing tasks at a normal pace.

Nail-biters tend to have lower levels of frustration tolerance when they do not meet their goals. They also experience higher levels of boredom when not deeply involved in a task. To avoid showing your nerves, work on staying busy to avoid chewing on those nails. Nail-biting is essentially a form of self-soothing. Taking a little natural GABA supplement (GABA being gamma-aminobutyric acid, a neuro-transmitter in the brain) can help calm that nervous energy.

5. Posture

Posture communicates a physical and emotional response to positive and negative stress. When we feel confident, the chemicals in our brains prompt us to stand up straight and arch our back. The more confident we are in ourselves, the taller we stand the major portion of the time. However, when we feel timid, nervous or fearful, or don’t want to be the center of attention, our brains react with the impulse to withdrawal into a fetal-like position.

To make a better impression, keep in mind that we can use our posture to get us out of negative stress by holding ourselves as if we have all the confidence in the world.

6. Laughter

Laughter is judged and experienced as relaxing, natural and lighthearted, or as annoying, overcompensating and nervous. When laughter is natural and appropriate to the situation, it eliminates tension and boosts morale. However, when it comes from a disingenuous place, it creates annoyance and division between people. 

Annoying, needy or attention-seeking laughter may be judged by others as off-putting. So, be sure to laugh naturally, and with a sense of composure, so people enjoy your company.

7. Tone of voice

When it comes to communication, it is not just our words which have an impact, but also our tone of voice. Whether one's voice is booming, screechy, mousy, raspy or demure, it speaks volumes about our personality. Our voices subtly communicate our true emotional state, even when we’d rather it not. The subtle wavers in our voice communicate that we’re sad or nervous.

When our voices get louder, our words more blunted or pointed, that communicates that we’re angry. This deeply impacts how other people perceive us, maybe even more so than our physical appearance. That is why it is often said that, it is not what you say but how you say it that makes all the difference in communication.  For this reason, think about how you're speaking before you actually do.

8. Eye contact

When there is too much eye contact it can make others feel they are being stared or glared at, making things awkward or threatening. Too little eye contact is interpreted as insecurity or a lack of honesty. Natural, healthy, well-received eye contact lasts no more than six seconds.

It is important to break contact occasionally and look away -- to pause as we express something. It's also important, when listening, to look at the person speaking with consistency, as that shows that we’re engaged and listening. The most important thing to do when we converse is smile. Smiling changes our eyes in a positive way.

9. Punctuality

Being on time communicates responsibility. We spend a considerable amount of time keeping track of other people’s time, judging them to be early, on time or late. We use units of time to describe ourselves and others. For example, describing someone as “always late” may imply a judgment, that we see that person as disorganized, flaky, disrespectful or immature.

To be punctual is a positive attribute and a reflection of many admirable personality qualities, such as responsibility. For this reason, be on time and/or actively communicate your ETA. Others will appreciate the gesture.

10. Handwriting

If we have to write something by hand at work, or we ask that of a prospective employee, the handwriting that results will give us some great insight into who we or they are. It is believed that the size of our letters reveal whether we are shy or outgoing. Small letters which do not reach the top line are indicative of a timid or introverted personality.

When we write with large letters which go over the top line, we are seen as more outgoing and confident. Those who put a lot of space between words are seen as preferring to have more freedom and independence, while those who put very little space between letters are seen as preferring to be around others and disliking being alone. When we dot our I’s and cross our T’s, we are seen as detail oriented, and if we apply a lot of pressure to our pen, we are seen as confident, whereas if we write lightly, we are viewed as more sensitive and empathic.

Internship teaches you professional skills

Benjamin Franklin once said – “Tell me and I forget. Teach me and I may remember. Involve me and I learn”. Internships are a great opportunity to learn application of the theory learnt in school and college. It allows you to cultivate some of the crucial skillsets of work-life no books can teach. Here are some professional skills you will develop during an internship.


Formal communication

As a student, you develop your own jargon which is carried forward to your workplace. The work environment is a formal setup. Hence, your language and grammar should be appropriate. An internship is an eye-opener before a job. It teaches you how to convey your point correctly.

Networking

During an internship, you get to know professionals in your area of interest. They could be your colleagues at the office, fellow-interns, vendors, or agencies. Your friends, relatives, and professors are a part of the network too. But the real work lessons can be learnt from a professional set-up. You learn to build long-term relationships.Your network is a valuable learning source. It is an important tool that comes handy throughout your professional life.

Work-ethics

College life makes a student complacent. To have a successful career, you need to inculcate some values like right attitude, hard work, and discipline. When you are marked late, you realize the value of punctuality. When your mentor points out the cut, copy, paste in a weekly report, you know your approach was wrong. As internships offer a glimpse of your working life, you realize the importance of these values and work-ethics.

Balancing work-life

To be truly happy and satisfied in your personal and professional life, you must learn to balance both. As you move up the career ladder and responsibilities increase, personal time becomes dearer. There is an important family function to attend at 6 pm and you have to submit aPowerPoint presentation or a report by 6.30 pm. Situations like these are common in the work place. Only when you face these situations do you learn to manage both aspects of your life.

Valuing deadlines

During college, the deadlines are either those set by the teachers or the ones you think are important. In the workplace, deadlines are set in stone. Project submission deadlines are fixed and cannot be changed. Especially, if the deadline is given by your customer or a third party. If you have delayed finishing your work, your mentor is likely to make you sit through the night to finish it. A forcefully cancelled movie or dinner is all it takes for you to value deadlines.

Problem-solving

At every stage in life, you have to find solutions. But when solving a work problem, you are required to operate with some restrictions. These limitations are company policies, beliefs, and values. They could also be client’s expectations. Internships are an insight into a world of problem-solving within boundaries.

An internship teaches business etiquettes in a real-life situation. The experience gained during an internship gives you confidence about your chosen career. You can set realistic targets based on your learning and choose to specialize further in your area of interest.

This work is produced by Simplus Information Services Pvt Ltd. Customer engagement through content.

Post Courtesy: Yahoo!