14 Mar, 2021
Nghề khoa học máy tính
Thị trường việc làm cho người tốt nghiệp Khoa học máy tính (CS) đang bùng nổ trên khắp thế giới do thiếu hụt trầm trọng người phát triển phần mềm.
Lĩnh vực máy tính đang mở rộng theo nhiều hướng thế bên ngoài mọi dự đoán. Những khu vực mới và lĩnh vực mới được tạo ra mọi năm thêm vào các nhu cầu khẩn thiết. Có những việc làm thậm chí đã không tồn tại năm năm trước đây như người phát triển di động, người quản trị an ninh mạng, người phân tích mạng xã hội và người phát triển mạng xã hội v.v. nhưng ngày nay họ đang có nhu cầu cao. Theo một báo cáo công nghiệp, có ba việc làm sẵn có cho mọi người tốt nghiệp CS. Một người quản lí phần mềm nói với các phóng viên: “Vài năm trước đây, chúng tôi rất chọn lọc về người chúng tôi cần thuê. Ngày nay nếu chúng tôi không thuê đủ nhanh, ai đó sẽ thuê mất. Cạnh tranh về người tốt nghiệp CS là dữ dội. Chúng tôi thậm chí đề nghị các việc làm cho sinh viên năm thứ ba để ngăn cản họ làm việc cho công ti khác.”
Các báo cáo về mở ra việc làm CS sẵn có gây sửng sốt lớn. Một khảo cứu năm 2011 nói tới việc thiếu hụt quãng 150,000 vị trí không được lấp đầy ở riêng Mĩ. Báo cáo này ước lượng rằng thế giới sẽ cần quãng 4.5 triệu người phát triển phần mềm để đáp ứng nhu cầu toàn cầu năm 2020. Lí do là thay đổi công nghệ nhanh tới mức không trường nào có thể đào tạo đủ sinh viên để đáp ứng nhu cầu. Mặc dầu nhiều việc làm có thể được rót đầy bởi những người CNTT được đào tạo lại, nhưng không có đủ người đào tạo có phẩm chất để đào tạo họ. Các thành phố công nghệ như San Jose, San Francisco, Boston, Seattle, và Austin có trên 8000 công ti thuê công nhân CNTT “như điên”. Nếu bạn vẫn không chắc cần học gì ở đại học, bạn có thể nhìn vào khoa học máy tính như nghề tương lai của bạn.
Ngày nay mọi ngành công nghiệp đều dựa vào công nghệ thông tin. Trong khủng hoảng tài chính, các công ti dừng thuê người và chờ đợi cho tới khi kinh tế phục hồi cho nên nhiều việc đã không được làm. Khi việc phục hồi bắt đầu họ không thể chờ đợi lâu hơn được và đột nhiên mọi công ti đều thuê người ngay, điều tạo ra việc dâng lên trong nhu cầu. Vì mọi doanh nghiệp đều cần phần mềm mới để cải tiến hiệu quả của họ, CNTT trở thành khu vực tăng trưởng nhanh nhất. Đồng thời, thị trường cho nền di động và máy tính bảng cất cánh và đặt thêm nhu cầu về người phát triển phần mềm có kĩ năng. Khu vực phát triển này dẫn tới khu vực khác, tạo ra nhu cầu mới về nhiều công nhân phần mềm hơn. Khi các ngành công nghiệp thấy ích lợi của công nghệ phần mềm mới, họ phải bảo đảm hệ thống của họ dùng những công nghệ mới nhất nữa cho nên họ ưa thích thuê những người mới tốt nghiệp vì người CNTT của họ có thể không có kĩ năng mới nhất.
Việc đưa vào điện thoại thông minh tạo ra nhu cầu cho tích hợp tính toán và viễn thông vì điện thoại bây giờ là máy tính nữa. Xem như kết quả, tích hợp hệ thống và kiến trúc phần mềm đang trở thành “kĩ năng nóng”. Với nhu cầu cao thế, phần lớn những người tốt nghiệp CS không phải tìm việc làm vì việc làm phải tìm họ. Người tốt nghiệp CS ngày nay thường có vài công ti chọn từ với lương rất cạnh tranh. Một người mới tốt nghiệp CS có thể làm được $90,000 tới $110,000 đô la một năm tuỳ theo trường họ tốt nghiệp ra. Sinh viên từ các đại học có chương trình đào tạo gióng thẳng với nhu cầu công nghiệp thường làm được nhiều hơn.
Vì công nghệ thay đổi, nhu cầu trong công nghiệp cũng thay đổi, điều yêu cầu đại học phải thay đổi giáo trình của họ nữa. Ngày nay có các xu hướng liên quan mới nổi lên trong khoa học máy tính mà sinh viên cần chú ý:
Khối lượng phần mềm hại dưới dạng vi rút, sâu v.v. đang tạo ra quan ngại tới mức độ nào đó rằng điều đó bây giờ được coi như mối đe doạ chính cho công nghiệp. Công nghiệp CNTT có yêu cầu khẩn thiết với mọi đại học rằng họ phải chú ý tới vấn đề an ninh và “an ninh tính toán” phải là môn học được yêu cầu cho mọi người tốt nghiệp CNTT. Mặc dầu vấn đề về an ninh thường được dạy trong môn “Nền tảng của kĩ nghệ phần mềm” hay “Nhập môn khoa học máy tính” bằng việc nhắc tới dùng mật khẩu, quyền truy nhập, việc dùng tường lửa, dùng các kĩ thuật mật mã hoá, an ninh dữ liệu. Tuy nhiên, nhiều vi phạm tới qua việc chú ý không thích hợp tới vấn đề cơ sở như kĩ thuật lập trình. Không lập trình đúng có thể gây ra lỗi phần mềm bị khai thác được như tràn bộ đệm và các vấn đề liên quan. Bên cạnh an ninh liên quan tới vi phạm web đang tăng, và lại cần được đề cập tới một cách thích hợp. Công nghiệp CNTT khuyến cáo rằng môn “an ninh tính toán” và “viết mã an ninh” cần được dạy cho mọi chương trình đào tạo khoa học máy tính và kĩ nghệ phần mềm ở đại học.
Phát triển của các bộ xử lí đa nhân đã là đóng góp lớn cho kiến trúc tính toán. Để tận dụng ưu thế mới này đầy đủ, việc đào tạo cần áp dụng tính song hành trong các môn lập trình. Điều này đặt nhấn mạnh lớn hơn vào các nguyên lí, kĩ thuật và công nghệ về song hành trong các môn logic nền tảng và lập trình. Với sự bùng bổ của nền di động và máy tính bảng, có nhu cầu khẩn thiết cập nhật việc đào tạo hiện thời để đưa vào tính năng song hành, và với nhấn mạnh vào các yếu tố song hành. Một yêu cầu như vậy từ công nghiệp đại diện cho dịch chuyển nền tảng hướng tới chú ý nhiều hơn vào song hành như tương lai của mọi yêu cầu giáo trình tính toán.
Việc dùng web là thay đổi chính khác trong các môn tính toán. Công nghiệp CNTT cũng yêu cầu rằng đại học đòi hỏi sinh viên CS xây dựng tri thức trong các khu vực đề cập tới lập trình, kĩ nghệ phần mềm, quản lí dữ liệu, di động, tương tác người máy tính, an ninh và hệ thông minh. Kĩ nghệ Web bây giờ đã nổi lên như một bộ môn mới của CS, và khoa học web đang nổi lên nhanh chóng nữa. Những phát triển này đã giúp làm mờ đi phân biệt truyền thống giữa các khu vực hệ điều hành và mạng/truyền thông. Các chủ đề khác như tính toán trò chơi hay tính toán giải trí, cũng như mô phỏng và mô hình hoá có xu hướng nổi lên nhanh chóng như các bộ môn CS mới khác.
Trong nhiều năm, khoa học máy tính là khu vực hội tụ vào cấu trúc dữ liệu, logic, thuật toán, và ngôn ngữ lập trình nhưng nó đang thay đổi nhanh chóng với những khu vực mới nổi lên, yêu cầu những thay đổi lớn trong cách đại học giáo dục sinh viên của họ. Khi các khu vực mới được cần tới bởi công nghiệp, khi các công nghệ mới đang tiến hoá, sinh viên CS cần hiểu những thay đổi này để giữ cho tri thức và kĩ năng của họ được cập nhật với nhu cầu cao từ công nghiệp.
—-English version—-
Computer Science Career
The job market for Computer Science (CS) graduates is exploding all over the world due to the critical shortage of software developers. The computer field is expanding in so many directions beyond any prediction. New areas and new fields are created every year adding to the urgent needs. There are jobs that did not even exist five years ago such as mobile developers, network security administrator, social network analyst and social network developers etc. but today they are in high demand. According to an industry report, there are three jobs available for every CS graduate. A software manager told reporters: “Few years ago, we were very selective on who we want to hire. Today if we do not hire fast enough, somebody will. Competition for CS graduates is fierce. We even offer jobs to third-year students to prevent them for working for other company.”
Reports of available CS job openings are staggering. A 2011 study claimed a shortfall of 150,000 unfilled positions in the U.S alone. The report estimated that the world will needs about 4.5 million software developers to meet global demands in 2020. The reason is technology changes so fast that no schools can train enough students to meet demand. Although many jobs can be filled by retrained IT people but there are not enough qualified trainers to train them. Technology cities like San Jose, San Francisco, Boston, Seattle, and Austin have over 8000 companies hiring IT workers “like crazy.” If you are still not sure what to study in college, you may want to look at Computer Science as your future career.
Today every industry relies on information technology. During the financial crisis, companies stopped hiring and waited until the economy recovers so many works were not done. As the recovery begins they cannot wait longer and suddenly every company is hiring at once which create a surge in demand. Since every business needs new software to improve their efficiency, IT becomes the fastest growing area. At the same time, the market for mobile platforms and tablets took off and put more demand for skilled software developers. One development area leads to another, creating new needs for more software workers. As industries see the benefits of new software technologies, they must ensure their systems are using the latest technologies too so they prefer to hire newly graduates because their IT people may not have the latest skills.
The introduction of smart phone creates a need for integrate computing and telecommunications because phone is now a computers too. As a result, systems integration and software architect are becoming “Hot skills”. With such high demand, most CS graduates do not have to find jobs because the jobs have to find them. Today CS graduates often have several companies to choose from with very competitive salary. A newly CS graduate can make $90,000 to $110,000 a year depending on the school they graduated from. Students from universities that have training programs in alignment with industry needs often make more.
As technology changes, demand in industry also changes that requires university to change their curriculum too. Today there are relevant emerging trends in Computer Science that students need to pay attention:
The amount of malicious software in the form of viruses, worms, etc is causing concerns to the extent that it is now seen as a major threat to the industry. The IT industry has sent urgent requests to all universities that they must pay attention to security matters and “Computing Security” must be a required course for all IT graduates. Although the issues of security is often taught in the “Fundamental to Software Engineering” or “Introduction to Computer Science” courses by mentioning the use of passwords, access controls, the use of firewalls, using cryptographic techniques, data security. However, many violations come about through inadequate attention to basic matters such as programming techniques. Failure to program properly can result in exploitable software defects such as buffer overflow and related problems. In addition web-related security breaches are increasingly common, and again need to be addressed appropriately. The IT industry recommends that “Computing Security” courses and “Secure Coding” courses to be taught for all Computer Science and Software Engineering training program in university.
The development of multi-core processors has been a significant contribution to computing architecture. To take this new advantage fully, training needs to apply concurrency into their programming courses. This places greater emphasis on the principles, techniques and technologies of concurrency in the fundamental logic and programming courses. With the explosion of mobile platforms and tablets, there are urgent needs to update current training to include concurrent features, and with emphasis on the concurrency elements. Such a request from IT industry represents a fundamental shift towards greater attention to concurrency as the future of all computing curriculum requirements.
The use of the web is another major change in computing disciplines. The IT industry also requests that university to require CS students to build knowledge in areas that address programming, software engineering, data management, mobility, human computer interaction, security and intelligent systems. Web engineering has now emerged as a new discipline of CS, and web science is emerging quickly too. These developments have served to blur the traditional distinction between the areas of operating systems and networking / communications. Other topics such as games computing or entertainment computing, as well as simulation and modeling tend to emerge quickly as another new CS disciplines.
For many years, Computer Science is an area that focuses on data structure, logic, algorithms, and programming languages but it is rapidly changing with new emerging areas that requires significant change in the way university educate their students. As new areas are needed by the industry, as new technology is evolving, CS students need to understand these changes to keep their knowledge and skills up to date with high demand from industry.