Cất bằng đại học đi, bạn còn cần thêm nhiều hơn thế!

           Đã bao giờ bạn bắt gặp những bài báo hoặc những lời than vãn kiểu như:  “Sinh viên ra trường và nỗi lo thất nghiệp“, “Bằng đại học mất giá, học xong rồi … thất nghiệp“, “Tốt nghiệp loại giỏi vẫn thất nghiệp” hoặc thậm chí tiêu cực hơn kiểu như “Đốt bằng đại học sau 5 năm thất nghiệp” ..v.v.v.. Không khó để bạn có thể tìm được trên mạng internet những lời tâm sự kiểu như: em đã tốt nghiệp XXX rồi mà mãi chẳng tìm được việc mọi người ạ … Thậm chí có nhiều người nói với mình rằng họ không tìm được công việc tốt, không tìm được một công việc có lương cao mặc dù đã có bằng A, chứng chỉ B, .v.v.. Mình nhận thấy một điểm chung ở những trường hợp đó là họ thường hay đổ lỗi cho nhà trường, cho tấm bằng, hay cho một yếu tố khách quan nào đó mà lại ít khi nhìn lại mình. Mình không có ý vơ đũa cả nắm, nhưng rất nhiều người nghĩ rằng họ cầm trong tay tấm bằng rồi thì họ coi như đã xong việc học rồi vậy, họ không cần phải cố gắng nữa và mặc nhiên họ sẽ có được công việc tốt, lương cao vậy. Rất nhiều bậc phụ huynh cũng mắc sai lầm tương tự, họ thúc ép con họ học thật nhiều khi còn ở phổ thông, hay tốt hơn chút là ở đại học, nhưng lại chẳng mấy người khuyên con mình rèn luyện tiếp khi đã tốt nghiệp, đa phần họ chuyển sang khuyên (hoặc hối thúc) con họ … lấy vợ. Các bậc phụ huynh thật kì lạ ^_^

        Có thể bạn cho rằng mình đã nỗ lực suốt 4 năm đại học rồi, và mình xứng đáng có một công việc tốt, điều đó là chính đáng thôi, tuy nhiên, thật sự thì tấm bằng đại học không “thần thánh” như bạn nghĩ hay báo chí hay giật tít đâu, bạn có thể tìm được công việc tốt hay không phụ thuộc phần nhiều vào khả năng thực sự và kĩ năng của bạn cơ. (Tất nhiên là cũng có yếu tố may mắn nữa, nhưng điều đó là số ít nên mình không bàn tới nhé). Nói thế không có nghĩa là bằng đại học không có ý nghĩa gì, thực sự thì nó vẫn rất cần thiết và mình sẽ nói về sự hữu dụng của nó ở một bài viết khác. Trong bài này, mình muốn nói về việc bạn không nên ngừng học hỏi hay có thái độ tự mãn sau khi đã tốt nghiệp. Việc bạn cần làm là giữ được thái độ “học hỏi không ngừng”.

           Bạn cần phải tự phát triển tiếp rất nhiều nữa sau khi tốt nghiệp thì mới đáp ứng được yêu cầu của công việc, và bởi vì chẳng còn ai dạy bạn nữa nên chính bạn phải tự đề ra kế hoạch và tự mình thực hiện thôi. Bạn có tin hay không thì đó là tuỳ bạn, sự nghiệp của bạn nằm trong tay bạn quyết định chứ không phải bất kì một ai khác hay sự may mắn nào cả. Việc học tiếp – hay tiếp tục phát triển kĩ năng của mình sau khi tốt nghiệp không phải là cái gì quá cao siêu, bạn chỉ cần dành một ít thời gian rảnh mỗi ngày để học hoặc cải thiện một cái gì đó, và lặp lại việc đó mỗi ngày là được. Trong quá trình làm việc, dựa trên kinh nghiệm bản thân và mình cũng có hỏi ý kiến một số người, thì những vấn đề tối thiểu sau đây phải được cải thiện nếu như bạn muốn mình trở thành một developer đáng giá.

