Là giáo sư, tôi thường đòi hỏi các sinh viên đã tốt nghiệp những người bây giờ đang làm việc, chia sẻ kinh nghiệm của họ và cho lời khuyên với các sinh viên vẫn còn đang trong trường. Tháng trước, tôi đã gửi một email để nhắc họ và tôi nhận được nhiều lời đáp. Tôi muốn chia sẻ với các bạn một bức thư từ một cựu sinh viên:

“Tôi tốt nghiệp với bằng về kĩ nghệ phần mềm năm ngoái. Tôi gặp may thế bởi vì tôi có vài đề nghị việc làm trong năm cuối đại học của mình. Tôi bắt đầu quan tâm tới máy tính bởi vì tôi thích chơi trò chơi máy tính. Tôi rất giỏi trong trò chơi “World of Warcraft”, “Doom”, và “Grand Theft Auto”. Bởi vì mối quan tâm này, tôi đã dự vài lớp lập trình ở trường phổ thông. Để tôi cho các bạn lời khuyên: ĐỪNG đợi cho tới đại học để học lập trình. Bạn cần biết cách lập trình trước khi bạn vào chương trình máy tính ở đại học, bằng không bạn không thể cạnh tranh được với các sinh viên ở đó. Lập trình máy tính là dễ, tôi chỉ mất vài tháng để làm chủ ngôn ngữ Java. Vì tôi biết Java, không khó học C và C++. Nếu bạn KHÔNG lấy lời khuyên này, các sinh viên máy tính khác trong đại học sẽ làm tiêu tan bạn. Các môn máy tính đều mang tính cạnh tranh cao và chỉ người giỏi nhất sẽ sống còn. Bằng việc chuẩn bị trước một thời gian, bạn sẽ thành công. Công việc ở phổ thông là dễ dàng và đã cho tôi nhiều thời gian, cho nên bằng việc học lập trình sớm hơn, điều đó làm cho mọi sự thành dễ dàng hơn nhiều đối với tôi ở đại học.”

“Bây giờ nghề của tôi gồm việc phát triển ứng dụng phần mềm để hỗ trợ cho kinh doanh của công ti. Tôi làm việc trong một tổ mười người, phần lớn cùng độ tuổi tôi cho nên chúng tôi chia sẻ nhiều quan tâm chung. Tất cả chúng tôi đều chơi trò chơi máy tính và đọc sách hài “Manga”. Về căn bản, chúng tôi được trả lương để làm điều chúng tôi thích, chơi với máy tính. Trong việc làm này, chúng tôi cũng có thể nghe nhạc cả ngày. Tất cả chúng tôi đều có máy MP3 và tai nghe cho nên không ai quan tâm tới loại nhạc nào chúng tôi nghe, chừng nào chúng tôi còn không làm phiền người khác. Người quản lí của tôi là một phụ nữ trẻ, chỉ lớn hơn chúng tôi vài tuổi. Cô ấy nói chừng nào chúng tôi còn làm cho công việc được thực hiện, cô ấy sẽ không làm phiền chúng tôi. Tuy nhiên, nếu chúng tôi không làm công việc có chất lượng, chúng tôi sẽ sớm nghe cô ấy nói. Một số trong các thành viên tổ tôi không thích có con gái làm người quản lí nhưng tôi không có vấn đề gì. Cô ấy thích là chị của tôi bởi vì tôi cũng có chị ở nhà, cho nên tôi không bận tâm.”

