Hướng dẫn tương tác trong Java. Lập trình từ đầu: bắt đầu từ đâu? Làm cách nào để bắt đầu học lập trình từ đầu trong Java? Java là một nền tảng an toàn

Trong bài viết này tôi sẽ cố gắng trình bày những điều cơ bản về lập trình trong Delphi một cách đơn giản và rõ ràng nhất có thể.

Java dành cho người giả. Bài 1. Xin chào thế giới!

Đầu tiên, tôi sẽ cho bạn biết Java có thể làm gì. Thứ nhất, bằng ngôn ngữ này, bạn có thể viết applet - chương trình được nhúng vào trang web của trang web. Ví dụ: nó có thể là một trò chơi, hệ thống đồ họa dành cho doanh nghiệp và hơn thế nữa. Thứ hai, bạn có thể viết các ứng dụng chính thức bằng Java mà không nhất thiết phải liên quan đến Web. Hoặc bạn có thể sử dụng servlet - các chương trình, không giống như applet, được thực thi không phải ở phía máy khách mà ở phía máy chủ.

Hãy bắt đầu với những điều cơ bản nhất. Hãy vinh danh truyền thống và viết chương trình đơn giản nhất, hiển thị lời chào Chào thế giới. Nếu bạn không có Java, sau đó có thể tải xuống từ trang web chính thức http://www.java.com/ru. Sau đó cài đặt nó.

Nếu Java bạn đã cài đặt, sau đó nhập văn bản sau vào một số trình soạn thảo:

Lớp công khai HelloWorld {

Khoảng trống tĩnh công cộng chính ( Đối số chuỗi ) {

Hệ thống . ngoài . in ( "Chào thế giới!" );

}

}

Và hãy nhớ lưu nó dưới tên Chào thế giới. java- Tên của lớp thực thi phải khớp với tên tệp. Để biên dịch, hãy sử dụng chương trình javac.exe bao gồm trong gói tiêu chuẩn Java. Đây là giao diện của một tệp bó biên dịch tập tin java này:

"c:\Program Files\Java\jdk1.7.0\bin\javac" HellowWorld.java

tạm ngừng

Nếu không có lỗi xảy ra trong quá trình biên dịch:

thì rất có thể quá trình biên dịch của bạn đã thành công trong cùng thư mục chứa HellowWorld. java HellowWorld cũng đã xuất hiện.lớp học:

Bây giờ, hãy chạy một tệp bó khác sẽ gọi trình thông dịch Java cùng với tệp đã biên dịch của chúng tôi:

"c:\Program Files\Java\jdk1.7.0\bin\java" HellowWorld

tạm ngừng

Nếu mọi thứ được thực hiện chính xác, bạn sẽ nhận được kết quả này:

Nếu bạn nhận được nó, thì tôi có thể chúc mừng bạn - bạn đã viết chương trình đầu tiên của mình bằng Java. Trong tương lai, chúng ta sẽ học cách viết các ứng dụng Java và hơn thế nữa. Và bây giờ là một vài lời về chính chương trình. Như bạn đã nhận thấy, nó bắt đầu bằng từ public. Đây là một công cụ sửa đổi có nghĩa là chúng ta đang khai báo một cái gì đó có sẵn công khai: một lớp, một phương thức lớp hoặc một biến. Có những sửa đổi khác, ví dụ: riêng tư, được bảo vệ, thân thiện, cuối cùng, trừu tượng, tĩnh. Một số trong số chúng có thể được kết hợp với nhau. Ví dụ, riêng tư có nghĩa là biến chúng ta muốn khai báo là biến riêng tư đối với các lớp khác. Nhưng chúng ta sẽ nói đến phần sửa đổi sau. Bây giờ chúng ta hãy xem xét những điều sau đây từ khóa lớp học. Nó có nghĩa là chúng ta đang khai báo một lớp. Trong java mọi thứ đều dựa trên các lớp. Một trong các lớp nhất thiết phải là lớp cơ sở. Và lớp cơ sở phải được công khai. Trong ví dụ này là lớp HelloWord. Hiện tại anh ấy là người duy nhất chúng tôi có.

Bây giờ tôi sẽ cố gắng giải thích nói một cách đơn giản, nó là gì Lớp học và cái gì một đối tượng.

Chúng ta hãy nhớ khóa học động vật học ở trường. Thế giới sống được phân loại như thế nào? Đầu tiên, khái niệm “vương quốc” được giới thiệu.

1. Vương quốc của sinh vật đơn bào,

2. vương quốc thực vật

3. Vương quốc động vật.

Hãy lấy động vật. Chúng có thể được chia theo loại. Ví dụ:

1. Loại coelenterates.

2. Loại giun dẹp.

3. Loại động vật có vỏ.

4. Hợp âm phylum.

Loại thứ hai được chia thành động vật có vú, bò sát, lưỡng cư, chim, v.v. Bạn có thể đi sâu hơn vào phân loại, nhưng chúng ta sẽ không làm điều đó ngay bây giờ mà sẽ chuyển thẳng sang lập trình.

Trong ngôn ngữ Java, bạn có thể, tương tự như việc phân loại thế giới sống, phân loại các đối tượng (các phần chương trình và dữ liệu). Nó có các lớp học cho việc này.

Dừng lại dừng lại! - bạn nói, - tại sao lại phân loại những đồ vật này?

