Direction
First, about the direction of enterprise computing
Enterprise Computing (Enterprise Computing) is a slightly fashionable and pleasant term, mainly refers to enterprise information systems such as: ERP Software (Enterprise resource planning), CRM software (Customer relationship Management), SCM Software (supply chain management, IE, logistics software), banking securities software finance software E-commerce/ Government affairs (including various websites), data Warehouse, data mining, business intelligence and other enterprise information management system.
It is clear that the demand for talent in the enterprise computing field is always the largest because it is the most computer-applied field. The benefits of doing this are:
(1) The amount of talent demand is very large in the enterprise computing companies in the IT enterprise accounted for the majority. Unless you are a professional and have no expertise in general in this field can always find a job.
(2) This entry threshold is relatively low (if your software foundation is not very deep to consider this area)
(3) Large companies in this area want to make big money so they spend more energy on business computing. such as Citicorp, HP, IBM, SAP, NEC, and so on, are all companies in the field of Software College. If you think of big companies looking for a relatively stable job in the future, it's much more likely to do so.
But the shortcomings in this area are also obvious:
As this entry threshold is relatively low, although this aspect of the demand for talent is the largest, but in the future there will be more competitors. You will find that even if he was not a professional in it, he might have done it a few months later. Especially as you get older, you may find that the young people behind you may easily catch up with your level. If you go to work abroad, you may find that there are more and more experts in this field. Of course, if you are in this field after years of corporate experience, to achieve a higher level (if you can design software architecture), then the price is always high. The main problem in the field of talent in this area is that there are too few experienced experts and too many people who know fur.
The most important skill-technical courses in the field of enterprise computing are
(1) Java-EE architecture and program design
(2) Large database systems (e.g. Oracle)
(3) system analysis and design based on UML.
If you have any important skills, you can also include XML and Web service technology, and if you have a good command in these areas, you will not be able to find work. Especially to Java-EE is the most important, at present, Java EE has become the enterprise computing software development of the most important platform, but also the formal University Software Institute one of the most significant courses.
Although the course can only serve as an elective, we hope that students in the formal colleges and universities, regardless of their future direction, should learn the Java EE course, at least for the future to find work to prepare a key skill. Including those who want to engage in embedded or other fields, is also very necessary to learn about the Java EE, after all, the Java EE is currently one of the most important platform, even if you do not want to engage in the field of enterprise computing, it is necessary to understand the Java EE, like a common sense course.
Other skills that are more closely related to enterprise computing include: Dot NET architecture and program design, software testing technology, software configuration management, the higher level of skills in this field including Data Warehouse technology, component and middleware technology, design pattern and so on. such as communication protocol analysis and Network programming, UNIX system management are also some of the related courses. The 02-level enterprise Computing course is not much in this semester, it is mainly the most key technical courses in the computing field, such as Java EE, oracle/mssql, UML and so on.
You should be in the spare time to J2EE,DB, UML and other technologies to further delve further down, must be in a certain area of in-depth mastery. Just follow the lectures, even if the study of a number of courses is no use, their research down is the most important. Only a Java EE is profound, enough for you to chew down, delve down, you will find that you have to learn a lot of relevant knowledge (including EJB, XML, Web Service, design pattern, etc.).
Although the number of people engaged in enterprise computing, but the following enterprise computing areas both at home and abroad are scarce talent:
(1) Master of large ERP system, mainly SAP system, including SAP basis (System Management) or SAP ABAP (programming) or SAP function module implementation (especially the implementation of Financial module FI). SAP consultants are worth the most and are hard to find. Other large ERP systems, Master PeopleSoft, Oracle Finacial, J.d.edward, Siebel and other large ERP software systems are also very valuable. This aspect of the people is very high, mainly because these software is very professional, particularly large, it is difficult to have D version can learn, only large enterprises (such as the world's top 500, more than 90 use SAP) to use, and must have practical work experience to master. If it is a software that everyone can easily access, then people in this area are usually not scarce. If you have the opportunity to learn about these large ERP software systems in the future, we should not hesitate to seize the Kim Yong.
In foreign countries, people who are sap are particularly valuable. It is always the truth of irrefutable to dilute things. The value of SAP is not only because he is an ERP software, but the modern enterprise management concept embodied in it (such as automatically arranging raw material purchase and production plan according to order demand). The general 500 companies will never be like many enterprises in China, using Java-EE design Enterprise ERP system (will be how the human input, and the design of the system can be perfect), will certainly use SAP such mature ERP software. Companies that can't afford SAP may use Java EE to design ERP systems.
(2) Master IBM mainframe technology, such as S/390 Mainframe, MVS operating system, JCL operation Control Language, COBOL programming language, DB2 relational database or IMS hierarchical database, CISC middleware transaction control system and other IBM mainframe-specific technology. The five largest banks in the country, as well as the vast majority of foreign banks in the background of the system used are the above platform. IBM mainframes are known to never be downtime and the platform is relatively closed (this is the safest), so the key applications that require continuous operation in the 24*7 environment (the term mission critical applications) are IBM mainframes.
The reason this is scarce is because the mainframe people are the old man (who worked on it in the 90 's), new graduate It graduates around the world are no longer able to learn IBM mainframes (a relatively "old" technology) without newcomers, the banking system must be maintained and banks will continue to develop new businesses ( such as new deposit varieties) Although the absolute demand for IBM mainframe talent is not very large, it is difficult to find new people in this area relative to the constant bank. If it is easy to find Citi Software, it will not cost us so much to train our interns (last year more than 20 people heard that the company spent hundreds of thousands of yuan on training fees). If you're looking for a job abroad in the future IBM mainframe may be one of the best areas to look for a job and make sure you're looking for a big bank and a good job. Previously taught the computer Professional level 90-94 Some of the students who are engaged in mainframe development after graduation is a lot of good work in foreign companies ( Several students in various countries jumped to the Luliping of the company.
In fact, I think our happiest classmate is in Citi Software to do IBM mainframe banking software students such a chance is too rare. Normal University Software Institute 00 Class 22 Class A classmate at first gave up the insurance research to be in Citi Software to do mainframe and very hard yet graduate company sent her abroad to participate in a project development as a project backbone I think she chose to be Completely right, a 01-level female student has just voluntarily given up her chance to go to Citi as a mainframe, and we wish her good prospects in the future. In fact, like Citi Software initiative and encourage employees to read in-service graduate students, so the enlightened company is not many, in-service reading is a good choice, and will not lose their favorite internship job opportunities, can be taken into account the ultimate goal of reading or to work. If you're looking for a job abroad, no one cares what you are. Foreign enterprises will never spend the wrong money will only recruit the field of work experience can immediately start people with the least amount of money in the limited time to complete the project. And at home because of lower labor costs companies to recruit a lot of highly educated people, although it may not be able to use such a high degree of education, but the domestic staff is too cheap why not high consumption of talent so the company's façade is still lot better some.
(3) Other people, such as Data Warehouse technology, are very few in China. At present, the most mainstream data warehouse platform should be Oracle Data Warehouse tools. Some special data warehouses in foreign countries such as ncr/teredata people are very hard to find.
Young people are passionate about chasing some hot technology, which of course is right, after all, the opportunity to learn about SAP and mainframes after all, it's important to get a job before graduating. But I believe that as we grow older, we will all think slowly. The importance of mastering a less competitive stunt in the future if you work abroad, what technology is best to find a job ( It's easiest for people working in the software to work abroad or emigrate. Maybe you don't want to now but I believe that after working for many years, a large part of the students may think of a career abroad. You have to think about your future life. What kind of stunt is the most stable and the most easily the highest income. When you're older, you may be more likely to eat more with your experience than you do with a medical person, rather than having to chase the emerging software new technology all day long like a teenager. At this point you may find that if you have some stunts in sap or mainframes you will have a big advantage because the technology changes are relatively slow in these more biased areas. .
I remember in 2002 when I worked with a German in my spare time to interview some it talents to Germany when the demand from the German companies was many of them are SAP and IBM mainframe. We have not found a single candidate who has experience or even a bit of experience in this area. On the contrary, people who master pop technology are too much to be valuable.
Looking for a job not only to stare at the domestic market but also have a global perspective, for the software of the people you will be entirely likely to work in other countries. Especially in Europe, America, Japan, Singapore and other countries, for SAP (including IBM mainframe) The demand for talent is very large. After all, more than the students to remind students to pay more attention to the future opportunities to learn these skills, once the opportunity to recommend. The domestic talent market can be accessedwww.51job.com, foreign it talents need to visit www.hotjobs.com, www.workopolis.com,www.monster.comand other famous websites. These websites should be visited regularly to understand the specific needs of the market for talent, and to prepare early. Www.uiok.net
The above views on the field of enterprise computing for your reference. Although the point of view may not be correct, it is a blunt one. Anyway, everyone's head is on his neck. Everyone should have their own judgment.
Also pay attention to me above purely from the perspective of future employment to discuss the issue. If you are going to study abroad in the future, you should pay attention to basic courses like Cassemblyoopdiscrete mathdata structureopeating systemdatabase principlenetworksoftware Engineeringcompilerdigital Circuitcomputer Graphicscomputer Component and Architecture and other basic courses in the foreign university it major can generally find the same curriculum if the domestic study to study abroad can generally apply for exemption part. But I would also like to remind students that if you have to apply for a foreign university in the future, if you have to find a job, it is not easy to find a job if you devote your energy to the basic courses of the IT majors (traditional IT education model) without mastering some skills such as Java EE. We already have students who have this lesson. From the point of view of looking for a job, the enterprise is not concerned about what courses you have learned, but about what you can do, what skills you can do, and what projects to do.
Ii. about embedded System direction
Embedded system is undoubtedly one of the hottest and most promising it applications in the world at present. Embedded systems are used on a specific set of devices, often with limited hardware resources (such as processors, storage, etc.), and are sensitive to costs and sometimes require high real-time response. Especially with the intelligent consumer appliances, embedded more significant. We often see mobile phones, PDAs, electronic dictionaries, videophone, Vcd/dvd/mp3 players, digital cameras (DC), digital cameras (DV), U-disk, set-top boxes, high-definition TVs (HDTV), game consoles, smart toys, switches, Routers, CNC equipment or instrumentation, automotive electronics, home appliances control systems, medical equipment, aerospace equipment, etc. are typical embedded systems.
Embedded system is a combination of soft and hard things, engaged in embedded development of the people have two types.
A class of electronic engineering, communications engineering, such as hardware professional origin, they are mainly engaged in hardware design, and sometimes to develop some of the most closely related to the hardware of the bottom of the software, such as bootloader, Board Support Package (like a PC BIOS, drive down the hardware, Up to support the operating system, the original level of hardware drivers, and so on. Their advantage is that the hardware principle is very clear, the problem is that they are better at defining a variety of hardware interfaces, but for complex software systems often powerless (such as embedded operating system principles and complex application software, etc.).
The other is a software, computer professional people, mainly engaged in embedded operating systems and application software development. If we have a good grasp of the hardware principles and interfaces of the software, we can write the BSP and the hardware driver completely. After the embedded hardware design is finished, all kinds of functions rely on software to achieve, the value-added of embedded equipment depends largely on embedded software, which accounted for the most important embedded system work (there are many companies to the hardware design package to the specialized hardware companies, slightly more complex hardware to Taiwan or foreign companies to design, The domestic hardware design power is very weak, many embedded companies themselves are only responsible for the development of software, because the company knows that the difference between embedded products is very large in software, the software is the most "flower head" can be done, so we do software people do not have to worry about our embedded market, The more intelligent devices are complex systems, the more critical the software is, and this is the current trend.
The benefits of engaging in embedded software development are:
(1) At home and abroad, people are very scarce. On the one hand, because this field entry threshold is higher, not only to understand the underlying software (such as operating system level, driver-level software), the level of software professional requirements (embedded systems for software design time and space efficiency requirements higher), but also must understand the working principle of hardware, So it's hard for the non-professional IT staff to cut into this area on the other hand, is because this area is newer, the current development is too fast, many hardware and software technology appears the time is not long or is appearing (for example ARM processor, embedded operating system, MPEG technology, Wireless Communication Protocol, etc.), the person who grasps these new technology certainly is very looking for. Embedded talent is scarce, the price is naturally high, the more experienced prices will be higher. In fact, the root cause of the scarcity of embedded talent may be the majority of people unconditionally contact this requires the corresponding embedded development boards and software needs of other experienced people to guide the development process.
(2) with the enterprise computing and other applications, the embedded field of talent is usually lower work intensity (but the income is not low). Enterprise application software for the IT enterprise, the user's system finished, but also to go to the next user, and each user needs and completion time to be changed according to customer requirements, often busy, repetitive work. In contrast, companies that engage in embedded systems have their own product plans that act at their own pace. The products that are developed are usually generic and will not be modified as a result of customer differences. A product model has been developed, often have a longer period of free time (or just some minor patches of software), have time to recharge and rest. In addition, engaged in the embedded software of each person's work scope is relatively narrow, the scope of professional technology involved is those (ARM, RTOS, MPEG, 802.11, etc.), long time these things will be more and more experience, selling and selling, a few guidance also enough to let those early humanely for six months. If the application software, the next customer may be replaced by a completely different software development platform, it would be bitter.
(3) If you want to start a business, do their own products, then embedded is a good idea, this is not as easy as the application software piracy. The Institute of Civil Engineering has a company called Venus to develop a PDA that looks like "engineering e", which can be used by construction technicians on the spot to carry out a civil budget and other civil calculations, which is said to sell well. I know a university teacher, he developed a restaurant with a la carte PDA (wince platform, wireless network and access to the Internet), according to him said the market is good, the restaurant point PDA to let customers order, more show the style grade. When a group of students in the Windows Programming program with VC designed a very strong function of a la carte system as a course project, then really want to suggest that they will be the software into a PDA, it is estimated that some market (Shanghai railway station South Square MacDonald will use very beautiful PDA to the user point food, Like a decent touch). These PDA hardware design is generally to ask other companies to order (this is called "OEM": OEMs), are universal hardware, we just design the software to become their own products.
The disadvantages of engaging in embedded software development are:
(1) High starting point, the use of technology often have a certain degree of difficulty, if the hardware and software base is not good, especially the operating system-level software is not deep, it may not be suitable for this trip.
(2) The number of enterprises in this area is far less than the enterprise computing enterprises. In particular, the number of small enterprises engaged in embedded more (small enterprises to engage in their own product entrepreneurship), the well-known large companies less (embedded large companies are mainly Intel, Motorola, TI, Philip, Samsung, Sony, Futjtum, Bell-alcatel, Italian-French semiconductor, Microtek, Advantech, ZTE Communications, SVA and other manufacturing enterprises. These enterprises of the habit of thinking is to electronic, communications and other hard professional looking for someone. Since the former graduates of the formal colleges and universities are mainly based on the enterprises, the software colleges in the formal colleges and universities have relatively few links with these enterprises. The formal University Software Institute is actively working hard, has already established the contact with some of them, strives for in the future to have the formal university software school schoolmate to these enterprise internship or the employment.
(3) A small number of companies often want to master more than the embedded, mainly based on the difficulty of embedded. But most companies do not have this requirement, as long as the experience can be.
If students learn to embed embedded software in formal colleges and universities, it is obvious that they should focus on embedded softwares, especially embedded operating systems, which should be our strengths. For the embedded software, the most important technology is obviously (in fact, the job ads in many companies are written in this way):
(1) Mastering the structure and principle of the mainstream embedded microprocessor
(2) must master an embedded operating system
(3) must be familiar with the embedded software development process and have done at least one embedded software project.
The most important courses in embedded software in the Software Institute of formal colleges include:
(1) embedded microprocessor structure and application: This is an embedded Hardware foundation course, the formal University Software Institute has replaced the traditional "microcomputer principle and Interface" course with this course (at present, there are a few college it majors in China, because it is difficult to find the practical use of the x86 microcomputer principle and interface, only for teaching). We said that embedded is the hardware and software combination of technology, the person engaged in embedded software should arm processor working principle and interface technology is fully understood, including arm assembly instruction System.
If you do not understand the processor principle, how can control hardware work, how can write save memory and run high speed of the best code (embedded software design special attention to space-time efficiency), how can write drivers (drivers are dealing with the hardware) many companies to recruit embedded software personnel are required to be familiar with the ARM processor, In the future, if the students into the company engaged in embedded software development, the company will give you a hardware specification of the equipment (XXX specification), you must be able to understand the memory distribution and port use, such as the most basic instructions (like the x86 assembly), otherwise how to design software. Some students feel that the embedded processor curriculum is more boring, this is mainly hardware courses are more abstract reasons, such as our embedded laboratory in October, after you have done some experiments will feel visible touch. There are students of ARM assembly is not interested in the embedded development of the C language is enough. In fact, the assembly language should not only be used as a programming languages, the compilation is mainly to master the working principle of the processor. A person unfamiliar with assembly language, how to write the best C language code in the processor.
In some key parts of embedded development, it is sometimes necessary to write compilations, such as Bootloader, which may also include BSP. Especially in the case of high speed requirements (such as DSP processor high-speed image acquisition and image decompression), currently mainly rely on the assembly to write programs (I have seen many companies do this). When you work in an embedded company, when you look at the manuals describing the principles, many of them are described in assembly (which I've encountered) because many hardware designers write or like to use assembly descriptions, and you have to read the assembler, or the hardware and software personnel may not be able to communicate. Many embedded job recruitment requirements are familiar with the assembly.
(2) embedded Operating system class
In addition to the wince, the real-time performance of most embedded operating systems is very strong, so it can also be called real-time operating system real time operating system. Embedded people must master at least one embedded operating system (of course two better) This is most critical in all of the embedded technologies. At present, the most important RTOS include:
The first category, traditional Classic RTOs: The most important thing is the Vxworks operating system, as well as its Tornado development platform. VxWorks due to a slightly earlier, real-time very strong (said to be able to respond to external event requests within 1ms), and the core can be very micro (said to be the smallest 8K), high reliability and so on, so in North America, VxWorks occupy the embedded system most of the Xinjiang mountains. Especially in the communication equipment, such as real-time requirements of a higher system, almost vxworks mo genus. Many of VxWorks's concepts and technologies are similar to Linux, mainly in C language development. such as Bell-alcatel, Lucent, and other communications enterprises in the development of products, VxWorks used a lot. But VxWorks because the price is very high, so some small company or small product often cannot afford. At present, many companies are turning to Embedded Linux (I hear that is currently turning). But in any case, VxWorks remained unshakable for a long time. Some of the more well-known real-time operating systems like VxWorks are PSOs, QNX, nucleus, etc. rtos.
The second type, embedded Linux operating system: The future of Linux in addition to as a server operating system, the most successful is the application in the field of embedded, of course, free, open source, support software, many people, such embedded product costs will be low. Linux itself is not an embedded operating system, not micro-kernel, and real-time is not strong. Currently, there are two main types of Linux systems applied in the embedded domain: A class is designed for embedded design has been reduced Linux systems, the most commonly used is uclinux (without MMU function), the current account for a larger share of the application can be run on the ARM7 another class is running on ARM 9, Typically, the Linux 2.4.18 kernel is ported on it, and more Linux features are available (of course uclinux can run on arm 9).
Many people predict that embedded Linux is expected to account for more than 50 of the embedded operating system's share, very important. The disadvantage is that people who are familiar with Linux are too few, the development difficulty is slightly big. In addition, we can find a lot of textbooks and many universities to ucos/ii for the teaching of real-time operating system, which is mainly due to ucos/ii simpler, and open source, very suitable for beginners to learn the principle of real-time operating system, but due to ucos/ii function is limited, practical use less, Therefore, the formal University of software colleges and universities do not take it as a teaching focus, to learn should be learned directly practical, such as uclinux is very practical. and familiar with the development of Linux, not only in the embedded field, for the development of Linux application software, to deepen the understanding of the operating system is also helpful. As far as I know, at present, both Intel and Philip are engaged in armlinux embedded development, Fujitum is doing Linux development on its own processor. Currently in the embedded Linux field, the following are particularly difficult to find, one is to be able to transfer Linux to a new model of the development version of the second is able to write the Linux driver third is familiar with the Linux kernel reduction and optimization of the people. Formal College of software in this embedded Linux course series is: Undergraduate operating system required, followed by the Linux programming elective, and finally the embedded Linux system elective. The formal University Software Institute has the strong strength in the Linux aspect, the Wei teacher and Zhang teacher is familiar with the Linux development, teacher Kim and Tang teacher is familiar with the Linux system management.
The third type, Windows CE embedded operating system: Microsoft also looked at the large embedded market, MS is always the most powerful, wince out only a few years, but now has occupied a large market share, especially in the PDA, mobile phones, Display instrument and other interface requirements high or rapid development of the occasion, wince is now very popular (it is said that there is a sale of the company board of Industrial control machine sold too well, so too late for the customer cut wince). WinCE is currently 4.2 version (. NET), the development platform mainly for wince Platform Builder, sometimes with the EVC environment to develop some of the upper application, as the wince development are familiar VC environment, So the formal University Software Institute has studied Windows programming course students will not have much difficulty, this is also wince easy to accept the reason, the development environment convenient fast, Microsoft's formidable technical support, the wince development difficulty is far below the embedded Linux.
For the rush to complete, do not want to take embedded Linux adventure development occasions, wince is the most appropriate (to find embedded Linux people can not be so easy to see), after all, the company can not be as students learn to try to ensure that development success is more important. According to different emphases, wince also has two special versions, one is the MS PocketPC operating system dedicated to PDA (PDA), and the other is the MS Smartphone operating system for smartphones (with PDA-enabled handsets), both of which are wince platforms.
In the PDA and mobile market, in addition to wince, the famous PDA embedded operating system also has palm OS (due to appear very early, very famous), Symbian and so on, but under the strong impact of wince, How long will palm and Symbian have to be? The formal University Software Institute is probably the only university in the country to open a dedicated "Windows CE embedded Operating System" course of the school, mainly for the following reasons: the formal University Software institute itself in front of the Windows programming courses, Students learn the VC after learning wince very convenient natural, through learning wince also can understand the general development process of embedded software, Linux has the fear of the students are also very appropriate.
It's clear that embedded Linux will never replace WinCE, and it's hard to say who's going to be a big share in the future, after all, many people are more willing to accept MS platforms, just as governments have been pushing Linux for a long time, But you can see a few users who actually use Linux on the PC. As far as I'm concerned, Linux is the loudest on the embedded platform, but wince actually uses it more. Embedded Linux may be more of a long-term product planning company to reduce costs in the long run Second, Microsoft Research Asia to the formal university software college wince Curriculum Support program, we also very much hope that in the future formal university software college can have students through the Microsoft interview to practice. WinCE and multimedia (such as MPEG technology) are one of the most widely available project areas in Microsoft's Asia Engineering Institute. They need people who are proficient in wince.
Summary on the embedded operating system classes, if you feel that you have a deeper foundation and can delve down, you can go to learn embedded Linux if you think you have a good knowledge of VC and want to Chanping geoscience embedded development, the formal university software College wince course is the best choice.
(3) Other related software courses for embedded development
If you can become familiar with embedded applications in some of the main areas, such people are more popular with enterprises. Major areas of relevance include:
A, Digital Image compression technology: This is the most important embedded one of the most popular application areas, mainly should be mastered MPEG codec algorithm and technology, such as DVD, MP3, PDA, high precision TV, set-top box, etc. are involved in MPEG high-speed decoding problem. For this reason, the formal University Software Institute has reserved a doctor who can open Digital image processing course.
B, communication protocol and programming technology: This includes the traditional TCP/IP protocol and the popular Wireless communication protocol. First of all, most embedded devices must be connected to the LAN or the Internet, so you should first master the TCP/IP protocol and its programming, which is the first to master the basic technology Secondly, wireless communication is the current trend, so mastering the wireless communication protocol and programming is also very important. The protocol includes Wireless LAN communication Protocol 802.11 series, Bluetooth, and mobile communication (such as GPRS, GSM, CDMA, etc.).
C, network and information security technology: such as encryption technology, digital certificate CA and so on. The formal University Software Institute has the elective course in this aspect.
D, DSP technology: DSP is digital Signal process digital signal processing meaning, DSP processor hardware to achieve digital signal processing algorithms, such as high-speed data acquisition, compression, decompression, communication and so on. Digital signal processing is the electronic, communication and other hardware courses, for the software to get the best understanding of the people. The current DSP talent is relatively short. If there are courses based on signal and system and digital signal processing, it will be helpful to learn the MPEG codec principle.
(4) The related Hardware foundation of embedded development
For students majoring in software engineering, it is important to engage in embedded software development, such as digital circuit, computer composition principle, embedded microprocessor structure and other hardware courses. In addition, the assembly language, C/C, data structure and algorithm, especially the operating system and other software basic courses is also very important. Our main aim is to understand how the hardware works, but the focus should be on embedded software, special operating system-level software, which will be our advantage.
Some of our graduate students are learning electronics, communications professionals come over, have a better analog circuit and SCM Foundation, learning embedded very suitable. Embedded itself is from the development of single-chip microcomputer, but not with the OS MCU, and now many embedded applications more and more complex, and have to introduce embedded operating system. In addition, in order to pursue more high-speed signal processing speed, now in some high speed requirements of the occasion, there are a number of companies are some DSP algorithms, such as MPEG compression decompression algorithm, such as hardware to achieve, which involves HDL digital circuit design technology and its FPGA/IP nuclear implementation technology, There is also a shortage of people in the market.
(5) Digression
In addition, people who can write drivers are currently very scarce (drivers can also be embedded), including the DDK development environment and WDM drivers in desktop windows. Companies to launch a new product every moment, each new product came out, to be able to be used by the operating system, it is necessary to write the driver. Write drivers must master the operating system (such as Windows or Linux) internal working principle, but also involves a small amount of hardware knowledge, more difficult, so this person is very hard to find. Want to become a master of the classmate, can also be from the driver to achieve breakthroughs.
I can say my own experience, three years ago I had briefly written a wince driver in a company (precisely because of the shortage of people who knew it, so to do this thing), even though it has never been a driver before, the job is to look at the position of the company is difficult to recruit people, since all can not find people, The driver has to be done, which is the chance to get into the field. Interviewed about how many million-line assembler I wrote, how to understand how the computer works, and the resume that I have read the two books on the Windows Driver Model two English original book, wrote a few small driver practice program (in fact, never written, Our classmates will never be like me, early to do some good kung fu, will not be reduced to me such a situation, it is not like me to "deceive" the company, I this is a typical negative example), incredibly everything pass (of course, the most important is the written test and interview questions also reasonable), This only illustrates the extent of the difficulty of finding people in this area. The company didn't expect to find someone who had been driven, and it would be nice to find someone with the basics. After doing so, the discovery is not how difficult. In fact, the driver's work is very comfortable, finish a version will be empty for a period of time, only when the company's new chip or new OS appear, only need to develop a new version of the driver, there are nearly one months idle in wait for the wince. NET Beta release, ready to upgrade the driver to CE. NET, now in the Software Institute work all day busy, infinite miss that period of leisure time.
Coincidentally, recently I accidentally again realized that the embedded charming place. Last week I spent 3 years of mobile phone finally can not work. This update, in addition to the requirements of mobile phone common functions, preferably have MP3 function (now many English listening have MP3 files), preferably English-Chinese dictionary, it is best to read Word documents. Finally selected a satisfied with the above conditions of the cheapest mobile phone dopod 515 (chopped my 2.2K, but think of this also count their own support for the embedded cause, so I also want to open), is the most low-grade smart phone. Back to check, the mobile phone processor is arm, its OS is Ms Smartphone (ie, wince. NET 4.2), so coincidence, can be done to learn the embedded curriculum of the product case (and so our wince course opened to a vivid, I hope to get some smartphone from Microsoft Research to develop it. Have OS mobile phone really got, PowerWord, WORD, EXCEL, regedit and so on incredibly all have smartphone version, PC MP3, doc, etc. incredibly in download can be automatically converted into smartphone format, it is cool. Fully available for Windows CE to develop some of the required programs download to your phone. Now market sales PDA smartphone hot, mobile phones are always a source of money rolling. But I have found that the domestic armlinux mobile phones appear in the market, the price is only 1.2K.
On the Google Web can search too much on the embedded system discussion, I just found a http:www.embyte.com very good, there are many experienced people to talk about their experience into the forum, you will feel the embedded learning boom.
Either go armwince, or go armlinux, or go armvxworks. Each embedded person can choose a road, all roads through Rome.
Third, about the game software direction
The game software talent known as digital media software talent may be better, including game software planning (the most lack of game planning of the People), game software art design, game software programming, and many other talents, Software College, game Software design is of course the most appropriate.
Game software talent is indeed very short, I heard that a lot of game software companies are suffering from no new talent to add, in particular, there is no master to add, have to dig with each other talent, so that the game software talent more and more high. Online said the Japanese Ministry of Education has just approved the establishment of Japan's first specialized training four-year game software talent undergraduate University. In fact, many universities in China, in particular, software colleges have the idea of playing software talent, but there are few made, the main reason is not to be able to go to the game software class teachers, heard that there is a school can only spend a great deal of money from Korea to find teachers to class, really lack of such a situation
There are many young people indulge in online games and decadent examples, fortunately not rise to the height of the production of spiritual opium, so the development of game software people do not have to regret daily (but the development of children's puzzle game software is not to be ashamed of), if you think this is to develop the national software industry to make contributions, it is a meaningful thing. But listening to the boss of a gaming software company says it's hard to develop games software.
If you want to start your own business, it's a good idea to play software. Now online sites or companies are acquiring game software (especially mobile game software, because mobile game users can choose from the site download to mobile phones, not as complex as online games), according to the number of download or one-time acquisition. Our classmates in school can also send a little money to do good, maybe sell to foreign websites, directly earn $$$ it.
Roughly the game is divided into the following categories:
(1) PC game, including stand-alone and online games. This type of game development platform is basically based on VC and DITRECTX (such as DIRECTSHOW,DIRECTDRAW,D3D, DirectX data can be directly to the MS site to check). DirectX and OpenGL are the two main graphics standards, OpenGL Cross-platform (Unix/windows), although many research people are full of OpenGL praise, the DirectX scold is worthless, but the fact is, on the Windows platform, DirectX is the fastest and most convenient, so the game on the Windows platform or DirectX masters.
(2) Mobile games: The current mobile game main development platform has two types:
The first type of mobile game is the J2ME platform (Java 2 Micro Edition), J2ME is designed for the embedded platform Java, but because Java is born with Java Virtual Machine (JVM) to explain, so in the embedded product is rarely used J2ME (too slow memory). But in the mobile game j2me is useful, I think this may be mainly Java can cross the OS platform, because the mobile phone OS is strange. I'm completely unprofessional about J2ME, but the last time I heard from Square Enix, J2ME and our classmates had a big difference. As far as I know, the current use of mobile phone is Kjava language, Kjava is run in a K Java virtual machine interpreter (K JVM is a virtual machine developed by Sun early to demonstrate J2ME application in embedded system), so will be in K The J2ME running on the JVM is called Kjava. Although Sun says there is no guarantee to support the K JVM in the future, it will develop new, higher-performance J2ME virtual machines instead, but since Kjava appeared earlier, many of the early mobile gaming software have assumed K JVMs as the standard for J2ME virtual machines, so there is a large number of Kjava mobile gaming software available, and continue to develop with Kjava. Japan's mobile gaming software, in particular, is based on Kjava because of its early development (like what Docomi, Japan's biggest telecoms operator, has a very hot phone game). So the current market in the recruitment of mobile phone game software talent, a lot of requirements to master Kjava. For information on J2ME, please go to Sun's website.
Another type of mobile game is the brew platform, Brew is the United States Qualcomm (QUALCOMM,CDMA core technology is developed by the company, there are countless mobile communications technology patents) invented, is said to be compiled into binary code, of course, fast. The main development language is C/C. But under pressure to be blamed for the more closed pressures, Qualcomm has now launched the J2ME virtual machine on the brew platform (but can imagine how slow it will be). Qualcomm a lot of phone manufacturers to sign the brew licensing agreement, the most ruthless is the Qualcomm and China Unicom tied to a lot of brew-based mobile games, so some companies to recruit when the need to master brew is not surprising.
Last year 00 class 22 graduation reply, one classmate is talking about is in the company's Kjava game (that is a Japanese game software company), also one classmate is talking about another company to do Brew game, it seems that different companies have different choices. Who will be more fire in the future, I estimate as the mobile phone hardware resources continue to improve, will not care about the cost of a JVM, J2ME should be more promising, after all, it is more open.
(3) Dedicated game consoles: such as video games, XBOX,PS2 and so on.
From the famous game company to the online games and mobile game talent needs, very representative. From this we can see that the game company's demand for talent is mainly the following technologies:
(1) Computer graphics, especially 3D programming and algorithms, including DirectX or OpenGL. The development platform is VC/DIRECTX or Kjava.
(2) The company said, mobile phone games because of limited resources, the image must be compressed, so if there are some image compression algorithm knowledge is better. Like if the MPEG compression algorithm is better, the mobile phone is a more malicious than MPEG compression of some special algorithms, but analogy.
(3) TCP/IP socket programming is to engage in the development of online games people must master.
(4) Knowledge of artificial intelligence: complex games may require some AI algorithms.
(5) Network and information security knowledge: Online games to prevent plug-in.
General game company's online games server is based on Linux platform, so also put forward the game server-side software engineers Technical requirements (proficient in MSSQL, ORACLE, MySQL and other databases, proficient in Linux programming, especially socket programming). There is also the maintenance of the game, website talent needs (ASP. NET and database). Note that the best to have their own game software works, if you can bring a DirectX works when you apply, that will have how strong competitiveness, so the most important thing is to act now, practice, practice, and then practice.