JavaRush /Blog Java /Random-VI /Bạn cần biết những gì để trở thành Java Junior và phải là...

Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?

Xuất bản trong nhóm
Yêu cầu đối với các nhà phát triển Java tiềm năng liên tục thay đổi và khó theo kịp. Chỉ cần biết Java Core để trở thành Thực tập sinh có đủ không? Bạn cần hiểu Spring và Hibernate đến mức nào để có được vị trí Java Junior? Có đáng để học cơ sở dữ liệu và hiểu các thuật toán sắp xếp và tìm kiếm không? Và vì các sinh viên JavaRush thường quan tâm đến những câu hỏi này nên chúng tôi quyết định hỏi những sinh viên tốt nghiệp của chúng tôi, những người đang làm việc với tư cách là Java Juniors hoặc đang thực tập tại các công ty với tư cách là Học viên Java. Lưu ý rằng 13% số người được hỏi đã may mắn có được vị trí Java Middle trong lần thử sức đầu tiên, vượt qua giai đoạn Junior. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 1Những người trả lời đã chia sẻ thông tin về những công nghệ họ cần để vượt qua cuộc phỏng vấn và những công nghệ nào họ đã sử dụng trong năm đầu tiên làm công việc Java đầu tiên.

Mọi người đều cần Java Core

