Article From:https://www.cnblogs.com/wish-tree/p/9054086.html

Part One: personal summary.

1. hard”. It is appropriate to convince others when you are looking for a job.With this job, you need to figure out what your partner expects and confidently demonstrate your value and ability. (this list can be said to be the most important question in the interview).

categorySpecific skills and interview questionsThe answer is now (Senior third)
languageOne of the best computer languages, how much is the code? (partial web front-end, PC/Mobile App)①CLanguage 2. Code quantity: about two thousand.
languageTwo of the best computer language, how much is the code? (partial backend, data processing, website backstage, machine learning, etc.)①Java ②Code quantity: less than one thousand (bias data processing, backend)
Software implementation(The ability to read code, implementation, unit testing) have you improved on the basis of other people’s code, how do you read other people’s code, what do you do to ensure that your new function does not affect the original function? What is the most complex bug you have encountered in development, how do you solve it? This BWhat are the causes of UG? How should you avoid bug again in the future?①It has been improved on the basis of others’ code. After all, this is the way to learn. If you know what the code is to do, you can start, get the answer you want (3) and guarantee the same name as the original function. It’s really clash and the original function is deleted.Rewrite the most complex bug, there are many kinds of those that are thrown dozens of lines. Just a little bit of a mistake. I am impressed by the fact that the procedure is correct, but the output is incorrect. You can only output tests after each line of code to find out the problem.
software test(How do you test your own code? How do you test other people’s code? How many testing tools and methods do you have? Have you written a test tool? How do you test a web site and test it? How do you test a softwareMan-machine interface (UX/UI)?① By compiling software tests, other people’s code is the same. No specific testing tools, no test tools have been written.
Efficiency analysisEfficiency analysis, efficiency improvement, what is the most complex code you have written? How do you measure and improve its effectiveness, what tools and how do you analyze it?①Curriculum design 2. No matter what technical content is used, I feel directly about myself.
requirement analysis(Demand analysis, typical users, scenes, innovation) how many practical users do you have, how many users do you have? What’s the innovation of your project?①So far, it has not been done (if the WeChat applet is forced to be done now, if it is, the actual user is 50).
Industry InsightsWhat areas are you most interested in? What’s the innovation in the past 10 years in this field? Have you analyzed the top 10 products in this field? Please analyze their advantages and disadvantages. How should you innovate in this field?①Game field. The Internet is developing rapidly, from the initial web games to end trips to mobile games. With the rapid development of the game, there are more and more kinds of games. Cards, wrestling, RPG, tower defense • • – • – • – 2. Today, the game area is still free krypton games earn more, pay to buy.Breaking the category of piracy rampant, or to the game company has brought a certain loss. The domestic game area, Tencent and NetEase two largest, two companies swim out of the game, after all, the game depends on the heat. Speaking of its advantages and disadvantages, its advantages are variety of play, beautiful interface and beautiful character. The drawback isKrypton gold is serious. Play, plot innovation
project managementHave you been involved in project management? Please describe the specific application of two current popular development methods in your project: how do you decide the priorities of the various tasks in the project, and what theories do you have to support your practice? If you suddenly find that the project can’t be completed technically, what do you do as a project leader?Way?①Do not take part in project management 2 urgent events to do first, to lead the team to clear the emergency degree of the event, work together, stay up late (the programmer stays up the night seems to be a very common thing)
software designHave you done the architecture design, the modular design, the interface design? Please explain why you designed this, what different design methods have you compared, and what results have you achieved in your design?①Have done, compare the products of the same kind, and then add your own ideas. The design seemed to have failed to achieve anything.
Team collaborationWork with others (In collaboration, feedback, and persuasion, please describe how you convince your partner to adopt a better solution in your project, or how do you listen to other people’s opinions and improve your plan? How do you convince lazy partners to work hard to achieve the goals of the team?①First of all, put forward his own opinion, and then euphemistically explain that he did not approve of the previous scheme.
Theoretical accomplishmentWhat math, computer or other theory courses have you taken? Give specific examples to illustrate how you learned theoretical knowledge to help you solve practical problems.①《High numbers, linear algebra, probability theory and data structure (data structure), “data structure”, before doing four operations to use the two fork tree, this time used to learn the data structure before.
Self managementWhat is your professional ranking in the whole year? Do you have any changes in your ranking from freshmen (freshmen year) to now? How do you explain the change in your ranking?①20There are many changes in the rankings. Because the direction of efforts is different, people have to make trade-offs to gain something.

2. soft problem” and what has been learned on the road of growth?

  1. Maintain high standards and do not be constrained by broken windows theory [i].
    When you see unreliable designs, bad code, outdated documents, and test cases, don’t think, “since someone else’s code is already in this way, my code can be a little bit casual.”
    (c)

a) I have never heard of it; b) I just came around like this; c) if there is a definite requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Take the initiative to solve the problem. When you see unreliable design, bad code, don’t think “maybe someone else will manage this thing,” or “I’ll send an email next month to let you talk about it.” Take the initiative to solve the problem to [ii].
    (c)

