Một sinh viên viết cho tôi: “Em tốt nghiệp Hoá học hai năm trước nhưng không thể tìm được việc làm. Trong năm qua, em đã học một số môn máy tính trực tuyến trong viết mã Java và C++. Em có thể phát triển websites dùng HTML 5 và Javascript. Liệu có thể có được việc làm phát triển phần mềm mà không có bằng cấp trong Khoa học máy tính không? Xin thầy lời khuyên.”
Đáp: Ngày nay, do thiếu hụt trầm trọng người có kĩ năng kĩ thuật, có thể có được việc làm trong công nghiệp công nghệ cho dù KHÔNG CÓ bằng cấp. Tôi biết nhiều người làm việc ở các công ti như Google, Facebook, Microsoft và Amazon không có bằng Khoa học máy tính. Các quan chức điều hành Google và Facebook đã phát biểu rằng bằng cấp không phải là yêu cầu cho việc làm trong công ti của họ chừng nào mọi người còn có những kĩ năng mà họ cần. Nếu bạn có thể chứng tỏ tri thức và kĩ năng của bạn cho dù không có bằng cấp, bạn có cơ hội rất cao để có được việc làm ở đó. Năm ngoái, khi tôi dạy ở Hàn Quốc và Nhật Bản, tôi cũng biết rằng nhiều công ti ở đó cũng thuê các công nhân không có bằng cấp nếu họ có kĩ năng mà những công ti này cần.
Tất nhiên, để có việc làm phần mềm, bạn cần có kĩ năng viết mã, theo đó bạn đã có nhưng bạn vẫn cần qua được cuộc phỏng vấn nơi bạn phải trình diễn kĩ năng của bạn cho người quản lí thuê người. Bạn sẽ được yêu cầu giải quyết vấn đề và được yêu cầu viết ra giải pháp của bạn lên bảng. Bạn có thể chọn bất kì ngôn ngữ nào mà bạn thích nhưng Java là ngôn ngữ được ưa chuộng trong hầu hết cuộc phỏng vấn.
Lời khuyên của tôi là bạn cần chuẩn bị cẩn thận cho cuộc phỏn vấn. Chìa khoá KHÔNG phải là về biết cách viết mã mà là trình diễn năng lực của bạn và kĩ năng viết mã của bạn giỏi thế nào. Kĩ năng viết mã giỏi là tổ hợp của lí thuyết (như, Tư duy phê phán và giải quyết vấn đề) và thực hành (như, Thiết kế và Viết mã) nơi bạn sẽ phải giải thích từng bước bạn làm và tại sao bạn chọn giải quyết vấn đề theo cách đó. Bạn không thể chỉ yên lặng viết mã và hi vọng rằng bạn làm tốt mà bạn cần giải thích thuật toán và tư duy logic của bạn nữa.
Đó là lí do tại sao bạn cần hiểu cơ sở Khoa học máy tính như thuật toán, cấu trúc dữ liệu. Tôi biết nhiều sinh viên bắt đầu Khoa học máy tính bằng việc học ngôn ngữ lập trình nhưng ở Carnegie Mellon, chúng tôi bao giờ cũng bắt đầu bằng môn “Nhập môn vào hệ thống máy tính” để chắc sinh viên hiểu mọi khái niệm cơ bản là nền tảng của mọi ngôn ngữ lập trình trước khi học cách viết mã. Nếu bạn không biết rõ những điều căn bản này, bạn nên quay lại và ôn sách giáo khoa Khoa học máy tính về những chủ điểm này.
Bằng việc giải thích giải pháp của bạn trong cuộc phỏng vấn, bạn cũng trình diễn kĩ năng giải quyết vấn đề của bạn nữa. Phần lớn những nhà quản lí sẽ bị ấn tượng với việc bạn giải thích tốt thế nào cho các vấn đề của họ. Giải quyết vấn đề là quá trình mà bạn giải vấn đề từng bước theo cách logic. Nó không có nghĩa giải pháp của bạn phải là đúng, nhưng chính việc giải thích cách bạn giải quyết nó mới được tính tới. Hiểu lầm chung trong các sinh viên là giải pháp đúng mới thành vấn đề, và nếu bạn làm nó sai, bạn trượt cuộc phỏng vấn. Theo quan điểm của người quản lí, bạn đang được đánh giá khi bạn được trao cho vấn đề để giải quyết như bạn hiểu vấn đề thế nào (như bạn hỏi họ để làm sáng tỏ vấn đề nếu bạn không biết rõ nó hay không.) Bạn phân tích nó thế nào (như, cách bạn chia vấn đề ra và bắt đầu giải nó từng phần một, điều chính là kĩ năng tư duy thiết kế.) Cách bạn chọn giải pháp (như, kĩ năng logic và giải quyết vấn đề của bạn) và cách bạn giải nó (như kĩ năng viết mã của bạn).
Bằng việc giải thích quá trình giải vấn đề của bạn cho họ, bạn cũng trình diễn kĩ năng trao đổi mà phần lớn những người quản lí cũng đang tìm kiếm. Trao đổi, giải quyết vấn đề, tư duy phê phán là các kĩ năng mềm then chốt mà mọi công nhân đều phải có. Nếu bạn có thể giải thích mọi thứ theo cách logic, rõ ràng và bình thản, bạn sẽ làm tốt trong cuộc phỏng vấn.
TRI THỨC, KĨ NĂNG và NĂNG LỰC của bạn là quan trọng hơn bằng cấp, điều không là gì ngoài mảnh giấy. KHÔNG thành vấn đề liệu bạn có bằng cấp trong Hoá học, Sinh học, Toán học hay kinh doanh hay thậm chí KHÔNG có bằng cấp. Chính tri thức và kĩ năng của bạn làm cho bạn có việc làm và xác định ra nghề nghiệp tương lai của bạn.
—English version—
Getting a job without the degree
A student wrote to me: “I graduated in Chemistry two years ago but could not find a job. In the past year, I have taken several computer courses online in coding Java and C++. I can develop websites using HTML 5 and Javascript. Is it possible to get a software development job without a degree in Computer Science? Please advise.”
Answer: Today, due to the critical shortage of technically skilled people, it is possible to get a job in the technology industry even WITHOUT a degree. I know many people who work at companies such as Google, Facebook, Microsoft and Amazon that do not have a Computer Science degree. Google and Facebook executives already stated that a degree is not a requirement for jobs in their company as long as people have the skills that they need. If you can demonstrate your knowledge and skills even without the degree, you have a very high chance to get a job there. Last year, when I was teaching in S. Korea and Japan, I also learned that many companies there also hired workers without a degree if they have the skills that these companies need.
Of course, to get a software job, you need to have coding skills, in which you already have but you still need to pass the interview where you have to demonstrate your skills to the hiring managers. You will be asked to solve problems and required to write down your solution on a board. You can choose any language that you like but Java is the preferred one in most interviews.
My advice is you need to prepare carefully for the interview. The key is NOT about knowing how to code but to demonstrate your abilities and how strong your coding skills are. Strong coding skills are the combination of theory (i.e., Critical thinking and Problem solving) and practice (i.e., Design and Coding) where you will have to explain each step that you are doing and why you choose to solve the problem that way. You cannot just quietly code and hope that you do well but you need to explain the algorithm and your logic thinking too.
That is why you need to understand Computer Science basics such as algorithms, data structure. I know many students start Computer Science by taking programming languages but at Carnegie Mellon, we always start with the “Introduction to Computer Systems” course to make sure students understand all basic concepts which are the foundation of all programming languages before learning how to code. If you do not know these basics well, you should go back and review your Computer Science textbook on these topics.
By explain your solution during the interview, you also demonstrate your problem-solving skills too. Most managers would be impressed with how well you explain your solutions to their problems. Problem-solving is a process where you solve the problem step-by-step in a logical manner. It does not mean your solution has to be correct, but it is the explanation on how you solve it that count. A common misunderstanding among students is only the correct solution matters, and if you do it wrong, you fail the interview. From the hiring manager’s view, you are being evaluated when you are given the problem to solve such as how you understand the problems (i.e. do you asked them to clarify the problem if you do not know it well or not.) How do you analyze it (i.e., how do you break down the problems and start to solve it piece by piece, which is the design thinking skills.) How do you choose the solution (i.e., your logic and problem-solving skills) and how do you solve it (i.e., your coding skills).
By explain your process of solving the problems to them, you also demonstrate your communication skill that most managers are also looking for. Communication, Problem-solving, Critical-thinking are the key soft skills that every worker must have. If you can explain everything is a logical, clear, and calm manner, you will do well in the interview.
Your KNOWLEDGE, SKILLS, and ABILITIES are more important than the degree, which is nothing but a piece of paper. It does NOT matter whether you have a degree in Chemistry, Biology, Math or business or NOT even have a degree, It is your knowledge and skills that get you the job and determine your future career.