Lập trình viên có thực sự cần bằng cấp

Bài viết được dịch từ blog Simple Programmer
Khi lần đầu tiên tôi bắt đầu nghề nghiệp của mình với tư cách là một lập trình viên, tôi đã không có một bằng cấp nào cả.
Tôi có cần kiếm một mảnh bằng đại học để trở thành lập trình viên?
Tôi có cần kiếm một mảnh bằng đại học để trở thành lập trình viên?
Tôi kiếm được công việc thực sự đầu tiên của mình khi đang trong kỳ nghỉ hè năm nhất đại học. Lúc đó, kỳ nghỉ hè sắp kết thúc và đó là thời điểm mà tôi phải quay lại trường đại học, tôi nhận ra rằng mức lương mà mình kiếm được từ công việc mùa hè đó tương đương với mức lương mà tôi mong chờ sẽ kiếm được sau khi tốt nghiệp đại học - lúc đó tôi cũng không có bất kỳ khoản nợ nần nào - vì vậy, tôi đã bỏ học để giữ lấy công việc đó.
Nhưng liệu đó có phải là quyết định đúng đắn mà tôi đã chọn?
Bạn có thực sự cần một tấm bằng đại học để trở thành một lập trình viên máy tính?

Sự khác nhau giữa giáo dục và nhà trường

Chỉ bởi vì bạn có một tấm bằng đại học không đồng nghĩa với việc bạn đã học được bất kỳ chút kiến thức gì. Đó là vấn đề chính mà chúng ta gặp phải trong hầu hết các chương trình giáo dục truyền thống ngày nay. Trường học ngày nay đã trở thành nơi chỉ để kiếm một mảnh bằng - một mẩu giấy - hơn là để học được một cái gì đó thực sự có giá trị.
Về mặt nào đó, tôi giống như là đang giảng đạo vậy. Nếu bạn có một tấm bằng mà bạn đã học tập vất vả và phải trả một số lượng học phí lớn cho nó, thì bạn có khuynh hướng tin rằng mẩu giấy đó đáng giá hơn nhiều so với giá trị thực của nó.
Học lập trình truyền thống vs. trực tuyến
Nếu bạn không có một bằng cấp, thì bạn có khả năng nhiều khuynh hướng tin rằng những bằng cấp là vô giá trị và hoàn toàn không cần thiết - mặc dù có thể bạn cũng có mong ước thầm kín là ước gì mình cũng có một cái.
Vì vậy, cho dù bạn đang có quan điểm nghiêng về bên nào, thì tôi cũng yêu cầu bạn ngừng niềm tin của mình trong giây lát - vâng, những thành kiến - và xem rằng cả hai góc nhìn nói trên đều không hoàn toàn chính xác, có một nơi nào đó nằm giữa hai quan điểm này, nơi mà một tấm bằng không nhất thiết là phải có giá trị hay vô giá trị.
Bạn biết đấy, vấn đề không thực sự là liệu một tấm bằng có bất kỳ giá trị nào hay không. Tấm bằng đó tự bản thân nó không đại diện cho điều gì cả ngoài học phí đã trả và thời gian mà bạn dành cho nó. Một tấm bằng có thể kiếm được theo nhiều cách khác nhau, không có điều gì đảm bảo rằng bạn đã học được chút gì trong thực tế khi đạt được nó. Nếu bạn đã từng tham gia học đại học, thì bạn biết rằng có nhiều cách để có thể hoàn thành khóa học mà không thực sự học được chút gì vào đầu cả.
Bạn đừng hiểu lầm ý tôi, tôi không nói rằng bạn không thể học được bất cứ điều gì ở trường đại học. Tôi không nói rằng mọi bằng cấp đều là gian lận. Tôi chỉ đơn giản nói rằng tấm bằng đó tự thân nó không chứng minh được gì nhiều; có một sự khác nhau giữa đến trường để hoàn thành một chương trình học và bạn có thực sự học được gì từ nó hay không.
Việc học không chỉ là ghi nhớ các sự kiện. Học đích thực là phải hiểu. Bạn có thể học thuộc lòng bảng tính nhân và không hiểu ý nghĩa của nó làm gì. Với kiến thức đó, bạn có thể nhân hai số bất kỳ nào mà bạn có trong trí nhớ để lấy kết quả, nhưng bạn sẽ thiếu hụt khả năng nhân bất kỳ số nào mà bạn không có trong phần học thuộc lòng của mình. Nếu bạn hiểu về phép nhân, thậm chí không cần biết bất kỳ bảng tính nhân nào, bạn cũng có thể biết làm thế nào để tìm thấy câu trả lời cho bất kỳ phép nhân nào - cho dù nó có thể khiến bạn mất một chút thời gian.