a) I don’t know what to design; b) I can handle it arbitrarily; c) if there is a definite requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. I often recharge myself, physical training is part of the life of athletes, and learning is the companion of software engineer’s profession. Every half year, we need to understand and learn some new related technologies. Make sure that you really master new technologies by sharing regularly (face-to-face sharing, writing technology blogs, etc.).
    (c)

a) Never read books; b) read and forget; c) sometimes share. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. DRY (Don’t Repeat Yourself)——Don’t repeat it. In a system, every knowledge point should have an undisputed and formal form of expression.
    (b)

a) Never heard of it; b) heard of it, but I didn’t think it meant much; c) this is the occasion. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. To eliminate the impact of unrelated modules, when designing modules, they have to make them clear and single, independent, without undefined external dependence.
    (c)

a) Never heard of it; b) something goes wrong; C wants to do it, but I don’t know how to measure it. D) being able to do e in multiple languages and architectures is not only active but also affects colleagues.

  1. Learning from rapid prototyping, the purpose of rapid prototyping is to learn. Its value lies not in code, but in what you learn through rapid prototyping.
    (a)

a) Never heard of it; b) use the prototype directly to the product, otherwise it will be wasted; c) does not use the prototype, and has been directly changed in the product. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Design should be close to the problem area and be close to the language and environment of your target user when designing.
    (d)

a) Never heard of it; b) designed according to my idea, the user will adapt later; c) probably agree, but how do we approach the users? D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Estimate the time the task takes to avoid accidents. At the beginning of work, we should make estimates of time and potential impact, and notify the relevant people to avoid accidents at the eleventh hour. We should inform the possible changes in time and summarize afterwards.
    (d)

a) When we have finished, we know that it is spent without prior estimation; b) probably do not worry about time C. If there is a definite requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. A graphical interface tool has its strengths, but don’t forget that the command line tools can also be very efficient, especially when you can build various combinations of commands in a script.

a) Always use the mouse and GUI; b) to ask the cow; C is learning command line tools. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. There are many code editors, please use one of them very skillfully. So that the editor can achieve their own customization, and can be scripted and easy to use.
    (c)

a) Only one teacher taught; b) optional; c) without any customization. D will be customized and shared with others E). It will also learn and use extensions of various editors.

  1. Understand common design patterns and know how to use them. The design pattern is good. What is more important is to know what its purpose is, when to use it and when not to use it.
    (b)

a) Never heard of it; b) mode is useless; c) I write every 100 lines, and I try to use one pattern. D) has practical experience E) can use specific code to explain the advantages and disadvantages of the mode.

  1. Code version management tool is the guarantee of your code, and important code must have code version management.
    (a)

a) Never heard of it; b) use QQ, U disk; c) the leader’s request is used. D) often use E) not only to do it voluntarily, but also to influence colleagues to do well together.

  1. Don’t panic when you are in debug. Think about the possible causes of the problem. Find the cause step by step. To use tools in practice, be good at analyzing logs (log), and find bug from them. At the same time, add log. in your own code
    (b)

a) Never heard of it; b) only printf; c) plus log is too troublesome, my code will not have bug. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Important interfaces should be specified in formalized contracts. Using documents and assertions, automated testing and other tools to ensure that the code does work according to the contract, not much or much. Using assertions (assertion) or other techniques to verify assumptions in code, what you think is impossible isIt often happens in the real world.
    (c)

a) Never heard of it; b) too cumbersome, no need; c) want to use, but there is no time. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Using exceptions only in exceptional cases (Exception) and using exceptions without any judgement will reduce the efficiency and maintainability of the code. Remember not to send normal information with exceptions.
    (a)

a) Never heard of it; b) catch all the abnormal C. If there is a clear request, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Begin well and end well。 If a function applies for space or other resources, this function is responsible for releasing these resources.
    (c)

a) Never heard of it; b); c) sometimes. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. When your software has multiple technologies, you need to use loosely coupled configuration mode instead of mixing all the code together.
    (b)

a) Never heard of it; b) no chance of practice; c) code is well managed together. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. The functions of common modules are built into independent services, and different services are invoked through a good interface (API).
    (a)

