Introduction
This essay addresses several important issues concerning career possibilities for computer engineers. It describes the levels of programming skills needed for different job concentrations and is required by employing agencies, additional skills of non-programming origin needed in these areas, describing of past work experience and its relevance to the chosen job concentration and finally the level computer programming experiences and other knowledge.
Software engineering
The programming skills in this job concentration should involve programming fundamentals of computer science.
Basic skills should include problem analysis and modeling, software design, validation and verification, software process, software quality and management, and the ability to work in a software construction team.
Besides software programming skills software engineering goes far beyond programming and includes such knowledge as an ability to meet customers’ requirements, testing, and designing software. The candidates for software engineering programs are to assess customers’ need and develop software which meets these needs. Moreover, frequently a solid knowledge of technical peculiarities of ‘a real world’ conditions of work is required in this job concentration.
Computer science education with the level of the master is the first precondition for employing in this job concentration. Past work and experience in building high-speed, reliable, and large-scale communication, trading, banking, and other activities are usually needed and should be systematic. Moreover, a commitment to quality and sound engineering should be evidenced by real past experience and activities patterns and a high level of motivation is required.
The experience level needed for this job concentration differs considerably depending on the job position. But generally professional knowledge and experience in such programming languages as Lisp, C++, Python, and Java are needed.
Often an experience in implementing large-scale software systems is required for important job positions as well as in Internet languages and software programming XSLT, Web services, databases (Oracle), etc.
For networking software engineering it is necessary that job applicants be proficient in developing various compilers, networking software, and application servers, and operating systems for working with networks. An experience in reading, comprehending, and implementing complex specific domain documents and design materials is often required as a condition for successful application.
Besides these requirements candidates are to take full responsibility for implemented software finished products for which it is important that an applicant be a strong contributor to the company’s performance.
Test engineering
General skills required for this job concentration are experienced in the software life cycle testing methods, testing life cycle and its development, OOP and Windows development, experience in developing software and knowledge of different testing methodologies, knowledge in the object-oriented and object-based programming, knowledge of XML, RDBMS interfaces, etc. Among additional skills required one should mention such as specification documentation (for instance, Dataflow diagramming, transition diagramming, etc.), knowledge of certain industry data processing subsystems, sensors and RFID, and various test automation tools, experience in Wireless LANs.
The applicants in this job concentration should have past experience in testing software kits, sensor platforms, providing technical support for an installed computing system, developing the total life cycle, and also should have full experience in writing various test cases, designing test scripts.