Thuật toán phát triển học tập [đóng]


16

Đây là một câu hỏi khá chung chung. Tôi biết một chút về Perl và Python và tôi đang muốn học lập trình chuyên sâu hơn để khi tôi hiểu rõ, tôi có thể bắt đầu phát triển các ứng dụng và sau đó là các trang web.

Tôi muốn biết về một thuật toán (trình tự các bước :)) có thể mô tả cách tiếp cận của tôi đối với việc học lập trình nói chung. Tôi đã đăng những câu hỏi nhỏ trên Perl / Python và tôi đã nhận được sự giúp đỡ rất lớn từ mọi người.

Lưu ý: - Tôi không vội học. Tôi biết nó cần có thời gian và điều đó tốt.

Vui lòng cho bất kỳ đề nghị mà bạn nghĩ là hợp lệ. Ngoài ra, xin đừng thúc ép tôi học Lisp, Haskell, v.v. - Tôi là người mới bắt đầu.


Có ngôn ngữ cụ thể nào bạn đang muốn học không? Tôi biết bạn đề cập đến perl và python, đó có phải là những gì bạn đang tìm kiếm để vào?
Jason

Vì vậy, những gì bạn đang yêu cầu là ... chính xác là gì? Quá trình bạn học một ngôn ngữ cụ thể? Tự lập trình? Dùng cái gì?
glenatron

Tôi nghĩ rằng đây là một câu hỏi hay. Tôi đã chỉnh sửa để làm cho nó rõ ràng hơn một chút.
Gary Rowe

Câu trả lời:


28

Thuật toán 11 bước để học một ngôn ngữ lập trình mới

Tôi hiện đang trong quá trình học Lisp và tôi muốn giới thiệu thuật toán sau:

  1. Hỏi xung quanh nếu ngôn ngữ đáng để học và nơi có thể tìm thấy các nguồn tài nguyên tốt. Nếu các phản hồi tích cực đối với ngôn ngữ được đưa ra bởi các chuyên gia thì tiến hành bước 2.
  2. Tạo môi trường lập trình ban đầu. Giữ cho nó đơn giản: trình soạn thảo văn bản và trình biên dịch / trình thông dịch. Tối thiểu trần. Xem xét một tài khoản người dùng cụ thể trên máy của bạn với bảng màu đặc biệt để đưa ra sự thay đổi về tư duy.
  3. Tạo "Xin chào, thế giới!" ứng dụng.
  4. Tìm hiểu cú pháp chung và các câu lệnh điều khiển (if-then-other, lặp lại cho đến khi vv). Tạo hộp cát để xác minh các trường hợp điều khiển đơn giản (đánh giá đúng / sai, v.v.). Hãy thử mọi kiểu nguyên thủy (int, double, string, v.v.). Thực hiện tính toán tiền tệ. Trò chơi đoán số (theo đề xuất của @Jeremy ) là tốt cho việc này.
  5. Tạo lớp (nếu có) với một số phương thức / hàm. Thực hiện cuộc gọi giữa các chức năng. Áp dụng các tuyên bố kiểm soát.
  6. Tìm hiểu mảng và bộ sưu tập. Tạo các ví dụ phức tạp phù hợp để tạo các mảng và bộ sưu tập của từng lớp / hàm / nguyên hàm có sẵn cho bạn
  7. Tìm hiểu tập tin IO. Tạo các ví dụ về đọc, thao tác và viết các tệp nhị phân và dựa trên ký tự.
  8. Đặt nhiều câu hỏi hơn về lập trình thành ngữ trong ngôn ngữ (con trỏ, macro, đơn nguyên, đóng, khung hỗ trợ, xây dựng môi trường, v.v.).
  9. Chọn (hoặc điều chỉnh IDE hiện tại của bạn) để làm việc trong thành ngữ được đề xuất.
  10. Viết một loạt các ứng dụng làm hài lòng bạn (hoặc sếp của bạn).
  11. Sau 1 năm quay lại bước 1 cho một ngôn ngữ khác trong khi vẫn duy trì mối quan tâm của bạn với ngôn ngữ bạn vừa học.

1
Tôi đã tìm thấy trò chơi "đoán số" là một chương trình thứ hai tuyệt vời để viết. (Ở bước 4.) Nó cho phép bạn tìm hiểu về số nguyên, booleans, nhập / xuất văn bản, lặp và điều kiện.
Jeremy Heiler

