Về căn bản, kĩ sư phần mềm chịu trách nhiệm về sáng tạo sản phẩm phần mềm chất lượng đáp ứng yêu cầu của khách hàng. Sinh viên kĩ nghệ phần mềm được đào tạo để kiến trúc giải pháp phần mềm dựa trên tập các cấu phần công nghệ. Họ học thiết kế bản mẫu để chắc rằng giả pháp đáp ứng cho nhu cầu của khách hàng, và viết mã để tạo ra sản phẩm dựa trên các bản mẫu đó. Sinh viên học tuân theo qui trình phần mềm, vòng đời phần mềm, và phương pháp phần mềm và dùng công cụ để cho đến lúc họ tốt nghiệp, họ có tập kĩ năng mà có thể được áp dụng cho nhiều khu vực. Bên cạnh đó, họ cũng duy trì nhận biết về xu hướng công nghiệp và công nghệ mới nhất, và cung cấp lời khuyên kĩ thuật cho những người khác.
Tương lai của lĩnh vực này là sáng lạn vì có nhiều cơ hội việc làm ngày nay và trong tương lai. Điều thú vi nhất về kĩ nghệ phần mềm là ở chỗ người tốt nghiệp có thể làm việc trong nhiều lĩnh vực khác nhau thế. Kĩ nghệ phần mềm là một phần của mọi công nghiệp.
Nếu bạn là kĩ sư phần mềm làm việc cho công ti phần mềm như Microsoft, Google, Facebook v.v. bạn sẽ làm việc với các kĩ sư phần mềm khác và được chuyên môn hoá trong kiểm thử, lập trình, phát triển, đảm bảo chất lượng, kiến trúc, và quản lí dự án v.v. Nếu bạn là kĩ sư phần mềm làm việc trong công ti chế tạo hay kinh doanh, bạn có thể làm việc về hệ Quản lí quan hệ khách hàng (CRM); hệ Lập kế hoạch tài nguyên công ti (ERP); hay hệ Quản lí dây chuyền cung cấp (SCM) và phát triển phần mềm hay chuyên biệt hoá phần mềm bán sẵn trên thị trường (COTS) như “SAP” hay “PeopleSoft” cho công ti. Khi nhiều công ti đang cố gắng tự động hoá hệ thông tin của họ, họ cần nhiều kĩ sư phần mềm hơn.
Lĩnh vực công nghệ thông tin (CNTT) ngày nay có bao gồm Khoa học máy tính, Kĩ nghệ phần mềm, Quản lí hệ thông tin và Kĩ nghệ máy tính là một trong những nghề tăng trưởng nhanh nhất trên thế giới. Thực ra, có thiếu hụt những người này ở mọi nước bởi vì cầu đã vượt quá cung. Tăng trưởng này sẽ tiếp tục bởi vì có nhiều doanh nghiệp cần các công nghệ mới để hợp lí hoá tính hiệu quả của hệ thống máy tính của họ. Tất cả những tăng trưởng và nhu cầu này dẫn tới việc tăng lương đáng kể. Ngày nay lương khởi điểm cho người tốt nghiệp kĩ sư phần mềm ở Mĩ biến thiên từ $89,000 tới $105,000; với từng năm kinh nghiệm được thêm $5,000 tới $7,000. Người kĩ sư phần mềm có năm năm kinh nghiệm có thể được mong đợi làm ra $120,000 tới $135,000 một năm.
Ngày nay, nền di động và máy tính bảng trở thành khu vực “nóng”. Có nhu cầu cao về người tốt nghiệp có kĩ năng trong phát triển ứng dụng cho thiết bị di động với nhấn mạnh vào iPod, iPhone và iPad của Apple hay Androids của Google. Thay đổi trong công nghệ yêu cầu thay đổi trong chương trình đào tạo để hội tụ nhiều hơn vào cách tiếp cận di động. Nhiều lớp lập trình đang mở rộng để bao quát Java, C++, C#, Python, và Ruby trên Rails.
Với nhu cầu toàn cầu cao, bây giờ là thời gian tốt để học về kĩ nghệ phần mềm hay các lĩnh vực công nghệ thông tin khác. Khi bạn lập kế hoạch cho nghề nghiệp tương lai của bạn, nhớ thêm ngoại ngữ như tiếng Anh vì nhiều việc làm trong tương lai yêu cầu kĩ năng ngôn ngữ. Ngày nay, gần như mọi việc làm trong công nghiệp CNTT đều yêu cầu bằng cử nhân, một số thậm chí ưa thích bằng cấp chuyên sâu.
Mặc dầu trong một số nước, trường chuyên nghiệp hay chứng chỉ 2 năm vẫn là tốt để có việc làm nhưng thị trường đã thay đổi nhanh chóng. Ngày nay phần lớn phần mềm đều trở nên lớn hơn và phức tạp hơn, thời gian đào tạo ngắn sẽ không cho công nhân kĩ năng mà công nghiệp yêu cầu, đặc biệt nếu bạn muốn làm việc cho công ti toàn cầu, công ti cung cấp làm khoán ngoài.
Mặc dầu mô tả việc làm biến thiên trong các công ti và khu vực chuyên môn nhưng phần lớn các công ti đều muốn thuê người tốt nghiệp có kinh nghiệm trong phát triển phần mềm (dự án Capstone thường được tính như kinh nghiệm 6 tới 8 tháng); những người tốt nghiệp có tri thức về qui trình phát triển phần mềm, vòng đời, thủ tục thiết kế với các kĩ năng mềm phụ thêm như kĩ năng trao đổi, kĩ năng trình bày, ra quyết định, kĩ năng lãnh đạo và điều quan trọng nhất là kĩ năng làm việc tổ (dự án Capstone thường được tính như có kĩ năng làm việc tổ).
Trong phỏng vấn việc làm, phần lớn các công ti sẽ hỏi các ứng cử viên về các kĩ năng như thiết kế và kiến trúc hệ thống phần mềm tương ứng với đặc tả yêu cầu; khả năng làm việc với các thành viên tổ phân bố và có khả năng tích hợp các gợi ý và thay đổi (đây là lí do tại sao kĩ năng ngoại ngữ là mấu chốt); cách tiến hành cấu phần kiểm thử đơn vị để đảm bảo tính chức năng mức mô đun và nhất quán cấu trúc dữ liệu; kĩ năng trong thiết kế và thực hiện / kiểm điểm mã của thành viên tổ khác; kĩ năng trong viết mã theo cách đúng hạn và với chất lượng cao, nhất quán với chuẩn công nghiệp. Khả năng để trao đổi với khách hàng và người dùng (đây là lí do tại sao ngoại ngữ là quan trọng); và tri thức về xu hướng công nghiệp và công nghệ mới nhất (đây là lí do tại sao sinh viên phải đọc tin công nghệ và xu hướng công nghiệp thường xuyên).
Software engineering has been ranked as the hottest job in the world. Basically; software engineer is responsible for creating quality software product that meets customer’s requirements. Software engineering students are trained to architect a software solution based on a set of technology components. They learn to design prototypes to make sure that the solution meets customer’s needs, and write code to create products based on those prototypes. Students learn to follow software process, software lifecycle, and software methods and using tools so by the time they graduate, they have a set of skills that can be applied to many areas. In addition, they also maintain awareness of the latest industry trends and technologies, and provide technical advice to other people.
The future of this field is bright as there are many job opportunities today and in the future. The most interesting thing about software engineering is that graduates can work in so many different fields. Software engineering is part of every industry.
If you are a software engineer working for a software company like Microsoft, Google, Facebook etc. you will be working with other software engineers and be specialized in testing, programming, developing, quality assurance, architecture, and project management etc. If you are a software engineer working in a manufacturing or business company, you could be working on customer Relation Management system (CRM); Enterprise Resource Planning system (ERP); or Supply Chain management system (SCM) and developing software or customize Commercial off the Shelf (COTS) software such as “SAP” or “PeopleSoft” for the company. As more companies are trying to automate their information system, they need more software engineers.
Today Information technology (IT) field that consists of Computer Science, Software Engineering, Information System Management and Computer Engineering are one of the occupations that grow the fastest in the world. In fact, there is a shortage of these people in every country because the demand has exceeded the supply. This growth will continue because there are more businesses need new technologies to streamline the efficiency of their computer systems. All this growth and demand leads to significant increasing salaries. Today starting salaries for software engineer’s graduates in the U.S is ranging from $89,000 to $105,000; with each year of experience add another $5,000 to $7,000. A software engineer with five years of experience can be expected to make $120,000 to $135,000 a year.
Today, mobile platforms and tablets became “Hot” areas. There is high demand for graduates who have skills in developing applications for mobile devices with emphasis on Apple’s iPod, iPhone and iPad or Google’s Androids. The change in technology requires a change in curriculum to focus more on mobile approach. Many programming classes are expanding to cover Java, C++, C#, Python, and Ruby on Rails.
With high global demand, now is a great time to study software engineering or other information technology fields. As you plan for your future career, remember to add foreign language such as English as many jobs in the future require language skills. Today, almost every job in IT industry require a Bachelor degree, some even prefer advanced degrees. Although in some countries, 2 years vocational or certificates are still good to get jobs but the market has changed rapidly. Today most software are becoming larger and more complex, the short training time will not give workers the skills that industry requires, especially if you want to work for global company, outsourcing provider company.
Although, job description varies among companies and specialty areas but most companies want to hire graduates that have experience in software development (Capstone project is often counted as 6 to 8 months experience); Graduates that have knowledge of software development process, lifecycle, design procedures with additional soft-skills such as communication skills, presentation skills, decision making, leadership skills and the most important is teamwork skills (Capstone project is often counted as having teamwork skills).
During job interviews, most companies would ask candidates about skills such as the design and architecture a software systems according to a requirements specification; the ability to work with distributed team members and be able to integrates suggestions and changes (This is why foreign language skill is critical) ; How to conduct unit test components to ensure module-level functionality and data structure consistency; Skills in design and implementation/code reviews of other team members; Skills in writing code in a timely fashion and with high quality, consistent with industry standards. The ability to communicate with customers and users (This is why foreign language is important); and knowledge about the latest industry trends and technologies. (This is why students must read technology news and industry trends often);
Về căn bản công nghệ di động, bao gồm cả điện thoại thông minh và máy tính bảng với chức năng dường như vô giới hạn, đang mang tới thay đổi triệt để trong cuộc sống chúng ta. Với hầu hết mọi người điều hiển nhiên về điện thoại thông minh là gửi và kiểm emails; lướt internet; xem trò chơi đá bóng trên điện thoại; hay chơi trò chơi di động. Tuy nhiên là sinh viên trong công nghệ, bạn nên nhìn ra ngoài điều đó để nhìn vào tương lai gần nơi nhiều thứ sẵn sàng bùng nổ.
Chúng ta hãy nhìn vào vài điều mà điện thoại thông minh có thể làm dựa trên điều sinh viên đang làm việc trong chương trình của tôi tại CMU. Điều gì xảy ra nếu điện thoại di động có thể phát hiện tế bào ung thư trong máu bạn bằng việc dùng máy ảnh của điện thoại để chụp ảnh mẫu máu của bạn và gửi nó tới bác sĩ y tế để phân tích? Ứng dụng này hiện thời đang được cơ quan chính phủ kiểm lại cho việc dùng y tế và chẳng mấy chốc sẽ sẵn có. Điều gì xảy ra nếu điện thoại di động của bạn có thể cảnh báo cho bạn về cơn đau tim có thể? Ứng dụng này đã sẵn có rồi. Điều gì xảy ra nếu điện thoại di động của bạn có thể giám sát bệnh đái đường của bạn bằng việc đo đường trong máu bạn, và cảnh báo cho bạn liệu nó có cao không rồi gửi một tin nhắn cho bác sĩ của bạn yêu cầu kiểm tra? Ứng dụng này đã tồn tại rồi và sẵn có cho mua tại cửa hàng App. Điều gì xảy ra nếu điện thoại di động của bạn có thể giám sát dấu hiệu sức khoẻ của bạn như huyết áp, nhịp tim và các hoạt động khác khi bạn làm việc, nghỉ ngơi, chạy và đi, phân tích chúng và gợi ý một số cải tiến cho sức khoẻ của bạn? Có vài apps đã được bán trong cửa hàng App. Điều gì xảy ra nếu điện thoại di động của bạn có thể đo sóng não của bạn và phát hiện bất kì bất thường nào mà có thể báo hiệu bệnh Alzheimer? Cách tiếp cận này hiện thời đang được kiểm thử để được chấp nhận cho bán. Điều gì xảy ra nếu điện thoại di động của bạn có thể kiểm tra DNA của bạn và dự báo bệnh có thể nào đó? Ứng dụng này hiện thời đang được làm bản mẫu trên qui mô nhỏ (100 người) và sẽ đi vào pha kiểm thử tiếp với 1000 người. Những mẫu này là mẫu rất nhỏ trong hàng nghìn hay nhiều hơn các ứng dụng dang được phát triển trên khắp thế giới nhưng tôi nghĩ tiềm năng thực của công nghệ di động vẫn còn cần được khám phá.
Lí do các app di động đang phát triển nhanh chóng là vì chúng dễ xây dựng nhưng mọi thứ chúng ta có ngày nay chỉ là một phần nhỏ của tiềm năng di động khổng lồ. Thị trường cho app di động đáp ứng nhu cầu đặc biệt (m-y tế, m-thương mại, và m-chính phủ) vẫn còn mở rộng và chờ đợi được khám phá. Những người phát triển muốn xây dựng app cần xác định cách hội tụ nỗ lực của họ trước khi bắt đầu dự án phát triển của họ.
Phần lớn những người phát triển thích iOS của Apple vì sự phổ biến của iPhone và iPad. App của họ có thể được bán trên cửa hàng App của Apple, là cửa hàng phổ biến nhất trên khắp thế giới. Tuy nhiên, Apple sẽ giữ lại 30 phần trăm giá bán và trả cho người phát triển 70 phần trăm. Android OS của Google cũng rất phổ biến vì nó có nhiều điện thoại (Phần lớn điện thoại di động dùng Android.) Vấn đề với Android là nó là “nền mở” mà có thể làm việc trên bất kì thiết bị nào, nhưng người phát triển phải tạo ra vài phiên bản của ứng dụng của họ, từng phiên bản dành cho một điện thoại đặc biệt, kích cỡ màn hình, kĩ thuật bàn phím, và các biến thể khác. Như Apple, Google cũng giữ lại 30 phần trăm số bán và trả cho người phát triển 70 phần trăm. Có các nền khác như Microsoft và Nokia nhưng chúng không phổ biến và có số giới hạn người dùng nhưng bởi vì có vài ứng dụng, một app được phát triển cho Windows sẽ có cơ hội tốt hơn để được chú ý và nắm lấy phần lớn hơn so với iOS hay Android.
Nếu bạn là sinh viên Khoa học máy tính hay Kĩ nghệ phần mềm, bạn có thể cần học vài lớp trong phát triển di động bởi vì tương lai là trong di động vì máy tính cá nhân là thứ của quá khứ rồi. Bạn phải nhìn ra ngoài điều mọi người đã làm ngày nay để hướng tới điều bạn có thể đạt tới với ý tưởng mới, phát kiến mới v.v. Ai biết người nào đó trong các bạn có thể là Steve Jobs tiếp?
—Eglish version—
Mobile technology is the future
Today technology changes rapidly but the fastest changing is in the mobile technology area. Almost every month, there are new mobile technologies, new applications, new phones, and new tablets emerge. These constant changes create more opportunities to people who are interested in mobile technology. Today most mobile applications are just adaptations of ideas that originated in the Personal Computer (PC). Many people just transfer PC applications to mobile applications but soon when new ideas, new applications unique to mobile emerge and integrate with other technologies, everything will explode. Wall Street analysts often compare mobile technology with the Internet in the early 1990s where most people have no idea what the internet could bring. They ask: “Who is the Google of mobile technology? The answer is simple: We are only at the beginning of mobile technology with many exciting things to come in the next few years, it is difficult to draw conclusion at this time.
Basically mobile technology, including smartphones and tablets with seemingly limitless functionality, is bringing radical changes in our lives. For most people the obvious thing about smartphone are sending and checking emails; surf the internet; watch a football games on their phone; or playing mobile game. However as students in technology, you should look beyond that into the near future where many things are ready to explode.
Let us look what few things that a smartphone can do based on what students are working in my program at CMU. What if a mobile phone could detect cancer cells circulating in your blood by using the phone camera to take picture of your blood sample and send it to a medical doctor for analysis? This application is currently being reviewed by a government agency for medical use and soon will be available. What if your mobile phone can warn you of a possible heart attack? This application is already available. What if your mobile phone could monitor your diabetes by measure your blood glucose, and warn you if it is high then send a text message to your doctor requesting a checkup? This application already exist and available for purchase at App store. What if your mobile phone can monitor your health sign such as blood pressure, heart beat and other activities as you work, rest, run and walk, analyze them and suggest some improvements for your health? There are several apps being sold in App store already. What if you mobile phone can measure your brain waves and detect any anomaly that may signal Alzheimer disease? This application is currently under testing for approval for sale. What if your mobile phone can test your DNA and predict certain possible diseases? This application is currently being prototyped in small scale (100 people) and will go into the next phase of testing with 1000 people. These samples are a very small sample of thousands or more applications are being developed all over the world but I think the real potential of mobile technology is still to be discovered.
The reason mobile apps are growing rapidly because they are easy to build but everything we have today is only a small part of the huge mobile potential. The market for mobile apps to meet specific needs (m-health, m-commerce, and m-government) is still wide open and waiting to be discovered. Developers who want to build apps need to determine how to focus their effort before start their development project.
Most developers like Apple iOS because the popular of the iPhone and iPad. Their apps can be sold on Apple App Store, which is the most popular store all over the world. However, Apple will keep 30 percent of the sales price and pay developer 70 percent. Google’s Android OS is also very popular as it has more phones (Most mobile phone use Android.) The problem with Android is it is an “open platform” that can work on any device, but developer must create several versions of their applications, each for a specific phone, screen sizes, keyboard techniques, and other variables. Like Apple, Google also keep 30 percent of sale price and pay developer 70 percent. There are other platforms such as Microsoft and Nokia but they are not popular and have limited number of users but because there are few applications, an app developed for Windows would have better chance of getting noticed and capturing a large share than iOS or Android.
If you are Computer Science or Software Engineering students, you may want to take few classes in mobile development because the future is in mobile as personal computer is the thing of the past. You must look beyond what people already doing today toward what you can achieve with new ideas, new innovations etc. Who know some of you may be the next Steve Jobs?