Developer Tips

1) Make a plan on what to work on, and a schedule of when you will work on it.

2) Take a 5 minute break every 20 minutes, or whenever you start to feel fatigued.

3) Don't let the 5 minute break go over into more time.

4) Minimize distractions, but if something comes up, work on the new thing, but recover quickly back to your plan.

5) Take notes on everything, boil it down to the essentials that you can study and memorize later. But if for instance taking notes at a live course, its impossible to take notes on everything that is said or written on a blackboard. Just take a few notes and focus on listening to get an impression that you can flesh out later after the course.

6) Try to memorize as you go, to minimize later review. Take notes on what to memorize.

7) Exercise but try to minimize its impact on your ability to study. Minimize commute time to gym.

8) Keep a list of priorities and follow your plan, don't wander into other topics. Otherwise you will never finish your task, never complete your goal.

9) It's difficult to start work, or to switch hats, but once you start it gets easier to continue. So just start and have faith that you will feel like working in a short time.

10) "There's nothing to it, but to do it."

11) Speed up reading or skim over content that is lightweight. Slow down your reading, and repeat reading sentences for more important content.

12) Dont let stress cause you to skim things, you will miss important information. Force yourself to slow down to a speed at which you are best at reading.

13) If you procrastinate, it will spill over into other scheduled activities, or activities that you didnt plan for. This is good reason to eliminate procrastination altogether.

14) Give yourself deadlines to complete things, it will motivate you to try harder to meet your goal on time.

15) Limit the amount of entertainment that you engage in. Use entertainment as a reward for continuing to work.

16) Maximize your productivity by identifying ways to improve your abilities, ie: take notes on computer, keep books on a kindle, organize better.

17) Find the best way that you learn: reading books, taking online courses, attending live lectures, collaborating with others.

18) Find the best time for you to work: morning, noon, night, late night.

19) Reduce ways that cause sleepiness: too much food at a meal, alcohol, simple sugars and carbohydrates instead of proteins, not enough sleep, too much exercise.

20) Periodically and regularly review what you have studied, and quiz yourself to keep memorization fresh. Do this over time instead of all at the end, or it will be too hard to retain.

21) Exercise slows down your perception of elapsed time, while studying and coding speeds up your perception of elapsed time, if you enjoy it. One makes you appreciate your time spent, the other saves you from the tediousness of a long day. Don't resent this, accept it.

22) Memorizing facts may make you look competent, but in reality its purpose is to provide instant knowledge on a topic or technique, because looking through notes slows you down. But the tradeoff is time spent memorizing facts or techniques is lost, so make sure ROI of the thing memorized is worth it.

23) "Always be coding" - always find ways and times to write code, to improve your knowledge, and to add to your toolbox. To make real what you have only read about.

24) Pick specific times in the week to review notes or topics of interest. The more time you spend dwelling on a topic, the easier it is to recall it, use it, or talk about it. If you schedule time to do this, you wont neglect and forget about them.

25) "Master of one, not a jack of all trades" - Pick a few topics that are important to you as a developer, and focus on mastering them. Continue to focus on these few topics until you feel that you have instant recall of them. This may take 3 months, 6 months, a year, or some other time increment. Once these feel solid to you, pick a new set of topics and repeat. Give yourself permission to deviate from time to time to other topics, but always return to those you are focusing on. And work may make other demands on your time that pull you away from your focus groups, but then make all of your other time spent on your focus group. This is how you become the goto person on a topic. This is how you become an expert on a topic.

26) "Optimize everything" - Maybe not everything, but when you can optimize some task, you definitely should do it. Saved time == writing more/better code. IDE shortcuts reduce coder effort, which improves productivity. Better IDEs have better searching, better editors, better integration with language features.

27) Only do something if you have a justification for it. Everything you do should be logical. If you have a feeling, if you have an intuition about something, you shouldn't act on it yet. That's instead a clue that you that you need to find more conclusions before you make a decision about it.

28) Do lots of research before you go to a peer or a senior developer for help. Tell them everything that you have tried but which failed. Try to anticipate what they would ask you to try, so that you will have already tried those things before going to them. This will make your peer or senior developer much happier to know that your issue is relevant rather than being something you should have already been able to resolve yourself.

29) Treat other developers like human beings. They are fallible, and so are you. Avoid competing with people, focus on collaboration. No one wins in a competition, because the winners are resented, and the losers lose morale. Compete with yourself, but collaborate with others.

30) Make sure that you have a life outside of work and study. You only have this one life to live, and you have a responsibility to other people in your life.