Keterampilan profesional apa yang Anda butuhkan untuk menjadi programmer atau insinyur Java yang berkualitas, dan apa yang harus Anda persiapkan sebelum wawancara? Selama wawancara, pewawancara ingin tahu keterampilan profesional apa yang Anda miliki. Berikut ini adalah apa yang dibutuhkan insinyur perangkat lunak Java yang memenuhi syarat.
1. Keterampilan Profesional
1. Mahir dalam pemrograman berorientasi objek menggunakan bahasa Java, memiliki kebiasaan pemrograman yang baik, dan akrab dengan Java API yang umum digunakan, termasuk kerangka kerja koleksi, multi-threading (pemrograman bersamaan), I/O (NIO), soket, JDBC, XML, refleksi, dll.
2. Akrab dengan Pengembangan Web Java berdasarkan JSP dan Servlets, memiliki pemahaman mendalam tentang prinsip kerja dan siklus hidup servlet dan JSP, mahir menggunakan JSTL dan EL untuk menulis halaman dinamis tanpa naskah, dan memiliki pengalaman dalam pengembangan proyek web Java menggunakan pendengar, filter dan komponen web lainnya dan pola arsitektur MVC.
3. Memiliki pemahaman yang mendalam tentang wadah IOC musim semi dan prinsip -prinsip AOP, mahir dalam menggunakan kerangka kerja musim semi untuk mengelola berbagai komponen web dan ketergantungan mereka, menjadi mahir dalam menggunakan pegas untuk transaksi, log, keamanan, dll., Memiliki pengalaman dalam menggunakan SpringMVC sebagai teknologi presentasi dan menggunakan fram fram yang disediakan oleh Spring untuk pengembangan proyek Web, dan menjadi akrab dengan integrasi Spring sebagai presentasi dan menggunakan integrasi Spring dan menggunakan integrasi Spring.
4. Mahir dalam menggunakan kerangka kerja ORM seperti Hibernate dan Mybatis, akrab dengan API inti Hibernate dan Mybatis, dan memiliki pemahaman mendalam tentang pemetaan asosiasi Hibernate, pemetaan warisan, pemetaan komponen, mekanisme caching, manajemen transaksi, dan penyetelan kinerja.
5. Mahir dalam menggunakan HTML, CSS, dan JavaScript untuk pengembangan front-end web, akrab dengan jQuery dan bootstrap, memiliki pemahaman mendalam tentang penerapan teknologi AJAX dalam proyek web, dan memiliki pengalaman dalam pengembangan proyek menggunakan Front-End MVC Framework (AngularJS) dan Javascript Template Engine (Tangan).
6. Terbiasa dengan produk basis data relasional yang umum digunakan (MySQL, Oracle), dan mahir dalam pemrograman basis data menggunakan SQL dan PL/SQL.
7. Bersikaplah akrab dengan prinsip-prinsip desain yang berorientasi objek, memiliki pemahaman mendalam tentang pola desain GOF dan pola arsitektur aplikasi perusahaan dan pengalaman yang relevan dalam pengembangan aktual, mahir dalam analisis dan desain yang berorientasi objek menggunakan UML, dan memiliki pengalaman dalam TDD (pengembangan yang digerakkan oleh uji) dan DDD (desain yang didorong domain).
8. Akrab dengan penggunaan server web dan server aplikasi seperti Apache, Nginx, Tomcat, Wildfly, WebLogic, dan akrab dengan konfigurasi beberapa integrasi server, pengelompokan dan penyeimbangan beban.
9. Mahir dalam menggunakan prototipe produk prototipe kapak, mahir dalam menggunakan alat pemodelan desain PowerDesigner dan Enterprise Architect, mahir dalam menggunakan Java Development Environment Eclipse dan IntelliJ, mahir dalam menggunakan Webstorm Lingkungan Pengembangan Front-End, dalam menggunakan alat kontrol versi perangkat lunak SVN dan GIT, mahir dalam menggunakan konstruksi proyek dan alat manajemen dan maven maven maven Maven SVN. Catatan: Anda harus terbiasa dengan tidak semua item yang tercantum di atas. Anda dapat membuat persiapan bertarget yang sesuai berdasarkan persyaratan spesifik perekrutan perusahaan. Namun, 6 item pertama harus menjadi persyaratan minimum dan merupakan keterampilan profesional yang harus dimiliki oleh seorang insinyur perangkat lunak Java.
2. Pengalaman Proyek
Pendahuluan Proyek
Sistem ini adalah sistem untuk Z yang ditugaskan oleh X dan digunakan untuk Z. Sistem ini mencakup modul A, B, C, D dan lainnya. Sistem ini menggunakan kerangka kerja open source level java e dan teknologi front-end F. Lapisan presentasi menggunakan arsitektur G, menggunakan H sebagai tampilan I sebagai pengontrol dan mengimplementasikan permintaan gaya rest; Lapisan logika bisnis menggunakan mode J, dan mengimplementasikan fungsi transaksi, log dan keamanan melalui K, dan mengimplementasikan layanan cache melalui L; Lapisan kegigihan menggunakan M untuk merangkum operasi CRUD, dan lapisan yang mendasarinya menggunakan N untuk mengimplementasikan akses data. Seluruh proyek mengadopsi model pengembangan P.
menjelaskan:
E biasanya mengacu pada musim semi (pilihan satu atap untuk pengembangan tingkat perusahaan Java);
F kemungkinan besar merupakan perpustakaan jQuery, kerangka kerja plug-in atau bootstrap. Tentu saja, jika Anda ingin membangun satu halaman aplikasi (SPA), solusi terbaik adalah kerangka kerja MVC front-end (seperti AngularJS) dan mesin template JavaScript (seperti setang); G jelas MVC (model-view-control), dan kerangka implementasi yang paling mungkin adalah Spring MVC. Selain itu, ada struts 2, implementasi JSF dan MyFaces yang disediakan oleh Apache untuk JSF.
H adalah jsp. JSP adalah V di MVC. Anda juga dapat menggunakan mesin template (seperti freemarker dan kecepatan) untuk menghasilkan tampilan, atau berbagai dokumen atau laporan (seperti Excel dan PDF, dll.).
Saya adalah servlet atau pengontrol khusus. Mereka adalah C di MVC. Tentu saja, Spring MVC menyediakan DispatcherServlet sebagai pengontrol front-end;
J biasanya skrip transaksi.
Ke harus AOP (pemrograman berorientasi sectional) teknologi.
L saat ini banyak digunakan oleh Memcached dan Redis;
Ada banyak pilihan untuk M. yang paling mungkin adalah hibernate dan mybatis. Kedua teknologi juga dapat digunakan secara bersamaan, tetapi biasanya menambah, menghapus dan memodifikasi penambahan, penghapusan dan modifikasi diserahkan kepada hibernasi untuk diproses, sementara kueri kompleks diselesaikan oleh MyBatis. Selain itu, Toplink dan JooQ juga merupakan solusi Layer Kegigihan yang sangat baik;
Akses data di bagian bawah N secara tradisional digunakan untuk menggunakan database relasional, yang dapat berupa MySQL, Oracle, SQLServer, DB2, dll. Dengan munculnya era Big Data, NoSQL (seperti MongoDB, Membase, BigTable, dll.) Dan solusi akses data besar lainnya (seperti GFS, HDF, dll.);
P adalah model pengembangan proyek, yang dapat menjadi model air terjun, model prototipe cepat, model tambahan, model spiral, model air mancur, model RAD, dll.
Proses Pengembangan Proyek:
1. Analisis Kelayakan: Laporan Analisis Kelayakan, Rencana Pengembangan Proyek
2. Analisis Persyaratan: Spesifikasi Persyaratan
Ooad (Gunakan diagram case, diagram waktu, diagram aktivitas)
Prototipe Antarmuka: Membantu memahami persyaratan dan menyimpulkan skrip transaksi saat merancang lapisan bisnis
3. Desain: Ringkasan Manual Desain dan Manual Desain Detail untuk Mengekstrak Entitas Bisnis (Objek Domain): Diagram Kelas, diagram ER (Tahap Desain Konsep)
Arsitektur Hierarkis: Tentukan solusi implementasi teknis dari setiap lapisan (khususnya untuk kerangka kerja yang digunakan, server basis data, server aplikasi, dll.).
Desain Lapisan Bisnis: Mode Script Transaksi (Transaksi: Transaksi adalah transaksi ketika pengguna mengirim permintaan; skrip: metode atau fungsi; skrip transaksi: merangkum permintaan ke dalam metode atau fungsi; mode skrip transaksi: transaksi dimulai dengan pembukaan skrip dan berakhir dengan penutupan skrip).
Ada tiga jenis objek yang terlibat dalam lapisan bisnis: kelas skrip transaksi (merangkum proses bisnis), objek akses data (DAO, merangkum operasi persisten), dan objek transmisi data (DTO, merangkum objek lapangan kehilangan darah/anemia). Hubungan antara tiga objek akses data skrip transaksi (agregasi). Keduanya mengandalkan rekayasa maju (diagram kelas UML menghasilkan kode java) dan reverse engineering (kode java menghasilkan diagram kelas UML) desain fisik database (diagram ER yang dikonversi menjadi diagram hubungan antara tabel, konstruksi perpustakaan dan konstruksi meja, dan menggunakan alat untuk memasukkan data uji)
4. Coding
5. Tes: Laporan Uji, Pengujian Unit Laporan Cacat: Periksa dan verifikasi unit uji minimum dalam perangkat lunak. Di Java, metode di kelas dapat diuji dan diimplementasikan menggunakan alat JUnit.
Pengujian Integrasi: Pengujian integrasi juga disebut pengujian perakitan atau pengujian bersama. Berdasarkan pengujian unit, semua modul dirakit menjadi subsistem untuk pengujian sesuai dengan persyaratan desain.
Pengujian Sistem: Menggabungkan perangkat lunak yang dikonfirmasi, perangkat keras, periferal, jaringan dan elemen lainnya bersama -sama untuk melakukan berbagai uji perakitan dan konfirmasi sistem informasi. Pengujian sistem adalah tes yang dilakukan untuk seluruh sistem produk. Tujuannya adalah untuk memverifikasi apakah sistem memenuhi definisi spesifikasi persyaratan, mencari tahu apa yang tidak konsisten dengan atau bertentangan dengan spesifikasi persyaratan, dan dengan demikian mengusulkan solusi yang lebih lengkap. Tes Penerimaan: Kegiatan pengujian perangkat lunak yang dilakukan sebelum produk dirilis setelah produk perangkat lunak telah menyelesaikan pengujian unit, pengujian integrasi, dan pengujian sistem. Ini adalah tahap terakhir pengujian teknis, juga dikenal sebagai pengujian pengiriman. Tujuan pengujian penerimaan adalah untuk memastikan bahwa perangkat lunak sudah siap dan dapat digunakan oleh pengguna akhir untuk melakukan fungsi dan tugas perangkat lunak yang sudah ada.
6. Pengiriman dan Pemeliharaan: Manual Pengguna, Manual Operasi
AKU AKU AKU. Manajemen Proyek
1. Kontrol Versi: CVS/SVN/GIT
2. Konstruksi Otomatis: Semut/Maven/Ivy/Gradle
3. Integrasi Berkelanjutan: Hudson/Jenkins
Iv. Arsitektur Sistem
1. Server Load Balancing: F5, A10
2. Server Aplikasi:
HTTP Server: Apache, Nginx (http, proxy terbalik, server proxy mail)
Container Servlet: Tomcat, Resin
Kontainer EJB: Wildfly (Server Aplikasi JBoss), GlassFish, WebLogic, WebSphere
3. Database Server: MySQL, Eclipse, Oracle
5. Aplikasi Pihak Ketiga (Plugin)
1. Alat Bagan: Plug-in Bagan Berbasis JQuery (seperti JQChart, Flot, Charted, dll.), Chart.js, Highcharts, dll.
2. Alat Pelaporan: Pelaporan Pentaho, Ireport, DynamicReports, dll.
3. Pemrosesan Dokumen: POI, ITEXT, dll.
4. Mesin alur kerja: JBPM, OpenWfe, Snaker, Swamp, dll.
5. Penjadwalan Pekerjaan: Kuarsa, Jobserver, Oddjob, dll.
6. Layanan caching: Ehcache, memcached, swarmcache, dll.
7. Antrian Pesan: Open-MQ, ZeroMQ, dll.
8. Kerangka Keamanan: Shiro, PicketBox, dll.
9. Mesin Pencari: Indextank, Lucene, Elasticsearch, dll.
10. Kerangka Ajax: JQuery, Extjs, DWR, dll.
11. UI plug-in: easyui, miniui, dll.
12. Kotak Teks Kaya: Ueditor, CKEditor, dll.
6. Ajukan pertanyaan dalam wawancara
1. Perusahaan mana proyek dikembangkan? Berapa investasi dalam proyek ini?
2. Berapa banyak orang yang berpartisipasi dalam pengembangan proyek? Berapa proporsi penguji, pengembang, dan manajer proyek di seluruh tim?
3. Berapa lama proyek ini dikembangkan? Berapa banyak kode yang ada dalam total proyek? Berapa banyak kode yang ada?
4. Model pengembangan atau proses pengembangan seperti apa yang diadopsi proyek? Apa arsitektur proyek ini? Apa pilihan teknis proyek?
5. Tanggung jawab apa yang Anda tanggung dalam proyek? Apakah Anda sering rapat atau bekerja lembur? Apa keuntungan atau pelajaran yang dipetik setelah proyek selesai?
6. Bagian mana yang paling sulit dari proyek ini? Bagaimana cara menyelesaikan berbagai konflik yang dihadapi selama pengembangan tim?
7. Anda dapat mengajukan pertanyaan pewawancara selama wawancara
1. Saya perhatikan bahwa Anda menggunakan teknologi X. Bagaimana Anda menyelesaikan masalah Y?
2. Mengapa produk Anda menggunakan teknologi x alih -alih teknologi Y? Sejauh yang saya tahu, meskipun teknologi X memiliki manfaat seperti A, B, C, dll. Ini juga memiliki masalah dengan D dan E, sementara teknologi Y dapat menyelesaikan masalah D dan E.
3. Saya tidak terlalu terbiasa dengan teknologi X yang Anda sebutkan, tetapi saya merasa itu adalah solusi yang baik. Bisakah Anda ceritakan lebih banyak tentang cara kerjanya?
4. Bagaimana tim Anda merencanakan proyek? Berapa banyak pertemuan reguler yang akan ada dalam seminggu? Berapa perkiraan jumlah kode per minggu?
5. Solusi yang dapat saya pikirkan untuk masalah X saat ini Y. Bagaimana Anda akan menyelesaikan masalah ini?
8. Aturan SAR
Aturan SAR mengacu pada pertama -tama menggambarkan skenario masalah, kemudian menjelaskan tindakan yang Anda ambil, dan akhirnya menyatakan hasilnya.
9. Prinsip Wawancara
1. Suara sedang, ucapan yang jelas, tersenyum, citra pribadi dan kesopanan.
2. Ambil inisiatif untuk berbicara dengan pewawancara tentang topik yang dia minati untuk membuat pewawancara puas.
3. Ambil inisiatif dan berbicara dengan berani dengan pewawancara tentang konten yang akrab dan berpengalaman: proyek, poin teknis, dll. Sehingga bermain dengan kekuatan Anda dan menghindari kelemahan.
4. Anda harus menyatakan bahwa Anda benar -benar ingin mendapatkan posisi ini dan bahwa Anda bersedia mempelajari teknik yang tidak Anda pahami.
5. Buat persyaratan perawatan yang wajar berdasarkan tingkat aktual Anda.
10. Evaluasi Diri
1. Kemampuan belajar (orang -orang di industri TI perlu terus -menerus memahami teknologi, alat, dan metode baru)
2. Kesadaran tim (dibandingkan dengan kepahlawanan pribadi, industri TI lebih menganjurkan kerja tim)
3. Tekanan Tekanan (intensitas kerja banyak perusahaan TI relatif tinggi)
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.