Có thể đọc Mã nhưng đấu tranh chủ yếu để viết nó [đóng]


22

Tôi đã có bài kiểm tra lập trình đầu tiên của tôi gần đây ... và tôi cũng đã bỏ qua nó. Không làm gì cả. Tôi chỉ có bản thân mình để đổ lỗi vì ngoài thời gian học đại học, tôi gần như không làm gì cả.

Bây giờ tôi có một cái khác sắp đến gần mùa hè và tôi không cho phép điều này xảy ra lần nữa. Trong vài tuần nay tôi đã đọc, đọc và đọc thêm một số. Tôi tiếp tục xem xét những điều cũ hơn mà tôi đã bỏ lỡ và những điều mới hơn chúng ta đang làm. Vì vậy, rõ ràng tôi có thể nhận thấy một sự khác biệt rất lớn trong sự hiểu biết của tôi về ngôn ngữ. Tuy nhiên, đó là về nó. Tôi có thể đọc mã và bây giờ tôi có ý tưởng về những gì đang diễn ra trong mã ... nhưng khi tôi tự viết mã thì tôi không biết gì. Nó giống như tôi không bao giờ biết cách tiếp cận nào và không bao giờ có thể thực sự hiểu đầy đủ các câu hỏi.

Tôi đã đọc được một số lượng khá lớn (đã thực hiện khoảng 5-6 giờ trong khoảng một tháng qua) mỗi ngày ... Nhưng khi mở IDE của tôi, tôi luôn cảm thấy mình bị thất vọng. Đặc biệt bởi vì tôi có kiến ​​thức về các nút, danh sách, danh sách mảng, giao diện, nhưng ngoài việc đọc chúng trên một trang đó là về nó. Tôi có thể chỉ ra chính xác mọi thứ đang diễn ra trong một chương trình để chú thích mã mẫu trước tôi thấy ổn ... nhưng viết mã của riêng tôi lại là một câu chuyện khác ..


8
Nó giúp có một mục tiêu. Ví dụ, nếu bạn muốn tạo một trò chơi, bạn có thể tải xuống một khung hoặc thư viện và làm theo hướng dẫn giới thiệu. Nếu một cái gì đó ít phức tạp hơn, bạn có thể bắt đầu bằng cách tìm kiếm các ví dụ về các chương trình này, giải cấu trúc chúng và sửa đổi chúng để phù hợp với nhu cầu hoặc sở thích của bạn.
Kai Qing

10
Đọc ít hơn và chương trình nhiều hơn. Tìm các dự án đơn giản và thực hiện chúng. Đừng lo lắng về việc thực hiện nó một cách hoàn hảo, chỉ cần khiến họ làm những gì họ phải làm. Sau đó suy nghĩ về cách bạn có thể làm tốt hơn.
Philipp

1
Trong vài tuần nay tôi đã đọc, đọc và đọc thêm một số. - Đọc là một sự khởi đầu, thực sự mã hóa tốt hơn rất nhiều. Hãy thử viết một chương trình bằng psuedocode trên giấy, sau đó dịch nó sang java. Sẽ dễ dàng hơn một chút nếu bạn đã biết những gì bạn phải làm.
Andreas


1
Tôi thấy đây là một bài viết rất thú vị trong khi cố gắng tìm ra cách viết mã và dạy cho người khác những điều cơ bản về mã hóa: Lạc đà có hai bướu . Một số người chỉ nhận được nó ngay lập tức, những người khác sẽ không bao giờ - nhưng hầu hết chúng ta có thể học. Nếu bạn có thể đọc và hiểu mã, bạn sẽ có một khởi đầu tuyệt vời :)
brichins

Câu trả lời:


45

Bạn học cách viết chương trình bằng cách viết chương trình.

Nhưng bạn phải bắt đầu nhỏ, người đàn ông.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}  

Từ đó, bắt đầu xây dựng ...

public class HelloWorld {
    static String test = "This is a test";

    public static void main(String[] args) {
        System.out.println(test);
    }
}

và sau đó...

public class HelloClass {
    String test;

    public void setTest(String str)
    {
        test = str;
    }  

    public String getTest()
    {
        return test;
    }
}

public class HelloWorld {
    HelloClass myHelloInstance;

    public static void main(String[] args) {
        myHelloInstance = new HelloClass();
        myHelloInstance.SetTest("Hello World.")
        String myResult = myHelloInstance.getTest();
        System.out.println(myResult);
    }
}  

