Tại sao Python được chọn là ngôn ngữ đầu tiên để học?

Mình đang có ý định học lập trình cơ bản, mình thấy trên các trang nước ngoài người ta khuyên học Python trước tiên, nhưng mình có đọc qua một số tài liệu và tutorial về Python thì thấy ngôn ngữ này có cú pháp rất khác với đa số ngôn ngữ hiện nay (Java,C#,PHP đều có cú pháp giống C), hơn nữa sau khi tìm hiểu kỹ hơn thì mình thấy Python có rất nhiều hàm mang tính chất “ăn sẵn”, quá nhiều hàm, thư viện có sẵn. Ko hiểu sao nhiều người lại khuyên học Python nhỉ, nhiều hàm ăn sẵn có thể giúp lập trình dễ thở hơn nhưng như vậy thì làm sao hiểu được những thứ cơ bản của lập trình ? :neutral_face:

Cụ thể là hàm nào?

Như thế nào là “ăn sẵn”, bạn có thể dùng assembly code để printf thay vì dùng hàm printf của C mà. C làm sẵn hàm printf rồi. Theo quan điểm của bạn thì nếu bạn sử dụng C sẽ không hiểu cơ bản của lập trình đâu.

Bonus hello world của ASM

;  hello.asm  a first program for nasm for Linux, Intel, gcc
;
; assemble:	nasm -f elf -l hello.lst  hello.asm
; link:		gcc -o hello  hello.o
; run:	        hello 
; output is:	Hello World 

	SECTION .data		; data section
msg:	db "Hello World",10	; the string to print, 10=cr
len:	equ $-msg		; "$" means "here"
				; len is a value, not an address

	SECTION .text		; code section
        global main		; make label available to linker 
main:				; standard  gcc  entry point
	
	mov	edx,len		; arg3, length of string to print
	mov	ecx,msg		; arg2, pointer to string
	mov	ebx,1		; arg1, where to write, screen
	mov	eax,4		; write sysout command to int 80 hex
	int	0x80		; interrupt 80 hex, call kernel
	
	mov	ebx,0		; exit code, 0=normal
	mov	eax,1		; exit command to kernel
	int	0x80		; interrupt 80 hex, call kernel

Nguồn

https://www.csee.umbc.edu/portal/help/nasm/sample.shtml

Get the right tool for the job

3 Likes

ví dụ trong List a ạ, có thể dùng sort() để sắp xếp luôn, trong khi các ngôn ngữ như C thì phải thực hiện hoán đổi vị trí các phần tử một cách thủ công :smiley:

Thích thì bạn có thể tự viết mà, Java , C# cũng có hàm sort thôi

2 Likes

Tại em thích thủ công thôi chứ c có hàm qsort mà?


3 Likes

Nói thế thì mình khuyên bạn học Pascal thôi nhé :smile:
C cũng có hàm mang tính chất “ăn sẵn” đấy, như anh Đạt có nói

1 Like

Ăn sẵn có vẻ xấu xa nhỉ :smile:

2 Likes

Bạn có thể “tự nấu” không ai cấm, cười chê
Đến khi bị “cơm hư” thì hãy tự trách bản thân :laughing:
Mình thấy khá nhiều bạn mới học lập trình (học được < 1 năm) đều thích tự làm thay vì sử dụng thư viện bên ngoài, thậm chí cả hàm trong SDK cũng không xài, tự làm luôn. Đến khi lỗi thì trách abc xyz
Những người làm ngôn ngữ, SDK làm những hàm đó để người phát triển tiết kiệm thời gian hơn, suy nghĩ ra cách giải quyết bài toán, phần mềm, chức năng nhanh hơn

Cơ bản về lập trình?
Đâu cần phải nói mấy hàm trong Python hay C#, Java là “ăn sẵn”. Học lập trình là học tư duy, cách giải quyết một bài toán mang tính rộng lớn hơn như một dự án phần mềm có hàng trăm chức năng. Bạn biết vận dụng mấy hàm, đối tượng “ăn sẵn” đó để viết app, đó là tư duy lập trình

2 Likes

Vào dự án cho mấy bạn newbie < 1 năm học lập trình “ngồi nấu cơm” thay vì xài “đồ ăn sẵn” xem “cơm” có hư không :laughing:

2 Likes

Thớt làm mình nhớ đến 1 cmt (giờ bị xoá rồi) mà mình vẫn nhớ như in, khi mình nói rằng nếu đã code 1 bài toán về string (hình như là tìm string trong string), mình nói rằng dùng STL (C++) vừa nhanh vừa tiện (và tất nhiên là chính xác), bạn thớt của topic đó cmt thế này:

Dùng STL thì còn gọi gì là tư duy lập trinh nữa!

Mình cạn lời luôn.

2 Likes

Đến lúc kiếm cơm, một ngày viết mấy nghìn dòng code lại chả hốt cả project của người ta paste vào chứ mấy hàm ăn sẵn đã là cái gì :smile:

3 Likes

Ví dụ hàm sqrt() để tính căn bậc 2 chẳng hạn, rõ ràng Python có sẵn, nhưng khi mới học lập trình thì 99% mọi người đều phải tìm cách tự code 1 hàm sqrt() để hiểu bản chất, hay sorted() cũng vậy, học cấu trúc dữ liệu và giải thuật (môn cơ bản của cntt) bạn sẽ phải học khá nhiều loại sort khác nhau để hiểu bản chất, lúc đó Python có sẵn hay không có sẵn không quan trọng nữa :smile:

Bạn có thể xem MIT họ dùng Python để dạy cho newbie như thế nào ở đây:

2 Likes

vẫn ko hiểu “những thứ cơ bản của lập trình” của chủ thớt là sao. mỗi ngôn ngữ đều có tư duy của nó. như python sinh ra là để viết code nhanh gọn dễ hiểu. mình học c và python và thấy python nó ngắn gọn, dễ nhìn dễ hiểu. :slight_smile: mà nói về hàm sẵn chắc gì bạn đã biết và áp dụng được các hàm sẵn đó đâu :))

Chính xác mà nói thì MIT không hề dạy python dù biết rằng học sinh họ sẽ học được python qua course đó. Mục đích của course này là dạy học sinh “using computation to solve problems”

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?