2010-08-07 36 views
10

Tôi vừa bắt đầu học Java (tham khảo cuốn sách Head-First).Cách học ngôn ngữ của bạn là gì?

Tôi chỉ muốn biết cách tốt nhất để học bất kỳ ngôn ngữ nào?

Cách tận dụng tối đa sách?

Nếu người ta phải nghiên cứu vấn đề của cuốn sách và sau đó thử mã đó sau này trên máy tính hoặc làm điều đó cùng một lúc? (học khái niệm và thử trên máy tính cùng một lúc)

Trong trường hợp của tôi, tôi đang đề cập đến cuốn sách và nhận trợ giúp của diễn đàn. Ngoài ra tôi muốn biết khi nào bắt đầu trả lời ở đây trên Stack Overflow :) Vì tôi mới vào ngôn ngữ nên tôi không biết nhiều.

(Tôi chỉ cần đọc câu trả lời khác ở đây thường xuyên)

+0

Có thể bạn sẽ muốn đánh dấu câu hỏi này là "Community Wiki" để nó không bị đóng ngay lập tức. –

+0

đã thử http://stackoverflow.com/search?q=learning+a+language%3F? – Iznogood

+0

@ Carl: Cảm ơn, Xong :) –

Trả lời

13

Cách "tốt nhất" phụ thuộc vào bạn - cách tiếp cận riêng của tôi có thể được tóm tắt như:

  • đọc một cuốn sách
  • viết một số mã
  • lặp lại

nhưng một số người không học cũng theo cách đó, và thích s một cái gì đó trang trọng hơn, giống như tham gia một khóa đào tạo, điều mà tôi không thể ngồi yên, mặc dù là một người hướng dẫn cũ, tôi từng rất vui khi nhiều người cảm thấy khác.

0

Khi tôi muốn học một ngôn ngữ, tôi đặt ra cho mình một nhiệm vụ khó khăn, giống như Huffman Coding, hay Facebook Puzzles, và bắt đầu đấm đi vào nó với sự giúp đỡ của trang này.

Bạn có thể muốn sử dụng một cuốn sách để có được những điều cơ bản của ngôn ngữ, mặc dù ...

0

Tôi đã tham gia vào các ngôn ngữ mới bằng cách tìm ra một dự án. Có lẽ một cái gì đó bạn đã thực hiện bằng ngôn ngữ khác hoặc một cái gì đó bạn sẽ tìm thấy hữu ích (như một công cụ lập trình). Sau đó, cố gắng viết nó bằng ngôn ngữ bạn muốn học, lúc đầu chỉ sử dụng những gì bạn hiểu về ngôn ngữ và có thể thu thập từ sách và trang web. Khi bạn nhận được dự án hoàn thành, hãy bắt đầu hỏi trong cộng đồng để ai đó xem mã của bạn và đặt câu hỏi cho những gì dường như là khu vực có vấn đề.

Điều quan trọng là nhận ra rằng một ngôn ngữ thường rất chung chung trong khi một vấn đề sẽ cho ngữ cảnh đó. Ví dụ tôi có thể biết cách phát triển các ứng dụng Java, nhưng điều đó không có nghĩa là tôi biết cách phát triển các ứng dụng J2EE. Cùng một ngôn ngữ, ngữ cảnh khác nhau; vì vậy bạn có thể muốn suy nghĩ về điều đó trong khi tìm ra dự án hoặc dự án học tập.

Tôi cũng khuyên bạn nên xây dựng dự án với thử nghiệm đơn vị rất nặng. Việc viết các bài kiểm tra đơn vị sẽ cung cấp cho bạn một bộ công cụ vững chắc mà họ sẽ không cho bạn thấy trong sách, mã của bạn sẽ cải thiện và quan trọng hơn là bất kỳ thành ngữ ngôn ngữ không mong muốn nào cũng sẽ giống như một bài kiểm tra không thành công.

1

Đây là một bản sao, như tôi nhớ đã trả lời điều này cách đây không lâu, nhưng đối với tôi, nó phụ thuộc vào ngôn ngữ và liệu tôi có cần học ngôn ngữ hay ý tưởng hoàn toàn mới hay không.

Với một ngôn ngữ như Haskell, mà tôi coi là khó khăn vì nó khá khác với những gì tôi đã từng sử dụng, tôi bắt đầu với việc học sách.Tuy nhiên, kinh nghiệm thực tế là cần thiết, nhưng thay vì cố gắng bất cứ điều gì tham vọng từ đầu, tôi tập trung vào những sửa đổi nhỏ cho mã hiện có.

Với ngôn ngữ dễ dàng hơn như Ruby, hoặc thực sự Java, tôi có thể làm một hướng dẫn, sau đó tôi sẽ cố gắng và viết một ứng dụng từ đầu. Khi tôi chống lại bất kỳ bức tường nào, tôi chỉ lướt qua để tìm câu trả lời, hoặc hỏi ở đây, và việc học tập đi kèm với kinh nghiệm.