... và cứ thế. Một khi bạn hiểu những điều cơ bản về cách các đối tượng hoạt động, việc viết các chương trình lớn hơn sẽ dễ dàng hơn nhiều.


8
Ví dụ thứ hai của bạn sẽ không biên dịch được vì bạn đang truy cập một biến không tĩnh trong ngữ cảnh tĩnh.
Brandon

34
@Brandon: sau đó là một bài tập gỡ lỗi đẹp và sớm.
Bryan Boettcher

Đây là cách mọi người học viết mã, tôi đoán hoặc nên học viết mã.
mrudult

1
Nắm lấy Nike bên trong của bạn và "chỉ cần làm điều đó".
NotMe

15

Câu hỏi tuyệt vời! Điều quan trọng là nhận ra rằng bạn có nhiều đường cong học tập để leo lên. Chỉ để bạn không nghĩ rằng bạn chỉ đang học một ngôn ngữ lập trình. Bạn đang làm khá nhiều hơn thế.

Bạn đang tìm hiểu về ...

  1. Các công cụ mà bạn sử dụng để viết mã. Môi trường phát triển của bạn, trình soạn thảo, trình gỡ lỗi, trình biên dịch của bạn. Có hướng dẫn sử dụng và các tập tin trợ giúp cho tất cả các công cụ này, hãy kiểm tra chúng. Bạn càng biết nhiều công cụ thì càng dễ tạo mã.
  2. Cú pháp của ngôn ngữ lập trình đang nghiên cứu, từ bài đăng của bạn có vẻ như bạn đang tập trung rất nhiều vào đây và bạn chắc chắn cần phải làm vậy.
  3. Giải pháp thiết kế kỹ năng . Làm thế nào để kết hợp một đoạn mã hữu ích, có thể duy trì. Đây là cơ bắp mà bạn cần để xây dựng. Giống như các áp phích khác đã chỉ, bạn học bằng cách làm.

Tôi nghi ngờ rằng đó là điểm ba nơi bạn đang vật lộn. Bạn đang học cách nói những điều trong mã (cú pháp) nhưng thực sự bạn đang hỏi chúng tôi nên nói gì về mã. Có một cách đúng và một cách sai để làm mọi thứ?

Tôi sẽ đề nghị bạn tham gia một thử thách. Có một cái nhìn sau đây như một bài tập.

http://en.wikipedia.org/wiki/Eight_queens_puheads

Bây giờ đây là một thách thức khó khăn. Bạn phải đặt tám Nữ hoàng trên bàn cờ để mỗi Nữ hoàng được an toàn với nhau.

Vì vậy, là một người học, điều này có thể là quá tầm với, tuy nhiên bạn có thể xem xét vấn đề này và sử dụng nó để tìm hiểu cách viết mã.

Đây là một chiến lược để thử ...

  1. Đặt lại vấn đề để đơn giản hơn nhiều mà vấn đề đã nêu cần giải quyết . Quên tám nữ hoàng. Tập trung vào chỉ một. Tìm hiểu cách viết mã để thể hiện một bàn cờ trong bộ nhớ, đặt một nữ hoàng duy nhất lên bàn cờ đó và sau đó hiển thị nó cho người dùng trên màn hình chỉ bằng văn bản.

  2. Một khi bạn đã thực hiện một cú đâm ở Bước 1. Đặt hai nữ hoàng lên sao cho cả hai đều an toàn.

  3. Cuối cùng, hãy đặt hơn 2 nữ hoàng trên bảng để tất cả đều an toàn.

Các bước trên là một bước ngoặt trong chiến lược thiết kế có tên là Tinh chỉnh bước khôn ngoan. Đó là một trường học hơi cũ về thiết kế nhưng nó sẽ đưa bạn từ một màn hình trống đến một số mã thú vị ngay lập tức.

Có các chiến lược thiết kế và triển khai khác: Thiết kế hướng thử nghiệm, Thiết kế hướng đối tượng và Mẫu thiết kế để đặt tên cho một số.

Trong thời gian, bạn sẽ thêm các chiến lược này vào kho vũ khí và sử dụng chúng khi cần thiết. Càng nhiều chiến lược thiết kế bạn nghiên cứu và thực hành, nó sẽ trở nên dễ dàng hơn.

Có thể nguồn được với bạn.


