Trường đại học là một môi trường đào tạo chuyên nghiệp bạn cần mất 4 - 5 năm để hoàn thành các nội dung học. Khối lượng kiến thức có được tại các trường đại học là vô cùng lớn, xong đó không phải tất cả. Có rất nhiều thứ bạn sẽ không được học trong môi trường đại học, nhưng rất tiếc những kiến thức đó lại là hành trang rất quan trọng đối với sự nghiệp của bạn sau này. Dưới đây là những chia sẻ về những gì tối đã biết và trải nghiệm trong quá trình tôi học tập về ngành lập trình và khi đi làm. Sau đây là 3 điều mà tôi đã học được nhưng không phải trên ghế nhà trường.
Đây là phần đầu trong series bài viết “Những điều trường đại học không dạy bạn”
1 Kĩ thuật lập trình
2 Cách nâng cao giá trị bản thân
3 Thành công và thăng tiến trong môi trường làm việc
Phần 1: Bài học về kĩ thuật lập trình
Ở Việt Nam, đa phần các bạn lập trình thường là sinh viên tốt nghiệp ngành khoa học máy tính ở đại học, 1 số bạn tự học hoặc học qua 1 số trung tâm. Mảng Khoa học máy tính thường nặng về tính khoa học, nghiên cứu. Những kiến thức về hệ điều hành, thuật toán,và cấu trúc dữ liệu... mà nhà trường dạy là vô cùng cần thiết với các Dev,mình không phủ nhận. Tuy nhiên, code, ngôn ngữ lập trình và design lại khá bị xem nhẹ. Do đó, khi bắt đầu làm việc, đa phần các bạn sẽ thiếu những kí năng sau đây.
Cách đọc và viết code
Khi còn ở địa học, bạn viết ra code chạy đúng, chạy được, giải quyết xong bài toán tức là bạn giỏi. Trong khi các kì thi cũng thế. Trong công việc thì khác, chạy đúng là yêu cầu bắt buộc,nhưng code được viết ra khi còn phải dễ hiểu, dễ đọc, dễ bảo trì và sửa chữa. Vì sao? Trong ngành này, code không phải chỉ viết 1 lần rồi bỏ đó, ta phải bảo trì, nâng cấp, sửa chữa thường xuyên. Như mình đã nói ở các bài viết trước, hãy chọn cách đơn giản, dễ hiểu, đừng chọn cách thông minh để rồi không ai hiểu.
Ngày xưa mình cũng từng là sinh viên giỏi, từng nghĩ mình code hay này nọ... sau khi đi làm hơn 1 năm rồi, đọc lại đống bùi nhùi trông như là code của mình mới nhận ra ngày xưa mình trẻ trâu thế nào. Trường đại học dạy ta vô số thức những chẳng ai dạy bạn về SOLID – Những điều lập trình viên nào cũng cần nắm rõ, không cai dạy bạn cách đặt tên hàn, tên biến, cách viết API cho dễ sử dụng
Testing, unit test
Trong chương trình học của 1 số trường có môn kiểm thử phần mềm. Tuy nhiên, nhiều sinh viên vẫn ngáo ngơ không biết test case là gì, thế nào là black-box, white-box testing. Một số câu khoai hơn như: NUnit, JUnit, Jasmine là gì... làm sao để sử dụng mock, stub, dùng IoC càng không ai biết. Có người sẽ nói: tối đi code chứ có phải đi làm test đâu. Để làm một developer giỏi,phải chắc rằng code mình viết ra không lỗi. Để đảm bảo code không lỗi, phải có suy nghĩ của một tester, nghĩ ra những case để kiểm tra nó.
Agile Development
Ở trường đại học, chúng ta được học về “quy trình phát triển phần mềm”, học về waterfall, agile v…v (Một số trường không có). Tuy nhiên, chúng chỉ là những kiến thức nhàm chán trên giấy mà ai cũng quên ngay sau khi thi. Đến khi bắt đầu làm việc, bạn sẽ ngáo ngơ khi vào daily meeting, planning meeting, ko rõ quy trình … vì không biết Scrum, XP là cái khỉ gì (Hồi vào FSOFT mình cũng ngáo ngơ, phải lên scrumtraining để học thêm.
>>> Xem thêm các thông tin hữu ích tại t3h.edu.vn
Source code control system
Đây là một thứ khá đơn giản nên nhà trường cho rằng các bạn có thể tự học được. Hãy nhìn cách các nhóm SV năm nhất, năm 2 khổ sở làm bài tập lập trình nhóm: Mỗi người làm một phần, sau đó họp cả team ghép code lại, mất code là mất luôn (Mình cũng từng trải qua cảnh ấy, cũng may về sau đỡ hơn). Hậu quả là các SV mới ra trường phải được training lại về cách dùng SVN, dùng Git, hoặc TFS (Quảng cáo tí, chương trình Fresher của Fsoft có training cái này). Cuộc sống SV của bạn sẽ dễ thở hơn nếu bạn tự trang bị kiến thức về cách dùng Git, SVN cho mình.
Cách dùng thư viện và framework
Do bản chất của chuyên ngành Computer Science, các trường chỉ dạy
1 số ngôn ngữ như C++, Java để dạy các môn còn lại. Nhiều sinh viên ra trường vẫn không biết dựng 1 trang web như thế nào, ngôn ngữ này có framework gì hay, làm sao để hiểu và sử dụng API của 1 thư viện nào đó. Các trường chỉ dạy 1 vài mô hình MVC, MVP, MVVP trên giấy, còn cách dùng những thư viện, framework nổi tiếng như: Struts 2, ASP MVC, Ruby on Rails, jQuery … còn tùy vào khả năng tự học của sinh viên. (Bài viết này không nói tới vài bạn có khả năng tự học giỏi, tự tìm hiểu và đã rành rọt vài ba framework khi mới ra trường nhé).
Mình sẽ viết viết phần 2 sau, và mình sẽ nói tới một điều quan trọng nữa không thua kém gì kĩ thuật lập trình: Cách nâng cao giá trị bản thân.