Những kỹ thuật lập trình mà trường đại học không dạy bạn 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à trường dạy là vô cùng cần thiết với các developer. Tuy nhiên... Ở Việt Nam, đa phần các bạn lập trình viên thường là sinh viên tốt nghiệp ngành công nghệ thông tin ở trường đại học, một số bạn tự học hoặc học qua 1 số trung tâm. 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à trường dạy là vô cùng cần thiết với các developer. Tuy nhiên, code, ngôn ngữ lập trình và design lại ít được nói đến. 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 ở đại học, khi 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 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 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 cho nên 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. Trường đại học dạy ta vô số thứ: lập trình hướng đối tượng, tính kế thừa…nhưng khô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 ai dạy bạn cách đặt tên hàm, tên biến, cách viết API cho dễ sử dụng; không ai dạy design pattern – một thứ để phân loại lập trình viên junior và senior. Các bạn hãy đọc 2 cuốn: Code Complete và Clean Code, chỉ cần hiểu và áp dụng khoảng 30-50% những điều trong sách này, các bạn đã giỏi hơn 50% số developer còn lại. Sử dụng IDE, debug Hiện nay vẫn còn một số trường sử dụng phương thức kiểm tra giấy cho các kì thi lập trình. Sau đó giáo viên sẽ đọc code của từng học sinh, thật là cực cả thầy lẫn trò. Sinh viên code C, C++ trên notepad, hoặc 1 số ide, sau đó thì chạy code. Đến khi đi làm, nhiều bạn không biết sử dụng IDE như Eclipse, Visual Studio,… không biết dùng Nuget, Maven .. Testing, unit test Trong chương trình học của 1 số trường vẫn có môn Kiểm thử phần mềm. Tuy nhiên, nhiều sinh viên vẫn không biết test case là gì, thế nào là black-box, white-box testing. Một số câu 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 là mình làm lập trình viên viết ra code chứ có phải đi làm test đâu. Nhưng để 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 thử 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…(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ẽ không biết khi vào daily meeting, planning meeting, không rõ quy trình … vì không biết Scrum, XP là gì? 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. Hậu quả là các bạn sinh viên mới ra trường phải được training lại về cách dùng SVN, dùng Git, hoặc TFS. Nếu trong thời gian sinh viên bạn tự trang bị kiến thức về cách dùng Git, SVN cho mình thì sau này khi đi làm sẽ không còn bỡ ngỡ khi dùng đến. Cách dùng thư viện và framework Do bản chất của chuyên ngành công nghệ thông tin, 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. Có một thực tế là người lập trình không chỉ hoàn thiện kỹ năng về kỹ thuật của mình mà còn cần có những kỹ năng bên ngoài IT. Đó là kỹ năng về giao tiếp, hội nghị, hội thảo, gặp gỡ, xử lý các phản hồi từ khách hàng. Ví dụ, một giám đốc tài chính muốn thay đổi một luật về kế toán thì không thể làm việc với nhân viên IT để cập nhật hệ thống. Một người quản lý điều hành không thể thay đổi một tiến trình xử lý cuộc gọi nếu như không có IT. Khách hàng cũng thường xuyên tiếp xúc với đội ngũ phát triển để chắc chắn rằng những yêu cầu của họ được đáp ứng. Người lập trình sau khi ý thức trau dồi những kỹ năng mềm này sẽ có giá trị hơn trong người tuyển dụng và có thể có một vị trí cao hơn trong nghề nghiệp. Hãy đối chiếu những kiến thức và kỹ năng nêu trên với bản thân bạn. Nếu phát hiện bạn cũng nằm trong số những người thiếu những kỹ năng đó thì đây chính là thời điểm bạn nên tích cực chuẩn bị đầu tư học tập, nghiên cứu và rèn luyện cho sự nghiệp tương lai trong lĩnh vực lập trình của mình. Còn nếu bạn chưa nắm vững các ngôn ngữ lập trình, hãy tham gia các khóa học lập trình tại Stanford – dạy kinh nghiệm lập trình. Chúng tôi sẽ giúp bạn thành thạo và thành công. Với phương châm “học để làm việc”, cùng đội ngũ giảng viên, chuyên gia nhiều năm tham gia giảng dạy và có nhiều kinh nghiệm thực tế từ các dự án phần mềm lớn, học viên tại Stanford không những được đào tạo bài bản về kiến thức mà còn được rèn luyện kỹ năng và kinh nghiệm khi trực tiếp tham gia vào những dự án phần mềm lớn ngay trong chương trình học. Cũng trong dịp hè 2015 này, Stanford – dạy kinh nghiệm thực tế triển khai trương trình ưu đãi: “Học kỳ vàng cùng Stanford”. Chi tiết tham khảo tại website: stanford.com.vn Sưu tầm Nhật Lệ ( Stanford - Nâng tầm tri thức) Tags: Học lập trình, khoá học lập trình