OO Design khác với các mẫu thiết kế như thế nào? Hay bạn đang đặt hai người lại với nhau?
Pierre Arlaud

1
Tinh chỉnh từng bước và OO cũng không loại trừ lẫn nhau, nhưng bạn có thể biết điều đó. Có thể nguồn được với bạn. +1
Gusdor

15

Lời nói đầu nhanh

Học bằng cách làm: Kiến thức và bí quyết

Có một sự khác biệt lớn về kiến ​​thức và bí quyết. Đó là một lỗi phổ biến cho những người mới học nghĩ rằng vì họ có thể "hiểu" một chương trình khi họ đọc nó, họ thực sự hiểu lý do cho chương trình được viết theo cách đó.

Và cách duy nhất để đến phần thứ hai đó là luyện tập. Ngồi xuống, mở một trình soạn thảo văn bản, một dòng lệnh và đi xuống nó.

Lập trình nhỏ

Có khả năng (và dự kiến) rằng ở giai đoạn này, khả năng của bạn để hiểu làm thế nào một số thành phần phần mềm phức tạp tương tác với nhau bị hạn chế. Và đó thực sự là một điều tốt, vì nó buộc bạn phải bắt đầu từ những điều cơ bản. Đừng nhảy súng và di chuyển với tốc độ phù hợp: bắt đầu với các bài tập nhỏ cho các nhiệm vụ nhỏ.

Thành thật mà nói, tôi chưa bao giờ bị thuyết phục rằng bắt đầu học lập trình với Java là cách tốt nhất (tôi đã từng dạy lập trình để kiếm sống ở trường đại học và thỉnh thoảng vẫn học phí tư nhân). Bản thân nó quá phức tạp để giúp bạn bắt đầu và hầu hết các sách Java sẽ xuất hiện khá khó khăn. Tuy nhiên, điều đó chắc chắn có thể được thực hiện (ít nhất là đối với một số lĩnh vực kiến ​​thức toàn cầu mà chúng tôi mong đợi từ lập trình viên), miễn là bạn hạn chế học từng bước.

Sách

Khi bạn đã đặt trên Java và nếu bạn cần một cuốn sách Java đàng hoàng, tôi khuyên bạn nên:

  • Suy nghĩ trong Java . Không sao, mặc dù bây giờ hơi lỗi thời.
  • Hướng dẫn Java . Đây không hẳn là người bạn đồng hành tốt nhất của người học, nhưng là một tài liệu tham khảo tuyệt vời để nắm trong tay, vì nó bao gồm tất cả các điều cơ bản và cung cấp các ví dụ. Các Học các ngôn ngữ Java Trail có lẽ nên được nằm trong danh sách đọc của bạn, mặc dù tôi nghĩ rằng nó có thể được làm nản chí người mới bắt đầu hoàn chỉnh như nó giới thiệu khái niệm mà có thể khó nắm bắt lúc đầu.
  • Java hiệu quả . Nó không phải là một cuốn sách tuyệt vời cho việc học, nhưng cũng là một tài liệu tham khảo tuyệt vời mà bạn nên có trong tay cho sau này. Không phải để đọc trong một lần ngồi, mà trong các miếng có kích thước cắn.

Tôi chỉ đề cập đến điều này vì tôi không biết bạn sử dụng gì trong lớp. Có hàng tấn sách khác. Một số là tốt. Một số sẽ làm tê liệt sinh viên trong nhiều năm.


Quá trình học tập của bạn

Quy trình làm việc cơ bản

Từ giờ trở đi, tôi khuyên bạn nên làm theo quy trình 2 bước này cho tất cả các bài tập và mẫu mã bạn đã thấy trong lớp:

  1. đọc và học
    1. đọc bài tập
    2. đảm bảo bạn hiểu họ
    1. đóng sách lại
    2. ngồi xuống trước một máy tính với trình soạn thảo mã và dòng lệnh đó
    3. cố gắng tự viết lại chương trình

Trong trường hợp thất bại

Nếu bạn thất bại và cảm thấy cần phải xem qua cuốn sách, thì thất bại của bạn có thể là:

  • (rất có thể) rằng bạn không thực sự hiểu giải pháp,
  • (ít có khả năng) rằng bạn đã quên một bit cụ thể của giải pháp trông như thế nào: cú pháp, sử dụng API, ...

Nguyên nhân đầu tiên có thể là những gì bạn phải đối mặt thường xuyên nhất. Cái thứ hai là giai thoại. Cả hai đều được giải quyết bằng thực hành thường xuyên.

