Bạn thực sự cần gì?
Trong vài tuần qua sau khi năm học mới bắt đầu, nhiều sinh viên "năm thứ nhất" tới hỏi tôi: “Là sinh viên phần mềm, em cần học môn nào trước khi lấy bằng tốt nghiệp? Em có cần học các lớp không phải máy tính để cho em có thể có việc làm tốt khi em tốt nghiệp không?” Thông thường bạn nhận được loại câu hỏi này từ sinh viên năm thứ ba, KHÔNG phải là ai đó mới bắt đầu vào trường vài tuần trước. Dường như là sau cuộc khủng hoảng tài chính, sinh viên đang chú ý nhiều hơn tới chọn lựa về học tập của họ và tới thị trường việc làm hơn là trước đây. Sau đây là gợi ý của tôi:
“Có vài môn ngôn ngữ lập trình mà bạn có thể học. Phần lớn các sinh viên bắt đầu với Java hay C++ nhưng nếu tôi là bạn, tôi sẽ lấy lớp học lập trình C trước tiên. Tôi hiểu rằng thị trường ngày nay phần lớn yêu cầu các ngôn ngữ Java, C++, và C# nhưng C có ưu thế mà các ngôn ngữ khác không có. Theo quan điểm của tôi, C là nền tảng cho lập trình vì nó gần với phần cứng hơn các ngôn ngữ khác. Khi hệ thông tin ngày càng lớn hơn và phức tạp hơn, bạn quả có cần phát triển mã hiệu quả, đặc biệt trong phần mềm nhúng, cho nên bạn phải biết C. Ngôn ngữ này sẽ cho phép bạn đi vào mức trình biên dịch và hệ điều hành để đảm bảo rằng mã làm việc tốt. Nếu bạn có thể làm chủ ngôn ngữ lập trình C, C++, C# và Java sẽ dễ học hơn nhiều.”
“Bên cạnh ngôn ngữ lập trình chính là nền tảng của khoa học máy tính, kĩ nghệ phần mềm và quản lí hệ thông tin, bạn phải biết rõ vòng đời phát triển phần mềm. Bạn phải hiểu khác biệt giữa vòng đời Thác đổ, vòng đời Xoáy ốc, vòng đời Phát triển gia tăng v.v. và biết vòng đời nào là phù hợp cho dự án đặc thù nào. Bạn nên hội tụ vào đầu thượng của vòng đời bằng việc lấy môn kĩ nghệ yêu cầu và môn kiến trúc và thiết kế trước khi tốt nghiệp và xây dựng kĩ năng của bạn trong việc thu lấy và phân tích yêu cầu người dùng. Nhiều sinh viên ưa thích dành nỗ lực của họ vào đầu hạ của vòng đợi bằng việc học nhiều về các môn viết mã và kiểm thử. Tôi biết rằng sinh viên không thích môn kĩ nghệ yêu cầu hay môn kiến trúc & thiết kế vì họ nghĩ chúng không "đủ kĩ thuật" khi so với các môn Java hay C++. Ngược lại, khi họ làm việc, họ sẽ biết rằng yêu cầu và kiến trúc là kĩ năng quan trọng nhất mà công nghiệp cần. Bởi vì những môn này hội tụ chủ yếu vào trao đổi với người dùng và khách hàng cho nên sinh viên cần học chúng đủ nghiêm túc.”
“Với một số sinh viên, “việc làm lí tưởng” là việc làm cho phép họ viết mã. Nhiều người KHÔNG thích nói chuyện với người khác, nếu họ phải nói thì gửi văn bản tin nhắn và email là chọn lựa của họ. Trong công nghiệp, người có quyền lực nhất và có ảnh hưởng tới người khác và rất có thể được đề bạt làm người quản lí là người có thể trao đổi rõ ràng và thoải mái với khách hàng. Điều then chốt trong chọn người quản lí dự án là KHÔNG dựa vào bao nhiêu ngôn ngữ lập trình mà người đó biết, bao nhiêu dòng mã người đó có thể sinh ra trong một giờ, mà là người đó có thể trao đổi tốt tới đâu. Bằng việc hiểu nhu cầu của khách hàng và có khả năng viết chúng ra một cách rõ ràng trong đặc tả yêu cầu, họ cho phép người khác làm công việc và lập trình mã của họ một cách đúng đắn. Với yêu cầu được viết ra kém và thường xuyên thay đổi, mã hoàn hảo là vô giá trị. Bằng cách kiến trúc và thiết kế tốt, họ cho phép người khác hình dung ra mã của họ được giả định làm gì, họ phải thực hiện hàm nào trước, và họ phải xem xét tới thuộc tính chất lượng nào để xây dựng phần mềm tương ứng. Với kiến trúc và thiết kế tồi, mã tốt chả có giá trị gì.”
“Nhiều đại học có đưa ra các lớp "viết tài liệu kĩ thuật" và bạn nên học chúng. Tôi biết rằng các lớp này yêu cầu viết nhiều nhưng bạn cần phát triển kĩ năng viết cho dù bạn làm việc trong lĩnh vực kĩ thuật. Có nhiều việc đọc, viết và trao đổi trong công nghiệp phần mềm hơn là bạn có thể hình dung cho nên bạn cần phát triển những kĩ năng này bất kì khi nào bạn có thể làm. Nhiều công ty phần mềm KHÔNG thuê người phát triển chừng nào họ không thể đọc, viết và trao đổi tốt bằng việc biểu lộ điều đó trong các cuộc phỏng vấn việc làm. Kĩ năng rất quan trọng khác mà bạn cũng phải có là biết ít nhất một ngoại ngữ như tiếng Anh.”
“Là sinh viên kĩ thuật, bạn có lẽ không lấy các môn về doanh nghiệp, kinh doanh. Đây là một sai lầm lớn, mặc dầu trường có thể KHÔNG yêu cầu nó. Tôi gợi ý rằng bạn nên lấy các môn doanh nghiệp cơ sở để cho bạn hiểu khái niệm về các qui tắc kế toán, tài chính và doanh nghiệp như cung và cầu, ưu thế cạnh tranh, giá trị doanh nghiệp v.v.. cho nên bạn sẽ biết cách doanh nghiệp làm việc bởi vì một ngày nào đó bạn có thể trở thành người quản lí dự án, người quản lí chương trình, giám đốc thông tin (CIO) và có thể sở hữu công ty riêng của mình và bạn phải có những kĩ năng này. Ngày nay, kĩ năng kĩ thuật là KHÔNG đủ, bạn phải có kĩ năng doanh nghiệp để sống còn trong môi trường cạnh tranh cao này.”
“Để có được việc làm tốt hơn khi tốt nghiệp bạn cần biết rằng phần lớn các công ty phần mềm KHÔNG chỉ nhìn vào thành tựu hàn lâm mà còn vào cả các hoạt động "phi hàn lâm". Kinh nghiệm là yếu tố cốt yếu trong quyết định thuê người cho nên thay vì tận hưởng vài tháng nghỉ ở nhà và tận hưởng những bữa ăn do mẹ nấu, bạn nên làm việc mùa hè để thu được kinh nghiệm dù bạn có được trả lương hay không. Công việc mùa hè tốt nhất là làm việc tập trung tại công ty phần mềm nơi bạn học nhiều hơn về tương lai cũng như công ty biết điều gì đó về bạn. Nếu bạn không thể tìm được việc làm với công ty phần mềm thì bất kì việc gì với công ty không phần mềm cũng sẽ tốt, miễn là bạn thu được cái gì đó liên quan tới lĩnh vực học tập của mình. Bạn có thể thiết kế website cho ngân hàng địa phương, lập trình cho ứng dụng cho doanh nghiệp xuất/nhập khẩu nhỏ v.v. bất kì cái gì giúp bạn đưa vào bản lí lịch của mình rằng bạn có kinh nghiệm làm việc. Là sinh viên công nghệ thông tin, sai lầm lớn nhất bạn có thể mắc là làm bất kì loại việc nào trong mùa hè không liên quan tới lĩnh vực của bạn cho dù bạn có thể làm ra nhiều tiền. Tôi biết việc bán hàng trả nhiều tiền hơn và bạn có thể ăn mặc đẹp trong văn phòng thuyết phục mọi người mua cái gì đó nhưng bạn sẽ đưa vào bản lí lịch của mình cái gì khi bạn tốt nghiệp? Bạn có cho rằng công ty phần mềm sẽ chọn một ứng cử viên với bản lí lịch liệt kê: “bán tủ lạnh, bán ti vi và DVDs, bán quần áo” hay bản lí lịch liệt kê rằng: “Lập trình cho ứng dụng kế toán cho doanh nghiệp nhỏ, thiết kế website cho ngân hàng địa phương nhỏ.”
Tác phẩm, tác giả, nguồn
- Tác phẩm: Lời khuyên cho sinh viên
- Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
- Wiki hóa: https://kipkis.com