Anh Đạt ơi,
Các ngôn ngữ lập trình có khác nhau lắm không?
Phải như thế nào thì mới gọi la học xong một ngôn ngữ lập trình?
Như thế nào thì mới gọi la học xong một ngôn ngữ lập trình?
Khác nhau nhiều hay ít là tùy thuộc vào mỗi cặp ngôn ngữ mà mình đem so sánh. Các ngôn ngữ lập trình hiện nay học tập hoặc bị ảnh hưởng từ các ngôn ngữ ngày đầu của ngành CNTT rất nhiều. Mình có thể lên wikipedia để biết một ngôn ngữ nó có xuất phát điểm như thế nào. Ví dụ em có thể xem Python và xem nó học tập từ các ngôn ngữ khác trên Wikipedia
Vấn đề này thuộc về ý kiến cá nhân thôi, giống như em hỏi khi nào mới học xong một ngoại ngữ, khi nào mới hiểu hết được một dân tộc, khi nào mới gọi là du lịch hết một đất nước …
Theo em, khi đã dùng ngôn ngữ lập trình để giải Đề thi HSG Tin học là thành thạo?? Anh nghĩ thế nào??
Anh không nghĩ vậy.
Thứ nhất, đề thi HSG Tin học thành phố là đề do thầy cô đưa ra để thử thách học sinh. Đề này không phải dùng để thử thách một người đi làm lập trình. Người đi làm lập trình có thể không giải được các đề này nhưng họ có kỹ năng sử dụng ngôn ngữ lập trình để tạo ra sản phẩm. Nhưng học sinh có thể giải đề này lại không chắc có thể sử dụng ngôn ngữ để tạo ra sản phầm công nghệ có thể cạnh tranh trên thị trường.
Thứ hai, đề thi phụ thuộc vào người ra đề. Không thể nhìn nhận thành thạo hay không một ngôn ngữ dựa vào việc giải đề thi.
Bên cạnh đó anh có một vấn đề muốn nhắc nhở em trong việc post bài. Em không nên in đậm toàn bộ nội dung comment của mình. Nếu em thích bôi đậm thì chỉ nên bôi đậm những câu hoặc những điểm quan trọng. Nếu em bôi đậm toàn bộ thì chứng tỏ câu nói của em không có chỗ nào quan trọng cả.
Anh đi sửa vài post của em rồi, post nào cũng bôi đậm toàn bộ text. Anh thấy như vậy không lịch sự với người đọc.
Việc bôi đậm cũng giống như việc BẬT CAPLOCK VÀ VIẾT TOÀN BỘ BẰNG CAPLOCK ĐỂ CHỨNG MINH RẰNG LỜI NÓI CỦA MÌNH QUAN TRỌNG HƠN LỜI NÓI CỦA NGƯỜI KHÁC.
Ý nghĩa câu này gần giống như câu : “Học đến lớp nào phải giải được tất cả các bài của lớp trước” , thầy giáo thường nói với E như vậy. Còn giải đề nó phụ thuộc vào thuật toán chứ đâu phải ngôn ngữ?
Em xin lỗi, em chỉ muốn bình luận của mình bắt mắt. Haiz… rút kinh nghiệm…
Người giỏi thuật toán liệu có phải là người lập trình giỏi??
E nghĩ là nó gần đúng. Ko đúng hoàn toàn thôi
khi em học một ngôn ngữ thì em mới học được cách viết, ngữ pháp, cấu trúc của ngôn ngữ đó.
giải đề thi HSG thì cũng giống như học toán thôi em giỏi là phải biết áp dụng những bài toán đó để giải quyết một vấn đề thực tế, nhiều người lý thuyết rất giỏi nhưng thực hành thì…
Học cú pháp thì em nghĩ là dễ, hiện tại em có thể giải một sô bài toán bằng Java, C#,C, C++, JavaScript, Pascal… như vậy thì gọi là thành thạo chưa?
Tại sao em thấy đâu đâu người ta thi Lập trình đều là giải quyết bài toán?? Liệu đó là vấn đề quyết định đến trình độ lập trình viên??
Thành thạo hay chưa thì bản thân mình mới biết đc chứ. Còn giải được 1 số bài toàn thì e nghĩ là chưa gọi là thành thạo được
Ý bạn thì như thế nào mới gọi là thành thạo??
không có người lập trình giỏi chỉ có người biết giải quyết vấn đề giỏi thôi.
nếu nói về lĩnh vực giải thuật toán thì có thể, những qua lĩnh vực khải thì có thể không đúng.
ví dụ: lĩnh vực mật mã (bảo mật, mã hóa): nếu giỏi về thuật toán và biết cách áp dụng thì có thể là một người giỏi trong lĩnh vực mật mã.
lĩnh vực gia công phần mềm cho nước ngoài: không áp dụng thuật toán mà áp dụng những kiến thức khác thì người giỏi thuật toán qua đây đâu có ích.
Về vấn đề này
1- Học lập trình không phải là để giải toán. Mà là để giải quyết vấn đề thực tế, dùng máy tính xử lý các vấn đề thực tiễn mà nếu người thực hiện sẽ mất nhiều thời gian và có thể sai lỗi. Hơn nữa, các vấn đề đó thường lặp lại. Con người rất lười nên thường đẩy qua cho máy tính làm.
2- Thành thạo một ngôn ngữ lập trình: Khi có vấn đề thực tế cần giải quyết, nếu thành thạo, sẽ biết ngôn ngữ đó có giải quyết được vấn đề hay không. Cần dùng thêm công cụ hỗ trợ nào để giải quyết. Dựa vào kinh nghiệm thì dùng thuật toán gì, các bước thực hiện như thế nào…
Đồng thời, biết cách đặt câu hỏi với khách hàng để có đủ thông tin cần thiết để dễ dàng cho việc lập trình bằng ngôn ngữ mà mình thành thạo đó.
Đó là ý kiến của mình.
Vì tin học là ứng dụng của toán, nên đối với học sinh - sinh viên khi đi học tin học thường sẽ chủ yếu học về thuật toán và ứng dụng của thuật toán.
Vấn đề giỏi thuật toán thì không quyết định trình độ của lập trình viên.
Vì tùy thuộc vào lập trình viên theo đuổi theo lĩnh vực nào, lĩnh vực đó có áp dụng thuật toán hay không.
Nếu lĩnh vực đó không có thuật toán thì đâu thể đánh giá được lập trình viên.
Việc đánh giá một lập trình viên có trình độ là hiểu vấn đề cần giải quyết nhanh và đúng, biết đưa cách giải quyết chính xác cho vấn đề đó.
Ý kiến cá nhân của mình nghĩ thì giỏi thuật toán rất có lợi nhưng không phải là tất cả đâu bạn. Bạn tham gia competitive programming thì giống như là với tool đã có sẵn, nhận dạng ra thuật toán loại gì và tìm data structure phù hợp, 50-100 dòng code là bạn có kết quả rồi. Còn phát triển phần mềm thực tế giống như là bạn phải tự chọn tool, rồi sau đó là hàng loạt các quyết định mà bạn phải đưa ra như là sắp xếp data structure như thế nào là hợp lý, làm thế nào để code có thể sử dụng được, có thể port được, có thể mở rộng được. Bạn có tư chất thuật toán tốt thì sẽ cực kỳ hữu ít trong việc phát triển phần mềm, hướng giải quyết của bạn chắc chắn sẽ sáng sủa hơn là 1 người bị giới hạn thuật toán.
Lúc đầu mình không hiểu tại sao người viết dài người viết ngắn trong khi cũng cùng 1 chức năng, sau này hiểu ra bởi vì 80% code là để nâng cao những tính chất mà mình nêu trên ( portability, readability, resuability và nhất là security ) 20% còn lại là working code.
Bá Đạt trả lời hay quá (y)
@giaosudauto Mình còn chưa thấy anh Đạt hay bất cứ tiền bối nào trên DNH khoe là đã học xong ngôn ngữ này ngôn ngữ kia có thể là học xong ở mức độ nào đấy, chứ xong hẳn thì …
Còn cái cảm giác “ngôn ngữ nào cũng giống nhau, chỉ khác mỗi cái cú pháp” thì xuất hiện khi bạn giải mấy bài để đi thi, muốn thấy nó khác thì… học thêm nhiều nữa