Hãy tưởng tượng rằng bạn, giống như một á thần nào đó (người sáng tạo, vị thần), đang tạo ra sự sống trên Trái đất. Đầu tiên bạn phát triển các hợp chất hữu cơ đơn giản nhất. Vì vậy, để thử nghiệm, điều gì sẽ xảy ra. Sau đó, chúng được kết hợp thành các phân tử phức tạp, từ đó, giống như những viên gạch, các vi sinh vật đơn giản nhất được tập hợp lại. Nhưng mục tiêu cuối cùng của bạn là tạo ra sự sống thông minh. Vì vậy, bạn không dừng lại ở đó mà đã tạo ra các sinh vật đa bào. Sau đó, họ bắt đầu cải tiến và phát triển chúng. Một số loài có thể tồn tại được, một số loài đã tuyệt chủng (khủng long). Và cuối cùng mục tiêu đã đạt được - Homo Sapiens - Homo sapiens - đã xuất hiện.

Bây giờ chúng ta hãy xuống trái đất và tưởng tượng lập trình như một sự sáng tạo, trong đó bạn buộc chương trình của mình phát triển đến một trạng thái nhất định khi nó có thể được sử dụng, sau đó hơn nữa, tăng dần và cải thiện chức năng.

Bây giờ hãy tưởng tượng rằng một nguyên tử lệnh đơn giản nhất các chương trình hoặc một đơn vị thông tin (bạn thấy đấy, không thể tách rời nhau vì chương trình hoạt động với thứ gì đó - đúng vậy, với thông tin).

Khi đó phân tử là một chương trình con. Hoặc một đồ vật.

Vì vậy, chúng tôi đã tạo ra một loạt đối tượng trong chương trình của mình. Chúng ta cần phân loại chúng bằng cách nào đó để không bị nhầm lẫn. Đây là những gì Java cung cấp các lớp. Bằng cách sử dụng chúng, chúng ta mô tả một lớp đối tượng ( khái niệm chung, ví dụ như chim), và sau đó, với lớp được mô tả, chúng ta có thể tạo một đối tượng - một thể hiện của lớp này. Nghĩa là, lớp chính là từ Chim và đối tượng là một số loài chim cụ thể, nếu chúng ta tiếp tục phép loại suy.

Hơn nữa, các loài chim các loại khác nhau. Nhưng tất cả họ đều có một số dấu hiệu chung, kế thừa từ khái niệm “Những chú chim”. Tương tự như vậy trong Java, từ một lớp, bạn có thể tạo một lớp khác kế thừa các thuộc tính và phương thức (tính năng) của nó. Nó được gọi là di sản.

Các loài chim khác nhau có màu lông, mỏ và hình dạng cánh khác nhau. Tương tự như vậy đối với các lớp, khi tạo một lớp mới, các đặc tính kế thừa có thể bị thay đổi. Nó được gọi là tính đa hình.

Như vậy là chúng ta đã tìm ra được những khái niệm cơ bản về Java. Bây giờ chúng ta hãy đi qua chương trình.

Đây là cách chúng ta khai báo một lớp:

