How to become a better programmer

2,013 views
1,920 views

Published on

Slides from the TYPO3 developer days 2009. The talk is about becoming a better programmer through constant learning, planning, etc.

Published in: Career
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,013
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide


  • I am really happy that this talk is on the track one and it starts immediately after the keynote! It is a sign for us all. This event is for developers and this talk is for developers. But before we start, I would like to change the subject. I have no idea why would you want to be a “better” programmer [click]. I think what you really would want to know is how to become a [click] super programmer. Let’s define our goals for this session.
  • I am really happy that this talk is on the track one and it starts immediately after the keynote! It is a sign for us all. This event is for developers and this talk is for developers. But before we start, I would like to change the subject. I have no idea why would you want to be a “better” programmer [click]. I think what you really would want to know is how to become a [click] super programmer. Let’s define our goals for this session.
  • I am really happy that this talk is on the track one and it starts immediately after the keynote! It is a sign for us all. This event is for developers and this talk is for developers. But before we start, I would like to change the subject. I have no idea why would you want to be a “better” programmer [click]. I think what you really would want to know is how to become a [click] super programmer. Let’s define our goals for this session.
  • I am really happy that this talk is on the track one and it starts immediately after the keynote! It is a sign for us all. This event is for developers and this talk is for developers. But before we start, I would like to change the subject. I have no idea why would you want to be a “better” programmer [click]. I think what you really would want to know is how to become a [click] super programmer. Let’s define our goals for this session.
  • I am really happy that this talk is on the track one and it starts immediately after the keynote! It is a sign for us all. This event is for developers and this talk is for developers. But before we start, I would like to change the subject. I have no idea why would you want to be a “better” programmer [click]. I think what you really would want to know is how to become a [click] super programmer. Let’s define our goals for this session.
  • I am really happy that this talk is on the track one and it starts immediately after the keynote! It is a sign for us all. This event is for developers and this talk is for developers. But before we start, I would like to change the subject. I have no idea why would you want to be a “better” programmer [click]. I think what you really would want to know is how to become a [click] super programmer. Let’s define our goals for this session.
  • So what is it all about? This talk is for those who want to move to the top 10% developers on this planet. Not less. This talk will tell you how you can become the best. You can achieve that and I am going to show you how. But you must realize that just listening is not enough. You’ll have to do a lot of work to become a super programmer.
  • Why would you want to improve yourself and become the best? There are many reasons that I can imagine and you will definitely have your own. For example, you may want to be remarkable and not ordinary. You may want to achieve financial wealth. You may want to become important for your employer so that not only you need your job but also your employer needs you. There are lots of reasons and I am sure you know them if you are here.
  • The nest question is when are you going to do it? Is it next Monday? Or is it the 1st day of the next month? Nope. You are going to start right now. Unless you do it now, you will not do it. You must tell yourself: “I am the best now and I will be the best forever!”. If you do tell this to yourself, you commit yourself to a hard but pleasant work and you will achieve outstanding results. And you really can start doing it now because this event provides you a lot of opportunities for this.
  • The question you should be asking now is: “How?” This is what this session is about. I’ll tell you how. You’ll get these slides together with the text of my speech from my web site. So do not try to remember everything but focus on the course and understanding of these ideas. Before we go I must tell that the next slide will be a little shocking. Do not pass out, please!
  • [7190740] A true professional never stops learning. This is the very first thing you must remember if you want to become the best. One the day when you stop learning, you die as a professional. Use every chance to learn. Even when you write the code, ask yourself: “How can I make it better?”, “How can I make this trivial ‘for’ loop to run faster?”, “How can I make these 20 lines of code into 15, make them more clear without loosing the functionality?”. When you ask yourself, your barin will seek answers. When it becomes your habit, you will learn new stuff automatically when you do anything. Remember: never stop learning if you want to be the best! If you stop, you die as a professional. Never stop learning!
  • When you learn, you must have a system to save your knowledge. Our memory is limited, so you must not assume it will keep all your knowledge forever. Fortunately, technology comes to help. There are many programs (free and paid) that can store the data for you. I decided to use a MediaWiki for my personal knowledge base. It is easy to edit and it can be organized the way I want. When I need to recall the information, I either use a search box or [click] navigate to one of the links on the main page. Investing in a personal knowledge base will save you a lot of time and money. Even if you invest $20 to a paid software, it will pay back a lot through the saved time and efforts. Do that. It really helps!
  • When you learn, you must have a system to save your knowledge. Our memory is limited, so you must not assume it will keep all your knowledge forever. Fortunately, technology comes to help. There are many programs (free and paid) that can store the data for you. I decided to use a MediaWiki for my personal knowledge base. It is easy to edit and it can be organized the way I want. When I need to recall the information, I either use a search box or [click] navigate to one of the links on the main page. Investing in a personal knowledge base will save you a lot of time and money. Even if you invest $20 to a paid software, it will pay back a lot through the saved time and efforts. Do that. It really helps!
  • Learn how to find and extract the information. For example, go and look to TSRef and “TYPO3 core API”. Do not try to memorize them, they are too big. You need your memory for other stuff. Just learn how it is organized and what is there. So next time when you need to convert a text field to the rich text editor, you will remember when to learn for the exact instructions. This will save you hours and make you much more effective. You will be able to find answers in seconds by looking in the proper place. This is a part of being a super programmer.
  • [5198862] The next important skill is to learn how to estimate your working time. You must be able to tell how much time it will take you to do the task. Most people cannot do it. There is an uncertainty in this and it is normal. The problem is that most people can tell even closely how much it will take to perform the task. If you can, you are one of those rare people who can do proper time estimates. Most people fail and give less time than they report later. Your task is to learn how to provide better time estimates. Usually if you compare your estimates with real results, you will find that you can apply a multiplier to make them match. Normally it is from 1.5 to 3 for most people. Try that. You will be more and more accurate when you do it. Also remember the Parkinson law: “The job always takes all allocated time”. Do not fall into this trap and do proper estimates. If you finish earlier, it is to your advantage.
  • [7377603] Focusing is a skill that helps you to become the best. Focusing means that you give 100% of your attention to a single task. People are single–threaded, they can’t do two tasks at a time. So you cannot browse the web and write code at the same time. If you frequently switch between tasks, you will lose track of things at each switch and have to get your ideas back each time. This is bad and not efficient. Therefore you do one task at a time.



    Here is an example. Talk to your boss about it. Agree with him that he does not come to you with questions. Agree that he sends you mails with questions and you reply to them today. Set your mail client to fetch mail three times a day: at 9 a.m., 1 p.m. and 5 p.m. Dedicate time to read and answer mails and avoid interruptions.



    Another thing that you can do is to set a DND status in Skype (or your preferred instant messenger). Just make sure you can focus. The rest of the world usually can wait until you are free.
  • How to become a better programmer

    1. 1. How to become a better programmer by Dmitry Dulepov
    2. 2. How to become a better programmer by Dmitry Dulepov
    3. 3. How to become a super programmer by Dmitry Dulepov
    4. 4. What?
    5. 5. Why?
    6. 6. When?
    7. 7. How?
    8. 8. How?
    9. 9. Learn or die!
    10. 10. Save your know how!
    11. 11. Save your know how!
    12. 12. Information extraction
    13. 13. Better time estimates
    14. 14. Focus!
    15. 15. Ask for feedback
    16. 16. Never stop! Be the best!

    ×