Bạn có thể có trình độ học vấn cao mà không cần bằng cấp

Các hệ thống giáo dục truyền thống không phải là cách duy nhất để học về mọi thứ. Bạn không phải đến trường và nhận một bằng cấp thì mới trở thành người có học vấn. 50 năm về trước, điều này có thể không đúng - mặc dù tôi không dám chắc, vì tôi không thể sống trở lại thời gian đó. 50 năm trước đây chúng ta không có thông tin dễ dàng như ngày nay. Chúng ta không có tất cả những nguồn tài nguyên mà chúng ta có ngày nay để học tập, bất kỳ chủ đề nào cũng có thể truy cập dễ dàng.
Một mảnh bằng khoa học máy tính đơn thuần chỉ là một bộ sưu tập các chương trình giảng dạy chính thức. Nó không có gì là kỳ diệu cả. Không có lý do gì mà một người không thể tiết kiệm được tiền bạc và một số lượng thời gian rất lớn để nhận một tấm bằng khoa học máy tính từ một tổ chức giáo dục bằng cách tự học chính xác kiến thức giống như vậy.
Ngày xưa, các giáo sư truyền đạt kiến thức và trí tuệ tới các sinh viên đơn giản bằng cách ở trong cùng lớp học với họ. Chắc chắn đó có thể là cách dễ dàng hơn để thu nhận kiến thức khi có một ai đó trực tiếp truyền thụ cho bạn, nhưng bạn không cần một giáo viên để học. Bạn có thể trở thành giáo viên của chính mình.
Thực ra, ngày nay có một số lượng lớn các tài nguyên trực tuyến nơi bạn có thể nhận lấy một lượng kiến thức tương đương, mà miễn phí - hoặc với mức học phí vô cùng rẻ.
Thậm chí nếu bạn có một bằng cấp, thì tự học là một kỹ năng mà bạn không thể lờ đi - đặc biệt là khi nó thiết thực và miễn phí.
Bạn cũng có thể tìm thấy nhiều cuốn sách về khoa học máy tính trực tuyến rất tuyệt vời. Ví dụ, một trong những cuốn sách tốt nhất là: Structure and Interpretation of Computer Programs – 2nd Edition (MIT Electrical Engineering and Computer Science)

Liệu có bất kỳ lợi ích thực sự nào khi có một bằng cấp?