Thực tế, việc làm là chìa khóa bất kể.

0

Điều quan trọng nhất đối với tôi là luôn tìm thấy điều tôi thực sự muốn làm với ngôn ngữ mới mà tôi muốn học. Nếu không thì thật khó để có động lực thực sự. Nhưng một khi tôi có một ý tưởng cho một cái gì đó tôi đi đọc hướng dẫn và bài viết về ngôn ngữ và bắt đầu xây dựng học tập dự án của tôi khi tôi đi.

Tôi đã từng đọc nhiều sách nhưng hôm nay với stackoverflow và các hướng dẫn ở khắp mọi nơi tôi thấy mình cần chúng ít hơn và ít hơn.

0

Tôi thường google cho sách tốt nhất có thể (một người có nhiều đề xuất nhất) và tôi quét qua rất nhanh, chỉ để có ý tưởng chung về ngôn ngữ, thực tiễn tốt, v.v. mà sẽ có thể bao gồm tất cả mọi thứ bạn có thể có thể làm với ngôn ngữ đó (cũng OK không everyting, nhưng càng nhiều càng tốt). Giống như khi tôi đang học Java EE (JSP, Servlets, JPA), tôi quyết định viết một trò chơi treo cổ đơn giản, trước tiên tôi sẽ làm những điều cơ bản, sau đó tôi sẽ thêm cơ sở dữ liệu etcetc. - đầu tiên tôi đã làm một chương trình rất cơ bản, sau đó tôi đã thêm nhiều hơn và nhiều hơn nữa. Tất nhiên tôi trong khi viết nó tôi sẽ luôn luôn google cho thực hành tốt, bởi vì bạn có thể mã một cái gì đó và nó sẽ làm việc, nhưng nó có thể là địa ngục để duy trì nó trong tương lai, vv

Tôi nghĩ rằng viết công cụ bằng một ngôn ngữ bạn học tập lại là cách hiệu quả nhất nếu bạn thực hiện đúng.

2

Tôi thường đầu tiên đọc những cuốn sách và làm các bài tập sau mỗi chương, cố gắng để hiểu các khái niệm cơ bản và làm quen với các tính năng của nó

0

Cá nhân tôi vẫn có một bản sao của dữ liệu NetflixPrize mà tôi viết các thuật toán trong nói ngôn ngữ để giải quyết hoặc chỉ cần goof off với nó, nói chung. Rất tiếc, tập dữ liệu không còn công khai nữa (ít nhất chính thức từ Netflix).

Bất kể, tìm một dự án thú vị mà bạn có ý tưởng tốt về những gì bạn cần làm để hoàn thành và giải quyết, sau đó tìm hiểu cơ sở ngôn ngữ và nền tảng cũng như các phương pháp hay nhất để giải quyết. Một khi bạn đã nhận được bàn chân của bạn ướt, sau đó chi nhánh ra và bắt đầu dự án mới với ngôn ngữ/nền tảng bạn đang học.

2

Tôi đã làm điều gì đó thú vị và cố gắng viết lại bot IRC của tôi bằng ngôn ngữ mới. Điều này cho phép tôi để tìm hiểu một vài điều trong đó có

  • Sử dụng bất cứ điều gì GUI khuôn khổ ngôn ngữ sử dụng
  • Sử dụng những thứ như ổ cắm, suối, vv
  • Synchronization
  • OOP phong cách (nếu ngôn ngữ là OOP)
  • Đa luồng
  • Thực hiện mọi thứ động (đối với plugin)
  • Nếu tôi làm đúng khi tôi cố gắng xem xét mã.
  • Làm thế nào để sử dụng các khuôn khổ khác

Trong java, đây là khá nhiều trong phạm vi của bất kỳ SE ứng dụng desktop. Trong PHP (có, tôi đã làm điều này trong một số PHP khủng khiếp tìm kiếm mà tôi bị bỏ rơi), tôi đã học được nhiều điều thú vị, chủ yếu là PHP đã không được thực hiện để làm điều đó.

Sử dụng tính năng này có thể cung cấp cho bạn thông tin chi tiết tuyệt vời về nhiều tính năng của ngôn ngữ. Nó cũng có thể được vui vẻ đôi khi.

0

Đối với tôi: Tôi học một ngôn ngữ chỉ bằng cách bắt đầu một dự án. Tôi đã học C# .NET vào mùa hè này bằng cách bắt đầu một dự án web trên C#. Khi tôi gặp khó khăn về một cái gì đó, tôi hoặc google nó hoặc chỉ được hưởng lợi từ stackoverflow !! Nếu bạn không cảm thấy tự tin: hãy bắt đầu một dự án nhỏ với Java và xem nó như thế nào!

