Junior programmers how should I do?

Your job now confused? This does not prevent a look at a few suggestions

01, understand a programming language

This skill does not seem necessary to emphasize it seems, after all, programmers do not know a programming language can not be justified ah. I stress again is afraid of you, "greedy", that skills are more than body on mad science are a variety of programming languages.

There is a sophomore student once asked me: "Are you okay, brother, have a question that you would like to consult my professional learning is C #, but I have heard very good job, so I taught myself Python for some time , but I feel more and more confused, you have any good suggestions? "

I can only say strange confusion. Although programming languages ​​have similar syntax, but that is a different programming languages ​​ah, there are still many differences between. For junior programmers, not too much, put a thoroughly understand the programming language to say, so you have mastery of skills, learn new programming languages ​​go too late.

I just checked (see below), C # is still very popular programming language, not to the point where employment is not very good, do not just listen to other people, to learn to judge for yourself. Python is a programming language door good growth momentum is very fierce, but far from the kind of dominate the world stage.

Schools have undesirable places, but not so foolish as to let the students have been learning a programming language out of the market. At this point, I would rather stand on the support of the school's position, otherwise it's too bad.

I admit, Pa learn what to learn faster, learn not only fast, but also learn better than usual, much more to learn, because he set their own learning, but most students do not have such conditions. If you do not have this knowledge for your own words, it is likely to fall into the quagmire.

Therefore, the advice I give is that in-depth and focused on a programming language, when you are confident of using this programming language, go to learn other programming languages ​​too late.

02, clean code

When you learn a programming language, the next thing to consider is to make your code written neater, easier to understand and more artistic. About art, I think of the passage, Wang Xiaobo in his essay "a lifetime to learn the art of" saying:

I read in the liberal arts, also read in science. Listen to the teacher in the classroom mention of the word of art, science or the number of teachers more: chemistry teacher said, there is an experiment experimental art; computer teacher said, have programmed the art of programming. Teachers say, how do the right science, how do the art; there are rules to determine the authenticity of the former, not the latter; the essence of art is that they might feel good, even perfect; impart scientific knowledge is to tell you these rules, and the cultivation of art can not be taught, can only be subtle.

Have to say, the idol to idol, the essence of art clearly presented. I've seen a lot of bloated code, which reminds me of "bindings" these three words; I have seen a lot of clean code that reminds me of "art" is the word, I want to create their programmers certain rich artisan spirit.

Elliot Chance had expressed such a view, he said:. "To distinguish the merits of two programmers, it is to give them the same time, the better programmers write code, the less (of course, can run)."

I agree with him. The more code does not necessarily represent a serious and likely represents the lazy, too lazy to think, will write bloated code. If we do not have this programmer (write less code) to pursue the case, then our programming skills will only stand still long run consequence is made to avoid duplication of various wheels will not appear on third-party libraries.

03, algorithms and data structures

Ashamed to say, in a very long period of time, I there is a considerable prejudice against algorithms and data structures that they seem to hang in the night sky the moon, although very beautiful, but very far away.

Because of this bias, eat in the code in the process of knocking a lot of boring loss, often encounter some practical problems, unable to take full advantage of the relationship between the data structure of data through appropriate algorithms to efficiently store conversion strategy, leads to low performance of the program.

Suffered losses as a man, I have to remind you responsibly, while there is a lot of time and effort put in more to go a little above data structures and algorithms. Basics like the foundation of a building, which determines the height of our technology. Data structures and algorithms is the most important basic knowledge, their learning process is like playing ground.

Take, for example, if you want to sort the elements in a list, then there is an algorithm can be used under these 10, each time the algorithm takes the figure, the memory occupied are different. In other words, if you can not proficient in algorithms and data structures, it is difficult to find an elegant solution.

In the long run, the brain thinking is the most important core competencies of a person, while the algorithm is one of the few ways to effectively train the brain's ability to think. With this ability, a lot of other programmers to solve very difficult problems will be solved in the programming you here.

04, basic database knowledge