Câu trả lời của tôi có thể làm bạn ngạc nhiên, nhưng ngay lúc này đây tôi nghĩ rằng là có.
Tôi đã nói với bạn rằng tôi đã không tiếp tục học đại học để giữ lấy công việc của mình, nhưng điều mà tôi chưa nói với bạn là tôi đã quay lại và lấy bằng cấp của mình sau đó. Tôi đã không quay lại trường đại học và nghỉ việc, nhưng tôi đã nghĩ có đủ giá trị trong việc lấy một tấm bằng khoa học máy tính thực sự, và tôi đã quyết định đăng ký một chương trình học trực tuyến có cấp bằng và nhận bằng cấp của mình trong khi vẫn giữ được việc làm.
Bằng cấp lập trình viên
Tại sao tôi lại quay lại và nhận bằng cấp của mình ư?
Vâng, đó không phải là vấn đề về kiến thức. Bởi tại thời điểm đó, tôi biết rằng bất cứ cái gì mà tôi muốn hoặc cần học, thì tôi có thể tự học được. Tôi không thực sự cần một bằng cấp. Tôi đã có một công việc với mức lương tốt và vô số kinh nghiệm làm việc thực tế. Nhưng, tôi nhận ra rằng có một số lượng cơ hội rất lớn mà tôi có thể bỏ lỡ nếu mình không trải qua quá trình chính thức để nhận lấy mảnh giấy đó.
Trong thực tế mặc dù cả bạn và tôi đều biết rằng những bằng cấp đó không có ý nghĩa gì cả, nhưng không phải ai cũng có cùng quản điểm như vậy. Bạn có thể có khả năng làm công việc của mình và bạn có thể biết tay nghề của mình tốt hơn cả mấy tay có bằng cấp, nhưng đôi khi mẩu giấy đó sẽ tạo ra sự khác biệt giữa việc có kiếm được một công việc hay không, và sẽ có một tầm ảnh hưởng vào việc bạn có thể leo lên những vị trí cao trong một môi trường tổ chức.
Chúng ta không thể đơn giản đi theo những giá trị của mình và mong chờ thế giới này cũng đi theo những giá trị đó. Chúng ta phải nhận ra rằng một số người sẽ có chỗ đứng cao hơn khi có một bằng cấp - cho dù họ có thực sự học được chút gì khi nhận nó hay không.
Nhưng đồng thời, tôi tin rằng bạn cũng có thể sống tốt mà không có nó - bạn sẽ chỉ có ít cơ hội hơn - một số cánh cửa sẽ đóng lại đối với bạn. Đối với một lập trình viên, điều quan trọng nhất là khả năng viết code. Nếu bạn có thể chứng tỏ khả năng đó, thì hầu hết các nhà tuyển dụng sẽ thuê bạn - ít ra là theo kinh nghiệm của bản thân tôi.
Tôi có trải nghiệm ở cả hai trường hợp trên. Tôi đã cố gắng xin việc làm khi không có bằng cấp và tôi cũng thử xin việc làm khi tôi có một mảnh bằng. Tôi thấy rằng trong cả hai trường hợp đó, tấm bằng không quan trọng bằng việc chứng tỏ khả năng tôi có thể thực sự viết ra code tốt và giải quyết vấn đề.
Vì vậy, tôi biết rằng không cần thiết phải có một bằng cấp, nhưng có nó thì cũng tốt.

Bạn nên làm gì nếu bạn vừa mới bắt đầu?