“Trong công ti của tôi, phần lớn những người quản lí doanh nghiệp đều là con trai nhưng trong nhóm công nghệ thông tin, một nửa người quản lí là con gái. Người quản lí của tôi bảo với tổ rằng hiện thời, có nhiều con gái học về Quản lí hệ thông tin (ISM) hơn con trai. Điều này là khác với Kĩ nghệ phần mềm vì trong lớp tôi có 45 sinh viên, chúng tôi chỉ có 6 con gái. Người quản lí của tôi dành phần lớn thời gian của cô ấy cho việc gặp gỡ khách hàng và quản lí cấp cao cho nên chúng tôi chỉ gặp cô ấy có thể một hay hai lần một tuần, thường trong cuộc họp tổ. Cuộc họp này bao giờ cũng vào thứ hai nơi cô ấy chia sẻ cho chúng tôi về điều xảy ra trong công ti, điều người dùng hay khách hàng muốn từ chúng tôi và điều chúng tôi cần làm cho tuần đó. Cô ấy kiểm điểm một số dự án và cho lời bình luận về điều đáng phải được làm. Chỉ đạo của cô ấy là rõ ràng, cô đọng và chỉ ra điểm tôi bao giờ cũng ngưỡng mộ kĩ năng trao đổi của cô ấy. Cô ấy cứng rắn khi mọi sự không xảy ra như được mong đợi nhưng cô ấy hiền khi mọi sự tốt lành. Tuy nhiên cô ấy không bao giờ la hét chúng tôi hay biểu lộ bất kì xúc động nào. Ngược lại với người quản lí khác là con trai. Tôi nghe anh ta la hét, biểu lộ giận dữ với tổ anh ta khi mọi sự tồi tệ cho nên thành viên tổ của anh ta sợ anh ta. Nhiều người bảo tôi rằng họ ghét anh ta và muốn chuyển sang tổ của chúng tôi. Tôi nghĩ con gái làm người quản lí tốt hơn nhiều so với con trai.”

“Thỉnh thoảng, tôi phải phân tích nhu cầu doanh nghiệp để xem liệu một giải pháp có là tốt nhất không. Điều này yêu cầu vài cuộc gọi điện thoại tới khách hàng để thẩm tra yêu cầu. Bởi vì tôi đã họ lớp Kĩ nghệ yêu cầu, tôi biết cách phân tích và ưu tiên hoá điều khách hàng cần. Tôi biết cách xác định thu hổi theo đầu tư (ROI) và thu thập các yêu cầu người dùng phụ mà không được làm tài liệu trong bản đặc tả yêu cầu phần mềm (SRS). Phần lớn các thành viên tổ của tôi không thể làm được điều đó, họ học về khoa học máy tính, họ biết nhiều về toán học, phương trình và thuật toán nhưng họ không học kĩ năng kĩ sư yêu cầu này. Đó là lí do tại sao người quản lí rất thích, cô ấy cho tôi lên lương tốt hơn những người còn lại.”

“Công việc của tôi cũng bao gồm trong thiết kế cơ sở dữ liệu, thiết kế ứng dụng trong .NET 4.0 và chuyển giao phần mềm cứ 2 tuần một lần. Chúng tôi theo phương pháp luận Agile có tên là Scrum để đảm bảo điều được tạo ra là điều người dùng thực tế muốn. Ngược với điều tôi tin, công việc của tôi không yêu cầu nhiều lập trình. Tôi nghĩ chỉ quãng 35% lập trình và 65% giải quyết vấn đề. Bởi vì tôi đã học môn thiết kế phần mềm và kiến trúc hệ thống và đã học tốt trong chúng, tôi có thể làm hầu hết việc này trong giấc ngủ của mình.”

“Về toàn thể, tôi nghĩ rằng có đào tạo đại học đúng là rất quan trọng cho nghề nghiệp của các bạn. Khi tôi còn là sinh viên, tôi nghĩ lập trình là mọi thứ nhưng bây giờ tôi biết rằng nó chỉ là công cụ và bạn cần nhiều thứ hơn là công cụ để thành công trong công nghiệp. Cho dù tôi chỉ mới làm việc được một năm, tôi đã biết rằng qui trình mà tôi tương tác với khách hàng và cách tôi phân tích nhu cầu là quan trọng. Phương pháp tôi kiến trúc hệ thống và cách tôi thiết kế giải pháp là mấu chốt. Đó là lí do tại sao tôi tin Kĩ nghệ phần mềm là chọn lựa tốt hơn.”

“Tôi thích là một kĩ sư phần mềm,việc làm tốt nhất và dễ nhất mà tôi có thể nghĩ tới. Nhưng tôi có thể thấy rằng nó dường như rất phức tạp với ai đó không có nền tảng tốt. Nếu bạn là người giải quyết vấn đề tốt, có kĩ năng phân tích giỏi và có thái độ tốt về học những điều mới, bạn có thể trở thành kĩ sư phần mềm. Ngày nay cũng có nhiều việc làm đang mở ra trong lĩnh vực này cho bạn xin vào. Các bạn còn chờ gì nữa?

