one, personal summary
After the end of alpha, each student wrote a personal blog to sum up his alpha process.
Please use self evaluation: http://www.cnblogs.com/xinz/p/3852177.html will make progress in comparison.
|category||Specific skills and interview questions||The answer is now|
|language||The best language||I feel that I am not very good at language control. I can only write and see practical requirements.|
|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 your development, and how do you solve it? This BuWhat is the cause of G? How can you avoid bug from happening again?||1、It’s really painful to read the code if the code is not standardized and not prepared. It’s not a simple thing to read the code. 2, constantly testing new functions, see if the original function is still available.It can be used. 3, so far, the biggest bug encountered in development is debugging, because it takes a long time to debug.|
|software test||（Testing methods, testing tools, testing practices, code coverage) how do you test your own code? How do you test other people’s code? How many kinds of testing tools and methods do you have? Have you ever written a test tool? How do you conduct stress testing and performance testing for a website? How do you test a software personMachine interface?||emmmmmI don’t seem to have really tested my code.|
|Efficiency analysis||Efficiency analysis, efficiency improvement, what is the most complex code you’ve written? How do you measure and improve its effectiveness, what tools are used and how to analyze it?||Well, the most frequently written code is when the class is set up, and the amount is analyzed according to the effect it has to make, and the others do not seem to think so much.|
|requirement analysis||（Requirements analysis, typical users, scenarios, innovation) how many users do you have and how many users do you have? What’s the innovation of your project?||No|
|Industry Insights||What are the areas of interest that you are most interested in? What are the innovations that this field has experienced in the past 10 years? Have you analyzed the top 10 products in this field? Please analyze their advantages and disadvantages. How do you innovate if you want to enter this field?||There’s nothing special to be interested in|
|project management||Have you been involved in project management? Describe the specific applications of the two current popular development methods in your project; how do you decide on the priorities of the various tasks in the project, and what theories do you have to support your practice?||Not PM|
|software design||Have you done architecture design, modular design and interface design? Please explain why you design it like this; what kind of design do you compare, what results have you achieved in your design?||no|
|Tools / communities||What tools have you used in various development platforms and what tools have you written to improve efficiency? What tools and codes have been contributed to the community? Does Github share code? How long did you write the technology blog, and which one read the most?||Blog homework, from Java. I don’t feel like I want to hear the four words of blog homework after this semester.|
|Team collaboration||（Working together, providing feedback, persuading others), please describe how you can persuade your partner to adopt a better solution in your project, or how do you take other people’s opinions and improve your plan? How do you convince lazy Companions to work harder to achieve team goals?||Well, talk about it, if it’s right, take each other, bring out your own opinions, and then analyze it. I think it will not oppose if it is true.|
|Theoretical accomplishment||What 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.||Higher mathematics, line generation, probability theory, discrete mathematics, C language, data structure, Java and so on; I think these are more important is to exercise the ability of thinking.|
|Self management||How much do you rank in the whole grade? Do you learn the change in the ranking now? How do you explain the change in your rankings?||Entrance to the present ranking of course, of course, there is a change, there is a retreat but not big, around the 10 within the change, I think I learned in the last half of the semester is a bit worse, the next half semester is better, because the next half of the semester is better than the last half of the semester, this may be a sick haha ha ha ha.|
|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 casual.A little bit||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.||c|
|2||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||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.||c|
|3||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.).||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.||c|
|4||DRY （Don’t Repeat Yourself）——Don’t repeat it. In a system, every knowledge point should have an undisputed and formal form of expression.||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.||b|
|5||Eliminate the impact of unrelated modules. When designing modules, they should be clear and simple, independent, and without explicit external dependence.||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.||c|
|6||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) 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.||e|
|7||Design should be close to the problem area and be close to the language and environment of your target user when designing.||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.||c|
|8||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 possible changes in time and summarize afterwards.||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.||d|
|9||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.||c|
|10||There are many code editors, please use one of them very skillfully. So that the editor can achieve their own customization, can be driven by script, and is handy to use.||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.||e|
|11||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.||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.||a|
|12||Code version management tool is the guarantee of your code. Important code must have code version management.||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.||d|
|13||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||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.||b|
|14||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||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.||c|
|15||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 pass normal information with exceptions||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.||c|
|16||Begin well and end well。 If a function applies for space or other resources, this function is responsible for releasing these resources.||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.||d|
|17||When your software has multiple technologies, you need to use loosely coupled configuration mode instead of mixing all the code together.||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.||b|
|18||The functions of common modules are built into independent services, and different services are invoked through a good interface (API).||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.||b|
|19||Consider parallel support in design, so your API design will be easier to expand.||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.||d|
|20||In the design, separate the presentation module (View) from the entity module (Model), so that your design will be more flexible.||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.||d|
|21||Pay attention to the efficiency of the algorithm. Before we begin to write, we need to estimate which order of magnitude the algorithm is efficient (big-O).||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.||a|
|22||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) 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.||b|
|23||Constantly refactoring the code and paying attention to the root cause of the problem.||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.||d|
|24||At the beginning of the design, consider how to test. If the code is wrong, do you have a 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.||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.||c|
|25||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.||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.||d|
|26||Use the software together with a real user to get first-hand feedback.||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.||c|
|27||In automatic testing, it is necessary to intentionally introduce bug into the system to ensure that automated testing can indeed catch these errors.||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.||c|
|28||If the test is not finished, the development is not finished.||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.||d|
|29||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.||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.||d|
|30||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) 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.||d|
|31||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?||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.||d|
|32||（Lead the team to understand the user’s expectations, slightly exceed the user’s expectations, so that users will be pleasantly surprised.||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.||c|
|33||（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.||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.||c|
|34||（Lead the team to place all terms and items related to nouns, abbreviations, etc. in one place.||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.||c|
|35||（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. So there will be no case of a project being jammed because someone is on vacation.||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.||d|
|36||（Lead the team) to make reuse easier. A software team should create an environment that allows everyone to have a relaxed mind to try all kinds of ideas (for example, module reuse, efficiency improvement, etc.).||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.||d|
|37||（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.||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.||d|
|38||（Team leaders often have contradictions in their team. As leaders, what should we do?||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||d|
> two, answer questions
- How does a primary software engineer grow up?
1、Accumulate knowledge about software development, improve technical skills (such as mastery of specific technologies, practical skills)
2、Accumulate knowledge and experience in problem areas (e.g., game, medical or financial industry).
3、Understanding of general software design ideas and software engineering ideas
4、Improve professional skills (different from technical skills)
Is the growth of primary software engineers only needed?
- ITInnovation of industry
16.1The myth of innovation
One of the myths: the glimpse of the bright light, followed by great innovations.
Myth two: everyone likes to innovate
Myth three: good ideas will win
The four of the myth: the innovators are all in the first horse
Myth five: to become an expert in the field, we can innovate.
Myth six: technological innovation is the key
Myth seven: a successful team is more innovative
The eight of the myth: the innovator is the adventurer
16.2The time of innovation
With so many examples of innovation, what exactly should innovators have to talk about innovation?
- Answer: the creator should be good at discovering something that others can’t find, or have different ideas, and can give a new idea to the same problem, which is innovation, but the prerequisite for innovation is in line with the reality, otherwise the innovative things are not used.
- What is Bug? To put it simply, the behavior of a software is different from that of its users. It is called Bug. Whether it is Bug depends on the different angles of users and developers.
Two examples from the book show that when users and software optimization are in conflict and expectations are different, how do we choose this time? From the perspective of users or from the perspective of software optimization?
- Answer: the development of a software needs to be analyzed by the user needs, and the software is of value to serve the user, such as a function that does not meet the user’s standard, even if it is a functional bug.
- Software quality assurance: all activities carried out by software teams to enable software to achieve pre-defined quality standards, including testing.
There is a formula in P311: the quality of software = program quality + software engineering quality; the quality of the program is embodied in the external function of the software, and the quality of the software engineering is to meet the needs of the stakeholders in three aspects of function, cost and time. There are so many guarantees for software quality, which are the most important?Yes, and what’s easy to miss?
- Unit tests must be written by people who are most familiar with code (the author of the program). The author of the code knows the purpose, characteristics and limitations of the code. So writing unit tests is no more suitable than the author.
Is it necessary for the author to write the unit test himself?
- Answer: I think unit testing is not necessarily the author of the program. First, software engineering is basically done by a team. Since there is a team, there must be a division of labor, the team has the responsibility to write the code, is responsible for the test, is responsible for the requirements analysis, and responsible for the product explanation. If anythingIt’s people who write code. What do they need to do?
> three, and further questions
- Sometimes I really don’t understand why there are so many blog assignments, and every time you write a blog, you have to compel yourself to write it, not a happy mood. Maybe it’s because there’s a lot of lessons, and we all have their own arrangements, and you don’t want to spend too much time on it. After all, there’s more important things to do, it’s just a personal thought.Law.
- I don’t think it’s useful to ask questions about textbooks. Software engineering is not what everyone wants. For textbooks, readers who want to read are sure to read it carefully and ask questions. But is it really useful for us?