Kĩ sư phần mềm và việc làm

Mỗi năm, tôi mời các nhà chuyên nghiệp công nghiệp tới và cho sinh viên của tôi bài giảng để cho họ nhận biết về điều đang xảy ra trong công nghiệp. Bob Marshall là người tuyển mộ cho một công ti lớn và tôi mời anh ấy tới cho bài giảng cho lớp Kĩ nghệ phần mềm của tôi. Sau đây là tóm tắt điều anh ấy đã nói:

 

“Nếu bạn tìm nghề nghiệp tốt, kĩ sư phần mềm là chọn lựa tốt. Kĩ sư phần mềm có kĩ năng bao giờ cũng không đủ cung cấp trên khắp thế giới và tìm ra ứng cử viên việc làm có phẩm chất là rất khó vì không có nhiều người trong số họ. Ngay cả trong khủng hoảng tài chính khi thất nghiệp đạt tới 12% trong những người tốt nghiệp, bạn gần như có thuê được bất kì ai mà bạn muốn nhưng có một ngoại lệ, bạn không thể tìm được kĩ sư phần mềm.”

“Ngày nay các công nghệ như công nghệ di động và dữ liệu lớn đang tạo ra nhu cầu khổng lồ về công nhân có kĩ năng CNTT và kĩ sư phần mềm là việc làm có nhu cầu cao nhất và điều đó sẽ kéo dài trong mười năm tới. Sở thống kê lao động Mĩ dự phóng việc tăng 32% về số lượng việc làm kĩ nghệ phần mềm giữa năm 2010 và 2020 nhưng sẽ không có đủ người cho chúng. Các trường của Mĩ chỉ có thể tạo ra quãng một phần ba số đó và hai phần ba sẽ tới từ các nước ngoài như Ấn Độ, Trung Quốc và các nước Tây Âu.”

“Là người tuyển mộ, tôi bao giờ cũng tới thăm các đại học để gặp gỡ sinh viên ít nhất hai năm trước khi họ tốt nghiệp. Tôi nhìn vào mọi lớp mà họ học, nói chuyện với các giáo sư về tiến bộ của họ và thảo luận với họ về cơ hội việc làm. Tôi muốn biết cái gì sẽ làm cho họ làm việc cho công ti của tôi và không cho các công ti khác và đề nghị điều họ muốn. Để thành công trong nghề này, bạn phải năng nổ tìm đúng tài năng. Bạn không thể chờ đợi cho tới khi họ tốt nghiệp mới thuê họ vì điều đó là quá muộn vì ai đó có thể lấy họ trước. Thỉnh thoảng khi nhu cầu là cao, tôi phải đi sang các nước ngoài để tìm công nhân có phẩm chất. Tôi rất quen với các chương trình đào tạo ở Mĩ nhưng ở các nước ngoài, điều đó là khó vì các chương trình đào tạo biến động nhiều giữa các đại học cho nên khó tìm được kĩ sư phần mềm có phẩm chất. Thuê người từ các nước ngoài cũng khó vì bạn phải giải quyết với vấn để thành thạo ngôn ngữ. Cho dù bạn tìm được người rất tốt nhưng nếu anh ta không nói tiếng Anh tốt bạn cũng phải từ bỏ. Công việc phần mềm là làm việc tổ và trao đổi là quan trọng. Một mình kĩ năng kĩ thuật là KHÔNG đủ nên tôi bao giờ cũng tìm các kĩ năng mềm khác như trao đổi, trình bày, lãnh đạo và làm việc tổ v.v.”

“Do thiếu hụt kĩ năng, có cạnh tranh cao giữa các công ti về số ít kĩ sư phần mềm. Thỉnh thoảng tôi phải thuyết phục các kĩ sư phần mềm đang làm việc chuyển sang làm việc cho công ti tôi. Quyến rũ kĩ sư phần mềm ra khỏi việc làm hiện tại là không dễ dàng vì các công ti của họ dùng tuỳ chọn chứng khoán như điểm thưởng để giữ họ. Năm ngoái tôi tìm ra một kĩ sư phần mềm với kĩ năng đặc biệt mà chúng tôi cần nhưng anh ta đang làm việc cho một công ti mà anh ta được cổ phần trị giá trên $50,000 nếu anh ta ở lại cho nên tôi phải đề nghị cho anh ta $60,000 để ra đi. Một kĩ sư phần mềm giỏi có thể làm công việc của ba hay bốn người cho nên khi công ti tìm được họ, họ không bao giờ để cho người đó ra đi.”

“Phần lớn các kĩ sư phần mềm tôi tuyển lựa đều có tài năng cao. Họ là những người giải quyết vấn đề, người yêu công nghệ, nhưng phần lớn trong tất cả họ bao giờ cũng bắt kịp theo thay đổi trong thị trường công nghệ. Phần lớn trong họ đọc nhiều và bao giờ cũng học những kĩ năng mới, thái độ học cả đời là một trong các yếu tố then chốt mà tôi thuê họ và công ti của tôi trả cho họ nhiều hơn các công ti khác. Vị trí vào nghề cho bằng cử nhân bắt đầu ở $100,000 một năm với việc kí vào có điểm thưởng $30,000 và quãng $30,000 tới $60,000 trong tuỳ chọn cổ phần. Các kĩ sư có kinh nghiệm được nhiều hơn và mọi người có kĩ năng đặc biệt như phân tích dữ liệu lớn hay an ninh thường được trên $200,000 một năm. (dữ liệu 2013)”