Mỗi khi bạn thất bại trong việc thực hiện một trong những ví dụ ban đầu này, hãy nhìn vào cuốn sách một lần nữa, sau đó đóng lại. Đừng viết mã trong khi nhìn vào cuốn sách. Tôi thậm chí còn khuyên bạn nên xóa toàn bộ giải pháp của mình và bắt đầu lại. Sự lặp lại là một phần khó chịu nhưng quan trọng của quá trình học tập.

Đừng xem nhẹ điều này. Mỗi khi bạn cảm thấy thôi thúc tự nói với mình "ừ, ok, tôi biết điều này" hoặc "Tôi 90% ở đó, nó gần như đã hoàn thành" và muốn bỏ qua phần khác, chiến đấu thôi thúc đó và bắt đầu lại. Thật khó để có sự trung thực thừa nhận với chính mình rằng bạn đã không hoàn toàn hiểu một khái niệm.

Lưu ý bên lề: Tôi coi đó là một sự bất đồng lớn mà hầu hết các chương trình học hiện nay đều cố gắng "khởi động" các khóa học lập trình bằng cách làm giảm quá nhiều thứ và cung cấp công cụ quá tiên tiến cho sinh viên: mục tiêu không phải là khiến cuộc sống của bạn khốn khổ hay vì bạn quá học bởi những điều mà sau này trong sự nghiệp của bạn sẽ được tự động hóa bằng các công cụ của bạn và đôi khi bạn thậm chí sẽ không nhớ được. Đó là để dạy cho bạn tất cả các bit nổi xung quanh.

Trong trường hợp thành công: Vượt lên!

Nếu bạn thành công trong việc thực hiện bài tập của mình, đừng nhất thiết phải nhảy trực tiếp sang bài tiếp theo. Hãy thử xem những gì bạn có thể làm để cải thiện điều đó. Bạn có thể thay đổi đầu ra được yêu cầu? Thêm một tính năng nhỏ? Một lựa chọn? Hãy cố gắng, vì bây giờ bạn đang ở trong khu vui chơi đó, nơi bạn đã vượt qua khó khăn chính, và những yêu cầu nhỏ bé tự áp đặt này có nhiều khả năng giữ cho tinh thần của bạn tăng lên một chút.

Đừng đi quá xa: bạn không đi từ in bảng chữ cái và đảo ngược nó thành đột nhiên làm cho nó xuất hiện trên một đường chéo trên màn hình với một dải màu. Thực hiện các bước nhỏ. Học tập là một quá trình lâu dài và lặp đi lặp lại, và bạn cần tiếp cận các vấn đề với mức độ khó tăng dần (ví dụ, xem cách tôi thường nghĩ về việc giải thích đệ quy ).


Đó chỉ là học tập - So sánh

Vấn đề của bạn thực sự không liên quan đến lập trình. Đó là cùng một vấn đề mà hàng ngàn người gặp phải khi họ cố gắng học toán.

Nếu bạn đưa ra cho họ một vấn đề, họ sẽ không thấy cách giải quyết. Tuy nhiên, nếu bạn viết ra giải pháp cho họ, hầu hết sẽ hiểu nó và nghĩ rằng "chết tiệt, thật đơn giản!". Tuy nhiên, bạn sẽ đưa ra cho họ một vấn đề tương tự với các biện pháp và giả thuyết khác nhau và họ sẽ không giải quyết được: họ không hiểu logic đằng sau nó và họ cần thực hành để có thể tự làm điều đó.

Lưu ý rằng đây là một vấn đề phổ biến với toán học, nhưng theo tôi bạn thấy nó có vô số lĩnh vực khác, trong đó có một số logic cần thiết: học solfege, ngữ pháp ngôn ngữ, vật lý, v.v ... Và nó không phải là khả năng "tự nhiên" để hiểu những điều này: nó chỉ bắt nguồn từ thực tiễn (có thể trong lĩnh vực đó hoặc ở những nơi khác dẫn đến việc cá nhân nắm bắt các khái niệm trong lĩnh vực này dễ dàng hơn).

Không có lý do gì bạn không thể học viết mã. Bạn chỉ cần cố gắng tiếp tục cố gắng cho đến khi bạn đạt được "ah AH!" / Khoảnh khắc của Eureka. Sau đó chuyển sang vấn đề tiếp theo, khó khăn hơn.


