My Opera is closing 3rd of March

Văn phòng iGURU trực tuyến (YIM: wwwiguru1)

Bác John - Giám đốc iGURU Việt Nam - 48 tuổi, Chị Sally - Thư ký kiêm marketing và nhiều việc khác - 23 tuổi. Website: www.iguru.vn

Đôi lời về cách học - Phần 2



Tiếp theo phần 1 bàn về 1 số sai lầm trong cách học, trong phần tôi sẽ viết 1 số đề nghị để học tập, nâng cao kiến thức 1 cách hiệu quả. Nếu bạn thực sự thấy hữu ích cho bạn thì viết vài dòng nhận xét, thực sự tôi rất lấy làm mừng nếu vì bài viết của mình có thể giúp được người khác tốt hơn cũng như trước kia tôi cũng đã từng học rất nhiều từ những người đi trước từ một số thầy cô đáng kính trong đại học những như những người có kinh nghiệm trong nghề CNTT. Từ bạn trong bài viết này chỉ là cách nhân xưng không phải đang chỉ đến người đang đọc smile



Trước hết xin nhấn mạnh rằng để học tốt và trở thành 1 người thực sự giỏi trong ngành công nghệ phầm mềm thì bạn phải có óc tư duy logic tốt cũng như cách học tốt. Tôi đã từng phỏng vấn gặp nhiều người có tư duy logic rất tốt (thậm chí 1 người là thủ khoa DHBK và đã làm luận án thạc sĩ) nhưng họ đã làm nhiều năm trong môi trường ít thử thách, quanh quẩn bên những dự án coding tầm thường nên họ đã không đạt những skill tương xứng với tiềm năng của họ đồng thời bị sức ì thời gian, tuối tác khiến họ không thể thay đổi cách họ tiếp cận vấn đề, thêm 1 phần nữa ở đặc tính mà tôi gặp ở đa số người Việt là cái tự ái quá lớn (không phải là cái tôi :-)) để nghe những lời khuyên của người khác. Một số trong họ là “sao” trong một tập thể “mù” (ngay cả trong các công ty lớn) cũng khiến họ tự huyễn về mình.

Thêm 1 tính cách để giúp bạn học tốt là biết nhìn mình như “một hạt các giữa sa mạc”. Thế giới có rất nhiều người giỏi, đôi khi không thể phân biệt giữa nhất và nhì, chấp nhận học hỏi lẫn nhau hơn là “giấu nghề” hay “chê bai” thì bạn sẽ đạt kết quả tốt hơn cho bạn.

Cố gắng giỏi trong lĩnh vực mà bạn chịu trách nhiệm chính trước

Bạn là một developer thì bạn không nên học về những gì cho designer trước khi bạn là 1 developer giỏi, điều tương tự cũng được áp dụng cho QC, BA hay manager. Hãy làm tốt những gì bạn đang đựoc đòi hỏi. Điều quan trọng nhất của developer về viết ra những dòng code đạt chất lượng còn của người designer là thiết kế chương trình đạt chất lượng. Mối quan tâm của từng vị trí là khác nhau nhưng hỗ trợ nhau, ví dụ một chương trình thiết kế tốt là chương trình có thể hỗ trợ cho việc code đạt chất lượng cao. Một developer tốt không phải người đó có biết cách sử dụng API (mà rất nhiều người coi đó là kinh nghiệm), nhiều ngôn ngữ hay đã code nhiều năm mà chính là người có thề viết ra những dòng code dễ đọc, dễ bảo trì, dễ debug và dễ kiểm tra. “Rome không phải xây trong 1 ngày” cũng như bạn không phải là thiên tài để học tất cả trong 1 ngày. Hãy kiên trì cho mục đích của bạn thì sẽ có ngày bạn đạt được mục tiêu của mình.

Học những điều cơ bản

Thử tưởng tượng cho một người chưa học lớp 3 để học đại học, họ không thể thành công được. Lý do? họ không có đủ kiến thức cơ bản. Việc có kiến thức cơ bản sẽ khiến bạn không thể nào tiến xa được. Những kiến thức cơ bản tùy thuộc vào trách nhiệm chính mà bạn đang làm và một số chúng được trang bị cho bạn ở giảng đường đại học. Ngày nay rất nhiều người nói rằng đó là những kiến thức “hàn lâm” và sinh viên ra trường không thể bắt tay làm việc được, điều đó đúng 1 phần là do trình độ của giảng viên đại học, cách bạn học trên giảng đường chứ nhìn chung một số trong chúng rất hay và rất cơ bản, nó là bước đệm cho bạn có thể tiến xa.

Tôi đưa ra một số kiến thức cơ bản cho 1 developer đó là thuật tóan, độ phức tạp của thuật tóan, các khái niệm về lập trình, viết code dễ debug và dễ kiểm tra, nguyên tắc họat động của compiler và cách phân bổ tài nguyên, lập trình đa luồng. Khi chuyên sâu vào 1 ngôn ngữ nào đó thì bạn phải biết thêm các họat động trên môi trường đó, ví dụ như là LTV Java thì bạn cần phải biết cách thức của Class Loader. Thật sai lầm nếu nghĩ rằng developer có nhiều kinh nghiệm sử dụng API là tốt vì viết code không phải là tất cả để đưa ra sản phẩm tốt mà cả thời gian debug, bảo trì (một trong những bài viết sắp tới của tôi là Invisible cost có bàn đến vấn đề này, mọi người nhớ đón đọc :-)) có kiến thức cơ bản bạn sẽ tốn ít thời gian hơn cho những chuyện đó.

Một câu chuyện thiền cũng về vấn đề này:

Trong một buổi giảng kinh cho cho tăng, phật tổ Như Lai chỉ tay lên mặt trăng và nói “Các ngươi thấy gì không?”, chúng chư tăng đồng thanh đáp: “Thấy ạ, đó là mặt trăng”, chỉ có Ana mỉm cười giác ngộ. Phật tổ liền cười và nói “Ana, ngươi thấy cái gì”, Anan liền đáp “dạ, tôi thấy ngón trỏ của Phật tổ”. Khi đang làm việc gì thì bạn có tìm hiểu, học hỏi kiến thức cơ bản như “cái ngón trỏ của Phật Tổ” hơn là thấy “ánh trăng”.

Học từ những điều tương tự

Bắt đầu từ 1 câu hỏi: “Ở Thái Lan có trồng xòai được không?”. Bạn không biết là có hay không nên xác xuất thàng công là 50/50. Nhưng bạn có thể tăng cơ may thành công lên 80/20 nhờ tư duy tương tự. Do Việt Nam là nước nhiệt đới nằng cùng vĩ tuyến với Thái Lai, cả hai nước đều là nước nhiệt đới có khí hậu tương tự nhau, ở Việt Nam trồng được thì có thể Thái Lan cũng trồng được. Chắc tất cả đều đồng ý với tôi là 80% Thái Lan có thể trồng được xòai nhờ lý luận này, trong việc học những lý luận này cũng được áp dụng thành công.

Trước hết một sai lầm phổ biến của nhiều người là quá dựa vào kinh nghiệm, nếu là project manager thì tôi sẽ chọn LTV .NET giỏi là người có kinh nghiệm là .NET trước đó. Thực tế sự khác nhau của Java và .NET chủ yếu dựa vào syntax, cấu trúc API và cách sử dụng API. Ở Java có JVM thì ở .NET có .NET runtime, ở Java có bytecode thì ở .NET có MSIL, Java hỗ trợ remoting, web service, xml, io etc thì .NET cũng hỗ trợ. Hình thức, cách sử dụng có thể khác nhau nhưng tựu trung 99% chức năng d8ược hỗ trợ trong Java đều được hỗ trợ trong .NET và ngược lại. Lưu ý ở đây tôi nói đến nền tảng hỗ trợ bao gồm standard API cũng như các thư viện của hãng thứ 3(Một số bạn tinh ý và thông thạo cả hai ngôn ngữ sẽ thấy Java kém hơn .NET rõ rệt ở chuyện quản lý module và version của nó nhưng Java vẫn có thể làm tốt hơn chuyện đó bằng osgi framework. Đó cũng là một lời giới thiệu cho bài viết tới của tôi); thực ra một LTV giỏi không phụ thuộc vào ngôn ngữ vì kiến thức cơ bản đa phần không phụ thuộc vào ngôn ngữ. Nếu bạn giỏi thực sự trên 1 ngôn ngữ thì tôi không nghi ngờ bạn có thể học nhanh hơn với 1 ngôn ngữ khác vì các chính bạn học ở ngôn ngữ khác đó chính là cơ chế họat động và syntax.

Đừng cố quá ôm đồm quá nhiều thứ, cố gắng đào sâu 1 nền tảng, bằng tư duy của bạn thì có 1 sẽ có nhiều.

Học từ những gì mình đã làm và sẽ làm

Bạn kết thúc 1 dựa án và bạn được phân công sang 1 dự án khác, sẽ thật là tốt nếu bạn suy nghĩ về những gì mình đã làm và đặt mình lại vào hòan cành đó thì liệu bạn có được giải pháp tốt hơn. Sẽ sai lầm nếu bạn suy nghĩ rằng vì với tình huống như vậy, hòan cảnh như vậy nên bạn đưa ra quyết định như thế. Bạn hãy cố suy nghĩ tại sao bạn không phát hiện những yếu tố khác có lợi cho việc ra quyết định của bạn. Điều đó do bạn quá chủ quan, sai sót trong phân tích hay bạn thiếu những kiến thức gì. Điều đó sẽ giúp cho có những quyết định tốt hơn cho lần sau kể cả khi vấn đề bạn gặp phải hòan tòan khác lần trước, vì cách bạn học không là là kinh nghiệm giải quyết một vấn đề cụ thể nào đó mà là kinh nghiệm để giải quyết bất kì vấn đề nào, đó chính là học từ kinh nghiệm.