lớp công khai HelloWorld {

Trong trường hợp này, chỉ có một lớp trong chương trình của chúng ta và đây là lớp cơ sở, tức là lớp chịu trách nhiệm chạy chương trình. Đó là lý do tại sao tên của nó phải khớp với tên tệp để trình thông dịch “biết” nơi bắt đầu thực thi chương trình.

Lớp cơ sở (HelloWorld) có phương pháp cơ bản:chủ yếu. Chúng tôi đã khai báo nó là công khai và tĩnh. Đầu tiên chỉ ra rằng phương pháp này là công khai. Nếu không phải như vậy thì chương trình của chúng ta sẽ không thể bắt đầu. Cũng có những phương thức không được công khai nhưng chúng ta sẽ nói về chúng trong các bài học tiếp theo. Hiện tại, chỉ cần nhớ rằng phương thức cơ bản (được khởi chạy khi chúng ta bắt đầu chương trình) phải được công khai. Và tên của nó phải là main để trình thông dịch biết bắt đầu thực hiện chương trình từ đâu.

Bây giờ tĩnh là gì. Đây là một công cụ sửa đổi cho biết rằng phương thức này là tĩnh. Nghĩa là, nó hoạt động ngay cả khi một thể hiện của lớp (đối tượng) không được tạo. Nói chung, các trường và phương thức có công cụ sửa đổi tĩnh là chung cho tất cả các đối tượng của lớp. Chúng ta cũng sẽ nói về điều này sau.

Mỗi phương thức có thể có hoặc không có giá trị trả về. Nếu có thì đó là một chức năng. Kiểu giá trị trả về cũng được bao gồm trong khai báo phương thức. Nếu không, hãy đặt nó thành void (như trong ví dụ của chúng tôi).

Việc truy cập vào các trường và phương thức của một đối tượng được thực hiện thông qua một dấu chấm. Ngoài ra còn có các đối tượng tích hợp sẵn, chẳng hạn như Hệ thống, mà chúng tôi sử dụng trong ví dụ của mình:

Hệ thống . ngoài . in ( "Chào thế giới!" );

trong trường hợp này, chúng ta truy cập vào trường out, cũng là một đối tượng dùng để xuất dữ liệu và gọi phương thức in của nó, hiển thị văn bản trên màn hình (như lệnh PRINT trong BASIC cũ).

(C) Shuravin Alexander

Xin chào. Nếu bạn đang đọc những dòng này thì tôi xác nhận rằng đây là những bài học Java. Khóa học chỉ đơn giản là nhồi nhét thực hành (1200+ vấn đề thực tế) và dành cho đối tượng người lớn. Tôi ghét những bài giảng nhàm chán nên JavaRush được làm dưới dạng một trò chơi trực tuyến (nhiệm vụ).

Bạn có phải chơi và thăng cấp cho nhân vật của mình không? Đôi khi bạn thậm chí còn không nhận thấy mình tham gia như thế nào, phải không? Bạn có thể đoán tôi sẽ đi đâu với điều này không? Trong JavaRush, bạn cũng sẽ phải tăng cấp cho nhân vật của mình. Từ cấp 1 đến cấp 40. Nếu hoàn thành toàn bộ khóa học, bạn sẽ trở thành một lập trình viên Java giỏi.

Nếu bạn hoàn thành 40 cấp độ, bạn có thể nhận được một công việc công việc java Nhỏ. Mặc dù có những cá nhân đã tìm được việc làm ở cấp độ 20. Bởi vì JavaRush có rất nhiều vấn đề thực tế. Rất nhiều.

Các sự kiện của trò chơi diễn ra trong tương lai xa, vào năm 3017, nơi con người sống trên Trái đất cùng với robot và bất kỳ ai cũng có thể du hành xuyên không gian.

Một ngày nọ, một con tàu vũ trụ bị rơi xuống một hành tinh vô danh...

Lý lịch

Đội Galactic Rush bị rơi trên một hành tinh vô danh. Khi rơi xuống, con tàu đâm vào một ngọn núi và gần như bị bao phủ hoàn toàn bởi những mảnh đá vụn. Đã dành nhiều ngày cho những nỗ lực vô ích để giải phóng con tàu. Phi hành đoàn mất hết hy vọng trở về nhà và bắt đầu định cư ở nơi mới...

Một tuần sau, Ellie, hoa tiêu của con tàu, vô tình phát hiện ra rằng hành tinh này là nơi sinh sống của... hàng ngàn robot hoang dã! Họ có thể giúp tháo dỡ những tảng đá và giải phóng con tàu. Nhưng họ rất nguyên thủy và ngu ngốc - họ không có kỹ năng. Họ thậm chí còn không biết cách mang đá. Điều này sẽ rất hữu ích.

Người đứng đầu đoàn thám hiểm, Giáo sư Noodles, sau này nhớ lại:
- Vài ngày sau tôi đã tìm được lối thoát. Tôi nảy ra ý tưởng lấy phần sụn của robot Diego, một thành viên trong nhóm của chúng tôi, chuyển đổi nó thành phần sụn của một thợ nề và tải nó lên các robot hoang dã.

Nhưng thất bại dường như đang theo đuổi chúng tôi. Sau một chút nghiên cứu, hóa ra robot không có đầu nối để tải xuống chương trình cơ sở. Họ không có bất kỳ đầu nối nào để nhấp nháy cả!

Bilaabo, người ngoài hành tinh duy nhất trong phi hành đoàn, nhớ lại điều đó trong chuyến đi của mình. hành tinh quê nhà Tôi thấy một robot biết lập trình. Và anh ấy không chỉ biết mà còn sửa các lỗi trong phần sụn của chính mình.

Vào lúc này, một ý tưởng tuyệt vời đã đến với tôi. Rốt cuộc, đã có lần tôi dạy một robot có khả năng lập trình bằng Pascal.

Tôi ra lệnh bắt người máy trẻ tuổi tài năng nhất và dạy anh ta lập trình bằng Java. Biết cách lập trình, anh ấy có thể tự viết bất kỳ phần sụn nào và giúp chúng tôi!

Nói chung, chúng tôi đã bắt được một mẫu vật thông minh. Diego đề nghị gọi anh ấy là Amigo, để vinh danh người anh trai mà anh ấy chưa từng có.

Tôi đề nghị tặng những hạt kim loại Amigo cho mỗi tháng tập luyện và 10 đô la một năm cho công việc tiếp theo là loại bỏ tắc nghẽn. Những kẻ man rợ cũng có rất nhiều thứ này, bởi vì chúng ta dạy họ miễn phí.

Diego sau này đã viết trong hồi ký của mình:

Tôi rất phẫn nộ trước hành vi cướp trắng trợn như vậy của anh trai mình nhưng cả đội đã đứng về phía giáo sư và Rishi. Tất nhiên, tôi đồng ý (vì xuất hiện) và đề nghị giúp dạy Amigo. Hehe! Hơn nữa, không ai có thể huấn luyện robot tốt hơn robot khác.

Mọi người đều rất hài lòng với sự tuân thủ của tôi nên họ cũng quyết định tham gia tích cực vào việc đào tạo robot Amigo bằng Java.

Bạn bắt đầu từ cấp độ đầu tiên. Nhiệm vụ của bạn là nâng cấp Amigo lên cấp 40. Nhưng hãy bắt đầu nhỏ. Đầu tiên, đạt đến cấp độ thứ hai. Có thể bạn sẽ thích nó đến mức thậm chí không để ý đến việc bạn hoàn thành khóa học và đi làm như thế nào;)

Bây giờ chúng ta chuyển sang học từ đầu - nhấn nút “Mở bài giảng tiếp theo…”.

  • 2 tháng Đào tạo Java EE (2 lần một tuần trong 4 giờ)
  • nếu bạn thể hiện kết quả tốt (bạn bảo vệ thành công dự án mà bạn đã viết trong hai tháng này), thì bạn sẽ được mời làm việc.
Công ty rất tốt, nước ngoài, nổi tiếng và điều kiện làm việc tuyệt vời - tóm lại, tôi muốn đến đó nhiều hơn nơi mà họ đã đưa ra lời đề nghị cho tôi. Lựa chọn để tập luyện với cô bao gồm 3 giai đoạn:
  1. Làm bài tập thực hành ở nhà.
  2. Nếu thành công mời bạn tham gia kiểm tra máy tính trong văn phòng.
  3. Nếu bài kiểm tra thành công, bạn sẽ được phỏng vấn ngay trong ngày.