Nếu tôi bắt đầu vào ngày hôm nay, thì đây là điều mà tôi sẽ làm: tôi sẽ lên kế hoạch để đạt được bằng cấp của mình một cách rẻ nhất có thể và hoặc là làm việc toàn thời gian, hoặc tốt hơn là tạo ra sản phẩm hoặc công ty của mình trong khoảng thời gian đó.
Tôi sẽ cố gắng học 2 năm đầu tiên tại một trường cao đẳng cộng đồng, nơi mà học phí vô cùng rẻ. Trong khoảng thời gian đó, tôi sẽ cố gắng thu được kinh nghiệm làm việc thực sự tại một công việc thực tế hoặc là bằng cách phát triển một phần mềm của riêng mình.
Một khi tôi đã hoàn thành bằng cấp 2 năm đó, sau đó tôi sẽ thi tuyển vào một trường đại học, hy vọng rằng tôi sẽ nhận được học bổng có thể trang trải cho phần lớn học phí của mình. Tôi cũng tránh việc vay mượn bất kỳ khoản tiền nào. Tôi sẽ chắc chắn rằng mình có thể kiếm đủ tiền làm thêm để có khả năng trang trải cho học phí đó. Tôi nhận ra điều này không phải luôn luôn có thể thực hiện được, nhưng tôi sẽ thử giảm thiểu mức nợ nần nhiều nhất có thể.
Điều mà bạn hoàn toàn không muốn đó là bắt đầu làm việc sau khi hoàn thành 4 năm đại học và bạn có một khoản nợ khổng lồ vào lúc đó. Rất có thể, số lượng tiền thưởng ít ỏi mà bằng cấp của bạn mang lại sẽ không thể bù đắp cho những hy sinh mất mát 4 năm kinh nghiệm làm việc và tiền lương, và bạn sẽ chìm sâu vào nợ nần. Đừng phạm phải sai lầm như vậy.
Một con đường khác mà bạn cũng nên cân nhắc đó là hoàn thành một khóa học trực tuyến - và hoàn toàn lờ đi các trường học truyền thống. Mức học phí ở các trường học truyền thống ngày càng tăng trong khi bằng cấp truyền thống ngày càng giảm giá trị - đặc biệt trong lĩnh vực phát triển phần mềm.
Nếu bạn đi theo lộ trình này, bạn cần phải có một chút khả năng tự động viên bản thân và tự kỷ luật. Bạn cần sẵn lòng tạo ra cho mình một kế hoạch học tập và bắt đầu xây dựng phần mềm của riêng mình, nó sẽ chứng tỏ rằng bạn biết cái mà bạn đang làm.
Vấn đề lớn nhất bạn sẽ phải đối mặt khi không có một bằng cấp là khi bạn tìm kiếm công việc đầu tiên của mình. Rất khó để tìm được một công việc khi chưa có kinh nghiệm, nhưng khi bạn không có bằng cấp thì điều đó còn khó hơn nhiều. Cái bạn cần là một portfolio công việc để cho thấy rằng bạn có thể thực sự viết code và phát triển phần mềm.
Tôi thậm chí còn đề xuất bạn nên tạo ra công ty của riêng mình và tạo ra ít nhất một sản phẩm phần mềm để bạn bán thông qua công ty đó. Bạn có thể đưa kinh nghiệm đó vào trong hồ sơ của mình và chủ yếu là tạo ra công việc đầu tiên của bạn. (Một ứng dụng di động là một sản phẩm tuyệt vời dành cho một lập trình viên mới bắt đầu.)

Điều gì xảy ra nếu bạn đã là một lập trình viên có kinh nghiệm?

Bạn có nên quay trở lại trường đại học để lấy một tấm bằng vào lúc này?
Nó thực sự phụ thuộc vào những mục tiêu của bạn. Nếu bạn đang lên kế hoạch để trèo lên những nấc thang chức vụ trong một tổ chức lớn, thì câu trả lời là nên. Trong một môi trường tổ chức, bạn sẽ sớm "chạm trần" nếu bạn không có một bằng cấp. Đó chỉ là cách mà các tổ chức làm việc. Thêm nữa, nhiều tổ chức sẽ giúp trả tiền học phí cho bằng cấp của bạn, vì vậy tại sao lại không tận dụng điểm thuận lợi đó.
Nếu bạn chỉ muốn trở thành một nhà phát triển phần mềm và viết code, thì có lẽ không cần. Nó có thể không đáng để đầu tư, trừ khi bạn có thể đạt được nó với mức học phí rất rẻ - và thậm chí sau này khoảng thời gian đầu tư đó có thể trở nên không có giá trị. Bạn thực sự cần cân nhắc kỹ xem liệu bạn có khả năng kiếm được thêm bao nhiêu và bạn sẽ phải mất chi phí bao nhiêu về thời gian và học phí cho tấm bằng đó. Có lẽ bạn nên tự học để nâng cao những kỹ năng của mình hơn là quay lại trường để nhận lấy một mảnh bằng theo kiểu truyền thống.
Về tác giả bài viết:
John SonmezJohn Sonmez là một lập trình viên, người lập ra trang web Simple Programmer, đồng thời anh là tác giả có nhiều giáo trình học trực tuyến tại Pluralsight. Anh đã xuất bản hơn 50 khóa học trực tuyến về các chủ đề như iOS, Android, .NET, Java và phát triển Games. Bạn có thể liên hệ với anh qua Twitter.

Nhận xét