98d2795b917bcfb3249672bad615294bf0dee1240947560c1ae4ac8ed42eb2be
Thấy mẫu design này quen không =))

           Đầu tiên là kiến thức về Design pattern. Bạn cần phải nắm được 24 mẫu thiết kế hướng đối tượng cơ bản nhất được giới thiệu bởi “Gang of four (GOF)“. Các mẫu thiết kế là những “solution” cho các tình huống cụ thể mà cộng đồng developer đã gặp phải từ cổ chí kim, vậy nên nếu bạn muốn giải quyết được các vấn để của bạn ở hiện tại (hoặc tương lai), thì việc học các pattern – cũng là các giải pháp – đã được nghiên cứu trước là cực kì cần thiết.

           Ngoài ra, nếu bạn muốn code tốt, thì phải nắm vững các nguyên tắc thiết kế, đặc biệt có thể kể đến là SOLID. Không có nghĩa là cứng đâu nhé, nó là một từ viết tắt của 5 nguyên tắc thiết kế mà bất cứ lập trình viên nào cũng nên tuân thủ nếu muốn code của mình rành mạch và trong sáng hơn. Không có SOLID thì code của bạn vẫn sẽ chạy được thôi, tuy nhiên, có SOLID thì code của bạn sẽ tốt hơn rất nhiều ở khía cạnh dễ dàng mở rộng và bảo trì sau này.

          Phát triển phần mềm là một công việc của nhóm, do vậy bạn cần trao dồi thêm kiến thức về các quy trình phát triển phần mềm: Scrum, Lean, Kanban, waterfall, … Việc nắm vững các mô hình này giúp bạn phối hợp hoạt động với mọi người trong team tốt hơn, từ đó hiệu suất làm việc sẽ được đẩy lên cao hơn.

         Bạn bắt đầu sự nghiệp của mình bằng cách làm các dự án nhỏ, sau đó khi kĩ năng của bạn cao hơn bạn sẽ có cơ hội phát triển các hệ thống lớn hơn. Việc phát triển các hệ thống lớn khác biệt hơn rất nhiều so với các hệ thống nhỏ nơi bạn có thể chỉ cần “code chạy được”. Bạn phải nắm thêm các kiến thức về cách phân tích kiến trúc hệ thống và cách thiết kế kiến trúc hệ thống lớn. Cũng đã có nhiều cuốn sách đưa ra các thiết kế và phân tích hệ thống lớn, bạn nên tham khảo để từ đó nâng cao kiến thức cho mình.

          Việc phát triển phần mềm không chỉ đơn giản là bạn ngồi viết 1 lèo hết tất cả mọi thứ, mà nó bao gồm nhiều công đoạn khác như: test, triển khai hệ thống, bảo trì, … Bạn nên luyện tập thêm các kĩ thuật code như TDD (Test-Driven Development) để code bạn được unit-test kĩ càng trước khi chuyển giao cho bộ phận QA, CI (continuos inteintegration) để tự động hoá nhiều công đoạn nhằm nâng cao hiệu suất toàn bộ quá trình phát triển, thiết kế phần mềm hướng đối tượng, hướng cấu trúc, …

           Bên cạnh code, bạn cũng cần phải sử dụng được các công cụ dùng để mô hình hoá chức năng và xử lí của phần mềm như: UMLs, sơ đồ cấu trúc, sơ đồ hoạt động, sơ đồ tuần tự, … Những thứ này không thể thiếu nếu như bạn muốn phân tích và mô hình hoá tốt toàn bộ phần mềm của bạn.

          Ngoại ngữkĩ năng mềm là thứ không thể thiếu. Cái này thì chắc khỏi phải bàn rồi, nó quan trọng với tất cả mọi lĩnh vực chứ không riêng gì phần mềm.

funny-poster-cr50_l

           Mình tin chắc rằng, nếu bạn có khả năng đủ tốt, chắc chắn bạn sẽ không phải chịu cảnh thất nghiệp, thậm chí bạn còn có thể tìm được những công việc vừa tốt lại vừa khiến bạn hứng thú mỗi ngày nữa. Đừng đổ lỗi cho hoàn cảnh hay bất kì thứ gì khác, chính bạn là người chịu trách nhiệm chính cho cuộc đời bạn. Thế giới công nghệ thay đổi hằng ngày, nếu bạn không tự cải thiện và học hỏi liên tục, chắc chắn bạn sẽ bị tụt lại phía sau. Khả năng chạy nhanh hay chạy chậm là tuỳ thuộc mỗi người, nhưng đừng bao giờ đứng yên tại chỗ.

          Mình không rõ nếu bạn chỉ học ở các trung tâm tin học thì sẽ như thế nào, nhưng nếu bạn đã được đào tạo qua bởi trường đại học / cao đẳng, thì những kiến thức trên không nhiều thì ít cũng đạ được  dạy cho bạn, có thể những điều được dạy cho bạn còn rất sơ khởi và mang tính giới thiệu nhiều hơn, nhưng chí ít bạn cũng có thể hình dung rằng nó là gì. Bạn cần phải tự học và tự rèn luyện thêm rất nhiều điều nữa, tấm bằng chỉ có ý nghĩa là bạn đã từng được đào tạo một cách bài bản và có năng lực để thực hiện điều đó, và bạn cần biến nó thành một tấm bằng có giá trị bằng cách tự học hỏi và cải thiện bản thân không ngừng. Nếu không, nó chỉ là một tờ giấy không hơn không kém, bạn có đốt hay không đốt thì cũng chẳng ai để ý đâu.

          Những kiến thức mình giới thiệu trên đây là những kiến thức hết sức cơ bản và cực kì cần thiết, ngoài ra bạn còn phải học hỏi thêm về các ngôn ngữ mới, các framework mới, ..v.v.v. Những kiến thức được nhắc tới ở bài này như là những thứ cốt lõi để bạn xây dựng vững chắc nền móng sự nghiệp của mình trước khi xây dựng nên những toà nhà hoành tráng. Ở những bài viết sau, mình sẽ đi tìm hiểu sâu hơn và sẽ chia sẻ chi tiết hơn từng vấn đề cụ thể. Các bạn nhớ đón xem nhé.

Vcttai

6 thoughts on “Cất bằng đại học đi, bạn còn cần thêm nhiều hơn thế!

  1. Pingback: [Mừng 5000 views đầu tiên] Những bài viết đáng chú ý trong thời gian qua & dự định sắp tới. – Webbynat

  2. Pingback: [Giới thiệu sách] The art of readable code – Cái tên đã nói lên tất cả – Webbynat

  3. Pingback: Chuyện lập trình viên, nước mía và sinh tố. – Những dòng code vui

  4. Pingback: [Giới thiệu sách] Sách hay đầu năm 2017 (P1) – Những dòng code vui

  5. Pingback: [ Giới thiệu sách ] The pragmatic programmer – Lập trình viên … tiêu biểu. (P1) – Những dòng code vui

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s