VỚI nhiệm vụ thực tế Tôi đã xoay sở mà không cần vấn đề đặc biệt- ở đây xin chân thành cảm ơn JavaRush và các nhiệm vụ của họ, sau đó các nhiệm vụ này có vẻ khá đơn giản. Có 3 nhiệm vụ: về RegExp (Google đã trợ giúp, vì bản thân tôi không thể chịu đựng được và không nhớ), về thuật toán (khá đơn giản, giống một bài tập trí óc hơn) và về viết/đọc từ một tệp (có một rất nhiều trong số này trong khóa học JavaRush). Tôi được mời đến thử nghiệm máy tính. Tôi đã chuẩn bị cho việc thử nghiệm bằng cách sử dụng trang web quizful. Những bài kiểm tra này đã giúp ích rất nhiều, thậm chí một số câu hỏi còn đan xen nhau. Tôi đã vượt qua bài kiểm tra thành công và họ bắt đầu phỏng vấn tôi. Có lẽ tôi sẽ không bao giờ quên cuộc phỏng vấn này trong đời. Tất cả những gì người phỏng vấn tôi muốn nghe từ tôi là những điều cơ bản về lý thuyết Java, chẳng hạn như:
  • sự khác biệt giữa các trường hợp ngoại lệ được kiểm tra và không được kiểm tra là gì;
  • lớp Object có những phương thức nào và tại sao chúng lại cần thiết;
  • có những loại bộ sưu tập nào và tại sao chúng lại ở đó;
  • và một chút về đa luồng.
JavaRush là một khóa học tuyệt vời, nó sẽ dạy bạn cách giải quyết vấn đề và lập trình, nhưng lý thuyết (để phỏng vấn) cần phải được học riêng, vì tôi đã bị thuyết phục khi bơi trong những vấn đề này giống như một con cá trong bể cá. Họ muốn quấn tôi lại. Tôi hiểu anh ấy - tôi không thể trả lời rõ ràng hầu hết mọi thứ, tôi cố gắng kể mọi thứ từ quan điểm viết mã, nhưng anh ấy lại quan tâm đến lý thuyết. Nhưng tôi biết chắc chắn rằng tôi thực sự muốn tham gia khóa thực tập này, và tôi biết rằng nếu họ cho tôi thời gian, tôi sẽ bắt kịp tất cả những điều này và học được lý thuyết đáng tiếc. Tôi đã nói với anh ấy tất cả những điều này, và anh ấy đã gặp tôi nửa chừng - anh ấy đề nghị gặp lại sau một tuần nữa, nhưng hiện tại anh ấy đưa cho tôi một danh sách các chủ đề (đại khái như tôi đã mô tả ở trên) và cho biết chúng có thể học ở đâu - chỉ là một hướng dẫn về Oracle , nó chứa tất cả: http://docs.oracle.com/javase/tutorial/ Trong suốt một tuần, tôi đã nghiên cứu kỹ hướng dẫn này và đi phỏng vấn lần thứ hai vào đêm trước ngày mà tôi dự kiến ​​sẽ công việc mới. Rõ ràng, người phỏng vấn tôi ấn tượng nhất với ý thức về mục đích của tôi (tôi biết rằng nếu tôi chấp nhận công việc thực tập này, những gì xảy ra tiếp theo chỉ phụ thuộc vào tôi - trong hai tháng tôi sẽ tìm ra mọi thứ tôi cần). Dù vậy, tôi đã chấp nhận công việc thực tập này và từ chối đến làm việc ở nơi mà trước đây tôi đã được mời. Trong suốt 2 tháng, chúng tôi đã được giới thiệu nhiều chủ đề từ Java EE, chẳng hạn như: Servlets, JSP, Hibernate JSF, Spring và nhiều chủ đề khác - dựa trên kết quả thực tập, chúng tôi đã quen thuộc (chúng tôi đã có một khoảng thời gian khó khăn). ý tưởng) về ngăn xếp chính Công nghệ Java EE. Ngoài ra, trong thời gian thực tập, chúng tôi đã viết dự án của riêng mình, dự án này cuối cùng phải được trình bày thành công để xin việc. Tôi chỉ còn nhớ cảm giác đầu tiên của mình khi đến buổi giảng đầu tiên. Tôi đã xem bài tập của dự án này (nó được giao ngay trong bài giảng đầu tiên) và thậm chí không hiểu bắt đầu từ đâu và làm như thế nào. Tôi cũng nhớ những gì tôi đã làm để làm điều đó thành công. Hai tháng này, hầu như tất cả những suy nghĩ trong đầu tôi đều là công việc thành công và việc thực hiện ước mơ đều nằm trong tay tôi chứ không còn gì nữa. Việc tôi có thể làm được điều đó không phụ thuộc vào ai khác. Chỉ từ tôi thôi. Tôi đã nghỉ việc, gần như không còn tiền và điều đó thực sự khó khăn. Tôi ngồi buổi sáng, ngồi ban ngày, ngồi buổi tối, nhưng không bao giờ chán vui mừng - tôi không nhớ mình đã cống hiến hết mình cho một việc gì đó với nỗi ám ảnh như vậy. Lần này một lần nữa giúp tôi nhận ra mình yêu thích lập trình đến mức nào và muốn làm việc trong lĩnh vực này đến mức nào. Khi tốt nghiệp tôi đã trình bày dự án của mình. Tôi đã bảo vệ nó rất tốt, rõ ràng là tốt hơn nhiều so với mong đợi, và như một ngoại lệ, tôi được thuê không phải cho vị trí ban đầu mà ngay lập tức cho vị trí Nhà phát triển Java cấp trung. Đó là ngày 9 tháng 12 năm 2014. Tôi không thể tin được nhưng lời mời làm việc đang hiện ra trước mắt tôi trên màn hình. Kỹ sư phần mềm. Điều này đã xảy ra. Tôi đã trở lại làm việc vào ngày 15 tháng 12. Chưa bao giờ tôi có suy nghĩ “chết tiệt, mình không muốn đi làm”. Mỗi ngày, khi rời nhà vào buổi sáng, tôi biết tại sao mình phải đi làm, mình sẽ làm gì và mình muốn điều đó đến mức nào. Điều này khiến tôi vô cùng hạnh phúc. Nó xứng đáng và xứng đáng với cái giá bạn phải trả để đạt được ước mơ của mình. Tôi chúc tất cả các bạn, những người thực sự muốn trở thành lập trình viên, hãy tiếp tục đạt được mục tiêu của mình. Nó còn hơn cả thực tế, nó rất gần, nhưng bạn phải trả giá cho nó. Phải trả giá bằng sự lãng phí thời gian và thần kinh của bạn, bởi vì học một thứ gì đó từ đầu thực sự không phải là điều tốt nhất bước nhẹ. JavaRush đã giúp tôi thực hiện những bước đầu tiên này một cách dễ dàng và tôi không phải là người từ bỏ việc lập trình ngay từ đầu vì sự phức tạp rõ ràng và sự phong phú của lý thuyết. Như vậy là tôi đã có thể hoàn thành ý tưởng khá điên rồ của mình là thay đổi hoàn toàn diện tích Hoạt động chuyên môn(ngay cả khi không được đào tạo về kỹ thuật) đến cùng. Và bạn chắc chắn có thể.