@Jeremy Đề nghị tốt, tôi đã đặt nó ở đó.
Gary Rowe

Xin chào Gary- cảm ơn vì đã hướng dẫn chi tiết tôi sẽ cố gắng lập bản đồ với python - giải thích từng bước rất tốt đó là lý do tại sao tôi thích chuỗi diễn đàn này ... @Jeremy yeah tôi đang ở trên đó :)
user9057

phối màu đặc biệt để gợi ý sự thay đổi của tư duy , bạn có thể làm sáng tỏ điều này không?
Santosh Kumar

Tôi có xu hướng chọn một bảng màu tối hơn khi làm việc với Lisp nhưng sử dụng bảng màu sáng cho Java. Màu sắc nhắc nhở tôi chuyển đổi suy nghĩ của tôi.
Gary Rowe


2

Đối với mọi ngôn ngữ bạn muốn học L

  • Bước 1: Tìm hiểu cú pháp của L.
  • Bước 2: Viết trình biên dịch cho Lngôn ngữ yêu thích của bạn.
  • Bước 3: Viết trình biên dịch cho ngôn ngữ yêu thích của bạn bằng L
  • Bước 4: Viết một dự án lớn trong thành ngữ L
  • Phần thưởng: Đảm bảo kết quả của Bước 2 tương thích với kết quả của Bước 4.

Điều đó sẽ che đậy nó khá nhiều, hãy liên hệ lại với chúng tôi bằng một báo cáo tiến độ trong 10 năm .

Nếu tất cả những gì bạn đang học là phát triển web và bạn đã biết Perl và Python, thì bạn đã có khá nhiều thứ để bắt đầu. Tôi muốn nói bắt đầu tìm hiểu các ins and outs của Apache (và đặc biệt mod_perlmod_python), sau đó nhận được hành nghề. Có thể chọn một hoặc hai cuốn sách về lập trình CGI, giao tiếp mạng và những thứ khác, thay vì hướng dẫn sử dụng ngôn ngữ cụ thể.

Như một lưu ý cuối cùng, là người mới bắt đầu không có lý do gì để không học Lisp. Đi kiểm tra SICP và các bài giảng video . Không giả định bất kỳ mức độ chuyên môn với phát triển, hoặc máy tính. Trong thực tế để trích dẫn giới thiệu về các bài giảng video

Tôi muốn chào mừng bạn đến với khóa học này về Khoa học Máy tính. [Viết nó lên bảng] Thật ra đó là một cách khủng khiếp để bắt đầu. Khoa học máy tính là một cái tên khủng khiếp cho doanh nghiệp này. Trước hết, đó không phải là một môn khoa học [gạch bỏ "khoa học"]. Nó có thể là kỹ thuật hoặc nó có thể là nghệ thuật. [...] Nó cũng không thực sự nhiều về máy tính [gạch bỏ "máy tính"]. Và đó không phải là về máy tính theo nghĩa tương tự rằng vật lý không thực sự là về máy gia tốc hạt. Và sinh học không thực sự là về kính hiển vi và đĩa petri. -Hal Abelson


Nghe có vẻ vui. Hẹn gặp lại sau 10 năm nữa!
Jeremy Heiler

+1 cho bước 2 viết trình biên dịch cho L! Não ... đau .. rất ... nhiều ... bây giờ.
Gary Rowe

-2

Tôi không muốn nói nhiều ngoại trừ hai bước.

  1. Tìm hiểu cấu trúc dữ liệu
  2. Tìm hiểu Giới thiệu về Thuật toán

Lập trình PS là nhiệm vụ hàng ngày của bạn.


Trên các lập trình viên, bạn được khuyến khích "nói nhiều", đừng ngại ngùng :) Hãy cung cấp một số chi tiết về lời khuyên của bạn, như nguồn tài liệu, tài liệu tham khảo hoặc ví dụ từ kinh nghiệm của chính bạn.
Matthieu

-2

Cách tốt nhất là học những điều cơ bản / cơ bản của ngôn ngữ lập trình và sau đó gia nhập một công ty với tư cách là nhà phát triển cơ sở (nhà thầu). Đây sẽ là cách nhanh nhất để học và kiếm tiền cũng như thời gian của bạn;)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.