Programmer (EnglishProgrammer)It is a grass-roots staff engaged in program development and program maintenance.Programmers are generally divided into program designers and program coders, but their boundaries are not very clear.With the growing popularity of the Internet, male programmers are called "program apes" on the Internet.Or the male and female programmers are collectively referred to as "engineers (siege lions)".
1. Responsible to the project manager, responsible for the detailed design, coding andInternal testOrganization and implementation of, and system analysis work for small software projects, complete the implementation andtechnical supportWork.
2. Assist the project manager and relevant personnel to communicate with customers and maintain goodCustomer relationship。
4. Be familiar with and proficient in relevant software technologies of software projects developed by the delivery software department.
5. Be responsible for timely feedback to the project manager about the situation in software development, and put forward improvement suggestions according to the actual situation.
fromCSDNThe 2007 Developer Survey sponsored by Programmer has received more than 15000 copies by the end of 2007Valid questionnaire, already ChinaSurvey sampleMost developer surveys.In this survey, we analyzed the distribution of the sample space in detail, and found that 70% of the large number of participants in the valid questionnaire, that is, nearly 11000 participants are full-time IT staff, and 14% of the participants are students with experience in development work. From this distribution, we can see that the demand for professional knowledge of IT practitioners is huge and urgent,CSDNAs a professional software development technology portal, it has been the main means for everyone to obtain these technologies.
Hot SOA andDynamic language13% and 12% respectively.In fact, there is a certain connection between these large technology distributions. The development of the Internet has shown an explosive growth trend in the past two years. The total number of Internet users in China has exceeded 140 million.
programmer
Business in enterprises is becoming more and more complex,Commercial competitionContinuously increase the enterprise's IT system, so that the enterprise'sBusiness dataGeometricallyOrder of magnitudeGrowing data in the backgroundData inManagement of data has changed from single data to complex data with multiple dimensions, so it can be managed at the same timeRelational databaseThe hybrid database with XML data has become the mainstream.
In the face of enterprises increasing new IT information systems, integration is imminent, SOA has become an inevitable trend, and enterprises' demand for talent has changed from a single typeTechnical talentsBusiness talents have jumped toBusiness technologyOfinter-disciplinary talentThis developer survey made the investigators of Programmer magazine see the countless connections behind these technical focuses.
Apply toNET platform, the proportion of "mass use" is only 8.68%, less than 10%;The number of developers of "a few applications" accounted for 42.78%.The proportion of "basically unused" is as high as 48.54%, almost equal to the sum of the former two.
Although the emergence and development of open source make the future of software without monopoly clearer;althoughOpen source movementAfter years of rapid development, considerable strength has been gathered. The concept of freedom and giving of open source has gradually penetrated into the core level of enterprise technology.butMicrosoftwithBusiness softwareTo make a living, after all, in the field of Microsoft technology, open source projects are usually regarded as second-class citizens.Many open source projects are rightNET community has played a huge role in promoting the development of Microsoft. It is difficult for Microsoft to provide any substantial support.
Currently installedLinuxOperating system, RedHatFedora occupiesabsolute advantage——Linux users use this version, accounting for 49.49% of the total.FedoraIt is an important model launched by RedHatLinux version, at eachfedoraAll versions are integrated with the latest Linux software, especiallyServerSoftware.
Using the keyword "RedHatFedora" to search on Baidu's website, we got 7090000 results, and RedHatFedora accounted for half of the Linux version in the survey, which is consistent with the wholeLinux versionDistribution of.
The second place isUbuntu, the number of supported accounts for 23.92% of the total;The third is SuSE accounting for 9.09%, followed byDebian,Usage5.92%.What is expected hereChinaLinux is disappointing.The utilization rate is only 5.16%, almost one tenth of that of RedHat Fedora.
IIIJavaDevelopment framework: 6% of JSF wants to shake 21% of Struts
JSF now has the advantage of Ajax integration, which is ahead of other frameworks.In the next two years, JSF and Struts will launch the final war of Java Web framework.After years of "framework wars", various frameworks in the Java world have found their rightful place.Spring+Hibernate+Struts has become the mainstream system of Java development.In this system, the position of Spring+Hibernate is hard to shake in the short term.Apart from the emerging JbossSeam as a challenger, it is almost difficult to have a strong opponent.
In Java B/S programming, the fiercest battle is actually in the Web layer, with the largest number of frameworks and the largest controversy.Everything started with Struts, and Struts finally took the throne of the first era.On the technical level, Struts 1. x has been complained and criticized by countless people, but it has finally taken the throne, which fully demonstrates the power of habit.“Stability prevails”, which is still applicable in the field of IT technology.
After a detailed analysis of the use of the Java development framework, it is found that the main development framework used is JSP, which accounts for 26%, and Struts, which accounts for 21%,Hibernate17%, Spring MVC 11%,EJB7%, JSF 6%, SpringWebFlow andPOJO4% respectively and 4% for others.Based on this survey data, it is not difficult to see that Spring+Hibernate+Struts still has an obvious advantage.
Struts and Hibernate have almost becomeJavaEEFor the general configuration of applications, 21% of developers use Struts, and 17% use Hibernate;On a mature technology platformTechnical proposalWill converge to a large extent - because all unknown fields have been identified, and various problems have correspondingBest PracticesArchitects can refer to more and more successful cases.Take Java EE as an example. The problems that architects need to consider are much simpler than three years ago. This is the value of maturity.
programmer
Experts commented: "In fact, ITapplied technology, what's newthingIt is not difficult to learn, but it is difficult to standardize and standardize.Every programmer has his own ideas and habits, and the code written is naturally diverse.Why Java has become an important part of the programming world is the standardization of Java.This highly standardized language is suitable for multi person cooperationLarge projectsIt is convenient for communication and understanding, as well as integration and maintenance.Why does the Java world have frameworks flying? In the final analysis, it is the need for standardization.Who writes Web faster with pure JSP and Struts? It is clearly JSP.Then why use Struts?The reason is that there are 100 ways to write JSPs written by 100 people;Struts written by 100 people are basically similar.The success of Struts is due to its contribution to the standardization of the Java Web layer.
However, the technical defects of Struts 1. x are hidden dangers after all.Sun is pushing JSF to overcome the shame of the lack of web layer framework.In the next two years, JSF and Struts will launch the final war of Java Web framework.
JSP is still in control after years of trials and tribulationsThe top priority, it seems that all frameworksPresentation layerNone can exist without JSP, and JSF, the sibling of JSP, is just another rising star after Spring.
Now JbossSeam has retired from the historical stage since 2009. JSF has few users in China, and the popular SSH framework has been replaced by the mainstream of Spring+Spring MVC+MyBatties.
Professional requirements
Announce
edit
The average programmer has studied in a professional field, and a small number of programmers are self-taught, although some professional schools orComprehensive UniversityYes, but some other ways are needed to provide relevant talents.Although education is more important, the company often focuses on the work experience of applicants. Although many college graduates have eye-catching degree certificates, they cannot find jobs because they lack experience.Although a programmer does not have a formal education, if he has a deep knowledge background of programming or rich work experience, his chances are better than those with educationFresh graduatesMuch larger.So try to seize the useful work and internship opportunities, so that after graduation you will find that more internships will give you more experience and more opportunities to find jobs.
For professional programmers, another important aspect is that programmers need to constantly improve their business technology. Their technology must always be kept at a high level and continue to develop. Programmers also need to look for trade opportunities, participate in seminars, publish articles in weekly journals and acceptvocational education, which enables programmers to rank in their own fields or move forward side by side.
As a programmer, you should master at least two or three kinds ofdevelopment toolThis is the programmer'sThe foundation of standing, whereC/C++Java and Java are the key recommended development tools. C/C++has become a sharp tool in development tools with its high efficiency and high flexibilitySystem levelThe software of C/C++is still written in C/C++.JAVA'sCross platformJAVA and its good combination with the WEB are the advantages of JAVA, and JAVA, its related technology set, JAVAOne, is likely to become one of the mainstream development tools in the future.Secondly, you can master a simple visual development tool, such asVBPowerBuilder, Delphi and CBuilder are better. These development tools reduce the difficulty of development and can strengthen programmersobject model The concept of.In addition, basicscripting language , such as shell,perlAt least you can understand these script codes.
Familiar with database
Why is database so important?As programmers, they naturally have their own reasons: manyapplication programThey are all centered on database data, and there are many database products, includingRelational databaseIt is still the mainstream form, so programmers should be proficient in at least one or two databases, and should be very clear about the key elements of relational databasesSQLBasic syntax of.Although many database products provide visual database management tools, SQL is the foundation and the general database operation method.If you don't have access to businessdatabase systemIt is a good choice to use free database products, such as mySQL and Postgres.
Understanding the operating system
The current mainstream operating systems are Windows and Linux/UnixIt is necessary to use these operating systems skillfully, but these are not enough.To become a realProgrammer, you need to have a deep understanding of the operating system, its memory management mechanism and processes/Thread scheduling, signalKernel object、system call、Protocol stackImplementation, etc.LinuxAs an operating system for developing source code, Linux is a good learning platform. Linux has almost all the characteristics of modern operating systems.Although there is less information about the kernel implementation mechanism of the Windows system, a lot of information can still be obtained through the Internet.
In the modern era when the Internet is so popular, if you do not have a supporting protocol for the InternetTCP/IP protocolIf you have a good command of stack, you need to make up this lesson quickly,network techniqueThe mode of software operation has been changed from the earliestClient/ServerStructure, from the contemporary WEBServices to the futureGrid computingAll of this is inseparable from the network protocol support based on TCP/IP protocol stack. It is necessary to have a thorough understanding of TCP/IP protocol.At least, you need to understand the ISO seven layer protocol model, IP/UDP/The principles of TCP/HTTP and other common protocolsThree handshakesMechanism.
Understand the significance of DCOM/CORBA/XML/WEBServices
With the development of technology, the seamless combination of software and network is an inevitable trend,software systemThe position independence of is one of the important characteristics of future computing models,DCOM/CORBA is the current two mainstreamdistributed computing DCOM is the intermediate platform ofMicrosoftCOM(Component Object Model)AndCORBAIt is a specification supported by OMG.The importance of XML/Web Services is self-evident. XML, with its structured representation and superExpressivenessIt is said that“Esperanto”, YesDistributed ComputingOne of the cornerstones of.
Programmers should be able to understand correctlyTask listRequirements described in.It should be clear here that programmers should not only pay attention to the functional requirements of software, but also pay attention to thePerformance requirementsYou should be able to correctly assess the impact of your module on the whole project and the potential threat. If a skilled programmer with two or three years of project experience does not understand this, it only means that he may have worked hard, but he did not work hard.
As an excellent programmer, his ideas cannot be limited to the currentTaskIn it, you should consider whether the module you write can be separated from the current system and directly used in other systems or modules through simple encapsulation.By doing this, the code can be reused, and repetitive work can be reducedSystem structureMore reasonable.The improvement of modular thinking ability is an important indicator of a programmer's technical level.
Career dilemma
Announce
edit
Tiger, Bill, himself, and Chinese programmers' dilemma also comes from three aspects
One dilemma:The threat of tigers。Programmers have to face a lot of hungry tigers. For example, the boss seems to be the natural enemy of programmers. The most common complaint of programmers seems to be that "they don't know the technology but are bossy" and "they don't get the same amount of money". This problem cannot be really solved.
Dilemma 2:Bill's competition。Generally speaking, most programmers in China eat“Youth meal”The golden age of most programmers is 20-35 years old.At the age of 35 or so, groups of young programmers will bring you great competitive pressure.First of all, due to the rapid development of the software industry, many of the things they have learned have been gradually upgraded, while many programmers have been working for a long time, and the efficiency of learning new knowledge will inevitably decline.Secondly, after working for several years, the salary requirement will naturally be high, and young programmers will certainly become the boss's first choice because of their low salary and fast work;Third, at the age of 35, they have already married. To support the family's living burden, they almost have no courage to start again.As an old Chinese saying goes, "The waves behind the Yangtze River push the waves before them, and the waves before them die on the beach." This historical rule issoftware developmentThe industry is particularly obvious and cruel, and many programmers must face the result of wage cuts or even unemployment.
Dilemma 3:Self strength。Everyone knows that the most difficult thing for people to overcome is themselves, so the ego is the biggest obstacle that programmers need to overcome.Most programmersSystem analystAnd the project manager as their ownCareer goalsHowever, the achievement of these goals requires personal quality, market opportunities and other conditions. Too many programmers waste time in the state of high achievers and low achievers.For system analysts, the following qualities are particularly required:customer demandAnalysis capability, system architecture andDesign capability, module decomposition design capability, project process control capabilityProject risk assessmentAbility, while the project manager pays more attention toproject managementAbility in aspects such as teamorganization skills, CommunicationCoordination capacity, AnalysisProblem solvingAbility to ask questions and goodprofessional ethicsThese qualities and abilities can only rely on the personal study and efforts of programmers.Seeing more and more programmers begin to learn project management courses, I'm really worried about them, because the current project management training can only stay at the level of theory and certification, and there is neither quality training nor practiceSoftware development projectThe result of learning is far from the expected effect.
Salary
Announce
edit
fromeconomicsFrom the perspective of, software talents are alsoLabor commodityOne of them isLaw of valueIt is decided that only when there is demand will there be a market, and only when there is demand will there be people willing to pay for them.At present, including China, the world is competing for IT talentsTotal social demandgreater thanAggregate supplyThe phenomenon of talent appreciation is inevitable.
routine
Announce
edit
Confirm the goal of passing the review plan,input data,analyst, supervisors, and customers' output requirements.
keepHistoryBy recording the formulation and revision of the scheme.
Maintain customer information and protect confidential business.
Skills/qualifications: general programming skills, analyzing information, solving problems,Software algorithmDesign, softwareperformance optimization, pay attention to details, software design, software debugging, software development foundation,Software documentation, software testing.There are many kinds of programmers. The languages developed by people may be different, but they all have something in common.