Chúng tôi đã từng truy cập nhanh với thông tin và khả năng tiếp thu thông tin cũng nhanh chóng không kém. Chúng tôi thích những video dài 5 phút hơn là những bài giảng sâu sắc và những bài viết ngắn hơn là sách. Tôi sẽ không nói điều đó cuốn sách hay về lập trình sẽ thay thế bất kỳ bài viết nào, điều này không phải vậy. Và nó chắc chắn sẽ không thay thế được việc luyện tập. Tuy nhiên, đối với cá nhân tôi, sự hiểu biết thực sự về những điều cơ bản của lập trình đến sau khi tôi giải được hàng trăm vấn đề trong một khóa học lập trình và đọc rất nhiều bài báo, bắt đầu đồng thời nghiên cứu lý thuyết từ sách và nghiên cứu kỹ về chúng. Tôi đã tìm kiếm “hướng dẫn Java tốt nhất cho người mới bắt đầu” của cá nhân mình được một thời gian. Dưới đây là một số cuốn sách hữu ích với tôi ở mức độ ít nhiều ở các giai đoạn nghiên cứu khác nhau. "Dành cho các bạn nhỏ" Bạn có thể bắt đầu đọc hai cuốn sách tiếp theo khi bắt đầu học, song song với video hoặc nếu bạn học bằng JavaRush, cùng với các cấp độ đầu tiên. Chúng, đặc biệt là cái đầu tiên, phù hợp với những người không có nền tảng lập trình.

Đầu Java đầu tiên

Tôi bắt đầu với cuốn sách này không phải vì nó là cuốn sách tôi yêu thích mà vì nó đơn giản nhất. Cuốn sách này, theo nhiều lập trình viên, là hướng dẫn tốt nhất Java từ đầu. Hơn nữa, nó thực sự và hoàn toàn “từ đầu”, tức là nó phù hợp cho những người mới bắt đầu và chưa hiểu rõ về lập trình quái thú là gì. Cô ấy đến với tôi quá muộn. Tôi nghĩ đó là lý do tại sao tôi không thể đánh giá cao nó. “Chỉ đọc” nó thôi cũng thấy thú vị rồi, nhưng tôi đã phải tìm kiếm điều gì đó cụ thể trong đó rất lâu. Tài liệu ở đó được trình bày một cách sống động nhưng khá hời hợt (vì nó là từ đầu!) và nhiều chủ đề cũng như những lời giải thích cần thiết đơn giản là không có ở đó. Nhưng bạn tôi, người được thừa kế nó, rất vui mừng với nó và hét lên rằng đây không chỉ là cuốn sách giáo khoa Java tốt nhất dành cho người mới bắt đầu mà còn là một kiệt tác trong thế giới thực và đây là cách trình bày tài liệu phức tạp. Thuận lợi: Sai sót:
  • Rất nhiều “nước” cho những ai đã vào chủ đề rồi;
  • Không phải lúc nào các câu đố và bài tập cũng thành công.

Herbert Shildt. Hướng dẫn cho người mới bắt đầu Java 8