Thuật ngữ Java Core khá rộng. Tên này đề cập đến cả cú pháp cơ bản của ngôn ngữ và một chủ đề phức tạp như đa luồng. Trên thực tế, khóa học JavaRush chủ yếu dành cho Core. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 2Cú pháp Java. Khái niệm cơ bản về ngôn ngữ. Tất cả các kiểu dữ liệu, toán tử, vòng lặp và nhánh này. Đương nhiên, 92,4% những người được tuyển dụng đánh giá kiến ​​thức về cú pháp của họ là “tốt hoặc xuất sắc”. Tuy nhiên, 7,6% số người được hỏi đã trở thành Học viên Java với kiến ​​thức cú pháp trung bình. Tuy nhiên, điều này nên được đánh giá nhiều hơn là sự may mắn (hoặc sự khoe khoang của người được hỏi :)). Tất nhiên, tất cả những người nộp đơn xin việc làm lập trình viên đều phải biết cú pháp của ngôn ngữ. Lập trình hướng đối tượng (OOP). Mọi thứ trong Java đều được tạo thành từ các đối tượng, vì vậy OOP có thể được coi là một trong những chủ đề quan trọng nhất của ngôn ngữ. Cách tiếp cận hướng đối tượng ban đầu có vẻ xa lạ, đặc biệt nếu trước đây bạn chỉ học các ngôn ngữ thủ tục nhưng không khó để chuyển sang đối tượng. Khó khăn lớn nhất đối với người mới bắt đầu là mức độ trừu tượng và phân phối độc lập của chúng - một lập trình viên mới làm quen phải có khả năng tạo chính xác hệ thống phân cấp các đối tượng, hiểu giao diện sẽ chịu trách nhiệm gì và những gì có thể được đưa vào lớp trừu tượng, tạo sự kế thừa thang, vân vân. Như thường lệ, khó khăn này được giải quyết bằng thực hành. Phần lớn những người được hỏi, 80,3% những người mới có công việc đầu tiên đều biết rõ các nguyên tắc OOP và sử dụng chúng thường xuyên. Trong năm đầu tiên làm Java Juniors và thực tập sinh, 78,8% số người được hỏi sử dụng các nguyên tắc OOP rất thường xuyên, 12,1% - thỉnh thoảng. 7,6% người nghe hiếm khi sử dụng chúng - những người này chủ yếu bận rộn với việc kiểm tra đơn vị và các nhiệm vụ nhỏ khác nhau. Tất nhiên, đó là họ cũng sử dụng các lớp hoặc đối tượng (bạn không thể làm gì nếu không có điều này trong Java), nhưng hiếm khi tạo ra hệ thống phân cấp lớp. Khung bộ sưu tập. Một bộ sưu tập là một tập hợp các đối tượng riêng lẻ được trình bày dưới dạng tổng thể. Java có Khung sưu tập rất thông minh để thể hiện các bộ sưu tập. Các bộ sưu tập dựa trên các cấu trúc dữ liệu phổ biến - danh sách, thông thường và được kết nối, tập hợp, bảng băm. Vì vậy, khi khám phá các bộ sưu tập, bạn nên làm quen hơn với cấu trúc dữ liệu. Khó khăn chính trong việc nghiên cứu các bộ sưu tập là hiểu và ghi nhớ cách chúng hoạt động. Nếu bạn hiểu cách họ truy cập một phần tử, trích xuất nó từ bộ sưu tập và thêm nó vào đó, thì bạn bắt đầu hiểu nơi áp dụng cấu trúc này hoặc cấu trúc kia. Nó đi kèm với thực hành. Nhưng may mắn thay, không phải tất cả số lượng lớn các bộ sưu tập đều được sử dụng tích cực trong công việc thực tế. 80,3% số người được hỏi cho biết họ có kiến ​​thức tốt hoặc thậm chí xuất sắc về các bộ sưu tập trước khi nhận được lời mời làm việc đầu tiên và gần như tất cả 96,9% Sinh viên năm cuối và thực tập sinh đều sử dụng các bộ sưu tập trong công việc đầu tiên của họ. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 3Xử lý ngoại lệ.Ngoại lệ là một tình huống bất thường có thể xảy ra khi thực hiện chương trình của bạn. Tất cả các lớp ngoại lệ đều là kiểu con của lớp java.lang.Exception. Cơ chế xử lý ngoại lệ giúp đơn giản hóa rất nhiều quá trình tìm lỗi trong chương trình. Thông thường, sinh viên bắt đầu sử dụng các ngoại lệ khá sớm, chẳng hạn như trong JavaRush. Trong JavaRush, chủ đề này được nêu ra trong nhiệm vụ Cú pháp Java đầu tiên. Hầu như tất cả sinh viên tốt nghiệp JavaRush có công việc đầu tiên đều biết cách xử lý các trường hợp ngoại lệ và tất nhiên là sử dụng chúng khi làm việc. Luồng I/O Java. Những chương trình đầu tiên được viết bằng Java thường chứa những thứ như System.out.println(“Xin chào thế giới”). Thông thường, những người mới hiểu rằng phương thức println sẽ in một dòng ra bàn điều khiển, nhưng không biết tại sao Hệ thống và bên ngoài lại ở đó và chúng hoạt động như thế nào. Một lát sau, hóa ra Java thực hiện các thao tác đầu vào và đầu ra bằng cách sử dụng các luồng, một luồng dữ liệu liên tục. Các luồng không phải là chủ đề dễ hiểu nhất và nó không được sử dụng thường xuyên trong các công việc dành cho người mới: chỉ 22,7% những người nhận được công việc Java Junior/Trainee đầu tiên cho biết họ sử dụng các luồng I/O rất nhiều, 31,8% - theo thời gian thời gian, 25,8% - hiếm khi. Vì vậy, chỉ dưới 20% hoàn toàn không sử dụng chúng trong năm đầu tiên làm nhà phát triển Java. Trong quá trình nghiên cứu, 18,2% không gặp bất kỳ khó khăn đặc biệt nào với dòng chảy và biết rõ về chúng, 36,4% đánh giá kiến ​​thức của họ là tốt, nhưng 10,6% bỏ qua chủ đề này. Đa luồng (Đa luồng/Đồng thời Java). Có lẽ đây là chủ đề gây ra sự hiểu lầm lớn nhất đối với những nhà phát triển mới vào nghề. Mặc dù đa luồng trong Java được triển khai rất tốt nhưng nó vẫn khó hiểu và các vấn đề có thể phát sinh ngay cả khi viết các chương trình đơn giản (ví dụ: đa luồng “Hello, world”). Nhiều nhà tuyển dụng hiểu điều này và không yêu cầu người mới bắt đầu phải hiểu sâu về đa luồng mà mong rằng nó sẽ đi kèm với kinh nghiệm. Chỉ 12% số người được hỏi lưu ý rằng họ biết chủ đề này ở mức độ tốt trước khi nhận được lời đề nghị đầu tiên, trong khi gần 32% số người được hỏi thừa nhận rằng họ hoàn toàn không biết gì về chủ đề này. Phần lớn, 56,2%, cho biết họ “có hiểu biết nhất định” về đa luồng. Vì vậy, nếu bây giờ những khó khăn khi làm việc với các luồng dường như không thể vượt qua đối với bạn, thì những con số này có thể khiến bạn yên tâm. Tuy nhiên, nếu bạn muốn đạt được lợi thế cạnh tranh trong cuộc phỏng vấn, chủ đề này có thể là điểm mạnh của bạn. Trong các dự án thực tế, người mới bắt đầu cũng hiếm khi được phép làm việc với các luồng. Do đó, 15,1% lập trình viên mới vào nghề chưa hề gặp phải Java Multithreading trong công việc của họ và 39,4% đã gặp phải nó, nhưng rất hiếm. Thường trong năm đầu tiên đi làm chỉ có 9,1% số người được hỏi phải làm việc với đa luồng. Biểu thức Lambda.Các biểu thức Lambda và gợi ý về lập trình hàm đã xuất hiện trong Java 8, nhưng những người mới sử dụng không thường xuyên sử dụng công cụ tiện dụng này. Biểu thức lambda là một hàm có thể được tạo mà không thuộc bất kỳ lớp nào và bạn có thể chuyển nó dưới dạng đối tượng hoặc thực thi nó theo yêu cầu. Chỉ 22,7% sinh viên tốt nghiệp được khảo sát biết rõ các biểu thức của Lambda trước khi nhận được lời mời làm việc đầu tiên và 48,5% đánh giá kiến ​​thức của họ về chủ đề này là “gần bằng 0”. Đồng thời, hơn 85% lập trình viên mới cho biết họ đã sử dụng biểu thức lambda trong năm đầu tiên. Công bằng mà nói, chúng tôi chỉ ra rằng tỷ lệ phần trăm thấp những người biết chủ đề này có thể là do trong JavaRush, các biểu thức lambda cho đến nay chỉ được trình bày trong các bài viết và nhiệm vụ Java Syntax Pro mới . Vì vậy, chúng ta có thể nói một cách an toàn rằng kiến ​​thức về Core Java đối với bất kỳ Java Junior tiềm năng nào và thậm chí cả Thực tập sinh đều đơn giản là cần thiết. Tất nhiên, một số chủ đề, chẳng hạn như đa luồng, có thể được chấp nhận nếu bạn biết ít hơn một chút, nhưng cú pháp Java, OOP và các bộ sưu tập phải ăn sâu vào ý thức của bạn.

