Although the development of information technology is not long, the explosive development speed of it enables it to quickly cover all corners of society and human life. Programmers are one of the witnesses of this wave of information technology, and they are also the main participants. This is the opportunity and responsibility given to every programmer by the times.
The update speed of information technology is amazing. The programmer's career is a process that requires constant learning and never can be fixed. I have seen many programmers in their work period as long as they have spare time? Browsing webpages that are not very useful, chatting and playing games on the Internet wastes a lot of time and is very undesirable. In another case, the rapid development of IT technology has dazzled many programmers and thought about everything? I don't know where to start learning. Today I will look at it and learn it tomorrow.
Although it technology is developing rapidly, many technologies have regular rules to follow. Some basic concepts, principles, and methods are still very common. Based on my experience and experience? New programmers in the IT industry, or confused programmers, recommend essential weapons for programmers to practice. With this weapon necessary for programmers to practice, although they do not dare to say that they are arrogant, however, it is still possible to keep yourself undefeated.
The first weapon: development tools are at least familiar with the use of two or three development tools, which is the foundation of programmers. Among them, C/C ++ and Java are the key development tools I recommend, is C/C ++ highly efficient and flexible? As a tool in development, many system-level software is still written in C/C ++. The good combination of Java cross-platform and web is the advantage of Java, but what does Sun do? The concept of "network is computer" is quite appreciated, and I believe that Java is its related technical set Java? One will become one of the mainstream development tools in the future. Secondly, if you can master a simple visual development tool, such as VB, PowerBuilder, Delphi, C ++? Builder is better. These development tools reduce the development difficulty and enhance the concept of the programmer object model. In addition, you need to master basic scripting languages, such as shell and Perl. at least? Can read the script code.
Second weapon: Why is database so important? Many applications are centered on database data, and there are also a lot of database products. Relational databases are still mainstream, so programmers are at least familiar with them? One or two databases should have a clear understanding of the key elements of relational databases and be familiar with the basic syntax of SQL. Although many database products provide visual database management tools, SQL is the foundation, right? Common Database operation methods. If you do not have the opportunity to access commercial database systems, you can use free database products, such as MySQL ,? Postgres.
Third weapon: the mainstream operating systems of the operating system are windows, Linux/Unix. It is necessary to skillfully use these operating systems, but these are far from enough. Want to become a real high programming? You need to have an in-depth understanding of the operating system, including its memory management mechanism, process/thread scheduling, signal, kernel object, system call, and protocol stack implementation. Linux, as an operating system for source code development, is? A good learning platform, Linux has almost all the characteristics of modern operating systems. Although there is little information about the kernel implementation mechanism of Windows systems, there is still a lot of information available through the Internet. Only? After you have a certain understanding of the operating system, you will find yourself taking a new step.
Fourth weapon: network protocol TCP/IP is so popular on the Internet today, if you have not mastered the Internet support protocol TCP/IP protocol stack well, this lesson needs to be completed quickly. Has the network technology changed the software running model? From the earliest Client/Server structure to today's web? Services, and grid computing in the future, all this is inseparable from the network protocol support based on the TCP/IP protocol stack. Therefore, it is necessary to have an in-depth understanding of the TCP/IP protocol. At least ,? You need to understand the ISO layer-7 protocol model, the principles of common protocols such as IP, UDP, TCP, and HTTP, and the three-way handshake mechanism.
Fifth weapon: DCOM/CORBA/XML/Web? With the development of technology, seamless integration of software and network is an inevitable trend. The location independence of software systems is one of the important features of the future computing model, what is the current mainstream distribution of DCOM/CORBA? The middleware platform for computing. DCOM is an extension of Microsoft COM (Component Object Model), while CORBA is a standard supported by OMG. What programmers need to do is not simply to use commercial development platforms to develop software? But to understand the original intention of these technologies, that is, why do you need this technology? If you can understand this point, then let's look back at the specific implementation of these technologies, just like ding Jie Niu, to solve the problem .? XML/WebServices are important. XML is hailed as a "World Language" on the Internet based on its structured representation and powerful expression capabilities. It is one of the cornerstones of distributed computing.
The sixth weapon: in the development of software engineering and CMM modern large-scale software systems, engineering development control replaces personal heroism and ensures the success of software systems, A programming Guru is not necessarily a good programmer, a good program? Members combine excellent programming skills and development skills with strict software engineering ideas. Programming is only one part of the software life cycle, good programmers should master the basic skills of each stage of software development, such? Market Analysis, feasibility analysis, demand analysis, structural design, detailed design, software testing, etc. One sentence can summarize my opinion: "unlimited creativity, process assurance ".
Finally: here to introduce you to a: Automated app security detection platform (http://safe.ijiami.cn), one-click upload, convenient and fast, designed to help developers find their own app vulnerabilities and weak links, this helps you implement app shell encryption and protection. Among them, the file check mainly checks DEX and res files for source code, resource file theft, replacement, and other security risks. vulnerability scan scans signature files, XML files, and Dex files, check whether there are security vulnerabilities, injection code, and other risks. Backdoor detection can detect whether the app is vulnerable to secondary packaging, backdoor program implantation, or third-party code; the one-click vulnerability analysis report generation function allows you to generate security risk analysis reports for the app in terms of source code, files, permissions, and keywords! What is a programmer's NLP weapon? It is a strong curiosity and learning spirit. There is no better weapon than strong curiosity and learning spirit. It is the source and motivation for programmers to climb the peak forever. Do not do it. Do it as the best and best programmer !!!!