Sau khi xem qua cuốn sách giáo khoa này, tôi nghĩ rằng nó sẽ rất phù hợp cho những ai thích cách trình bày tài liệu theo cách truyền thống hơn trong Headfirst, nhưng cũng đang tìm kiếm một hướng dẫn từ đầu. Ở một số chỗ, cách trình bày trong cuốn sách rất chi tiết, gợi nhớ đến tài liệu được mở rộng và dịch thuật tốt. ví dụ rõ ràng. Đối với tôi, đôi khi, tác giả vượt quá giới hạn và bắt đầu nhai quá nhiều, việc đọc trở nên nhàm chán... và đột nhiên - lộn nhào - và gần như ngay lập tức bỏ sót một chỗ khá phức tạp nào đó, và bạn hoàn toàn bối rối khi cố gắng hiểu cái gì và ở đâu. bạn đã bỏ lỡ. Tuy nhiên, không có quá nhiều đoạn như vậy trong cuốn sách và tôi biết có người tin rằng Hướng dẫn cho người mới bắt đầu là hướng dẫn Java tốt nhất cho những người chưa biết gì. Cá nhân mình thấy nó không mượt lắm. Giả sử tôi bắt đầu sắp xếp các bộ sưu tập và thay vì lời giải thích của con người, họ giao cho tôi một nhiệm vụ về tự sáng tạoĐặt dựa trên mảng. Vấn đề thú vị, nhưng trước tiên tôi muốn hiểu rõ hơn bộ sưu tập tiêu chuẩn là gì! Mặc dù cuốn sách này, giống như cuốn trước, được coi là sách giáo khoa dành cho người mới bắt đầu, nhưng kinh nghiệm dạy học của tôi cho thấy rằng nó chỉ tốt khi kết hợp với các tài liệu khác: không phải mọi thứ sẽ đơn giản và dễ hiểu đối với một sinh viên ngành nhân văn. “Hướng dẫn dành cho người mới bắt đầu” phù hợp nhất với những người ít nhất đã học lập trình (ví dụ: ở trường đại học), đã từ bỏ nó từ lâu và đồng thời thích phong cách trình bày của tác giả. Thuận lợi:
  • Trình bày chu đáo truyền thống về những điều cơ bản;
  • Những ví dụ tốt.
Sai sót:
  • Có những “bước nhảy vọt” từ “quá dai” đến “nói nhanh”;
  • Có chỗ hơi chán.
Nhân tiện, Herbert Schildt có một cuốn sách nổi tiếng khác về lập trình - “Java 8. Hướng dẫn đầy đủ" Đây là một cuốn sách giáo khoa hoàn toàn khác, cơ bản hơn. Hãy chuyển sang nó. Tài liệu tham khảo và hướng dẫn nâng cao Những cuốn sách trong phần này sẽ hữu ích cho những ai đã tham gia đầy đủ và đang tìm kiếm những cuốn sách để hiểu rõ hơn về lý thuyết và thực hành.

Herbert Shildt "Java 8. Hướng dẫn đầy đủ"

Tôi quyết định tải cuốn sách này xuống từ Internet để đánh giá nó và sau đó có nên mua hay không. Không đùa đâu, 1300 trang văn bản! Vâng, giá không kém phần ấn tượng so với khối lượng. Tôi đã làm chính xác điều tương tự với cuốn “Thư viện chuyên nghiệp” gồm hai tập của Kay Horstmann (xem thêm về nó bên dưới). Nhìn về phía trước, tôi sẽ nói rằng tôi đã chọn cái thứ hai. Tại sao? Bởi vì trong cuốn sách “Java. Hướng dẫn đầy đủ" Tôi thấy những thiếu sót tương tự như trong "Hướng dẫn cho người mới bắt đầu". Đôi khi nó bị nhai, đôi khi nó bị vò nát, nhưng đồng thời nó không chỉ bị nhàu nát mà còn bị vò nát một cách khó hiểu. Đây có lẽ là phong cách của tác giả và tôi nghĩ ai đó sẽ thích nó, hay nói đúng hơn là cách suy nghĩ của họ. Nhìn chung, Java 8: The Complete Guide là một tài liệu tham khảo tốt về Java. Nhưng cá nhân tôi thích cách trình bày những chủ đề tương tự trong một cuốn sách khác hơn. Thuận lợi:
  • Hướng dẫn đầy đủ. Dường như nó có tất cả các chủ đề mà một người mới bắt đầu cần biết chứ không chỉ một người mới bắt đầu.
  • Giải thích chi tiết.
Sai sót:
  • Rất nhiều nước (nhưng một số người có thể thích điều đó!);
  • Bản dịch tiếng Nga không phải là tốt nhất.

Java. Thư viện chuyên nghiệp, Kay S. Horstmann, Gary Cornell

Sách của Schildt và Horstmann thường được so sánh với nhau. Cả hai đều có những người hâm mộ trung thành. Đối với tôi, cuốn sách hai tập của Horstmann là cuốn sách giáo khoa hay nhất về Java. Nó cũng trở thành một cuốn sách tham khảo cho tôi ở trình độ JavaRush mới bắt đầu và trung cấp. Khi tôi không hiểu một chủ đề, tôi chủ yếu quay sang Horstmann và anh ấy đã làm rõ rất nhiều điều. Cuốn sách bao gồm mọi thứ từ cú pháp đến lập trình đa luồng, bản địa hóa ứng dụng và làm việc với XML. Và đừng để cái tên “Thư viện chuyên nghiệp” làm bạn sợ hãi (đó là điều khiến tôi sợ hãi), những điều cơ bản được trình bày khá đầy đủ. Ngoài ra, việc đọc lại định kỳ để làm mới và sắp xếp kiến ​​​​thức của bạn cũng rất hữu ích. Họ nói rằng ngay cả những người chuyên nghiệp cũng tìm thấy thứ gì đó hữu ích cho mình trong đó... Tôi không biết. Nếu tôi trở thành một người chuyên nghiệp, tôi sẽ nói với bạn! Thuận lợi:
  • Với số lượng trang ấn tượng, lại có ít nước (không giống như Schildt).
  • Chứa mọi thứ mà người mới bắt đầu cần.
  • Tiết lộ Java 8.
  • Trình bày tốt các chủ đề về bộ sưu tập và thuốc generic.
  • Kết hợp rất tốt với JavaRush. Đi vào chủ đề, giải quyết vấn đề, đến một lúc nào đó bạn không hiểu điều gì đó - hãy xem Horstmann, thử lại.
Sai sót:
  • Một số người có thể thấy cuốn sách hơi khô khan;
  • Không thực hành;
  • Bản dịch tiếng Nga có nhiều sai sót.

"Java" Phương pháp lập trình”. Blinov, Romanchik