Thuật toán và cấu trúc dữ liệu

Có sự tranh luận liên tục về việc nghiên cứu các thuật toán sắp xếp và tìm kiếm. Một mặt, các thuật toán tốt nhất từ ​​lâu đã được viết và đưa vào thư viện của tất cả các ngôn ngữ lập trình phổ biến, bao gồm cả Java. Và chúng có thể được sử dụng hợp pháp mà không gặp rắc rối khi viết mã của riêng bạn. Tuy nhiên, các chuyên gia đào tạo lập trình viên vẫn khuyến nghị mọi nhà phát triển mới vào nghề hãy rèn luyện trí não của mình bằng cách viết tất cả các thuật toán bong bóng, hợp nhất, tìm kiếm nhị phân và những thứ tương tự này. Thứ nhất, các thuật toán này là một loại bài kiểm tra giấy quỳ về kỹ năng của lập trình viên (cụ thể là không phải kiến ​​​​thức mà là kỹ năng) và sự hiểu biết của một người về nguyên tắc lập trình. Nếu bộ não của bạn đã sẵn sàng làm quen với loại công việc này, bạn sẽ viết các thuật toán tương đối dễ dàng. Chưa hết, bạn nên nhớ: bạn cần các thuật toán chính xác để rèn luyện trí não của mình... và để vượt qua một cuộc phỏng vấn: những nhà phát triển Cấp cao ăn mòn thực hiện chúng rất thích hành hạ ứng viên bằng những yêu cầu viết thuật toán này hoặc thuật toán kia. Nhưng trong công việc của họ, phần lớn (48,5%) sử dụng các thuật toán thư viện tiêu chuẩn, hiệu quả và đã được chứng minh, trong khi 16% số người được hỏi hoàn toàn không sử dụng tính năng sắp xếp trong năm đầu tiên làm lập trình viên. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 469,6% sinh viên tốt nghiệp khẳng định rằng trước khi nhận được lời mời làm việc đầu tiên, họ đã hiểu rõ về các thuật toán sắp xếp, tìm kiếm và có thể tự viết chúng. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 5Chúng ta đã đề cập đến chủ đề cấu trúc dữ liệu khi nói về các bộ sưu tập Java. Có, tốt hơn hết là bạn nên hiểu chúng để biết nên áp dụng cấu trúc nào và ở đâu. Tạo cấu trúc dữ liệu của riêng bạn theo hình ảnh của thư viện là một bài tập tuyệt vời giúp bạn hiểu chúng rõ hơn. Ví dụ: bạn có thể thử viết phiên bản ArrayList của riêng mình hoặc đề xuất danh sách liên kết đơn của riêng bạn (LinkedList thông thường trong Java được liên kết đôi). Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 6Trong khi làm việc, các lập trình viên mới vào nghề chủ yếu sử dụng các cấu trúc dữ liệu tiêu chuẩn.Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 7