Đây cũng có thể giúp đỡ (sau này):


6

Tôi biết đây không phải là câu trả lời bạn sẽ muốn nghe nhưng: Viết thêm mã!

Cụ thể hơn mổ xẻ mã mà bạn hiểu. Nó thường giúp tôi "dịch" nó sang tiếng Anh thông thường (vì tôi là người mới bắt đầu tương đối).

Đừng ngại động não ý tưởng của bạn để viết một đoạn mã trước tiên (ví dụ: "Tôi muốn khai báo một biến ở đây, lặp đi lặp lại qua phân đoạn này, v.v.") và THÌ tìm kiếm từng mảnh để làm những phân đoạn khác nhau này.

Hãy nhớ rằng mã hóa giống như một bài tập trong việc ghi nhớ và giống như tìm ra cách để xây dựng một cái gì đó từ các khối xây dựng. Giống như học một ngoại ngữ thực tế, sự hiểu biết đến trước, đây là một dấu hiệu tốt cho thấy bạn đang đi đúng hướng.

Chỉ cần có niềm tin rằng bạn càng viết và đọc mã, nó sẽ càng có ý nghĩa.


5

Như những người khác đã nói, đây là một trường hợp bạn phải thực hành, thực hành, thực hành.

Viết một loạt các chương trình nhỏ chỉ giải quyết một vấn đề

Đôi khi, phần khó nhất thực sự đến với một cái gì đó đáng để lập trình. Nếu bạn có thể, hãy cố gắng làm việc trong một chủ đề mà bạn nghĩ rằng bạn đang vật lộn với - như các lớp học, kế thừa, v.v. Một số ý tưởng ngoài đầu tôi:

  • Tạo 1000 số ngẫu nhiên và chèn chúng vào bộ sưu tập (hàng đợi, danh sách, v.v.). Sắp xếp bộ sưu tập mà không sử dụng bất kỳ phương pháp được cung cấp nào sắp xếp bộ sưu tập cho bạn.
  • Liệt kê 10 người bạn biết. Đầu tiên sắp xếp tên của họ dựa trên tên đầu tiên và hiển thị chúng. Sau đó, sắp xếp tên của họ dựa trên tên cuối cùng của họ và hiển thị chúng. Sau đó, hãy thử sắp xếp chúng dựa trên mẫu "cuối cùng, đầu tiên" (ví dụ Smith, Andrew sẽ ở trước Smith, Jessica).
  • Tìm tất cả các số nguyên tố từ 1 đến 100.
  • (Kế thừa) Tạo một lớp Đa giác và cung cấp cho nó hàm GetArea. Bây giờ, làm cho các lớp Tam giác và Hình chữ nhật kế thừa từ Đa giác và đảm bảo chúng triển khai GetArea. Tiếp tục làm điều này cho đa giác bậc cao hơn (ngũ giác, lục giác, vv).
  • Hãy thử chọn những thứ từ trao đổi ngăn xếp mã golf *

* Mục đích của mã golf là thực hiện nhiệm vụ được cung cấp bằng cách sử dụng ít ký tự, byte hoặc một số số liệu khác được nêu trong câu hỏi. Nếu bạn đọc một số câu trả lời, bạn sẽ nhanh chóng đánh giá cao những cách thông minh mà mọi người giải quyết những vấn đề này. Đừng tập trung vào giải quyết vấn đề trong vài byte nhất! Những người đăng bài lên mã golf là những lập trình viên rất có kinh nghiệm. Nhưng, một số câu hỏi cung cấp các nhiệm vụ dễ dàng trong và của chính họ.

Một số ví dụ về mã golf thú vị:

  • Quyền hạn của 4 . Đừng lo lắng về việc giải quyết bằng regex (điều này khá khó, như bạn có thể thấy bằng các câu trả lời). Nhưng, thay vì giải quyết câu hỏi "Cho một chuỗi s, độ dài của nó có chia hết cho lũy thừa 4 không?" Bạn cũng có thể thực hiện offshoots: Độ dài của chuỗi có chia hết cho 4 không? Có chia hết cho 6 không? Có phải là số nguyên tố (điều này rất khó đối với các chuỗi dài, vì vậy hãy thử nếu bạn cảm thấy khó chịu!)?
  • Chất nền . Cho một chuỗi s, xuất tất cả các chuỗi con có thể.
  • Đếm từ . Điều này có thể khó khăn tùy thuộc vào khoảng cách bạn học trong lập trình. Có một vài điều làm cho nó rất dễ dàng (như các bộ sưu tập kết hợp), nhưng nếu bạn không biết những điều đó có thể khó khăn.
  • Nếu tiêu đề nghe có vẻ khó hiểu với bạn, hãy bỏ qua câu hỏi. Như tôi đã nói, code golf dành cho các lập trình viên giàu kinh nghiệm. Chỉ cần tập trung vào các vấn đề đơn giản, và cố gắng đưa ra một câu trả lời đơn giản.