Tôi từng đọc trên một diễn đàn rằng có một cuốn sách tên là “Lập trình công nghiệp” và nó có một số vấn đề hay. Hóa ra họ không nói dối. Tôi đã tìm thấy bản sao của nó ở dạng PDF trên trang web EPAM của Belarus. Ấn phẩm ở đó không phải là ấn phẩm mới nhất (trên Java 6), nhưng cuốn sách được viết như một cuốn sách giáo khoa đại học vững chắc, nghĩa là, ở những chỗ cách trình bày có phần đáng suy ngẫm và hàn lâm. NHƯNG! Thực sự có rất nhiều bộ sưu tập tốt Các tác vụ lập trình Java cũng như nhiệm vụ kiểm tra. Họ nói rằng các học viên EPAM học từ cuốn sách này và nhiều khóa học Java ngoại tuyến cũng đã áp dụng nó.

Cách tiếp cận các nhiệm vụ ở đó hơi khác một chút so với JavaRush, tức là, nhìn chung, các nhiệm vụ ở đây phức tạp hơn một chút và mỗi nhiệm vụ trong số đó giống như... không phải một dự án nhỏ mà là một dự án vi mô. Vì vậy, tôi khuyên dùng JavaRush ngay cả với sinh viên, vì tôi nghĩ nhược điểm về mặt thực tế của khóa học là tất cả các nhiệm vụ trong đó đã được thiết kế hoàn chỉnh và có quá nhiều mẹo. Giả sử, các bài toán OOP từ bộ sưu tập này đã giúp tôi hiểu rất rõ về OOP này, cùng với những cuốn sách về “kinh điển vượt thời gian” mà tôi viết dưới đây. Cuốn sách được viết như thể dành cho những “tay chèo” tương lai, do đó nó mô tả các công nghệ Hibernate để phát triển hệ thống phân tán, cũng như Khái niệm cơ bản về HTML, XML, JavaScript. "Lập trình công nghiệp" - nếu không phải là hướng dẫn Java hay nhất thì rất hay hướng dẫn. Nhưng bạn cần phải đến đó đã chuẩn bị sẵn sàng. Giả sử sau hàng tá hoặc hai cấp độ JavaRush. Sau này tôi phát hiện ra phiên bản mới hơn và được sửa đổi của nó, có tên là “Java. Phương pháp lập trình."

Thuận lợi:
  • Lựa chọn tốt các vấn đề và mục kiểm tra;
  • Có một quan chức phiên bản miễn phí(Tôi tin rằng nó là chính thức, vì nó không có trên một số trình theo dõi gốc nào đó mà trên trang web EPAM);
  • So sánh với C++.
  • Một cơ hội để hiểu những gì diễn ra trong quá trình thực tập EPAM.
Sai sót:
  • Trình bày quá cơ bản. Nhưng để lặp lại với thực hành, nó sẽ phù hợp.
  • Không có Java 8.
Cổ điển vượt thời gian Những cuốn sách mà tôi viết dưới đây có thể được gọi là văn bản thiêng liêng dành cho người mới bắt đầu và “javistes” nâng cao.

Java hiệu quả, Joshua Bloch

Nó chỉ là một kho báu, không phải một cuốn sách, và nó được dành riêng cho nguyên tắc cơ bản ngôn ngữ từ một trong những tác giả của nó Joshua Bloch. Rất có thể, bạn đã sử dụng các thư viện của nó (ví dụ: trong Bộ sưu tập Java). Hãy để tôi đặt chỗ ngay: dành cho người mới bắt đầu hoàn chỉnh, ngoại trừ một số thần đồng học tốc độ, cuốn sách Java hiệu quả là không cần thiết. Đầu tiên, tốt hơn là bạn nên nắm vững cú pháp và thực hành ít nhất một số thực hành lập trình, có thể nói là “hiểu rõ” và sau đó bắt tay vào sáng tạo của Joshua Bloch. Cuốn sách sẽ hữu ích cho những ai muốn thực sự hiểu Java, phát triển cách tiếp cận đúng đắn Khi lập trình bằng ngôn ngữ này, bạn không chỉ hiểu cách thực hiện mà còn mọi thứ khác bạn cần thực hiện chính xác theo cách đó. Và còn dành cho những ai muốn tìm hiểu sâu về OOP (về nguyên tắc đây là những thứ liên quan đến nhau). Cuốn sách này là cuốn sách giáo khoa tốt nhất về Java trong bối cảnh tiếp cận lập trình hướng đối tượng. Thuận lợi
  • Một bài trình bày tài liệu xuất sắc về chủ đề OOP.
  • Được cho thực tiễn tốt nhất lập trình.
  • Tác giả biết rất rõ về Java từ bên trong.
sai sót
  • Chưa có bản dịch nào của ấn bản mới nhất của cuốn sách (ấn bản thứ ba).

Triết học Java, Bruce Eckel

