01/10/2018, 11:42

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 ?

Mai Anh Dũng viết 13:45 ngày 01/10/2018

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”,

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

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 ?

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

Thừa An Đặng viết 13:44 ngày 01/10/2018

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

Đào An viết 13:53 ngày 01/10/2018

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

Mai Anh Dũng viết 13:51 ngày 01/10/2018

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

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

Hàm qsort thực hiện thuật giải QuickSort cho C Mô tả hàm thư viện trong C dùng sắp xếp một mảng được khai báo như sau: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) Đối số base -- Con trỏ trỏ đến đầu mảng cần sắp xếp. nitems -- Số phần tử cần được sắp size -- Kích cỡ từng phần tử trên mảng. compar -- Hàm so sánh giữa 2 phần tử Hàm không có giá trị trả về Ví dụ #include <stdio.h> #include <stdlib.h> int values[] = {4,7,2,8,1,6,…

en.wikipedia.org

qsort

qsort is a C standard library function that implements a polymorphic sorting algorithm for arrays of arbitrary objects according to a user-provided comparison function. It is named after the "quicker sort" algorithm (a quicksort variant due to R. S. Scowen), which was originally used to implement it in the Unix C library, although the C standard does not require it to implement quicksort. Implementations of the qsort function achieve polymorphism, the ability to sort different kinds of data, b...

HK boy viết 13:44 ngày 01/10/2018

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

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

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

Văn Dương viết 13:58 ngày 01/10/2018

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

Phan Bá Hải viết 13:50 ngày 01/10/2018

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
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

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 ?

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

Phan Bá Hải viết 13:57 ngày 01/10/2018

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

HK boy viết 13:57 ngày 01/10/2018

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.

Văn Dương viết 13:44 ngày 01/10/2018

Đế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ì

Thành Phạm viết 13:49 ngày 01/10/2018

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

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

Minh Hiếu viết 13:54 ngày 01/10/2018

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. 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 :))

Rhen Su viết 13:51 ngày 01/10/2018

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”

Bài liên quan
0