“Ngày nay phần ngôn ngữ lập trình phổ biến nhất là Java nhưng công ti chúng tôi cũng dùng C++, Python, Ruby on rails, và R nhưng biết một ngôn ngữ lập trình đặc thù không phải là yêu cầu. Nếu bạn là kĩ sư phần mềm, bạn có thể học bất kì ngôn ngữ nào. Chẳng hạn, nhiều ứng dụng web đang dùng Ruby on rails bây giờ nhưng với những người phát triển phần mềm biết Java hay PHP, đó là vấn đề thời gian cho họ để học Ruby. Là sinh viên đại học, bạn nên dành thời gian để học các môi trường phát triển hiện thời như Ruby on Rails nếu bạn thích làm việc trong khu vực phát triển Web. Tất nhiên, bên cạnh kĩ sư phần mềm, người phát triển phần mềm, kiến trúc sư phần mềm, kĩ sư yêu cầu, chuyên viên tích hợp ứng dụng và an ninh, còn có các vị trí khác nhưng ít sinh viên chú ý. Thỉnh thoảng chúng tôi có khó khăn trong thuê công nhân đảm bảo chất lượng phần mềm, người quản lí cấu hình, người quản trị cơ sở dữ liệu, các chuyên viên tính toán mây và phần mềm như dịch vụ, các kĩ thuật viên bàn trợ giúp và chuyên viên mạng.”

“Vì các bạn tất cả đều là sinh viên kĩ nghệ phần mềm, các bạn đã chọn một nghề tốt với tương lai tuyệt vời. Không có hoài nghi gì trong tâm trí tôi rằng các bạn sẽ học tốt nhưng hôm nay các bạn cần thăm dò xa hơn và rộng hơn tri thức của mình vào các khu vực khác như doanh nghiệp hay chế tạo vì một số trong các bạn có thể thăng tiến nghề nghiệp của mình trong quản lí. Có nhiều cơ hội kì diệu chờ đợi các bạn và phải chắc các bạn giữ tiếp xúc với tôi trên cơ sở đều đặn vì tôi có cái gì đó dành cho các bạn.”

 

—English version—

 

Software engineers and jobs

Each year, I invite industry professionals to come and give lecture to my students so they are aware about what is happening in the industry. Bob Marshall is a recruiter for a large software company and I invite him to give a lecture to my Software Engineering class. Following is a summary of what he said:

 

“If you are looking for a good career, software engineer is a good choice. Skilled software engineers are always in short supply all over the world and finding qualified job candidates is very difficult because there are not many of them. Even during the financial crisis when unemployment reaches 12% among college graduates, you can almost hire anyone that you want but there is an exception, you cannot find software engineers.”

“Today technologies such as mobile technology and big data are creating a huge demand for IT skilled workers and a software engineer is the highest demand job and it will last in the next ten years. The U.S. Bureau of Labor Statistics projects a 32% increase in the number of software engineering jobs between 2010 and 2020 but there will not be enough of them. The U.S schools can only produce about a third of that and two third will come from foreign countries such as India, China and Western European countries.”

“As a recruiter, I always visit universities to meet with students at least two years before they graduate. I look at all the classes that they took, talk to professors on their progress and discuss with them about the opportunity. I want to know what will make them work for my company and not others and offer what they want. To succeed in this career, you have to be aggressive to find the right talent. You cannot wait until they graduate to hire them as it is too late because someone may get them first. Sometime when demand is high, I have to travel to foreign countries to find qualified workers. I am very familiar with the training programs in the U.S but in foreign countries, it is difficult because training programs vary a lot among universities so it is difficult to find qualified software engineers. Hiring from foreign countries is also difficult because you have to deal with language proficiency. Even you find a very good person but if he does not speak English well you have to give up. Software work is teamwork and communication is important. Technical skills alone are NOT enough as I always look for other soft-skills such as communication, presentation, leadership and teamwork etc.”

“Due to the skills shortage, there is a competition among companies for a few software engineers. Sometime I have to convince working software engineers to switch job to my company. Luring software engineers away from an existing job is not easy because their companies often use stock options as bonuses to keep them. Last year, I found a software engineer with the specialized skills that we need but he is working for a company that gave him over $50,000 worth of stocks if he stays so I had to offer him $60,000 to leave. One good software engineer can do the work of three or four others so when a company finds them, they never let them go.”

“Most software engineers that I recruit are highly talented. They are problem solvers who love technology, but most of all they always keep up with changes in the technology market. Most of them read a lot and always learn new skills, lifelong learning attitude is one of the key factors that I hire them and my company pays them more than others. An entry level position for a Bachelor’s degree starts at $100,000 a year with sign in bonus of $30,000 and about $30,000 to $60,000 in stock options. That means a graduate in software engineering is valued at $150,000 to $200,000. Experienced engineers get more and people with specialized skills such as big data analytics or security often get over $200,000 a year. (2013 data)”

“Today the most popular programming language is Java but our company also uses C++, Python, Ruby on rails, and R but knowing a particular programming language is not a requirement. If you are software engineer, you can learn any language. For example, many web applications are using Ruby on rails now but for software developers who know Java or PHP, it is a matter of time for them to learn Ruby. As college students, you should spend time to learn modern development environments like Ruby on Rails if you like to work in Web development area. Of course, besides software engineers, software developers, software architects, requirements engineers, application integration and security specialists, there are other positions but few students pay attention. Sometime we have difficulty hiring software quality assurance workers, configuration managers, database administrators, cloud computing and software as service specialist, help desk technicians and network specialists.”

“Since you are all software engineering students, you have chosen a good career with excellent future. There is no doubt in my mind that you will doing well but today you will need to explore further and broaden your knowledge into other areas such as business or manufacturing since some of you may want to advance your career into management. There are many wonderful opportunities waiting for you and make sure you stay in touch with me on a regular basis because I have something for you.”