Tiêu đề của cuốn sách này đã nói lên điều đó. Đây là một “alpha và omega” khác dành cho tất cả những ai muốn biết về Java! Trong cuốn sách này, bạn sẽ tìm thấy những ví dụ hay và rõ ràng, từ đó bạn sẽ hiểu rõ Java hoạt động như thế nào. Thật khó để tôi có thể nói cuốn nào trong hai cuốn này là "Triết học Java" hay " Lập trình hiệu quả" - tốt hơn. Tôi có thể nói rằng Eckel thân thiện hơn với người mới bắt đầu, trong khi Bloch yêu cầu một số kinh nghiệm. Lần đầu tiên tôi đọc chương “Triết học Java” khi tôi mới bắt đầu học JavaRush (tôi nghĩ rằng nó đã được liệt kê như được khuyến nghị ở một trong những cấp độ đầu tiên). Thế thì cô ấy không hợp với tôi. Nhưng sau cấp 10 hoặc 12 - đó là một bài hát! Và tôi sẽ nói, một bài hát rất hữu ích. Tôi quay lại nó sau khi đến với Lập trình hiệu quả. Tôi sẽ nói điều này: hãy để Bloch và Eckel nói về cùng một điều, nhưng theo những cách khác nhau và đưa ra những ví dụ khác nhau. Thuận lợi
  • Trình bày chuyên sâu về các nguyên tắc Java từ một chuyên gia;
  • Nó sẽ tốt cho những người đang chuyển đổi từ các ngôn ngữ khác - chẳng hạn như có nhiều so sánh với C++.
  • Đối với tôi, có vẻ như bạn có thể bắt đầu đọc nó ở cấp 10, nhưng Eckel - muộn hơn một chút.
sai sót
  • Những bản dịch tiếng Nga rất không thành công;
  • Thiếu ấn bản mới của cuốn sách bằng tiếng Nga.

Kết luận ngắn gọn

  1. Hướng dẫn Java từ đầu tốt nhất dành cho những người chưa biết gì - Head First Java;
  2. Sách giáo khoa và sách tham khảo Java tốt nhất là “Thư viện chuyên nghiệp”. Và tất nhiên là tài liệu của Oracle.
  3. Bộ sưu tập các tác vụ lập trình Java tốt nhất - JavaRush. Chà, trong số những cuốn sách - “Java. Phương pháp lập trình”.
  4. Những tác phẩm kinh điển vượt thời gian hay nhất là “Triết lý Java” và “Java hiệu quả”. Đây là cuốn sách phải đọc dành cho tất cả những ai quyết định tìm hiểu mọi thứ một cách thực sự, để hiểu sâu sắc. Nhưng tốt hơn là nên đọc chúng dần dần và theo thứ tự.
  5. Kết luận bổ sung: có cơ hội - đọc bằng tiếng Anh. Bản dịch tiếng Nga nói chung là rất yếu.

Tôi đã lập trình Java được 7 năm rồi. Nhưng trong công việc chúng ta thường phải đào tạo một thế hệ mới. Về vấn đề này, tôi quyết định tạo một số bảng cheat, tôi hy vọng nó sẽ hữu ích cho cư dân Khabr. Nếu ai đó có thể giúp bổ sung thông tin từ bài viết này bằng điều gì đó thì hãy viết! Vì thế:

Các tài nguyên cần thiết cho đào tạo ban đầu

  • www.javable.com - một trang web có các bài viết và hướng dẫn về Java. Mọi thứ chủ yếu bằng tiếng Nga.
  • www.exampledepot.com - rất tài nguyên hữu ích, nơi thu thập các ví dụ ngắn gọn về cách sử dụng các lớp cho các gói nhất định
  • java.sun.com - bạn không thể làm gì nếu không có nguồn gốc. Đối với bất kỳ lập trình viên Java nào, JavaDoc phải là sự thật cuối cùng. Bạn cũng có thể tìm thấy một loạt hướng dẫn về tất cả các chủ đề có thể có tại đây.

Các gói Java cơ bản

Dưới đây là danh sách các gói Java mà một lập trình viên có thể sử dụng thoải mái. Bạn nên làm quen với cả hai thông qua JavaDocs và sử dụng www.exampledepot.com. Tất cả các gói được sắp xếp theo thứ tự được khuyến nghị để nghiên cứu.
  1. java.lang là nền tảng của những điều cơ bản. Mỗi lớp trong gói này cần được chú ý riêng.
  2. java.io - không chương trình nào có thể thực hiện được nếu không có thao tác I/O.
  3. java.util - gói về cơ bản chứa mọi thứ cần thiết để làm việc với các bộ sưu tập: Bộ sưu tập, Bảng liệt kê, Bộ, Danh sách, Bản đồ, v.v. và như thế.
  4. java.net - chứa các lớp chính để làm việc với mạng.
  5. java.text - mọi thứ bạn cần để định dạng văn bản
  6. java.lang.reflect - Java sẽ không phải là Java nếu không có Reflection làm mờ ranh giới giữa dữ liệu và mã.
  7. javax.sql - mọi thứ bạn cần để làm việc với cơ sở dữ liệu
  8. javax.xml.* , org.w3c.dom.* , org.xml.sax.* - không có các gói này, làm việc với XML đơn giản là không thể tưởng tượng được

Nguồn lực để mở rộng tầm nhìn của bạn

  • onjava.com - sớm hay muộn tất cả tin tức từ thế giới Java đều kết thúc ở đây
  • www.javaspecialists.eu - tài nguyên này hữu ích cho cả người mới bắt đầu và lập trình viên nâng cao vì nó chứa nhiều bài viết về sự phức tạp khi làm việc với Java.
  • www.theserverside.com - bạn nên đăng ký RSS vì những điều rất thú vị về Java thường xuất hiện.

Thư viện Java mọi người nên biết

Java không chỉ dừng lại ở việc biết JSDK có thể làm gì. Để cảm thấy thoải mái, bạn cần biết thêm về hàng tá thư viện bên thứ ba được sử dụng Lập trình viên Java mọi nơi. Vì vậy, hãy bắt đầu với những cái chính:
  • Commons Lang - những gì họ “quên” đưa vào JDK
  • Toán học chung - sự bổ sung tuyệt vời cho java.math
  • Ghi nhật ký Commons - ghi nhật ký phải có năng lực. Để System.out.println xuất nhật ký, các lập trình viên mới vào nghề nên cắt tay chỉ sau một tuần đào tạo.