Kiểm tra đơn vị

Thư viện JUnit chịu trách nhiệm kiểm tra đơn vị trong Java. Trên thực tế, bạn có thể bắt đầu kiểm thử đơn vị gần như ngay khi bắt đầu đào tạo. Ít nhất, khi bạn thực hiện dự án độc lập đầu tiên của mình, dù chỉ là một dự án rất nhỏ, tốt nhất bạn nên thành thạo công cụ này. Viết bài kiểm tra đơn vị không khó lắm, mặc dù có một số vấn đề. Học JUnit sẽ không mất nhiều thời gian nhưng lợi ích khi biết nó là rất lớn. Bạn sẽ có thể kiểm tra mã của chính mình và của người khác bằng các bài kiểm tra. Rất thường xuyên, những người mới được giao nhiệm vụ viết bài kiểm tra đơn vị cho đồng nghiệp, vì vậy điều này có thể hữu ích trực tiếp trong công việc mới của họ. 57,5% số người được hỏi cho biết họ đã sử dụng JUnit trước cuộc phỏng vấn Java thành công đầu tiên và hơn 83% đã sử dụng thử nghiệm đơn vị trong năm đầu tiên.

Thư viện tiện ích, GUI và các thành phần hữu ích

Chúng tôi đã hỏi xem những người tốt nghiệp JavaRush quen thuộc như thế nào với một số công cụ, một số công cụ đã được đề cập trong khóa học của chúng tôi.
  • Servlets là các thành phần phần mềm Java giúp mở rộng khả năng của máy chủ.
  • JDBC là một tiêu chuẩn độc lập với nền tảng dành cho khả năng tương tác giữa các ứng dụng Java và cơ sở dữ liệu. JDBC được triển khai dưới dạng gói java. sql được bao gồm trong Java SE (Phiên bản tiêu chuẩn).
  • log4j là thư viện ghi nhật ký tin nhắn nổi tiếng nhất. Nó cho phép bạn viết các lệnh gọi thư viện bằng mã java và sau đó tùy chỉnh nó một cách linh hoạt mà không cần thay đổi mã đã viết.
  • Jackson/JSON. JSON (Ký hiệu đối tượng JavaScript) là một định dạng trao đổi dữ liệu và tệp tiêu chuẩn mở cực kỳ phổ biến và Jackson là bộ xử lý JSON hiệu suất cao cho Java.
Tất cả những công cụ này đều rất hữu ích và thường được sử dụng trong công việc và hầu hết sinh viên đều không bỏ qua chúng khi chuẩn bị cho buổi phỏng vấn. Điều này đặc biệt đúng với Jackson, điều mà 72,7% ứng viên cho vị trí lập trình viên Java gặp phải, JDBC - thư viện này đã được hơn 78% số người được hỏi thử. Hầu như tất cả mọi người đều sử dụng những công nghệ này trong công việc của họ. Các nhà phát triển Java không thường xuyên gặp GUI. Chúng tôi đã đặt câu hỏi về JavaFX: chỉ 18% số người được hỏi gặp phải công nghệ này tại nơi làm việc. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - số 8Hai phần ba số người được hỏi đã làm việc với các servlet; một số ít người được hỏi đã thử chúng trong quá trình nghiên cứu của họ. Hóa ra là một số lập trình viên Java mới đã gặp phải các dự án như Apache Commons (một bộ thư viện tập trung vào tất cả các khía cạnh của các thành phần Java có thể tái sử dụng) và Guava (một bộ thư viện chung nguồn mở cho Java, chủ yếu được phát triển bởi các kỹ sư của Google).Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 9

Khung

Trước đây không ai mong đợi Java Junior sẽ biết đến Spring hay Hibernate. Nhưng thời thế đã thay đổi, và ngày nay điều này đôi khi được mong đợi ngay cả từ Thực tập sinh. Việc tự học những công nghệ này không hề dễ dàng. Ngay cả khi mọi thứ có vẻ rõ ràng, học sinh thường quên rất nhanh cái gì. Đôi khi ngay cả những ứng dụng được viết độc lập trong Spring cũng không phải là thuốc chữa bách bệnh. Chỉ có công việc tích cực mới có ích. Tuy nhiên, trước khi phỏng vấn thành công, 1/3 số người được hỏi đã làm quen với Spring ở mức độ tốt và 45,5% có hiểu biết trung bình về nó. Tình hình với Spring boot có phần tệ hơn (36,4% hoàn toàn không biết), và gần 44% sinh viên tốt nghiệp JavaRush được khảo sát cho biết họ có kiến ​​thức tốt về Hibernate. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 10Đồng thời, trong khi làm việc, framework Java chính đã được gần 88% lập trình viên mới sử dụng, Spring Boot - 83%, Hibernate - 81%.Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - mười một