Although the software developers should focus on programming rather than the preparation and optimization of SQL (should be left to a professional database administrator is responsible), but in our country, only the best companies will have a database expert. Pierced heart. If you want to go on this path software development farther and higher, to understand some basic database knowledge is required, for example:

  • How service object properties is converted into a database field;
  • How to retrieve data from a database, and the data set stitched together;
  • How to insert into the database, modify, delete data;
  • Index data structure and principle;
  • SQL statement optimization;
  • and many more.

If we understand some of the central parity sub-library sub-table database, then you might be a team of treasure, after all, all applications must interact with the database, and the database is the first system where performance bottlenecks occur - Total when you have to show its mettle.

05, technical framework

In addition to thoroughly understand a programming language, I strongly suggest you learn a technology framework. If you're like me, is a Java back-end developers, then, Spring series of framework (Spring MVC, Spring Boot, Spring Cloud) will have to learn; if you are a C # developer, .NET Framework will have to learn.

Technical framework is a collection of general-purpose library, it helps us to make programming tasks easier, after all the wheels for us was finished. If you say no technology framework, we would like sitting in the carriage forward, rather than aircraft, high-speed rail and car development efficiency will be greatly reduced.

06, source code management tool

I remember I just had a job that would be called CVS (Concurrent Versions System) with source code management tool, it is estimated there are many readers heard of, very, very difficult to use. Later, after moving to SVN (Subversion), the case finally has been greatly improved, which not only supports Eclipse, as well as exclusive clients, in addition to managing source code, you can also manage many documents.

Work every day to start the server to obtain a new code, and then start the work day, remember to submit time off work to go before the code, otherwise it is easy to delay the progress of other members of the development team.

Now, with Git, it is an open source distributed version control system, can be effective, high-speed processing from very small to very large project version management. It differs from the larger SVN, that on each developer's computer will have a local repository (Local Repository), even without a network version will also be able to submit, view the version, and compare versions; wait until after the network connection , and then submitted to the server.

Source code management tool relatively big advantage is that it can help us to keep a history of changes to different files, and allows multiple developers to code for the same file merge. For example in terms, Wang completed a task, and then submit the code; but he felt could be improved, so he modified the code and re-submitted to the repository, and who knows, the program line after a bug, this time source code management tools can help the normal version before he quickly rolled back to. Otherwise, Wang can only be a heaven.

07, test

Testing is really too important! But not all developers think so, this feeling is particularly strong in Luoyang after I returned. Team members do not even have to put the code has been tested and submitted to the code base, and is the kind of error, I God, I also encountered such a teammate drunk.

Before I came back, was in a Japanese company, the test is a very important job, take longer than a lot of coding time. From unit testing to integration testing, all test results should be organized into books, all boundary conditions to be tested, even if you feel totally unnecessary. But it is this meticulous attitude, the achievements of Japanese companies in the world of high-quality software.

A good developer will never allow his code without testing prior to someone else, I think this is indisputable.

08, commissioning

To tell the truth, I am a programmer in the past few years, the time to debug the code much more time than writing code. Because of the difficulty to solve the bug is much more difficult than creating bug, first you must first scenario reproduces the problem (really difficulty), to reproduce the problem you need to have superb debugging techniques, or only hammer burst mouse, then He shouted, "Why, why, why my code does not work properly?"

The entry-level debugging is very simple, you just need to make a break point in the code where the problem occurred, and then run a rerun, you can find the problem from the context stack information and code. Difficulty reascension point, then you will need to create the conditions for code execution; hard, then you do not even need to penetrate the network, such as the development of micro-channel public number; then hard, then it is not a few words can say clearly.

Anyway, debugging is to let you find out the real cause of the code can not run properly if your debugging skills, but off the case, there may even be deceived by appearances, from the wrong angle to modify the bug, causing more and more The problem.

Published 91 original articles · won praise 35 · views 80000 +

Guess you like

Origin blog.csdn.net/weixin_41937552/article/details/104989085