a) Never heard of it; b) copy code come to use can also be c) if there is a clear request, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Consider parallel support in design, so your API design will be easier to expand.
    (a)

a) Never heard of it; b) parallelism will not be wrong; c) any code should support parallelism. D) consider supporting e at the appropriate level. Not only does it take the initiative, it also affects colleagues.

  1. In the design, separate the presentation module (View) from the entity module (Model), so that your design will be more flexible.
    (c)

a) The code is all better together; b) follows; c) fails to figure out what V is and what M is. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Pay attention to the efficiency of the algorithm. Before we begin to write, we need to estimate the efficiency of the algorithm (big-O).
    (a)

a) Never heard of it; b) my data is not large enough, it doesn’t matter; c) will not be efficient, and now CPU is fast. D) actively test the efficiency of the program to verify the e estimate. It not only takes the initiative to do it, but also affects the work done by colleagues.

  1. Test your algorithm in the actual running scenario, and do not stay at the level of mathematical analysis. Sometimes a small practical factor (whether to support case sensitive sorting, and whether data supports multilingual) will lead to dramatic changes in algorithm efficiency.
    (a)

a) Never heard of it; b) wants to use, but does not know tool C) mainly depends on the naked eye to observe algorithm efficiency. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Constantly refactoring the code and paying attention to solving the root cause of the problem.
    (b)

a) Never heard of it; b) any modification can be called refactoring; c) should be rebuilt two times a day. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. At the beginning of the design, consider how to test. If the code has a problem, do you have log to assist debug? Test it as early as possible, test it regularly, strive for automated testing, and strive for some automated tests for each of the built versions.
    (c)

a) Never heard of it; b) my code is not going to be wrong; c) the project did not schedule time, and I did not mention it. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. The code generation tool can generate a pile of heaps of code before using them to make sure that you understand them and can debug the code when necessary.
    (c)

a) Never heard of it; b) never looked at those codes; c) those codes didn’t have bug. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Use the software together with a real user to get first-hand feedback.
    (d)

a) Never heard of it; b) the user is too stupid to listen to feedback; C wants to do but he has no chance. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. In automatic testing, it is necessary to intentionally introduce bug into the system to ensure that automated testing can indeed catch these errors.
    (b)

a) Never heard of it; b) do not have to be so troublesome; c) if there is a definite requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. If the test is not finished, the development is not finished.
    (d)

a) Never heard of it; b) the check-in code is finished; c). D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. Appropriate code coverage: every line of code is covered, but the program is not necessarily correct. Make sure that the program covers different program states and various combination conditions.
    (c)

a) Never heard of it; b) just covered 20%; c) should cover at least 60%. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. If a team member meets a universal bug, a test case should be set up to catch the similar bug that will appear later.
    (a)

a) Never heard of; b) every bug is special; c) the test case is not worth adding d) all the time to do it on the initiative) not only to do it on the initiative, but also to do it, but also to affect your colleagues to do it well together.

  1. Test: take one more step and consider one more layer. If the program does not quit for a week, if the user’s screen resolution is raised by one level, what possible mistakes will this procedure bring?
    (c)

a) Never heard of it; b) if there are problems, users will report that we do not need to test these; c) if there is a clear requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. (Lead the team to understand the user’s expectations, slightly exceed the user’s expectations, so that users will be pleasantly surprised.
    (d)

    a) Never heard of it; b) we decide the user’s expectations; c) if there is a definite requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  2. (Lead the team) do not stay passive to collect demand and tap the demand. Real needs may be obscured by outdated assumptions, misunderstandings of users, or other factors.
    (c)

a) Never heard of it; b) we don’t do what the user doesn’t say; C, if there is a definite requirement, I can do it well. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. (Lead the team to place all terms and related nouns, abbreviations and so on in one place.
    (d)

a) I’ve never heard of it; b) is in my mind; c) everyone looks at the code good d) all the time to do this e) not only to do it, but also to influence colleagues to do it well together.

  1. (To lead a team) do not rely on the manual operation of a person, but rather make these operations a script that can be run by people with relevant rights. There will be no case of a project being jammed because someone is on vacation.
    (c)

a) Never heard of it; b) we don’t have a vacation, it’s OK; c) and D) and I’ve been taking the initiative to do so e) not only to do it, but also to influence colleagues to do it well together.

  1. (Lead the team) to make reuse easier. A software team should create an environment that allows everyone to have a relaxed mind to try various ideas (for example, module reuse, efficiency improvement, etc.).
    (d)

