55 Bình luận
  • thinker
    Cái gì chả thế, người ngoài bảo hay, người trong thấy chả có gì hay. Nhiều người bảo cho con đi học code. Mình thực sự chả hiểu vì sao code lại quan trọng hơn những kỹ năng khác trong cuộc sống.

    Kỹ năng quan trọng nhất là nghe nói đọc viết. Code chi cho mệt.
  • SamSam
    Tư duy lập trình hiểu đơn giản là tư duy có hệ thống - khoa học. Trong lập trình để xử lý 1 công việc nào đấy bác phải tư duy sẵn chỗ để nguyên vật liệu, cách thức nhào nặn đống nguyên liệu đấy và sản phẩm đầu ra. Công việc cứ lặp đi lặp lại hàng nghìn lần như vậy ngày tạo thành 1 thói quen, đến khi gặp 1 công việc trong cuộc sống cũng áp cái lối tư duy đấy vào, mọi việc logic rõ ràng đúng sai, thiệt hơn nó ra số hết
    Ý kiến cá nhân thôi, định nghĩa chuẩn chắc phải xem wiki bác ạ.
  • TanNg
    @meofi

    Sau này mọi thứ đều có lập trình được, vì vậy muốn mọi thứ nó hoạt động theo ý mình thì đơn giản là phải biết lập trình. Trong công việc để có thể chủ động tạo ra sản phẩm và kết quả công việc theo ý mình thì cũng như phải biết viết, biết nói, biết soạn thảo văn bản thì sẽ phải biết lập trình.
  • thinker
    Cái gì chả thế, người ngoài bảo hay, người trong thấy chả có gì hay. Nhiều người bảo cho con đi học code. Mình thực sự chả hiểu vì sao code lại quan trọng hơn những kỹ năng khác trong cuộc sống.

    Kỹ năng quan trọng nhất là nghe nói đọc viết. Code chi cho mệt.
  • TanNg
    Lập trình sau này sẽ là một loại ngôn ngữ, người Việt thì cần học tiếng Việt, người của thế giới thì cần học tiếng Anh, người của thế giới hiện đại cần biết lập trình.
    • KISS6789
      @TanNg Em còn chả biết lập trình hay code là cái gì luôn, chắc em thuộc người thế giới cổ đại.
      Ngồi hóng các bác vào bình luận để thông não cái
    • Ngocxit0t
      @TanNg tại sao vậy anh ? Em hỏi ngu chứ em chưa thấy cần thiết chỗ nào ?
    • TanNg
      @kiss6789, @ngocxit0t

      Đang nói chuyện của sau này mà, cỡ 30-50 năm nữa. Bây giờ thì chưa phải quan tâm.
    • meofi
      @tanng chắc để giao tiếp với AI.
    • TanNg
      @meofi

      Sau này mọi thứ đều có lập trình được, vì vậy muốn mọi thứ nó hoạt động theo ý mình thì đơn giản là phải biết lập trình. Trong công việc để có thể chủ động tạo ra sản phẩm và kết quả công việc theo ý mình thì cũng như phải biết viết, biết nói, biết soạn thảo văn bản thì sẽ phải biết lập trình.
    • rambu
      @tanng không đúng, lập trình là bước trung gian, có những nhóm lo đầu lo cuối và nhóm ở giữa chứ anh
    • TanNg
      @rambu Tới lúc đó sợ là buộc phải xóa bước trung gian, cũng như ngày nay ai cũng phải tự đánh máy lấy được.
    • Intera
      @tanng Em nghĩ khi đó những dịch vụ dạng IFTTT sẽ phổ biến, chính là trung gian.
    • TanNg
      @intera IFTTT là cái gì vậy? Mình không biết từ này.

      Em nghĩ khi đó những dịch vụ dạng IFTTT sẽ phổ biến, chính là trung gian.
    • Intera
      @tanng ifttt.com đó bác.
    • rambu
      @tanng lay ví dụ ngày nay, là thời đại kinh tế, quản lí tiền là kĩ năng ai cũng phải có, nhưng thực tế không phải vậy họ làm công việc khác giải quyết bài toán khác và giao lại tiền cho một thằng khác chuyên làm việc đó. Nghe nói đọc viết là công cụ giao tiếp, nếu phải lập trình để giao tiếp với máy thì lâu quá, em nghĩ chục năm nữa nháy mắt cái là máy nó viết ra cho mình rồi
    • TanNg
      @intera à, đúng, đại ý của ý đầu mình viết là như vậy.
    • Intera
      @tanng Vậy nên em nghĩ tương lai không cần thiết ai cũng phải biết lập trình. Xã hội vẫn cứ chuyên môn hoá. Nhà văn vẫn cứ viết văn, vận động viên vẫn cứ thi đấu, ca sĩ vẫn cứ hát... Những thứ liên quan cần thiết cho công việc hàng ngày của họ sẽ có những dịch vụ chuyên nghiệp lo cho: robots, những sản phẩm với UX tốt, templates, các công cụ "mashup" giúp tối giản hoá tác vụ...
    • TanNg
      @Intera Học đơn giản thôi, để sống và làm việc tốt hơn. Không tới mức hardcore như lập trình viên.
    • kjvnVN
      @tanng lập trình bắt đầu từ phân tích, lập DFD rồi mới thực hiện từng bước chắc là vậy
    • goodlink
      @TanNg tư duy lập trình chắc là tư duy logic và giải quyết vấn đề. @meofi
  • SamSam
    Tư duy lập trình hiểu đơn giản là tư duy có hệ thống - khoa học. Trong lập trình để xử lý 1 công việc nào đấy bác phải tư duy sẵn chỗ để nguyên vật liệu, cách thức nhào nặn đống nguyên liệu đấy và sản phẩm đầu ra. Công việc cứ lặp đi lặp lại hàng nghìn lần như vậy ngày tạo thành 1 thói quen, đến khi gặp 1 công việc trong cuộc sống cũng áp cái lối tư duy đấy vào, mọi việc logic rõ ràng đúng sai, thiệt hơn nó ra số hết
    Ý kiến cá nhân thôi, định nghĩa chuẩn chắc phải xem wiki bác ạ.
    • meofi
      @samsam Nói vậy giống như cách tổ chức xắp xếp công việc hơn nhỉ.
    • Ngocxit0t
      @SamSam phải đọc cái cmt của Sam đến 3 lần, mình có học chút xíu lập trình Pascal để có thể hiểu chút nhưng nếu học lập trình để tư duy kiểu này thì đầy cách để hình thành tư duy chứ cần quái gì học lập trình @@
    • SamSam
      @Ngocxit0t Nó giống như được bonus thêm thôi, giống như làm sale sẽ dc trau dồi kỹ năng ăn nói, thuyết phục và chốt khách - Làm kế toán thì có kỹ năng với các con số ý bác, còn Lập trình viên thì tư duy logic 1+1=2
    • linpack08
      @samsam Bao năm nay người ta vẫn gọi là kiểu tư duy này là tư duy giải quyết vấn đề. Vận dụng các thông tin và công cụ có trong tay để giải quyết 1 nhu cầu nào đó. Gần đây có phong trào ca ngợi lập trình nên mới làm như cái đó là đặc trưng của lập trình ?
    • kjvnVN
      @samsam lập trình cũng giống như làm toán, phải có giả thuyết và kết luận , suy từ kết luận đến giả thuyết, phần lớn các bạn bây giờ cứ ập vào là làm, làm đã đời mới thấy đâm vào ngõ cụt
  • vannhan
    Tư duy lập trình là như này các bác ai chưa hiểu thì có thể ví dụ như sau:

    Đề bài 1: Cho 1 cái nồi, 1 lon gạo, bếp, nước, hãy nấu cơm, tư duy lập trình như sau
    - Vo gạo
    - Rửa sạch nồi
    - Cho gạo vào nồi đổ nước vừa đủ
    - Bật bếp lên
    - Cho nồi lên bếp đun
    - Theo dõi không sấp, tràn, đun nhỏ lửa đều
    - Cạn nước thì đảo cơm rồi đậy lại đun thêm chút rồi tắt bếp là cơm chín

    Đề bài 2: Cho 1 cái nồi có sẵn gạo, nước, bếp, hãy nấu cơm, tư duy lập trình như sau
    - Đổ hết nước và gạo ra
    - Đưa về đề bài 1 đã biết cách giải.
    • tttue
      @vannhan Cái 2 là sử dụng API phải không bác?
    • vannhan
      @tttue Là tạo ra các chức năng cơ bản nhân chia cộng trừ rồi sau đó kế thừa thành các function phức tạp hơn, sau đó lại tiếp tục kế thừa tạo ra các sản phẩm phần mềm rồi chia sẻ dùng api của nhau.....
    • SamSam
      @vannhan Ngoài lề: trước thầy giáo dậy lập trình của mình cũng hay đưa cái ví dụ này
    • linpack08
      @vannhan Ví dụ cổ điển này ngày xưa các cụ nói về toán học. Riêng mình không ca ngợi ví dụ này, nó điển hình cho tư duy máy móc, gần gần như mấy bạn viêt code js sẵn sàng import nguyên 1 module có 1 hàm vài dòng.
    • vannhan
      @linpack08 Ừ mình troll thôi mà, vì ai cũng biết nó là funny trong ngành, mặc dù nó la trò đùa nhưng nó chỉ nhan mạnh ở phần kế thừa, đúng ra thực tế ngoài đời thì nó sẽ kế thừa là : Đưa lên bếp rồi đun thôi.
    • TanNg
      @linpack08, @vannhan Ví dụ này cũng có cái hay của nó.

      Nếu bạn có một cái máy chuyên nấu cơm, thì việc bạn đổ ra, sau đó cho vào máy nấu thì nhanh và hiệu quả hơn là tự tay thực hiện bước sau để nấu được nồi cơm. Ngoài việc tiết kiệm được do máy nấu nhanh và hiệu quả hơn, thì người bạn thuê đổ gạo ra và cho vào máy chỉ cần kỹ năng đơn giản hơn, với chi phí rẻ hơn.
  • quannh-uet
    Các đồng chí cứ quan trọng hóa nó lên, văn học hóa nó ra, trừu tượng hóa nó đi.
    Kiểu như đề cao toán hơn văn. Kiểu Jeffery Deaver cứ nghĩ là hay hơn truyện Tào Tuyết Cần vậy
    Em là em thấy Tư duy lập trình chẳng có cái mẹ gì đâu
  • dangkimetqua
    Làn về phần mềm phải biết lập trình, làm cave phải biết làm tình, có thế thôi, sao phải xoắn.
  • PythonGable
    Tư duy lập trình, không khác tư duy giải toán hay cái gì khác.
    Nó là cách suy nghĩ để giải quyết vấn đề, cách đặt câu hỏi và cách trình bày câu trả lời.
    • TanNg
      @pythongable Toán nó khác nhiều. Toán nặng về xây dựng mô hình, tìm ra quy luật, và biểu diễn nó dưới dạng công thức.
    • PythonGable
      @tanng cái này mình hiểu là tư duy lâp trình chung, không phải là tư duy lập trình phần mềm
    • TanNg
      @pythongable Vấn đề là toán nó khác, không giống thứ bạn nêu trên.
    • PythonGable
      @tanng không biết là khác cái gì ?
    • minister
      @pythongable, @tanng
      Cần tách 2 món ra, khoa học máy tính (computer science) và lập trình (software programming)
      Toán cơ bản - sơ cấp thì có điểm chung với lập trình phần mềm, cơ mà toán cao cấp thì gắn kết với computer science hơn.

      VD cách giải toán từ cấp 1-2, Toán các món như cho dữ liệu, tìm ra câu trả lời, có định luật rồi để chứng minh các kiểu là giống lập trình.

      Điểm khác biệt là lập trình thiên về tư duy logic , process maker , design pattern, giải quyết vấn đề theo quy trình và process logic.

      Lập trình bậc cao hay còn gọi là computer science thì liên quan chặt chẽ mật thiết với Toán.
      VD các thuật toán ứng dụng trong món này đều tới từ toán.

      Toán là 1 dạng concept hoặc lý thuyết để giải quyết 1 vấn đề cụ thể
      Còn lập trình đúng như tên gọi của nó, lập ra 1 quy trình / vận hành theo trình tự ... VD không bạn nào lập trình mà không biết diagram.

      Cách nền giáo dục VN giảng dạy toán cao cấp 1 cách phổ thông, trong khi cái cần thiết là tin học ứng dụng, lập trình là món của tương lai, rèn tư duy rất tốt thì ko đc mấy áp dụng ~> tính thực tiễn thấp, tính hàn lâm cao, ứng dụng thực tế không nhiều , đó là ý mình muốn nói với bạn @@meofi

      Không phải tự nhiên mà Singapore hay nhiều nc phương Tây đưa dạy lập trình vào rất sớm từ nhiều năm nay.
      https://ltus.me/GGv

      Nc giáo dục VN thì nặng về lý thuyết, không chỉ về toán, mình nhớ 1 thời văn đc thả cho cảm thụ, sau đấy 1 vài năm thì chấm văn theo ý, giáo viên cứ chấm ý mà cho điểm (~> mình chết đầu nước), đó là kiểu giáo dục áp đặt & bóp chết cảm thụ sáng tạo. Cải cách giáo dục nên tới từ nhu cầu thực tế của XH, còn học để rồi quên thì chả hiểu học để làm gì
    • TanNg
      @minister Lập trình hay computing science thì cũng sử dụng toán học như các môn khoa học tự nhiên khác thôi. Toán học có đặc điểm là nó abstract, không liên quan tới ứng dụng thực tế như thế nào trong các ngành khác.

      Bản chất toán cấp 1-3 nó cũng abstract, nhưng nó liên quan sâu tới ứng dụng thực tế tới độ người ta tưởng nó là thực tế.

      Nói đơn giản lại là mấy bạn đang mới hiểu toán học ứng dụng trong ngành cntt như thế nào, chứ không phải hiểu toán học nó ntn, vậy nên có sự nhầm lẫn.
    • tuyuri
      @pythongable cũng không giống toán lắm bác ợ , nói chung nghề nào tư duy đó, nhưng e cũng đoán là tầm 50 năm thì ai cũng phải học lập trình ddeey
    • meofi
      @minister Ví dụ của bạn so sánh hơi bị hời hợt. Mình thấy hai cái này không giống nhau về bản chất nhiều lắm, nó độc lập với nhau.
      Nói đơn giản là bạn không thể lập trình bậc cao (theo cách nói của bạn) được nếu không giỏi về toán từ cơ bản tới nâng cao. Dù bất kỳ cách nào thì toán vẫn là cái background phải đi đầu lót đường cho các môn khác.

      Cái lý do nước ngoài dạy lập trình từ sớm mình nghĩ nó là để chuẩn bị cho xã hội mà ai cũng biết lập trình như đánh văn bản bằng bàn phím giống bác @tanng nói thôi. Nếu ai cũng biết lập trình thì hiển nhiên sẽ cắt giảm được bước trung gian (thông qua những dịch vụ) để giao tiếp với máy tính. Cũng giống GUI là một dạng interface, thông qua đó các lệnh được hiển thị trực quan bằng nút bấm. Nó đơn giản hơn, nhưng cái giá của nó là bạn sẽ chỉ truy cập được những hàm mà người ta explore ra cho bạn sử dụng, trong khi nếu bạn viết lệnh thì toàn bộ tính năng của chương trình đó. Giai đoạn trung gian chuyển từ hàm viết bằng lệnh sang đồ thị cũng mất công sức xây dựng và tính linh hoạt cũng bị mất đi rất nhiều.
    • minister
      @meofi tùy bạn nghĩ thôi, 1 vài kiến của a Tân nói mình cũng nói ở trên, Toán học là concept , và mang tính lý thuyết.

      Nhưng rốt cuộc thì cũng không phủ nhận đc giáo dục VN là nặng về lý thuyết

      và việc bạn nói bắt buộc phải học toán cao cấp như ở VN vì nó rèn tư duy là giáo dục áp đặt và không khác gì dạy con cá leo cây như mình nói.

      2 là việc giảng dạy lập trình chuẩn bị cho XH mà ai cũng biết lập trình (ý này của anh @tanng) cũng là chưa đủ

      rảnh thì đọc bài này: https://ltus.me/JhN

      “Everybody in the country should learn how to program a computer... because it teaches you how to think.”


      Nó dạy bạn cách tư duy, mấy cái bạn nói, gõ phím, nhập liệu văn bản là tin học ứng dụng, không phải lập trình (programming) bạn ei.
  • dannybear
    Thế các bác có hiểu vòng lặp trong môn tin học pascal ko? Hiểu đc là 1 cách phát triển tư duy đấy.
  • ko_co_gi
    Tư duy lập trình nói cách bình dân là tối ưu hóa mọi tình huống, công việc nhằm phục vụ mục đích đặt ra lúc đầu. Có một tình huống mình xem được đâu đó quên mất rồi cũng không nhớ chi tiết lắm, đại ý là:

    Bạn đang đi xe thì gặp 3 người đang ngồi đợi xe: Bà cụ đang bệnh cần nhập viện, thằng bạn tốt bụng từng giúp đỡ bạn và cô gái mà vừa nhìn bạn đã yêu cmnr. Bạn không thể chở hết cả 3 vì xe bạn chỉ chở được 1 người. Trong tình huống này bạn sẽ làm sao ?

    Tìm ra cách xử lý tối ưu cho tình huống này nghĩa là bạn đã có tư duy lập trình
    • linpack08
      Có thể có ai đó chưa biết: Ngày xưa thời cụ Hoàng Tụy nhà mình gọi môn tối ưu hóa này phiên âm theo tiếng hán là vận trù học. Tư duy lập trình cũng chỉ là buzzword thôi.
    • meofi
      @ko_co_gi Ví dụ rất hay. Như thế lập trình giống như việc quản lý, sắp xếp các công việc để có kết quả tối ưu.
    • chuvantai
      @ko_co_gi quan Chuẩn bác,

      Quan trọng nhất trong lập trình là đưa ra giải thuật (algorithm) tối ưu. Trước đó thì cần phân thích vấn đề (analysis), đưa vấn đề về dạng đơn giản nhất mà ngôn ngữ lập trình hiểu được (developing understanding)
      Cuối cùng mới tới đoạn viết mã (coding)
  • WolfR
    Thư viện nguồn mở càng nhiều thì AI học lập trình càng nhanh. 30-50 năm nữa thì dự là 90% công việc lập trình giao cho AI làm hết, con người chỉ đóng vai trò sáng tạo và xây dựngc cấu trúc, 10% còn lại là các kỹ sư nghiên cứu các ngôn ngữ mới.
  • honglamsg
    Tư duy lập trình là tư duy hiểu đươc cơ chế để sao cho chỉ cần nhét 1 cái xúc xích, 9 tháng 10 ngày sau ra 1 đứa trẻ.
  • Tom_Jerry
    Chắc tư duy lập chình là loại tư duy biện trứng quá độ tiến lên trủ nghĩa sã hội chứ còn cái nồi gì nữa
  • ohisee
    Tư duy lập trình khác tư duy toán học chứ

    Toán là kiểu a = b; b

    Còn trong lập trình mà viết a = b; b

    Một bên là "suy luận" còn một bên là "sai khiến"

    Boss giao việc cho nhân viên, còn lập trình viên giao việc cho máy, muốn giao được thì cần nói cho hiểu được và hiểu khá năng của nó, đó là tư duy lập trình
  • oldChicken
    Tư duy lập trình chẳng khác gì tư duy toán học, tư duy văn học, tư duy tán gái, tư duy cá độ,... cả. Bản chất là giải quyết 1 vấn đề bằng cách mổ xẻ các bước thực hiện, phân tích các tình huống phát sinh ngoài các bước chính và cách nào xử lý nó một cách đơn giản, hiệu quả nhất. Xây dựng 1 cây ( hoặc vòng nhiều cây) quy trình xử lý vấn đề là bước đầu tiên trong lập trình và nó chiếm phần lớn trong khái niệm tư duy lập trình, còn sử dụng ngôn ngữ lập trình nào, hàm nào là do kỹ năng được tôi luyện ( cái này chả khác gì giải toán, có thêm chút lên đồng của văn). Tư duy ông nào tốt, độ phiêu hoặc lên đồng cao, thì xây dựng cây nhanh hơn, gần với sự hoàn hảo hơn, thế thôi.
    Gọi nó là tư duy khoa học đi cho lành.
Website liên kết