Nhiều người bỏ ra nhiều thời gian để học những điều “viễn vông”. Ai cũng biết rằng có học phải có hành, cơ hội thực hành có thể có trong công việc hiện tại hay tương lai của bạn, bạn cũng có thể tự tạo ra cơ hội học cho bạn như tham gia các dự án open-source hay viết 1 chương trình nhỏ. Đừng bỏ thời gian cho kiến thức mà bạn biết chắc bạn không dùng trong 6 tháng tới. Bỏ thời gian để học và để quên thì bạn nên dành thời gian làm việc khác có ích hơn.

Hãy nhìn theo “chiều thứ tư”

Cái này tôi nhại theo chiều thứ tư là thời gian trong không gian của Estein :-). Lời khuyên của mục này là bạn hãy nhìn cao hơn những gì bạn đang làm. Ví dụ như thời còn tiểu học, khi học lớp trên tôi thường có 1 tiếc nuối là tại sao là tôi không đạt được điểm cao ở lớp dưới vì những bài kiểm tra ở lớp dưới thực dễ. Thực ra là lúc đó tôi có tầm nhìn rộng hơn lớp dưới. Một ví dụ khác về con lợn, tầm nhìn của nó là tầm nhìn 2 chiều, nó chỉ biết đi tới mán thức ăn và ngủ. Con người khác tất cả mọi lọai là thấy điều chiều thứ 3, nhờ đó mà nền văn minh phát triển rực rỡ tới nay. Khả năng khái quát vấn đề, nhìn vấn đề rộng ra sẽ giúp bạn thật sự học 1 biết mười.

Học từ những người khác

Tự học là một đức tính rất tốt nhưng sẽ tốt hơn nếu bạn đứng trên vai những người khác thì bạn sẽ nhìn xa hơn. Học từ người khác có thể là trong công việc, đọc trong sách vở hay sách báo trên mạng. Tuy nhiên không phải bao giờ ý kiến của người khác cũng tốt, có kiến thức cơ bản làm nền tảng để biết chọn lọc những cái đúng, cái hay để học và tránh mình là “con cừu” trong mắt của người khác (Xem mục “Tâm lý bầy cừu trong phần 1).

Biết rồi hãy nói và làm

Khi học hay làm điều gì đó cần phải chắn chắn, học và làm qua quít sẽ tạo cảm giác cái nào bạn cũng biết nhưng không có cài gì biết sau. Có thể bạn biết viết hơn 1 chương trình “Hello world” nhưng nếu viết những chương trình có thể tận dụng hết các tính năng của một thư viện API thì không thể. Khi học một điều gì đó thì học cho chắc, phải hiểu thật sâu đừng đọc phần giới thiệu rồi chuển sang cái khác. Thứ nhất là nếu bạn không hiểu rõ điều gì thì bạn dễ quên, điều thứ hai là nếu bạn không hiểu sâu thì bạn không thể nào sử dụng kiến thức của bạn hiệu quả được. Có thể lúc đó bạn như là cái máy nói giống như lời giới thiệu ở 1 cuốn sách nào đó.

Bản thân tác giả thực sự khó chịu khi thấy nhiều người không hiểu những gì họ không hiểu, thành máy phát cho người khác 1 cách vô thức. Rất tiếc là 1 số người do họ nó quá trôi chảy cũng như người nghe không có đủ năng lực để thẩm định nên chiếm vị trí cao trong 1 tổ chức nào đó, những người này lại dùng ảnh hưởng của anh tiếng và chức vụ làm ảnh hưởng cách nhìn nhận vấn đề của những “con cừu” cấp thấp hơn. Một công ty tốt thì vấn đề của người quản trị là làm sao có ít cừu trong công ty càng tốt.

Nhìn sự việc theo cách phân tích và phê phán

Bất kì cái gì cũng có mặt tốt, mặt xấu. Bạn đọc 1 cuốn sách hay nghe 1 câu nói của Bill-gates thì cuốn sách hay câu nói đó không phải là kinh thánh luôn luôn đúng trong mọi trường hợp. Luôn suy nghĩ và tập phán xét theo những gì bạn biết, chọn đường đi cho riêng mình, theo cách mình hiểu dù có sai tại một thời điểm nhưng bạn sẽ biết tại sao mình sai và tránh lặp lại sai lầm như thế nào. Đừng bó buộc suy nghĩ của mình theo người khác, không có gì là bất di bất dịch, tự tin vào năng lực của mình để có cách nhìn đúng là rất quan trọng để bạn có thể sáng tạo ra cái gì khác từ kiến thức mà bạn học được. Học để làm ra cái mới chứ không hẳn là học những gì họ làm và mình làm tương tự.

Bài viết khá dài dù tôi có gằng hạn chế thời gian và nội dung của nó :-). Một lần nữa tác giả hi vọng bài viết này có thể giúp ích cho 1 số người có cách học hiệu quả hơn.

Sally sưu tầm
Nguồn www.haiphucnguyen.net

Đôi lời về cách học - Phần 1Tạo "đất" cho nhân viên làm việc

Write a comment

New comments have been disabled for this post.

February 2014
M T W T F S S
January 2014March 2014
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28