Cấu trúc cơ bản của việc giải quyết vấn đề:

Rất nhiều trong số này cung cấp cho bạn một ý tưởng tốt về một chức năng sẽ trông như thế nào. Cho X, làm Y và kết quả phải là Z:

void foo()
{
    // Set up X here

    // Do Y here

    // Display Z here
}

Đối với các mục đích học cơ bản và làm quen với một ngôn ngữ, mẫu trên là đủ. Một mẫu hướng đối tượng hơn sẽ là:

Z foo(input X)
{
    Z result;
    // Do Y to X
    return result;
}

Nếu nó giúp, viết nó ra giấy là tốt. Nói về bản thân bạn thông qua quá trình bạn , như một con người, sẽ giải quyết vấn đề này như thế nào. Ví dụ: Cho các số i, j và k, hiển thị chúng theo thứ tự giảm dần. Là một người, thật dễ dàng để giải quyết. Phần khó là dịch các ý tưởng của bạn thành các hướng dẫn từng dòng để một máy tính có thể giải quyết nó.

Cố gắng đưa ra ý tưởng của riêng bạn là tốt. Nó có thể khó khăn, nhưng ngay cả những chương trình đơn giản nhất cũng có thể dạy cho bạn những điều bạn chưa biết. Toàn bộ vấn đề là tự khoan mình với những điều cơ bản, cho đến khi chúng trở thành bản chất thứ hai.


4

Bạn sẽ không nhận được bất cứ nơi nào chỉ bằng cách đọc mã; bạn cần phải viết mã. Chỉ cần viết mã. Đừng lo lắng nếu mã bạn viết là tào lao; mọi người đã viết mã tào lao Một số người kiếm sống từ nó. Không ai bắt đầu viết mã tốt và tôi cho rằng trong khi học, gần như cần phải viết mã xấu bởi vì chỉ khi đó, sự khác biệt giữa mã tốt và mã xấu mới thực sự rõ ràng.

Thật khó để đánh giá sự khác biệt giữa mã tốt và mã xấu khi đọc hai khối mã làm cùng một việc, nhưng khi bạn viết một tập lệnh và bạn sẽ có người hiểu biết để xem xét nó và cung cấp phản hồi, sự khác biệt thường trở nên rõ ràng hơn vì bạn có thể trực tiếp áp dụng nó cho những gì bạn biết.

Lập trình không phải là thứ bạn có thể học bằng cách học thuộc lòng; nó không giống như bảng thời gian hoặc ngày tháng của bạn trong lịch sử. Lập trình là một kỹ năng thực tế đòi hỏi phải thực hành liên tục để luôn sắc sảo. Học lập trình mà không viết mã cũng giống như học bơi bằng cách đọc sách.


1

Câu hỏi này đã có một số câu trả lời thực sự tốt, nhưng có một vài suy nghĩ tôi chưa thấy.

Học một ngôn ngữ lập trình cũng giống như học một ngôn ngữ 'thực tế': Nó luôn dễ đọc hơn nhiều so với viết, có thể là một câu đơn, một bài báo khoa học hoặc một cuốn sách. Khi đọc, nhiều thứ có thể được tìm ra chỉ từ ngữ cảnh, hiểu văn bản hoặc mã khi bạn đọc nó. Khi bạn thấy một từ bạn không biết, có thể bạn biết một từ khác có cùng gốc; Khi bạn thấy một phương thức, tên của phương thức đó cung cấp cho bạn một ý tưởng tốt về những gì nó làm. Khi viết, bạn phải nhớ không chỉ cú pháp, mà cả các từ thực tế để sử dụng. Và nó cũng tương tự cho lập trình.

Như những người khác đã nói, bạn không thể học viết chương trình chỉ từ việc đọc chương trình.