a) Listen to the leadership; b) the team is serious and nervous; c) do not have to try, and the possibility of failure is too great. D) has always been active in doing e. Not only does it do it voluntarily, but it also affects colleagues.

  1. (Leading team) after each iteration, we should sum up experience so that the schedule of next iteration will be more reliable and of higher quality.
    (d)

a) There is no time to sum up, directly do the next edition; b) is not very useful; c) if the superior has the request, do it; d) always take the initiative to do this e) not only to do it, but also to do a good job with the colleagues.

  1. (Team leaders often have contradictions in their team. As leaders, what should we do?
    (d)

a) I didn’t see the contradiction. B) and the slime, get over to the line; c) if you don’t get to the superior, I want to do it, and hope they do it themselves; d) there is a clear and consistent principle of dealing with the contradiction, e) not only have a clear and consistent handling principle, but also anything that affects team morale.Things are held up to the end

1.”. “At the beginning of the course, we asked you for software engineering at the beginning of the course.Ask questions: personal reading assignment 2, so do you know about software engineering in the alpha stage? Please answer the questions you put forward.

  • Question: how the author gives feedback in the right way is a “sandwich” solution, and the “sandwich” solution seems to stay only at the outermost level, compared with the three levels mentioned in the previous article. Can this so-called sandwich solution really solve the problem? For these three levelsFeedback, how to pay attention to the use of the occasion?
    Answer: take different strategies for different people. The author believes that the commentator has three levels: the outermost (behavior and consequence), the middle layer (habit and motivation), the most inner layer (nature and inherent property). In the team cooperation, first of its outermost layer, the euphemism is discussed, and if the persuasion is invalid, it is closer.On the first floor, the environment we are in has some constraints, no more than in the company. If you don’t have to criticize the most inner layer in the company, the boss may think of the squid.
  • Question: p169 page, the article pointed out: students can not wear new shoes, take the old road. Learn a lot of new technologies, new development patterns, new team management methods, but do something that is not new, no one uses it, and the demo is thrown away (for example, a virtual school management system, a library management system.). If we want to practice software engineering in a competitive environment, we need to make use of innovative projects. In my opinion, as a student, our resources are limited. Just after learning a new technology, it seems a little difficult to make innovations in the world. Of course, it’s not impossible. After all, there’s a lot of God. All things are notIt can be too absolute that everything has a reason for existence. Starting from childhood, it is also a plan for the future.
    Answer: now that our team is doing WeChat small programs, to be honest, this is the first time I have a feeling of doing a project at a university. Some of the things before you feel too empty, do things, or do something challenging to really learn knowledge. Previous simple management systems are useless.
  • Question: book in the twelfth chapter of user experience (P250): short term stimulus and long-term impact. The two concepts are explained in detail, but there is no further discussion on how they affect the user experience of software. How can a software maintain its vitality?
    Answer: innovation is a condition for an enterprise to survive. This semester, we learned Marx’s philosophy. Things are developed. We should look at problems with the perspective of ties and development. So is it in software development.

third part: another question.

At the same time, you will have more problems in the process of practice, combined with your reading (textbooks, blogs, reference books), practice, and then put forward 5 questions about software engineering.

1,After each question, please explain what part of the chapter raises your questions and provide some context.
2,List some examples or information to support your questions.
3,Talk about the reason why you ask questions, do you ask questions about your hypothesis and the difference in the book, do not understand the term in the book or have questions about the reasoning process, or the description in the book and your experience (direct experience or indirect experience)?

-Question 1: for the work of PM mentioned in the book, its main task is to manage the team and assign tasks. But in our group’s actual project development, PM is a very hard job. Almost everything is done. (PM is very hard), PM is very clear about the process of the project, but that means.PM whatever it is?

-Question 2: the quick sprint stage in the book, the team should develop the project together, although the work in the previous group is very good, but because of the basic problem, it is still unable to complete the task in time and failed to achieve the ideal state. It is common for program monkeys to work overtime, so a good project is bound to happen.Do you have to stay up late in the night?

-Problem 3: this chapter gives us a lot of test methods, in fact, in our practice, it seems that there is not so much management, and after all, the function of the program is not very strong. Repairing bug is a very troublesome thing, but it is the only way to a good program. Little code is smallCan programs ignore items?

-Question 4: the book talks about innovation, although the project we do now seems to be innovative, but in fact it seems not to be competitive in the market, and what kind of innovation is a valuable innovation.

-Question 5: how can we achieve the art of communication and how can members of the project team achieve better communication?

Link of this Article: Personal assignment 4

Leave a Reply

Your email address will not be published. Required fields are marked *