Apache Zeppelin Extra Story - Gains and Losses of Participating in Open Source

background

I often do some business development in the company. Due to various personnel flow and other issues in the company, the quality of the code is also uneven. The final problem is that it is difficult to maintain. In the early stage, I thought about optimizing the code, but most of the time the demand is The reverse date, so I no longer want to optimize the code, and I have the idea that I can run it, so I basically sew on the original code, so I am more and more indifferent to this kind of code, but I feel that it will continue like this for a long
time , it is inevitable that my ability will become worse and worse, so I want to look at some open source projects

Benefits of participating in open source projects

(1) Avoid falling into the above code confusion, so try to participate in open source projects. Open source codes are relatively standardized and of high quality. Therefore, after getting familiar with the company's projects, it is recommended to introduce some open source in combination with your own work. While the project comes in to improve your work efficiency, learn about high-quality open source projects

(2) To participate in an open source project is actually to be familiar with the process of a new project, which is not much different from the company's internal projects. In fact, only when you first enter any project, you learn the most. After this project, what can be learned from this project is limited, which is equivalent to getting familiar with a new project, but the quality of the project code is better

(3) Open source projects generally have a relatively large amount of work, which may also involve some algorithm-related content, such as:

Application of LRU Algorithm in Apache Zeppelin

For students who often do business, you can feel the actual algorithm used in the project, not just business logic
(4) Participate in open source projects, you will understand Semantic Versioning and Linear Commit History, and know the meaning of software or project release versions , and the specification of some commit information, especially top-level projects, which are more standardized, and free code review, which is generally difficult to obtain in companies, most of which are for completing business, and rarely go to follow these

Then there is the design document. If you want to introduce a new function, you may need to write some detailed design documents.

insert image description here

insert image description here
insert image description here

(5) Gain a sense of accomplishment or some bonus points for job interviews, etc.

(6) Improve your English ability. Many people think that their English ability is not strong and they cannot understand English documents. To be honest, it may be a bit uncomfortable in the early stage. Reading English documents, especially the English documents in zeppelin, will be very uncomfortable at first. , but after reading too much, there are only a few words left that I don’t understand, and then I use translation software to solve them. I can see the communication about a PR below, and I communicated 40-50 times before and after. The whole process is in English, but I understand it In fact, it is not that complicated. When there are only a few words that I don’t understand, I will look them up, and then how to reply to others. Generally, it is some simple conversations. is perfectly fine

insert image description here

Disadvantages of participating in open source projects

It's not bad, it's just some experience.

(1) How to choose the right project, remember to choose the language and field you are familiar with, and then explain why you do this later, for example: you are familiar with java, but you choose an open source project developed by python or go, that may Discourage yourself in the early stage, unless you want to learn a new language

(2) Only with the language and field you are familiar with, the construction and deployment of the project will be relatively smooth. Because the workload of the open source project is very heavy in the early stage, how to make the project run may require a lot of configuration, etc. If Not familiar with the language, will be very uncomfortable

(3) The initial investment will be huge. Basically, you may spend a week deploying and running the project, and then spend another week getting familiar with the project and the code before you can improve the functions you want to do. After the early stage, the follow-up is actually very easy Yes, it is equivalent to our own new participation in a project. It will take a lot of time to get familiar with it in the early stage. Suddenly one day it is done, then you will be able to get through

(4) It is also very necessary to choose a familiar field, otherwise you can only modify some small bugs on open source projects, and it is difficult to make constructive suggestions. Even if you are not a user of the project, even bugs may be lost. If you can’t raise it, you can only see other people raising bugs, others fixing bugs and raising PRs, unless you participate in a project with a clear plan, put some functional planning content in it, and let participants participate, otherwise it will be very difficult to find bugs, No new features can be proposed

insert image description here
https://github.com/didi/KnowStreaming/issues

The KnowStreaming project is very good, and the official staff has given a lot of issues so that everyone can participate in it, without the need to find bugs or think about functions by yourself

(5) Open source projects are actually not so mysterious or magical, or so unattainable for everyone

(6) Participate in an open source project with high community activity and try to find acquaintances, otherwise your PR or issue will not be followed up so quickly. Once one of the commiteers disagrees with your PR, you will feel very uncomfortable

Guess you like

Origin blog.csdn.net/weixin_43291055/article/details/131438722