Khởi đầu nhỏ. Tìm kiếm một hướng dẫn Java và thực hiện tất cả các đơn vị, từng đơn vị một. Và khi bạn đủ tự tin, hãy chọn một dự án nhỏ để kiểm tra kỹ năng của bạn, có thể một số trò chơi đơn giản mà bạn biết rõ mà không yêu cầu quá nhiều tương tác GUI. Khi bạn đã quyết định, đừng chỉ mở Eclipse của bạn và nhìn chằm chằm vào 'trang trống'. Tạo bảng phân cảnh. Bạn không cần phải vẽ các sơ đồ UML phức tạp, chỉ cần suy nghĩ về cách giải quyết các khía cạnh nhất định của chương trình - câu chuyện hoặc cuộc tranh luận của bạn diễn ra như thế nào, có thể nói như vậy. Và khi viết mã, hãy bắt đầu với một bản nháp thô. Tôi thường viết rất nhiều bình luận, mô tả chương trình nên làm gì, theo thứ tự nào, và sau đó bắt đầu điền mã chương trình thực tế.


1

Giống như những người khác đang nói, bạn chỉ cần thực hành viết mã. Để thực hiện được điều đó, bạn cần thử thách bản thân với việc giải quyết một số loại vấn đề, cho dù đó là in các tin nhắn được xác định trước, tạo một máy tính tương tác đơn giản hoặc giải quyết một số nhiệm vụ cụ thể.

Nếu bạn thiếu cảm hứng, Project Euler có rất nhiều bài tập toán / lập trình có độ khó tăng dần. Chúng cung cấp cho bạn các mục tiêu rõ ràng và đầy thách thức để hoàn thành, và sẽ giúp bạn có được các chương trình thiết kế thoải mái hơn.


1

Chỉ cần nghĩ rằng tôi sẽ tham gia vào chủ đề này bởi vì nó thực sự gần nhà.

Bạn chỉ cần bắt đầu viết mã. Đừng hiểu sai ý tôi, đọc sách rất tuyệt nhưng những gì thực sự mang lại cho bạn rằng kiến ​​thức mã hóa đang hoạt động thực sự là xây dựng một cái gì đó. Tôi đã học được nhiều hơn từ một vị trí mùa hè duy nhất so với năm trước tôi đã đọc về nó.

Tôi cũng nên nói thêm rằng bạn không nên bắt đầu viết mã một cách mù quáng . Làm một dự án cho chính mình. Bạn cần một số hướng để đặt mình vào để bạn biết những gì bạn muốn làm. Bạn sẽ ngạc nhiên khi thấy bạn sẽ học được bao nhiêu một cách nhanh chóng. Nếu bạn chỉ cần mở một IDE và bắt đầu thực hiện các ví dụ đơn giản về thế giới xin chào, cảm giác khó chịu đó sẽ nhanh chóng xuất hiện trong bạn. Tìm một cái gì đó với một chút chiều sâu và trước khi bạn biết nó sẽ được mở rộng trên đó.


điều này dường như không thêm bất cứ điều gì đáng kể vào những gì đã được đăng trong các câu trả lời trước
gnat

@gnat Tôi cho rằng bạn có nghĩa là "Không" và đó là ý kiến ​​của bạn. Tôi đã trải qua chính xác tình huống mà anh ấy sẽ gặp và tôi đang chia sẻ những gì đã giúp tôi. Nếu bạn quên phần giới thiệu cho câu hỏi của anh ấy ở đây thì đó là: "Các bạn có thể đưa ra bất kỳ lời khuyên nào không ..."
SeanWM

@SeanWM - Lập trình viên hơi khác so với những gì bạn có thể quen với SO. Nếu một cái gì đó đã được trả lời tốt, việc lặp lại các điểm giống nhau trong câu trả lời của riêng bạn không phải là tất cả mang tính xây dựng. Và đó là bất kể OP có hỏi lời khuyên hay ý kiến ​​hay không. Nó chỉ không làm cho Q & A tốt. Tốt hơn hết là bình chọn (các) câu trả lời hiện có và có thể để lại nhận xét mang tính xây dựng cho thấy một khía cạnh bị bỏ sót.

+1, câu trả lời này không thêm một cái gì đó quan trọng vào hỗn hợp. Đó là tầm quan trọng của việc có một dự án thực sự để làm việc, không chỉ là các ví dụ và các chương trình thử nghiệm nhỏ.
GrandmasterB
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.