20 Apr, 2021
Chuẩn bị việc làm cho ngành công nghiệp phần mềm
Christopher là người quản lí ở Amazon. Anh ấy thường tới CMU để tuyển sinh viên cho nên tôi đề nghị anh ta giải thích công ti anh ta tìm cái gì và sinh viên cần chuẩn bị gì cho việc làm trong công nghiệp phần mềm. Sau đây là điều anh ta nói:
“Mọi người đều biết rằng Amazon là cửa hàng trực tuyến lớn nhất trên thế giới nhưng ít người biết rằng chúng tôi cũng là một trong những công ti tính toán mây lớn nhất nữa. Amazon Simple Storage Service (S3) cho phép công ti đặt hệ thống thông tin của họ vào mây và Amazon Elastic Compute Cloud (EC2) là dịch vụ web cung cấp cho công ti năng lực trong mây. Nó được thiết kế để làm cho tính toán qui mô web dễ dàng hơn cho người phát triển. Giao diện web đơn giản của Amazon EC2 cho phép khách hàng kiểm soát tài nguyên tính toán của họ, cái cho chạy môi trường tính toán của Amazon. Amazon EC2 làm giảm thời gian được cần để thu được nguồn phục vụ mới và cho phép họ có năng lực điều chỉnh nhanh chóng khi yêu cầu tính toán thay đổi. Amazon EC2 thay đổi kinh tế của tính toán bằng việc cho phép bạn chỉ trả tiền cho năng lực mà bạn thực tế dùng.”
“Ngày nay tính toán mây đang trở thành chọn lựa phổ biến trong các công ti. Vì họ không phải mua phần mềm, máy phục vụ, giấy phép cơ sở dữ liệu, hay phải có phòng cho hệ thống tính toán của họ, họ có thể hội tụ vào kinh doanh thay vì giải quyết với công nghệ thông tin hay lưu giữ. Với tính toán mây, các công ti không phải lo nghĩ về cập nhật phần mềm vì công ti dịch vụ mây sẽ làm mọi cập nhật rẻ hơn và nhanh hơn nhiều. Khi nhiều công ti chuyển vào mây, nhiều cơ hội nghề nghiệp hơn đang mở ra cho người tốt nghiệp phần mềm, những người có tri thức và kĩ năng trong giải quyết với tính toán mây hay Phần mềm như dịch vụ (SaaS).”
“Công ti của chúng tôi đang thuê người tốt nghiệp đại học trong khoa học máy tính, kĩ nghệ phần mềm, và quản lí hệ thông tin để lấp vào các vị trí như người phát triển phần mềm, người kiểm thử phần mềm, chuyên viên mạng, chuyên viên an ninh hệ thống, người quản lí dịch vụ, và người quản trị cơ sở dữ liệu. Bên cạnh các kĩ năng kĩ thuật, sinh viên cần học vài môn mới trong doanh nghiệp và có kĩ năng mềm vì một số trong họ sẽ phải làm việc với khách hàng, giúp họ giải quyết các vấn đề và có khả năng trao đổi tốt để giữ cho khách hàng được hài lòng. Điều chúng tôi đang tìm kiếm trong những người tốt nghiệp đại học là động cơ và dẫn lái. Người đó quan tâm và đam mê nhất về cái gì? Ứng cử viên có muốn xây dựng nghề nghiệp không hay chỉ muốn việc làm?”
“Chúng tôi đang thuê những người tốt nghiệp khoa học máy tính và đặt họ vào trong các vị trí phát triển phần mềm, vì dịch vụ tính toán mây yêu cầu các ứng dụng phần mềm theo nhu cầu mà phải cập nhật nhanh chóng. Một số kinh nghiệm với phương pháp phát triển agile như Scrum là được ưa chuộng vì chúng tôi đang làm việc đưa ra mọi tuần và mọi tháng. Ứng cử viên phải có kĩ năng lập trình tốt, hiểu vòng đời phát triển phần mềm và có khả năng làm việc tốt với người khác và sẵn lòng học điều mới vì công nghệ thay đổi nhanh. Amazon có môi trường nhịp độ nhanh nơi chúng tôi “làm việc chăm chỉ, vui vẻ, làm ra lịch sử.” Vào ngày “điển hình,” người phát triển phần mềm có thể thiết kế và viết mã bản mẫu để chứng minh hay bác bỏ một ý tưởng, thực hiện mã để báo cáo độ đo mới, nói chuyện với khách hàng, viết mã một tính năng, hay soạn thảo một đề nghị cho một ý tưởng triệt để mới.”
“Chúng tôi đang thuê những người kĩ nghệ phần mềm và đặt họ vào trong các vị trí chuyên viên an ninh hệ thống, chuyên gia quản lí mạng và kiến trúc hệ thống. Chúng tôi tìm những người tốt nghiệp có thể chứng tỏ khả năng viết mã rõ ràng, khả chuyển, được tổ chức tốt trong Java hay C++ bao gồm xây dựng mã hệ thống, ứng dụng với chú thích và tài liệu tốt. Vì hệ thống của khách hàng có thể không tương hợp với hệ thống của chúng tôi, một số sửa đổi nền và kiến trúc lại phải được thực hiện và đây là chỗ kĩ sư phần mềm khớp rất tốt vì họ được đào tạo trong kiến trúc và tích hợp hệ thống. Tại Amazon Web Services, chúng tôi thích “làm việc tới lui”: bằng việc hiểu điều khách hàng cần và dùng điều đó để hướng dẫn kĩ nghệ phần mềm của chúng tôi. Chúng tôi tìm các kĩ sư phần mềm đam mê và có kinh nghiệm trong lắng nghe khách hàng, tổng hợp nhu cầu của họ, và lặp lại nhanh chóng dịch vụ để nhanh chóng đưa các tính năng vào tay khách hàng. Ý tưởng hay nhất của chúng tôi thậm chí còn trở nên tốt hơn khi chúng tôi nhận phản hồi từ việc của khách hàng thực. Chúng tôi càng có được phản hồi sớm, chúng tôi cành có thể tăng trưởng nhanh hơn. Khách hàng dùng AWS Direct Connect thiết lập kết nối cao giữa kết cấu nền CNTT hiện có của họ và mây AWS, tạo khả năng tích hợp không ngừng và liên tác của hai kết cấu nền. Chúng tôi lắng nghe chặt chẽ điều khách hàng nói cho chúng tôi và dịch các ý tưởng đó thành các dịch vụ web được thiết kế và giao diện dựa trên web mà có thể vượt quá mong đợi cao của khách hàng.”
“Chúng tôi đang thuê người tốt nghiệp quản lí hệ thông tin trong các vị trí quản lí dịch vụ. Họ là những người đang làm việc chặt chẽ với khách hàng, hiểu vấn đề của khách hàng, giúp khách hàng giải quyết vấn đề và quản lí việc chuyển từ công nghệ thông tin có sẵn của họ sang môi trường tính toán mây. Trong vị trí này, kĩ năng mềm và tri thức doanh nghiệp là mấu chốt. Vì phần mềm đang trở thành nhiều phần dịch vụ hơn là sản phẩm, nhiều người quản lí hệ thông tin sẽ được cần tới.”
“Có kinh nghiệm thực tập làm việc mùa hè bao giờ cũng là quan trọng để kiếm việc làm ở Amazon. Nhiều sinh viên tin rằng nếu họ giỏi về hàn lâm, họ có thể dễ dàng kiếm được việc làm nhưng điều đó là KHÔNG đúng. Có điểm tốt ở lớp là KHÔNG đủ; sinh viên cần hội tụ vào phía chuyên nghiệp nữa. Thực tập làm việc mùa hè là cách có giá trị cho công ti của chúng tôi để đánh giá về những sinh viên liệu họ có “khớp tốt” hay không. Có thể là trước khi thuê người chúng tôi cho qua một thời gian thử việc và chúng tôi thường ra quyết định thuê người vào cuối thời kì thực tập. Nhiều sinh viên thường đợi cho tới cuối năm thứ ba mới đi làm thực tập, điều là quá trễ. Sinh viên phải coi thực tập mùa hè sớm từ năm thứ hai trong đại học. Sinh viên càng có nhiều kinh nghiệm làm việc, họ càng kiếm được vị trí tốt hơn và tất nhiên lương của họ được điều chỉnh tương ứng. Thỉnh thoảng sinh viên hỏi tại sao họ tới từ cùng trường với cùng điểm và tốt nghiệp cùng lúc nhưng một số nhận được đề nghị tốt hơn những người khác. Bởi vì một số sinh viên có hai năm thực tập trong khi số khác chỉ có một năm. Kinh nghiệm làm việc có thể thêm 5% tới 10% thêm trong lương và thỉnh thoảng họ nhận được vị trí tốt hơn. Chúng tôi nghĩ sinh viên nên có một tới hai kì thực tập làm việc trước khi họ tốt nghiệp.”
Tôi hỏi: “Sinh viên được giả định thế nào để có được kinh nghiệm nếu không ai muốn thuê họ làm thực tập vì họ không có kinh nghiệm?”
Anh ta nói: “Sinh viên giỏi không nên cho phép chướng ngại nào đó có trên đường của họ. Tôi biết nhiều sinh viên bắt đầu nhìn các vị trí thực tập từ năm thứ nhất. Mặc dầu họ chưa có kĩ năng kĩ thuật tốt, họ vẫn cứ xin làm bởi vì điều họ muốn chỉ là kinh nghiệm làm việc cho nên đến lúc họ vào năm thứ hai hay năm thứ ba, họ đã có kinh nghiệm làm việc nào đó. Thực tập cung cấp cho công ti cơ hội kiểm thử kĩ năng của sinh viên cũng như biết sinh viên như con người. Khi vị trí mở ra và chúng tôi có việc thực tập để làm việc đó, chúng tôi sẽ đưa họ vào các vị trí đó.”
“Cách khác để có được kinh nghiệm là làm việc trên dự án capstone. Capstone là nơi sinh viên áp dụng điều họ đã học trong ba năm đầu vào dự án thực nơi họ giả định giữ các vai trò và trách nhiệm khác nhau. Capstone yêu cầu sinh viên học nhanh chóng về các khu vực đặc biệt, cải tiến kĩ năng của họ như quản lí dự án và làm việc tổ; và phát triển năng lực trong thu thập, phân tích và báo cáo dữ liệu. Với một số sinh viên phần mềm, capstone là yêu cầu thay vì là cơ hội học tập cho nên họ không chú ý nhiều tới nó mà chỉ làm đủ để cho qua môn học. Đó là sai lầm bởi vì chúng tôi sẽ hỏi nhiều câu hỏi về kinh nghiệm capstone của họ. Chúng tôi muốn biết vai trò của họ là gì. Họ làm gì? Và họ đã giải quyết vấn đề gì? Họ giải quyết chúng thế nào? Vấn đề khác nào họ kinh qua trong dự án này? Sinh viên không tham gia tích cực hay chỉ theo người khác sẽ không có khả năng giải thích nó rõ ràng. Sinh viên phải hiểu rằng capstone là cơ hội để áp dụng việc học của họ để giải quyết vấn đề trong môi trường thực, trong môi trường phức tạp, không dự đoán được và đó là lí do tại sao chúng tôi tính nó như kinh nghiệm làm việc.”
—-English version—-
Preparing for job in software industry
Christopher is a manager at Amazon. He often come to CMU to recruit students so I ask him to explain what his company is looking for and what students need to prepare for the job in software industry. Following is what he says:
“People know that Amazon is the largest on-line store in the world but few people know that we are also one of the largest cloud computing companies too. Amazon Simple Storage Service (S3) allows company to put their information system in the cloud and Amazon Elastic Compute Cloud (EC2) is a web service that provides compute capacity in the cloud. It is designed to make web-scale computing easier for developers. Amazon EC2’s simple web service interface allows customer to obtain and configure capacity with minimal effort. It allows customers to control of their computing resources that run on Amazon’s computing environment. Amazon EC2 reduces the time required to obtain new server and allowing them to quickly scale capacity as their computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use.”
“Today cloud computing is becoming a popular choice among companies. Since they do not have to buy software, servers, database licenses, or have rooms for their computing systems, they can focus on the business instead of dealing with information technology or storage. With cloud computing, companies do not have to worry about updating software because cloud service companies will do all upgraded much cheaper and faster. As more companies are moving to the cloud, more career opportunities are opening up for software graduates who have knowledge and skills in dealing with cloud computing or Software as a Services (SaaS).”
“Our company is hiring college graduates in computer science, software engineering, and information system management to fill positions such as software developer, software tester, network specialist, system security specialist, service manager, and database administrator. Beside technical skills, students need to take few courses in business and have soft-skills as some of them will have to work with customers, help them to solve problems and be able to communicate well to keep customer satisfied. What we are looking for in college graduates is the motivation and drive. What is that person most interested and passionate about? Does the candidate want to build a career or just want a job?”
“We are hiring computer science graduates and place them into software development positions, since cloud computing service requires on-demand software applications that must be update rapidly. Some experiences with agile development such as Scrum are preferred since we are doing releases every week and every month. Candidates must have good programming skills, understand software development lifecycle well, and be able to work well with others and willing to learn new things as technology changes fast. Amazon has a fast-paced environment where we “Work Hard, Have Fun, Make History.” On a “typical” day, software developers might design and code prototype to prove or disprove an idea, implement code to report a new metric, talk with customers, code up a feature, or draft a proposal for a radical new idea.”
“We are hiring software engineering graduates and place them into system security specialist, network specialist and system architect position. We are looking for graduates that can demonstrate ability to write clear, portable, well organize code in Java or C++ including building systems, application code with good comments and documentation. As customer’s system may not be compatible with our systems, some platforms modifications and re-architecture must be done and this is where software engineers fit very well since they are trained in system architect and integration. At Amazon Web Services, we like to “work backwards”: by understanding what customers need and using that to guide our software engineering. We’re looking for software engineers passionate and experienced in listening to customers, synthesizing their needs, and rapidly iterating our services to quickly put features into customers’ hands. Our best ideas become even better when we get feedback from real customer use. The sooner we can get that feedback, the more quickly we can grow. Customers using AWS Direct Connect establish high connections between their existing IT infrastructure and the AWS cloud, enabling seamless integration and inter-operation of the two infrastructures. We listen closely to what customers tell us and translate those ideas into well designed web-services and web-based user interfaces that exceed our customers’ high expectations.”
“We are hiring Information system management graduates into service management positions. They are the ones who are working closely with customers, understand their problems, help them to solve problems and manage the transition from their in house information technology to the cloud computing environment. In this position, soft-skills and business knowledge are critical. As software is becoming more of a service than a product, more information system managers will be needed.”
“Getting experience as a summer intern has always been important to get a job at Amazon. Many students believe that if they are good academically, they can easily get a job but that is NOT correct. Having good grades in class is NOT enough; students need to focus on the professional side too. Summer internship is a valuable way for our company to make a judgment on students whether they are “good fit” or not. It is like before hiring we go through a trial period and we often make hiring decision at the end of the internship. Many students often wait until the end of the third year to go into internship, which is too late. Students must consider summer internship as early as the second year in college. The more working experience students have, the better position they get and of course their salaries are adjusted accordingly. Sometime students are asking why they come from the same school with the same degree and graduate at the same time but some receive better offers than others. Because some students have two years of internship when others only have one. Working experience can add 5% to 10% more in salary and sometime they receive better positions. We think students should have one to two internships before they graduate.”
I asked: “How are students supposed to get experience if no one wants to hire them as interns because they do not have experience?”
He said: “Good students should not allow certain obstacles get in their way. I know of many students who start looking in their first year for internship positions. Although they do not have good technical skills yet, they apply anyway because what they want is just working experience so by the time they go into second or third year; they already have some work experience. Internships provide companies with the opportunity to test the skills of students as well as know the students as persons. When positions open up and we have interns that are doing a good job, we would put them in those positions.”
“Another way of getting experience is working on capstone project. Capstone is where students apply what they have learned in the past three years into a real project where they assume different roles and responsibilities. Capstone requires students to learn quickly on a specific issue area; improve their skills such as project management and teamwork; and develop competency in gathering, analyzing, and reporting out on data. For some software students, capstone is a requirements rather than a learning opportunity so they do not pay much attention to it but just do enough to pass the course. It is a mistake because we will ask a lot of questions on their capstone experience. We want to know what their roles are. What they do? And what the problems that they solved are? How do they solve them? What are other issues that they are experienced during the project? Students that do not actively involved or just follow others will not be able to explain it clearly. Students must understand that capstone is an opportunity to apply all of their learning to solve a problem in a real environment, in an unpredictable, complex environment and that is why we count it as working experience.”