Welcome nuggets friends to visit myPersonal blog, original link:Wensibo. Top / 2017/08/31 /…

It has been more than a month since the last article. The reason why I haven’t updated my article during this period is not because I am lazy, but because I am in internship. In July, I came to the current company as an intern. I did not do well in the written test, and my performance in the interview was not satisfactory. However, I was very grateful to my boss for giving me the opportunity to practice in the company. I also learned a lot during my internship for more than a month. This article will record my learning process today.

The difference between school and company

When I came to the company for internship, I was no longer a student, and others would not take me as a student, so I needed to keep up with the pace of the team in many things. What we learned in school can not be said to be useless, but there are many mismatches with the actual company. We need to apply the knowledge we have learned in practice, rather than simply on paper. From another point of view, this is why enterprises like to recruit students who have certain project experience. Fortunately, I had some project experience before. Although it was not a big project, these experiences were enough to cultivate one’s ability to finish work and solve problems independently, which is difficult to learn from textbooks, but it is necessary to accumulate in practice. We all understand the above principle, but there is no egg, LET me give you an example to illustrate this problem. One of my jobs was to read an old Eclipse project and port it to Android Studio, which you might think is easy, but Android Studio is powerful enough to solve this problem. To be honest, I thought the same at first, but when I read the old project, I felt like I was back in ancient times. The reason why I felt such a sigh was not because the code was not written well, but because the whole project lacked certain architectural ideas, resulting in an Activity file with 600~700 lines at every turn. Some even reach 1000 lines, although the logic is not complex, but performance is definitely compromised, and if the project is taken over by someone else later, or needs to be extended later, then the open closed principle (open for extension, closed for modification) will be completely violated. Also for this reason, I’m going to refactor the whole project, and the reconstruction method is I often use MVP in project design architecture, although this architecture is still the place where he criticized (code quantity increased, also will be more complex logic), but it is still a good choice. With that goal in mind, I got to work on it, and refactoring was easy because of all the previous projects I had built up.

Skills and norms that need to be developed over time

skills

To do program development, experience needs to be accumulated slowly, and skills are not perfect all of a sudden, need to go through the test of the project to slowly become a giant, here I list the most important development skills in my opinion.

Document reading ability

Many large companies are in the habit of maintenance document, and the number of documents and quality also is very good, as a newcomer, to the team for the business are not familiar with, is not the first time to ask the boss ask colleagues, and should read the document by yourself, of course have to admit that I started out as a more stupid, encounter problems, the boss asked my colleague ask me, Arrived later I just realize this point, also be regarded as accumulation bar!

This is about getting in the habit of reading documents, and how to read documents. Everybody has more or less will see the Android’s official document, but should not everyone see it, here I also admit that I actually there are still some rejection of official document, not just sometimes are in English, increased the difficulty of reading, of course for undergraduate students, English reading should not be developed, Plus, even though the English translation into Chinese is still a little hard to read (maybe because of my personal feelings), but… I have to admit that the official document is the most authoritative, and a lot of its content is very helpful, after all, the document is written by the developer of the project, no one knows the project better than the developer! In addition, the documentation will sometimes document the pitfalls that developers have encountered, and how to avoid jumping into these pitfalls as a project taker. My personal advice is:

  • To calm down to read, and appropriate to do the reading notes, the miscellaneous content of the extract really useful to their own things, here recommended a Chrome plug-in -janue”Allows you to immerse yourself in your reading and eliminate other irrelevant elements of the page


    Janue graphic
  • The second thing is don’t try to read the whole document all at once, after all, this is a lot of developers spend a long time to write, we should do is to read relevant to you, or you are interested in the content, so that more efficient.

Ability to solve problems independently

Article begins talking of we go to school in the textbook knowledge to most of the time is not come in handy, but when you really need we had forgotten, and if you met with some difficulties in the development process, first of all should not also not recommended to their colleagues directly ask solution, after all, other people also have work to do, here I would like to thank my colleagues and boss, Since I was just a beginner in the company, I didn’t know much about many things, so I asked them a lot of advice, but everyone was very nice and patient to answer my questions. They helped me get familiar with the business quickly. I am very grateful to them. How do you solve the problem independently? Here are some of the methods I have accumulated, but we are usually useful!

  • Use search engines, especially Google. Search engine installed things are certainly more than the human brain, and the Internet provides a platform for the world’s netizens to share knowledge, you encounter this problem may be others have also encountered, and have a solution.

  • Make good use ofStack Overflow. This is a q&A platform for programming questions. Many people come here to ask questions when they have a problem. If you have a solution to some problem, feel free to give your answer.

  • Analyze the code carefully. If the above two methods cannot solve your problems, then have to be on your own, it is possible that you write the code, some problems that need you patiently to screen, if the problem solved, then you should be in your documents or notes to record the problem, provide solutions for the team, and is also a kind of accumulation for yourself.

specification

The specification is very important in the enterprise, reflected in the software development is the code writing specification, the use of the tool specification, the use of the version control tool specification, the document writing specification and so on. Here is the specification of the code and the use of the version control tool. In fact, the relationship between the two is very close, because most of the time the code needs to be submitted to the version control system, in this case I refer to SVN, which the company uses a lot. As an example, is also my boss stressed the point with us, in the development process of the code in each row of the shrink from although not particularly important, most of the time everyone has each person a different shrinkage is apart from the way, but this in a team work together when it comes to the problems, such as my Android Studio from the default line indentation has adjusted, Submit code to SVN, then another of my colleagues to check my code, finding shrink away from a little strange, so easy to read, and he will shrink from adjustment for yourself can accept degree, when after reading the code, SVN hint my colleague already amend the code, but in fact he did not to modify the code to do some substantial, This is only modified with indentation, but it is still recognized by SVN as a successful commit, so that is the problem. The solution is for the team to agree on a guideline to use the IDE’s default indentation Settings so that this problem does not exist.

Exposure and learning new things

Is there are specializing in, everyone have their own good, but knowledge is constantly updated, and few people can do every piece is aware of the knowledge system, so if the new team, to take over the new business, and develop content is what you are not familiar with, that also there is no need to panic, this time you have to as soon as possible familiar with this knowledge, There are many ways to integrate yourself into the team, which is the best skill for beginners.

The end of the

The above is some experience I have learned from this internship experience, and I will write it to share with you as a summary of this internship experience, which may be helpful for my future work. Hope you like it!