0

Nếu bạn đang ở giai đoạn đầu của việc học lập trình, thì tôi nghĩ nó mang tính giáo khoa hơn để chơi với những gì bạn đã học khi bạn đọc qua cuốn sách. Đừng chờ đợi cho đến khi bạn đọc xong nó để có được một số thực hành. Bạn có thể hiểu được kiến ​​thức, nhưng có thể áp dụng nó một cách thỏa đáng thì phải mất rất nhiều thực hành. Và thật dễ dàng để quên những gì bạn đã học cách đây một tuần, nếu bạn không tập luyện nó.

Vì vậy, những gì tôi thường làm khi tôi đang học một ngôn ngữ mới, là cố gắng giải quyết một số vấn đề với nó. Điều đó giúp tôi rất nhiều để đánh giá mức độ hiểu biết của tôi về ngôn ngữ là như thế nào, và cũng giúp tôi khám phá sâu trong ngôn ngữ. Ví dụ về các vấn đề tôi cố gắng để giải quyết khi tôi đang học một ngôn ngữ mới:

0

Nếu bạn chưa bao giờ có bất kỳ kinh nghiệm lập trình, tôi không nghĩ rằng bạn nên bắt đầu một dự án nơi bạn sẽ thấy mình bị kẹt hầu hết thời gian và yêu cầu hỗ trợ của google hoặc stackoverflow. Thay vào đó, có được một cuốn sách, đi qua từng ví dụ, hãy thử một số câu hỏi của chương, nhập mã từ các ví dụ và nghĩ ra các cách sáng tạo để sửa đổi chương trình theo nhu cầu của bạn. Bạn cũng có thể bổ sung cho việc học của mình bằng cách xem các bài giảng video do Stanford's Engineering Everywhere hoặc MIT's OCW cung cấp. Trong trường hợp của bạn, loạt bài giảng video miễn phí đầu tiên của Stanford bắt đầu bằng Java, tiếp tục với C++, sau đó sâu hơn vào MIPS và một số ngôn ngữ kịch bản.

Check it out: http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

Theo như bắt đầu trả lời câu hỏi bắt đầu, bạn luôn có thể nói TAGS yêu thích của bạn là gì và đặt nó là "người mới bắt đầu" để StackOverflow sẽ hiển thị thêm "người mới bắt đầu" câu hỏi.

+0

Cảm ơn chiurox :) –

0

tôi thường làm sau:

  • cuốn sách đọc nói về điều tương tự (ví dụ Java giới thiệu, Java cho người mới bắt đầu, Java đầu tiên vv)

Lý do là họ nói về cùng nhưng sử dụng các ví dụ khác nhau và phong cách mã hóa khác nhau đôi khi vì vậy nó giúp tôi hiểu các loại mã hóa. Cũng thường một ví dụ là không thực sự đủ để hiểu đầy đủ những gì thực sự xảy ra khi bạn gặp khó khăn.

  • đọc mã mà người khác viết.

Trực tuyến và tìm kiếm mã bạn đang tìm kiếm, chúng viết theo cách khác và bạn sẽ tìm thấy cách tiếp cận nào có ưu điểm và nhược điểm.

  • tham gia diễn đàn và tham gia thảo luận.

Đảm bảo chi tiêu đôi khi trước khi bạn đăng câu hỏi. Mọi người không thích người tìm giải pháp dễ dàng. Tôi thường dành vài giờ để tìm kiếm câu trả lời và nếu tôi không thể tìm ra, sau đó bắt đầu yêu cầu trực tuyến với càng nhiều chi tiết càng tốt để tôi có được câu trả lời chính xác.

0

Bạn có khoa học máy tính hoặc nền tảng lập trình không? Nếu không, điều quan trọng là phải tìm hiểu về cấu trúc dữ liệu và thuật toán cũng như ngôn ngữ thực tế. Có rất nhiều tài nguyên miễn phí ngoài kia, và trong khi cuốn sách sẽ giúp bạn, bạn có thể muốn xem xét tham gia một khóa học CS để giúp với một số khái niệm.

Nếu bạn (hoặc bất kỳ ai khác đọc câu hỏi này) quan tâm, bạn có thể xem This site để biết giới thiệu về khoa học máy tính. Ngoài ra còn có rất nhiều các khóa học tốt về opencourseware. Đặc biệt, lớp học này là tất cả các video bài giảng có thể tải xuống hoặc có thể tải xuống với bài tập, bài kiểm tra và câu đố, tất cả 100% và từ giáo viên MIT.

Nếu bạn đã có một nền CS, sau đó xin vui lòng bỏ qua cho tôi :)

0

Tôi nghĩ rằng bắt đầu từ một dự án nhỏ là cách tốt nhất và bước đầu gắn bó với một cuốn sách phải lúc nào cũng giúp

Các vấn đề liên quan