Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 20
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2

    [Thảo luận] Theo bạn, 'kiến thức nền tảng' là gì ?

    Mình thấy rằng có rất nhiều bài viết trong diễn đàn có nói tới 'kiến thức nền tảng' trong lĩnh vực phát triển phần mềm ; và mình cũng nhận ra rằng, chưa ai giải thích cụ thể 'kiến thức nền tảng' trong lĩnh vực phát triển phần mềm là gì, mặc dù hầu hết mọi người đều coi những kiến thức như vậy rất quan trọng.

    Mình đã đọc khá nhiều bài viết về định hướng ngành phát triển phần mềm và các ngành liên quan, mình sẽ trích dẫn 1 số đoạn mà mình nghĩ có liên quan tới việc giải thích 'kiến thức nền tảng' :

    Trong bài viết '10 nguyên tắc để trở thành 1 lập trình viên giỏi' - được viết bởi Ashish Arya, dịch bởi 'ai đó' trên diễn đàn JavaVietnam.org, có nêu ngay nguyên tắc thứ nhất :


    1. Làm việc dựa trên kiến thức nền tảng.

    Trong khoa học kỹ thuật, kiến thức căn bản là tối cần thiết. Nắm vững kiến thức căn bản ta sẽ có được cơ sở vững chắc cho thành công. Nghành phần mềm cũng không phải ngoại lệ, các lý thuyết về máy tính, phần cứng, mạng, thiết bị ngoại vi, hệ điều hành, thuật toán, mô hình cơ sở dữ liệu,…là căn bản, kim chỉ nam cho các thiết kế, cài đặt trong phần mềm. Nếu còn chưa nắm vững lý thuyết căn bản về khoa học máy tính, hãy sử dụng internet. Đó là cách tiếp cận tri thức vô cùng hiệu quả do chính công nghệ thông tin mang lại.
    và cũng có viết :


    7. Đừng chạy theo công nghệ.

    Hiệu ứng sinh cái mới đặc biệt phổ dụng trong nghành công nghệ.

    Có rất nhiều người luôn muốn tìm hiểu và đánh cược cả sự nghiệp của mình vào những công nghệ vừa mới ra đời. Thật nực cười khi cụm từ “công nghệ mới nhất” được gắn cho những tools, APIs, frameworks,… vừa mới ra đời. Những gì tương tự vậy diễn ra hàng ngày trong thế giới công nghệ và mặc dù chúng có thể giúp việc lập trình nhanh hơn, dễ dàng hơn nhưng đừng vội vàng theo đuổi trước khi có những đánh giá cặn kẽ. Hãy giữ nền tảng kiến thức làm kim chỉ nam và kiến thức nền tảng có tốc độ thay đổi chậm hơn rất nhiều so với frameworks, tools hay APIs quanh nó.

    Đừng dập dềnh trên những con sóng biển. Nước bề mặt luân chuyển nhanh hơn rất nhiều trong khi nước ở dưới đáy, nơi cuộc sống cá tôm thực sự tồn tại lại ít có sự thay đổi hơn. Hãy đặt mình vào chỗ nước sâu và gần hơn với kiến thức căn bản.

    Chẳng hạn, trong thế giới Java, rất nhiều những tool, frameworks tồn tại và ra đời mỗi tuần. Đừng quan tâm nhiều, những khái niệm cốt lõi như tương tác client-server, MVC pattern, Servlets/JSP, resource bundling, XML parsing,… mới là thứ cần phải nắm chắc. Một khi đã có được chúng, việc tiếp cận công cụ hay frameworks mới sẽ chỉ trong một sớm một chiều.
    Trong bài viết '9 thói quen tệ hại cần loại bỏ' của anh conmale admin HVA forum có viết :


    6. "Đi tắt đón đầu":

    Trên đời này chẳng có loại tri thức đích thực nào hình thành từ "đi tắt" và "đón đầu" cả. "Mì ăn liền" có cái ngon của nó nhưng chính "mì ăn liền" không thể hình thành một bữa ăn thịnh soạn và đầy đủ. Tri thức đích thực cũng như thức ăn, nó cần điều độ, liều lượng và thời gian để... tiêu hoá. Tư duy và thói quen "đi tắt" luôn luôn dẫn đến những lổ hổng khủng khiếp trong kiến thức. Những lổ hổng ấy xem chừng không nhiều và không quan trọng khi kiến thức còn ít ỏi và nhu cầu công việc còn sơ khai. Tuy nhiên, một khi đối diện với những khó khăn và phức tạp trong công việc và trong đời sống thì những thứ "đi tắt đón đầu" là nguyên nhân sâu xa của những đổ vỡ và thất bại. Hãy nhớ: đừng đi tắt và đừng đón đầu bởi vì chẳng có cái đường tắt nào trong hành trình đi tìm tri thức.
    Qua những kinh nghiệm từ rất nhiều bài viết định hướng , từ rất nhiều lời khuyên của các tiền bối, mình có quan điểm : Kiến thức nền tảng là 'tế bào gốc'. Nhưng cụ thể nó là những kiến thức gì thì mình chưa đủ khả năng trả lời.

    Vậy còn bạn, hãy cùng thảo luận 'kiến thức nền tảng' là gì ?

    Các bạn có thể liệt kê hoặc định nghĩa, nhưng hãy cố gắng giải thích lý do và đưa ra quan điểm của bản thân.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nền tảng là những kiến thức cơ bản nhất của một lĩnh vực nào đó. Chẳng hạn với lập trình, đó là các kiểu dữ liệu, các hàm, phương thức ...

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cái bạn greedyman nói mới chỉ là '1 góc bé xíu thuộc về ngôn ngữ lập trình' còn nhiều vấn đề liên quan đến lập trình khác!

    Kiến thức nền tảng là cái chẳng mấy người muốn học bởi nó rất nhàm chán, vô vị như là:
    1. 4 phép toán +, -, *, / (Ai cũng nghĩ là mình đã làm được nên chẳng ai quan tâm, vì thế nhiều nhà tuyển dụng cho bài toán lớp 3 rồi yêu cầu giải vẫn không giải nổi). Ví dụ: Kevin từng cho một số ứng viên giải bài toán là Vẽ 1 hình eclip tỉ lệ cân đối giữa màn hình máy tính => phần lớn sinh viên mới ra trường không làm được (kể cả đã đi làm mấy năm).

    2. Muốn có cái gì thì phải biết cái đó như thế nào? Ví dụ: Bạn muốn có cái cốc bạn phải biết 'một cách chắc chắn' cái cốc hình thù ra sao, nó ở đâu. Thực tế thì nhiều bạn sinh viên rất thụ thộng, lười nhác không chịu suy nghĩ nên cũng chả biết cái mình thế nào cả, chỉ biết duy nhất 1 việc 'sắp thi rồi, giúp em với', 'admin tại sao lại xóa bài của tôi', ... mà cũng còn không cụ thể được.

    3. Kiến thức liên quan bao gồm kiến thức xã hội, kiến thức tổng hợp mà có thể nhìn thấy ở mọi nơi trên thế giới. Ví dụ bạn muốn làm 1 phần mềm cho ngân hàng thì kiến thức ngân hàng liên quan là không thể thiếu. Hay bạn muốn tối ưu tốc độ phần mềm thì bạn phải hiểu máy tính làm việc thế nào, cơ chế xử lý bộ nhớ ra sao, các thư viện liên quan có ảnh hưởng gì, ... một cách rõ ràng nhất. (Không có Tips hay Tricks nào có thể giúp bạn)

    4. Tư duy vấn đề như con người, tuy duy lập trình phải như 1 cái máy tính cũng là kiến thức nền tảng! Có rất nhiều cách giải quyết vấn đề, nhưng vấn đề sẽ giải quyết thế nào trên máy tính mới là quan trọng. Thật ngu xuẩn khi nghĩ rằng cái gì cũng làm được mà chẳng làm được cái gì (Đây là bệnh của nhiều bạn học lập trình)

    Kevin tuy chỉ là 1 con người 'bình thường' nhưng Kevin cũng có thể tự hào về lựa chọn và hướng đi của mình trong lĩnh vực lập trình (2 năm tự học, không có giáo viên). Một kinh nghiệm là: Bất kỳ ai cũng sẽ phải đi qua 1 đoạn đường vắng, không có người, không chỉ dẫn, lúc đó sẽ là lúc không biết mình làm gì, vượt qua nó cũng là 'nền tảng'.

    Nền tảng là 1 'khái niệm' có tính tổ hợp giữa 'thiên căn', 'tư duy', và 'lao động', kiến thức nền tảng 1 khái niệm trừu tượng, cần bạn định nghĩa trên con đường bạn sẽ đi qua. Nhưng nói chung, 'nền tảng' là 1 thứ như 1 tảng đá khổng lồ, làm nền cho bạn.

    PS: Học lập trình để làm theo các đại ca '35 tuổi bỏ nghề' thì tốt nhất là 'học cái gì kiếm tiền được ngay', tảng teo làm gì.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    2 năm tư học....vâỵ ma mình đã lang phí 2 năm vì chưa thê đen truong.nê phục bác kenvil thât....minh 24 rôi.di hoc dh co muôn k nhỉ?(onl dt nên bỏ dau bi lỗi)

  6. #6
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    Nền tảng chỉ là cách chúng ta sử dụng vốn kiến thức để đạt được điều mình mong muốn, mà để đạt được điều đó thì chỉ có lao động , học tập không ngừng mới có được. Sau đây là câu chuyện về người bán dầu các bạn xem thử và suy ngẫm nhé:

    Ngày xưa có 1 viên võ tướng của triều đình ra ngoài kinh thành để vui chơi, khi đi ông ta dẫn theo 2 tùy tùng, vì là 1 viên tướng và có tài thiện xạ nên viên tướng này lúc nào cũng mang theo cung tên trên người, đi được 1 đoạn gặp tấm bia viên tướng mới rút tên ra bắn, bắn 3 phát trúng hồng tâm đúng 3 phát, 2 tên tùy tùng liền tung hô vị tướng " ngày quả nhiên không hổ danh là thiện xạ ", đang lúc hí hửng vì được khen , bỗng nhiên có tiếng người vọng lại " cũng thường thôi"[IMG]images/smilies/Shame_on_you.gif[/IMG], viên tướng quay lại nhìn thì thấy thằng bán dầu nó ngồi bên lề đường, tức giận viên tướng bảo " mày nói thế chứ mày làm được không " , thằng bán dầu nói " tao không làm được nhưng cũng thường thôi ". Viên tướng bảo " thế mày làm được trò gì" , người bán dầu lấy ra 1 chai dầu không và 1 chai dầu để đầy dầu , dùng 1 đồng xu ( khi xưa đồng xu có cái lỗ nhỏ xíu ở giữa ), để đồng xu lên miệng chai dầu không và rót dầu từ trong chai dầu đầy sang chai dầu không bằng cái lỗ trên đồng xu đó, dầu không chảy ra giọt nào và cũng chẳng dính lỗ đồng xu[IMG]images/smilies/applause.gif[/IMG], bấy giờ thằng bán dầu quay lại hỏi, " như thế này có thường ko " bạn" " [IMG]images/smilies/laughing.gif[/IMG]

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Kevin Hoang
    Cái bạn greedyman nói mới chỉ là '1 góc bé xíu thuộc về ngôn ngữ lập trình' còn nhiều vấn đề liên quan đến lập trình khác!

    Kiến thức nền tảng là cái chẳng mấy người muốn học bởi nó rất nhàm chán, vô vị như là:
    1. 4 phép toán +, -, *, / (Ai cũng nghĩ là mình đã làm được nên chẳng ai quan tâm, vì thế nhiều nhà tuyển dụng cho bài toán lớp 3 rồi yêu cầu giải vẫn không giải nổi). Ví dụ: Kevin từng cho một số ứng viên giải bài toán là Vẽ 1 hình eclip tỉ lệ cân đối giữa màn hình máy tính => phần lớn sinh viên mới ra trường không làm được (kể cả đã đi làm mấy năm).
    Đồng ý tất cả trừ cái này. Nếu lĩnh vực đang làm không có dính gì đến đồ hoạ máy tính thì sao "nhớ" được mấy cái toán eclip học hồi lớp 11 này chứ. Cho thời gian lục lại là làm được chứ gì. Ý kiến cá nhân [IMG]images/smilies/biggrin.png[/IMG]

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    @lntan: Bạn bị failed rồi... bạn đã tự phức tạp hóa vấn đề đơn giản!
    Cho bạn 3 ngày sau chưa chắc bạn đã làm được, trong khi những vấn đề trên cần được trả lời ngay trong vòng 1 phút, cũng không động chạm đến giấy bút hay lập trình gì cả. Có lẽ bạn đã hiểu sai mục đích của những câu hỏi như trên, hoặc bạn cũng chủ quan về các phép tính +, -, *, / <= đây chính là căn bản!

    Có nhiều câu hỏi phỏng vấn còn đơn giản hơn cả 4 phép tính trên mà vẫn failed, ví dụ: Nhìn lên đồng hồ đúng 3 giờ 15 phút, hỏi góc giữa kim giờ và kim phút là bao nhiêu độ? (Google cũng đưa vào hỏi phỏng vấn câu này đấy)

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Kevin Hoang
    @lntan: Bạn bị failed rồi... bạn đã tự phức tạp hóa vấn đề đơn giản!
    Cho bạn 3 ngày sau chưa chắc bạn đã làm được, trong khi những vấn đề trên cần được trả lời ngay trong vòng 1 phút, cũng không động chạm đến giấy bút hay lập trình gì cả. Có lẽ bạn đã hiểu sai mục đích của những câu hỏi như trên, hoặc bạn cũng chủ quan về các phép tính +, -, *, / <= đây chính là căn bản!

    Có nhiều câu hỏi phỏng vấn còn đơn giản hơn cả 4 phép tính trên mà vẫn failed, ví dụ: Nhìn lên đồng hồ đúng 3 giờ 15 phút, hỏi góc giữa kim giờ và kim phút là bao nhiêu độ? (Google cũng đưa vào hỏi phỏng vấn câu này đấy)
    Những câu hỏi dạng này cao thâm quá thui em chịu. Sếp em phỏng vấn không có hỏi mấy cái này. May mắn quá [IMG]images/smilies/biggrin.png[/IMG]

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Theo mình kiến thức nền tảng là những cái mà nếu thiếu bạn sẽ không làm được điều mình muốn. Nếu chỉ nói chung chung thì không xác định được được, muốn xác định đựoc phải nói rõ nền tảng của cái gì?

    Ví dụ, nền tảng của phép +, - số tự nhiên là phép đếm số tự nhiên. Nền tảng của phép *, /, là phép + và -, nền tảng của lũy thừa và khai căn lại là *, /, +, -,... Nền tảng để học lập trình C cơ bản là các phép toán cơ bản trên số thực, số nguyên, số thập phân, nhị phân, hexa,...

    Vậy, khi mình muốn nghiên cứu cái nào đó, thì tìm cách xác định nền tảng của vấn đề đó và nghiền kĩ nền tảng trước rồi hãng học. Nếu ko có nền tảng, gọi là "mất căn bản", hoặc "hổng kiến thức".

    Kiến thức nền tảng để phát triển phần mềm thì quá nhiều: kiến thức về phần cứng, ngôn ngữ lập trình, kiến trúc dữ liệu, giải thuật, toán học, ... không ai có thể hiểu hết hoàn toàn dù chỉ là hiểu 1 trong những thứ cần liệt kê. Khi đi làm phân mềm mình nghĩ cũng vậy thôi. Vì vậy cần phải trang bị cho mình vài 2 kỹ năng sau: kỹ năng nghiên cứu độc lập, khả năng tư duy sáng tạo.

    Khi đứng trứoc một câu hỏi, bạn có thể không biết câu trả lời chính xác, nhưng bạn phải biết cách tìm ra câu trả lời.
    Khi đáp án của bạn hay hơn, hoặc dở hơn đáp án của người khác, bạn phải đặt câu hỏi "tại sao?" thay vì học đáp án của người khác hoặc chấp nhận đáp án của mình.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •