Backtrack My Giáo dục Giáo dục [đóng]


13

Một thời gian trước, tôi quyết định bắt đầu lập trình. Tôi thực sự, chỉ cần nhảy vào một ngôn ngữ (Perl) và đi từ đó. Điều tôi tiếc là tôi vừa nhảy vào:

Tôi đã không học những điều cơ bản (nếu bạn gọi chúng là những điều cơ bản).

Tôi đã không học về Khoa học Máy tính.

Vấn đề này, tôi tin rằng, đang giữ tôi lại từ tiềm năng thực sự của tôi. Tôi nên "khởi động lại" ở đâu? Có cuốn sách, bài báo, vv mà tôi nên đọc không? Có bất kỳ chủ đề mà một lập trình viên có kinh nghiệm nên biết? Lời khuyên của bạn là gì?


Tôi không rõ câu hỏi của bạn. Vì vậy, khi bạn quyết định bắt đầu lập trình là để có một công việc mới hay chỉ để hoàn thành một số nhiệm vụ quản trị viên trong công việc của bạn hay chỉ để giải trí? Tôi cần hiểu bạn đến từ đâu để giúp giải thích tại sao bạn hối hận khi bắt đầu theo cách này và vấn đề đó có liên quan gì đến việc giữ bạn lại? Tôi không muốn đưa ra các giả định.

@JamesDrinkard: Đó chỉ là vì mục đích học tập! Tôi không làm điều này để kiếm sống.
Động

Nền của bạn là gì? Bạn có biết gì về khoa học không? Môn Toán? Kỹ thuật? Gỗ làm việc? :-) Loại chương trình nào bạn quan tâm? Không có những chi tiết đó thật khó để đưa ra một câu trả lời hữu ích. Ngoài ra, đừng hối tiếc khi nhảy vào - thật tuyệt!
Guy Sirton

@GuySirton: Tôi là một học sinh cấp hai. Tôi thực sự không có lý do để lập trình, tôi chỉ cần làm thế!
Năng động

Câu trả lời:


21

Tôi sẽ làm điều này:

Đường dẫn A: Phương pháp bán điển hình

  1. Học một ngôn ngữ với cú pháp chính quy hơn như Java, C # hoặc Python. Perl là một công cụ cực kỳ hữu ích nhưng nó cũng rất tự do về cách nó cho phép bạn làm mọi việc. Các ngôn ngữ khác tôi liệt kê là rất nhiều, ít hơn rất nhiều.

  2. Lấy một cuốn sách về Cấu trúc dữ liệu bằng ngôn ngữ nói.

  3. Lấy một cuốn sách về Thuật toán bằng ngôn ngữ nói.

  4. Nhận mã hoàn chỉnh và hiệu quả Java / C # / Dù phiên bản của Python là gì.

Đường dẫn B: Con đường giác ngộ của Joel Spolsky (hoặc Cái chết, hãy lựa chọn)

  1. Lấy sách "Mã"

  2. Nhận "Ngôn ngữ lập trình C" của K & R

  3. Nhận cấu trúc và giải thích lập trình máy tính

Theo như phương pháp, phương pháp 1 sẽ dạy bạn lập trình theo cách thông thường hơn. Khoa học máy tính khái niệm đến một mức độ (chưa có lý thuyết phức tạp, tin tôi đi) và cung cấp cho bạn một ngôn ngữ tốt hơn để làm việc trong các dự án với người khác và để tạo ra các ứng dụng lớn hơn.

Phương pháp 2 khó hơn, đó là cách tiếp cận cơ bản hơn với "Mã" giải thích các vấn đề cơ bản, K & R giới thiệu công cụ cấp độ máy và SICP giới thiệu các khái niệm cấp cao hơn. Đó là một con đường khó khăn hơn nhưng tập trung hơn.

Trong cả hai trường hợp, hãy cho mình thời gian. Rome đã không được xây dựng trong một ngày và cũng không phải là kỹ năng lập trình, ngay cả khi bạn là một thiên tài về nó. Lập trình của Peter Norvig trong 10 năm là bài tiểu luận thông thường mà tôi hướng đến mọi người.

Phụ lục:

Theo như những thứ miễn phí có sẵn: Python the Hard Way như được liệt kê dưới đây là một khởi đầu tốt, từ đó, Làm thế nào để suy nghĩ như một Nhà khoa học máy tính là một sự tiếp nối hợp lý.

Có một số tài nguyên về Thuật toán ngoài kia và thật lòng bạn có thể chuyển đổi bước 3 và 4 mà không gặp vấn đề gì. Hãy ghi nhớ, đây là lúc toán học thực sự bắt đầu xuất hiện, vì vậy đừng bao giờ ngại yêu cầu giúp đỡ khi bạn đến giai đoạn này. Đây có vẻ là một hướng dẫn miễn phí hợp lý .

Thực sự không có sự gắn kết miễn phí tương đương với Code Complete mỗi lần nói mặc dù Code như Pythonista có vẻ khá vững chắc. Điều quan trọng là tập trung vào việc làm cho mã của bạn có thể đọc được một khi bạn đã có những nguyên tắc cơ bản. Điều này không "cần thiết" giống như cách tất cả cú pháp mã của bạn đúng nhưng nó giúp việc sống dễ dàng hơn rất nhiều một khi bạn vượt qua các chương trình nhỏ hoặc làm việc gì đó trong một thời gian dài.