—-English version—-

Letter from a graduated student

As professor, I often ask graduated students who are now working to share their experiences and give advices to students who are still in school. Last month, I send out an email to remind them and I received several replies. I like to share with you the letter from a former students:

“I graduated with a degree in software engineering last year. I got so lucky because I had several job offers in my last year in college. I started to interest in computer because I like to play computer games. I am very good in “World of Warcraft”, “Doom”, and “Grand Theft Auto”. Because of this interest, I took several programming classes in high school. Let me give you an advice: Do NOT wait until college to learn programming. You need to know how to program before you enter a computer program in college, else you cannot compete with students there. Computer programming is easy, it took me only few months to master the Java language. Since I knew Java, it was not difficult to learn C and C++. If you do NOT take this advices, other computer students in college will crush you. Computer courses are highly competitive and only the best will survive. By preparing ahead of time, you will succeed. High school works was easy and gave me a lot of time, so by learning programming earlier, it made things much easier for me in college”.

“Now my career consists of develop software applications to support the business of the company. I work in a team of ten people, most are at my age so we share many common interests. We all play computer games and read “Manga” comic books. Basically, we get paid to do what we like, playing with computer. In this job, we can also listen to music all day. We all have MP3 and earphones so nobody care what kind of music that we listen to, as long as we do not bother other people. My manager is a young woman, only few years older than us. She said as long as we get the work done, she will not bother us. However, if we do not do quality work, we will hear from her soon. Some of my team members do not like to have a woman as manager but I have no problem. She is like a sister to me because I also have a sister at home, so I do not mind.”

“In my company, most business managers are men but in the information technology group, half of managers are women. My manager told the team that currently, there are more women study Information System Management (ISM) than men. This was different from Software Engineering because in my class of 45 students, we only had 6 women. My manager spends most of her time in meetings with customers and senior managers so we only see her maybe once or twice a week, usually in team meeting. The meeting is always on Monday where she shares with us on what is happening in the company, what the users or customers want from us and what we need to do that week. She reviews some projects and gave comments on what should be done. Her directions are clear, concise and to the point and I always admire her communication skills. She is tough when things did not happen as expected but she is gentle when things are fine. However she never yells at us or shows any emotion. In contrast to another manager who is a man. I heard him yelling, show his anger to his team when things was bad so his team members are afraid of him. Many told me that they hated him and wanted to transfer to our team. I think woman are much better as manager than men.”

“Occasionally, I have to analyze the business needs to see if a solution is the best one. This require several phone calls to customers to verify requirements. Because I took the Requirements Engineering class, I know how to analyze and prioritize what customers need. I know how to determine Return On Investment (ROI) and gather additional users requirements that were not documented in the Software Requirement Specification (SRS). Most of my team members cannot do that, they studied Computer Science, they knew more about mathematics, equations and algorithms but they do not learn this requirement engineer skill. That is why my manager is very happy, she  gave me better raise in salary than the rest.”

“My work also involves in design database, designs application within .NET 4.0 and delivers software every 2 weeks. We follow an Agile methodology called Scrum to ensure what is created is what the users actually want. Contradict to what I believe, my work does not require a lot of programming. I think it is about 35% programming and 65% problem solving. Because I took software design and system architecture courses and did well in them, I can do most this work in my sleep.”

“Overall, I think that having the right college training is very important to your career. When I was a student, I thought programming is everything but now I know that it is only a tool and you need more than a tool to succeed in industry. Even I only work for a year, I already know that the process that I interact with customers and the way that I analyze the needs are important. The method that I architect the system and the way I design the solutions are critical. That is why I believe Software Engineering is a better choice.”

“I love being a software engineer. The best and easiest job I can think of. But I can see that it seems very complicated to someone who does not have a good background. If you are a good problem solver, have a strong analytical skills and have a good attitude about learning new thing, you can become a software engineer. Today there are also plenty of job openings in this field for you to apply. What are you waiting for?