MENU service case
 Website construction website design Beijing website construction high-end website production company Shangpin China
We create by embracing change
360 ° brand value__
simplified Chinese character
Simplified Chinese English

Shangpin China Joins Hands with Beisheng Internet to Create a New Chapter in Website Construction

Type: Shangpin Dynamic Learn more

Programming achievements: how developers upgrade

Source: Shangpin China | Type: website encyclopedia | Time: November 10, 2011

Programming achievements: how developers upgrade


Introduction: How can an excellent developer become great? I still don't want to become great: how can a good developer become a good developer? There is no definite path from step 1 to step N. Alas, I don't even know what step N is. Those who can think logically understand that the lack of a certain route means that it will be a hard journey to go from novice to master. In the past few years, I have spent quite some time thinking about this problem. What's next? What can I do to become a fairly good developer from a good developer?

What is success like?

I do best when I have a clear goal and a measurable standard of success. For example, I want to run a mile in five minutes, which is easy to measure, and success is clearly defined. I know how fast I can run a mile now, and the Internet is full of suggestions and training programs on how to run fast. I can choose a training program and train hard. I am confident that I can finally reach the goal I expect. And this is very easy to measure. Every week I can know how far I am from my ultimate goal ( Beijing website production )

However, how do you measure whether you have reached the level of a "quite excellent developer"? In short, you can't. This goal, as mentioned above, is very subjective, very broad, and can hardly be measured. So, how do we define something that can be measured?

Rather than running a mile in five minutes, we can start by comparing ourselves as programmers and the programmers we hope to become. What experience does a five minute mile runner have that a ten minute mile runner lacks? What experience does a master programmer benefit from but a novice programmer lack? The key here is experience.

We have all had certain experiences that have improved our skills as programmers. We have learned a new language, and let us have a new way of thinking. Or, we have all meticulously refined the perfect design, just to observe the defects exposed in the harsh reality. So we become better programmers. So, some experiences give you new skills. Some of them are different models and can help you understand why this is so. It is these experiences that teach you, affect your thinking process, affect your method of solving problems, and improve your design. Conveniently, it is easy to measure whether you have had a particular experience. (It would be interesting to think of these experiences as achievements.)

Although it has taken me some time, I am not worried about my immeasurable goal of reaching the level of "quite excellent developer". If a developer can be distinguished by his experience, perhaps we have a clearly defined path towards the general direction of "excellent developers". I guess this path should be like this:

1. It marks the experience of growing from an ordinary person to a programmer

2. Choose a certain experience to pursue

3. The pursuit experience has been completed (achievements have been unlocked!)

4. Reflection on experience and in-depth thinking. [A]

5. Go back to step 2, this time to choose a new experience.

How to start the first step in a better way instead of crowdsourcing. Here I give some achievements in programming, loosely grouped. I will provide you with various ways to create your own ideas at the end of the article.

1. Learn a variety of programming paradigms:

Write a program in assembly language
Write an application in functional programming language
Write an application in object-oriented language
Write an application in a prototype based language
Write an application in logic programming language
Write an application with Actor model
Write an application in Forth language [C]
2. Experience the context of programming on different platforms:

I wrote an ordinary web application
I have written a common desktop application
I wrote about a common mobile phone application
I wrote about an ordinary embedded application
I wrote about a real-time system
3. Enhance your understanding of the modules commonly used by developers:

I have written about a network client (HTTP, FTP, etc.)
Write about a device driver
Write a B-tree database
Wrap an existing library to provide a better (more enjoyable) user experience
Write an application or framework to provide plug-in model
Written test framework
Written programming language
4. Let yourself know the wisdom of koans, katas and years:

Completed five code katas

For a language you want to learn, complete programming koans
Take a codetreat
Read SICP and complete all exercises
5. Open source programming:

Share code for an open source project
Patch accepted
Get submission permission in an important open source project
Publish an open source project
Refactotum implementation for an open source project
6. Learn by teaching others [D]:

Give an enlightening speech
Speak in a local user group
Speak at a conference
Teach a training course
Publish a Tutorial
Publish a constructive code review of an open source project
Write a programming book
About achievements

Now, let's continue our discussion for a while. Notice that every achievement is measurable. Each is a boolean: you are finished or not. For example, it is difficult to measure whether you have learned a functional programming language, but it is easy to know whether you have written a program in a functional programming language. The latter is objective, measurable and Boolean. This measurable intent applies to all of these achievements.

Admittedly, this measurability is not perfect. For example, when you make a speech at a conference and say that you can be generally competent, you are said to have won this achievement. But if you are reading this article, I suppose you want to become outstanding. You know it's very bad to claim to do it just to cross an item off the list. ( High end website construction )

Since we talked about improvement

Now that we talked about improvement, how would you improve this list?

This list is now used as a gist on github. You can fork it at will and add more achievements (make sure your achievements are measurable). Or fork it and mark the achievements you have conquered. You can also mark an item you are working on (for example, you can look at these forks: Justin Blake, Pierre Chapuis, Yann Esposito.)

Or make a comment: What experience has made you a better developer? And which achievement will you unlock next?

notes

[A] I cannot sufficiently emphasize step 4. In order to achieve almost every achievement, you should pause and reflect on these experiences before moving on to the next one. reflect. Ask yourself what you learned and take the time to write down these ideas. Better still, share it with others, and compare it with others who have also achieved this achievement, to see how you have learned.

[B] You can go to coderwall.com to see the achievement based model. It's very interesting.

[C] Forth is basically his own paradigm

[D] I suddenly thought of this sentence: "learning in teaching" - Paulo Freire
Source Statement: This article is original or edited by Shangpin China's editors. If it needs to be reproduced, please indicate that it is from Shangpin China. The above contents (including pictures and words) are from the Internet. If there is any infringement, please contact us in time (010-60259772).
TAG label:

What if your website can increase the number of conversions and improve customer satisfaction?

Make an appointment with a professional consultant to communicate!

* Shangpin professional consultant will contact you as soon as possible

Disclaimer

Thank you very much for visiting our website. Please read all the terms of this statement carefully before you use this website.

1. Part of the content of this site comes from the network, and the copyright of some articles and pictures involved belongs to the original author. The reprint of this site is for everyone to learn and exchange, and should not be used for any commercial activities.

2. This website does not assume any form of loss or injury caused by users to themselves and others due to the use of these resources.

3. For issues not covered in this statement, please refer to relevant national laws and regulations. In case of conflict between this statement and national laws and regulations, the national laws and regulations shall prevail.

4. If it infringes your legitimate rights and interests, please contact us in time, and we will delete the relevant content at the first time!

Contact: 010-60259772
E-mail: [email protected]

Communicate with professional consultants now!

  • National Service Hotline

    400-700-4979

  • Beijing Service Hotline

    010-60259772

Please be assured to fill in the information protection
Online consultation

Disclaimer

Thank you very much for visiting our website. Please read all the terms of this statement carefully before you use this website.

1. Part of the content of this site comes from the network, and the copyright of some articles and pictures involved belongs to the original author. The reprint of this site is for everyone to learn and exchange, and should not be used for any commercial activities.

2. This website does not assume any form of loss or injury caused by users to themselves and others due to the use of these resources.

3. For issues not covered in this statement, please refer to relevant national laws and regulations. In case of conflict between this statement and national laws and regulations, the national laws and regulations shall prevail.

4. If it infringes your legitimate rights and interests, please contact us in time, and we will delete the relevant content at the first time!

Contact: 010-60259772
E-mail: [email protected]