Bạn có thể thấy rằng tôi đã tập trung chủ yếu vào Python, đó là vì đây là cách dễ nhất trong ba cách để tìm những thứ miễn phí được viết tốt. Tôi nghĩ rằng các hướng dẫn của Java bởi Oracle là tốt nhưng chúng hơi khô khan và không tuyệt vời cho người mới bắt đầu. C # là trong một tình huống tương tự mặc dù không bị thiếu tài liệu.

Ngoài ra, trò đùa / chơi chữ CS đầu tiên của bạn: bạn muốn "Tái cấu trúc" giáo dục của mình chứ không phải Backtrack.


Cảm ơn bạn! Bạn có thể có bất kỳ cuốn sách trực tuyến miễn phí để đọc? Ngoài ra, đây là một câu trả lời tuyệt vời!
Năng động

5
+ 1 cho cấu trúc và giải thích lập trình máy tính (SICP) có thể tìm thấy trực tuyến tại đây: mitpress.mit.edu/sicp
NWS

Biết Perl, Python sẽ cho tôi rất nhiều rắc rối để làm quen?
Động

1
Sau Perl, hầu hết các ngôn ngữ sẽ là một chút chuyển đổi mạnh mẽ. Python khá dễ vì về cơ bản có 1 cách để thực hiện bất kỳ 1 việc nào thay vì 50 cách để làm 1 việc như trong Perl. Thủ thuật lớn đối với Python là xác định phiên bản ngôn ngữ nào sẽ sử dụng: 2.7 hoặc 3.x. Tôi sẽ sử dụng bất cứ hướng dẫn nào bạn chọn sử dụng và đi từ đó. Một khi bạn giỏi hơn, bạn có thể điều chỉnh cho người khác khi các dự án xuất hiện.
Kỹ sư thế giới

1
@kevincline: Thật ra, sau khi thực hiện một số bài tập Python, nó mang lại cho tôi vô số rắc rối. IMHO, một số điều cực kỳ đơn giản trong Perl, rất khó (er) trong Python.
Năng động

4

Tôi muốn nói là nhắm vào Tìm hiểu Python theo cách khó ; đó là một cách tiếp cận tốt Đi từ đó; sẽ mất nhiều thời gian để cung cấp cho bạn thời gian để tìm các tài nguyên khác.

Theo tôi, "đường dẫn B" được đề cập trong câu trả lời khác không phù hợp ở giai đoạn này.


1

Chà, tôi bắt đầu vì lý do tương tự vì tôi có một số kiến ​​thức về phần cứng và say mê lập trình. Tôi thích học những điều mới.

Tôi đã bắt đầu với các tệp DOS Batch, sau đó là QuickBasic, rồi Visual Basic, VBA, MASM, với Access cho cơ sở dữ liệu làm việc trước khi bắt đầu công việc đầu tiên của tôi. Đối với tôi, đó là con đường tốt nhất, bắt đầu đơn giản và sau đó xây dựng từ đó.

Tôi muốn nói quyết định những gì bạn thích nhất về lập trình và đi theo lộ trình đó, kịch bản, phát triển web, lập trình windows, v.v ... Nếu bạn không biết, thì hãy bắt đầu làm việc với một số ngôn ngữ để xem những gì bạn thích. Bạn sẽ cần thời gian mặc dù. Phải mất khoảng 5 năm để thực sự tốt với một ngôn ngữ như Java hoặc có thể là C ++, IMHO.

Là ngôn ngữ giúp học phát triển web, JavaScript chắc chắn, PHP rất phổ biến và Python, nhưng đó là IMHO. Giả sử bạn sẽ biết hoặc tìm hiểu HTML / CSS. Tôi thực sự đánh giá thấp javascript, mặc dù tôi đã sử dụng nó từ năm 2001. Tôi đã làm điều tương tự với CSS và không nghĩ nó quan trọng. Tôi cũng đã thay đổi quan điểm về điều đó.

Khi tôi cố gắng xác định xu hướng, tôi truy cập http://www.indeed.com và nhấp vào liên kết xu hướng ở phần trên bên trái của trang. Sau đó, tôi đặt các từ khóa như PHP và Python và xem những từ khóa nào đang được đặt cho các vị trí công việc thực tế trên internet.

Điều này là từ quan điểm nghề nghiệp mặc dù và dựa trên những gì mang lại cho tôi giá trị nhất cho khách hàng (nhà tuyển dụng). Không chỉ từ góc độ học tập.


Nếu tôi nói rằng tôi muốn học một ngôn ngữ sẽ giúp tôi phát triển Web, nhưng vẫn có thể làm được nhiều hơn thế, bạn muốn giới thiệu gì?
Động

-1

Tìm hiểu về các thuật toán ở dạng cơ bản nhất, hãy quên ngôn ngữ một lúc. Sắp xếp các vectơ, từ, v.v. Freepascal là một ngôn ngữ hay để bắt đầu với những thứ này, tôi yêu Perl nhưng với tất cả các phím tắt và những thứ hay ho, bạn sẽ thường bỏ qua thuật toán vốn có của chương trình.

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.