Xây dựng các công cụ Tự động hóa và máy chủ ứng dụng

Hầu hết sinh viên tốt nghiệp JavaRush được phỏng vấn đều đã thử làm việc với những người xây dựng dự án. Thông thường nhất đó là Maven (40,9% đã thử nó trong thực tế, 30,3% khác thỉnh thoảng sử dụng nó và 12,1% sử dụng nó liên tục trong quá trình học của họ). Khi làm việc với Maven, tôi gặp phải 72,7% (thường xuyên), 7,6% (đôi khi) và 3% (hiếm khi). Về phần Gradle, tình hình có phần tệ hơn. Chỉ có 22,7% đã thực hành với bộ sưu tập này và hầu hết đều mới dùng thử công nghệ. Gần một nửa số người được hỏi đã sử dụng Gradle trong công việc của họ. Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 12Ant đã mất vị trí từ lâu và điều này được phản ánh qua mức độ phổ biến của nó đối với những sinh viên tốt nghiệp của chúng tôi: chỉ 3% số người được hỏi đã mày mò tìm hiểu về nó. Và 12% số người trả lời câu hỏi đã phải làm việc với anh ấy. Tomcat dẫn đầu trong số các máy chủ ứng dụng; hơn 77% số người được hỏi đã tìm ra điều đó trong quá trình nghiên cứu của họ, 11% dùng thử GlassFish, 12% dùng thử JBoss. Mức độ phổ biến của máy chủ đối với những người đang làm việc có vẻ tương tự nhau. Chỉ 31,8% số người được nhận việc không có kinh nghiệm với Tomcat. Ngoài ra, những sinh viên tốt nghiệp JavaRush, trong năm đầu tiên làm lập trình viên, đã thử các máy chủ như WebSphere, Jetty, Netty, Wildfly, Weblogic.Bạn cần biết những gì để trở thành Java Junior và phải làm gì với tất cả những điều đó?  - 13

Còn gì nữa?

Đại đa số người được hỏi, ngay cả trước khi có được công việc đầu tiên:
  • có hiểu biết về HTML, CSS và JavaScript;
  • làm việc với cơ sở dữ liệu, biết SQL;
  • hầu hết mọi người đều sử dụng Git và GitHub;
  • đã thử làm việc với XML thuần túy.
Tất cả những công nghệ này đều hữu ích cho họ trong công việc tiếp theo. Một lập trình viên Java hoặc bất kỳ ai khác về vấn đề đó theo mặc định phải quen thuộc với tất cả những điều trên. Đó là sự quen biết, không phải là kiến ​​thức sâu sắc. Vì vậy, đôi khi chúng tôi khuyên bạn nên tạm dừng Java và mở rộng tầm nhìn của mình bằng cách nghiên cứu các công nghệ này. Ngoài ra, một số người trả lời các câu hỏi lưu ý rằng tại cuộc phỏng vấn, họ phải có kiến ​​thức, ít nhất là về mặt lý thuyết, về các mẫu thiết kế, các mẫu kiến ​​trúc, cũng như cách cư xử tốt trong lập trình (tất cả những điều này là KISS, DRY, SOLID). Tuy nhiên, hầu hết tại các cuộc phỏng vấn, chỉ định nghĩa là đủ: những người thực hiện các cuộc phỏng vấn đều nhận thức rõ rằng sự hiểu biết thực sự về những điều như vậy chỉ có được khi thực hành liên tục. Chúng có hữu ích trong công việc của bạn không? Tất nhiên là chúng rất hữu ích.

kết luận

Chúng tôi hy vọng chúng tôi không làm bạn quá sợ hãi với số lượng công nghệ bạn phải học. Không phải tất cả những điều này đều cần phải được biết tường tận, hơn nữa, việc tìm ra tất cả cũng khá thú vị. Không phải ngẫu nhiên mà bạn quyết định trở thành một lập trình viên, phải không? Vì vậy, hãy tiếp tục học Java và duy trì động lực. Chúc may mắn! Tái bút Nếu bạn đã tìm được việc làm và muốn nói về trải nghiệm của mình, vui lòng nhận xét!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION