Shortcut to seniority
Home
Go to main page
Section level: Junior
A journey into the programming realm
Section level: Intermediate
The point of no return
Section level: Senior
Leaping into the unknown
                    Go to main page
A journey into the programming realm
The point of no return
Leaping into the unknown
Time management is a great way of measuring how productive you are, to make you feel less stressed, to get more things done, and to discipline yourself.
First step is to know how you spend your time. Keep a time log for a week, and evaluate the results.
As a programmer, you’ll have to provide estimates to your team lead, to your manager, or colleagues, regarding the task you’re working on.
In order to estimate it properly, you should at least be aware of some estimation techniques.
For this, there are three definitions to be followed:
The real purpose of the estimation is to make a proper project management planning, and to allow the stakeholders to make commitments based on real data.
If commitments cannot be fulfilled, the team leader / project manager should be informed, and based on the priority of the task and the priority of any other tasks dependent on it, the person in charge can replan the time required to finish the task, re-schedule it (change the due date), assign more people for the task force, request overtime, etc.
Setting realistic goals will make you feel good about the progress you make, and will increase the chances to complete your tasks. Unrealistic goals will only set you up for failure and will increase the stress.
The act of delegating means assigning the responsibility of a task to someone else.
You should first identify the tasks that other people can do and then select the appropiate people to pass them to.
Yes, it’s easier said than done, but it’s worth it. Sometimes, we struggle to start a task that seems quite big – a solution there would be to break it into smaller tasks. Another one would be to remember yourself what you try to accomplish.
You cannot manage your time effectively without setting some priorities.
What is important for you? What is urgent and needs to be taken care of right away?
The base rule here is to categorize your activities into four quadrants.
                                            You should create a to-do list and prioritize your work.
The items can be ranked by categories (rankings such as high, medium, low), numbering (1 being the least important, 10 being the most important), or any other priority system that works for you.
After you have a prioritized to do list, the goal is to mark off the highest priority items (not the most items!).
Focus on what matters.
Learn to say no when you are overcommited, or under too much stress, or when the task does not align with your priorities. The more you say no, the more chances there are to say yes to something that really matters for you.
Everytime you say yes to others, you say no to yourself.
Sometimes, you get distracted, or people will need you to help them with something.
Try to follow a few rules, especially in busy days:
Work isn’t everything. Schedule some time to relax, to have a walk in the park, to read a book, to work on a side project or on a hobby, to learn something new, or anything else that makes you happy.
Be careful to keep a healthy work-life balance. Otherwise, you’ll suffer from something called “Burnout”.
Burnout is a reaction to stress, and it has a great impact on you: both physically (eg. Headaches), and emotionally (e.g. exhaustion, feeling drained and out of energy, having difficulty to concentrate).
Burnout can also lead to depression, so be very careful and take it very seriously!
A high stress job will not always lead to burnout, but some individuals are at a higher risk than others.
Main cases of burnout are:
| Cause | Reason | 
|---|---|
| Unreasonable time pressure | Short deadlines | 
| Lack of communication and/ or support from managers | No support from managers or communication problems | 
| Lack of role clarity | Not knowing what’s expected from you | 
| Unmanageable workload | Simply having too much work on your hands will make you feel overwhelmed | 
| Unfair treatment | Being treated unfairly at work (favoritism, unfair compensation, etc.) | 
The following things are worth looking out for, as they can be signs of early burnout:
| Action | Effect | 
|---|---|
| Relax | Listen to music, go read a book, take a walk, visit your friends or family, anything that makes you relax and forget a bit about work. | 
| Find a hobby | Maybe you don’t have hobbies, you don’t allocate time for them, or you don’t know what you’re passionate about – but hobbies are important, so pay attention to what you love doing and keep doing that. | 
| Unplug from technology | Try to stay away from social networks and other time-consuming activities that you do from your pc, tablet, or phone. | 
| Rest | Sleep is important and it replenishes your resources. Don’t underestimate sleeping! | 
In case you’re experiencing burnout, you should do the following:
| Cause | Effect | 
|---|---|
| Exhaustion | Feeling tired all the time | 
| Lack of motivation | Not feeling enthusiastic about anything anymore | 
| Frustration and other negative emotions | You feel like what you’re doing doesn’t matter | 
| Difficulty to concentrate | You feel like it’s hard to pay attention or concentrate | 
| Less communication or problematic communication with others | You have more conflicts, or you talk with others less than usual | 
| Not taking care of yourself | You drink too much, not eating enough or eating too much junk food, not getting enough sleep, etc. | 
                                            This skillset is important not only in programming, but in real life as well.
                                            Life is short – make the most out of it !
                                        
                                            The best advice I can possibly give to you, is to work on your discipline.
                                            
                                            Make short and long term life goals – and follow them. Small changes will lead to success – start with the first step.
                                            You accomplished a goal? Great. Find a bigger goal. There’s no end, because winners never stop.
                                            There’s a saying: “I didn’t come this far to only get this far”.
What makes you happy?
                                            Set a goal, and commit to it. Discipline is the most important thing in achieving your goals, and is the key of success in all aspects of life. It’s about having the ability to control your impulses to stay focused, no matter what.
Focus on your dreams, on your studies, on your goals. Focus on becoming a better you.
                                            Just don’t forget to dream big. Don’t settle for small achievements. Chase greatness and you shall have it.
                                            At each moment in time, before every opportunity, before commiting to any decision, ask yourself: “Is this helping me reach my goal? Is this helping me become the person I want to be?”.
Don’t be afraid of failures. Most of the people are afraid of failure – But you should embrace it.
                                            If you fail, it means you’re trying something new, and you’ll learn from it, and grow stronger each time.
                                            Failure is an experience which leads to wisdom, and it’s the stepping stone to success. You’re supposed to fail. Go fail as much as possible.
Stakeholders: People involved / interested in the topic, that have influence or power over it.
KISS (Keep it simple, stupid), DRY (don’t repeat yourself), YAGNI (you aren’t gonna need it).
Acceptance criteria – conditions that a software must satisfy to be accepted by the user/customer.
Appendix B contain a list of behavior questions.
Appendix C contains a list of questions that the candidate may ask regarding the company.
Will be discussed in detail in Architecture chapter, Quality attributes.
Performance is the ability of the system to execute actions within a certain period of time.
Availability is the ability of the system to be fully or partly operational.
Will be discussed in detail in Architecture chapter, Quality attributes.
Security is the ability of an application to be secure.
Usability refers to how easy it is to use or to learn the application.
Security is the ability of an application to be secure.
Usability refers to how easy it is to use or to learn the application.