2. What You Need from a Platform?
Open Technology: Open Source, Free Software, Open
Standard
Good Language Structure
Ecosystem
Platform Range
Industry Acceptance
Proven, widely used, lots of options
Complement and Substitute Solution
Continues Development
Popularity
3. Why Java is a Better Technology?
WORA, Write Once Run Anywhere.
One language for all platform: Desktop, Mobile, Web/Enterprise
Portable
OOP
JDK, JVM and Garbage Collector
Logistics
Library
Framework
Servers
Resource : tutorial, white paper, case study
Precision
Mathematic calculation
Number handling
Security Model
4. Why Java is a Better Technology?
Bleeding Edge Technology Run on Java
Hadoop – Map Reduce and Distributed File System
Lucene – Full Text search and Information Retrieval
Apache Cassandra – NoSQL Database
Support from big software vendor
Oracle
IBM
Spring Source / VMWare
JBoss / Red Hat
5. Why Java Good For Us?
High Paid Developer
Great Career Path
Working Overseas (Singapore, Malaysia, US, Europe)
Big Company Using Java
Banking, Insurance, Financial institution : BCA, Mandiri,
Permata, Asuransi Wahana Tata, ACC, etc.
Telco : Telkomsel, XL, Axis, Indosat, etc
Manufacture: Astra
Startup : rakuten, blibli
Zero investment to start learning Java
Zero investment to start Java Company
Tons of documents, books, tutorials and forums
6. How To Start?
Read Books
Java Desktop - Ifnu Bima
JENI - http://space.meruvian.org/jtechnopreneur/jeni
Java Tutorial - http://docs.oracle.com/javase/tutorial/
Java EE - http://download.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf
Baca, Tahu, Paham, Hafal
Use Java in Your Project
http://code.google.com/p/project-template/
https://github.com/endymuhardin
Lihat, Amati, Tiru, Modifikasi
Internship
Certification OJCP (SCJP), SCWCD, SCBD, SCEA – $130. Inixindo
or MII
8. Typical Java Web Application
Load UI
Browser
Webserver
(apache httpd)
Get/Post data
using JSON REST Service
Cache Server App Server
(memcache) (tomcat)
Database
(MySQL)
9. Important Things To Learn
Framework
Spring – Dependency Injection, MVC
Hibernate – Object Relational Mapping
JSP – Java Server Pages
UI
HTML, CSS
JavaScript, jQuery, JSON
Server
Tomcat – Application Server
MySQL – Database Server
Linux – OS Server
Apache httpd - Webserver
Build Tools and Test
Maven – Build tools
Junit – Unit Testing
DB Unit – Unit testing for database application
10. Java Love Patterns
MVC
Model
View
Controller
Façade – Also known as Service Pattern
DAO – Data Access Object
12. Model / Entity
@Entity
@Table(name = "T_USER")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "USER_ID")
private Integer userId;
@Column(name = "BIRTHDATE")
@Temporal(TemporalType.DATE)
private Date birthdate;
@Column(name = "PASSWORD")
private String password;
@Column(name = "USERNAME")
private String username;
}
13. Controller
@Controller
public class UserController {
@Autowired private UserService userService;
@RequestMapping(value="/user/list",method= RequestMethod.GET)
public ModelAndView userList(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/userList");
modelAndView.addObject("users", userService.getUsers());
return modelAndView;
}
}
14. Façade / Service Pattern
public interface UserService { @Service
@Transactional(readOnly=true)
List<User> getUsers(); public class UserServiceImpl implements
UserService{
}
@Autowired
private UserDao userDao;
@Override
public List<User> getUsers() {
return userDao.getUsers();
}
}
15. DAO
@Repository
public class UserDao {
@Autowired
private SessionFactory sessionFactory;
public List<User> getUsers() {
return sessionFactory.getCurrentSession().createQuery("from User u")
.list();
}
}
18. 10 Things You Need to Do Before
Graduated
Belajar menulis - “A software doesn’t exist, if it doesn’t have
documentation!”
Kuliah yang bener dan Lulus Cepat– Konsep Ilmu Komputer yang
kuat akan sangat membantumu di sesi wawancara kerja
Ambil kursus pemrograman, terutama OOP – Belajar
programming dengan jalur yang tepat dan metode penulisan kode
program yang mengikuti design pattern dan code convention yang
baik.
Cari tempat magang yang bagus – Setiap universitas pasti
mengadakan program magang, manfaatkan dengan baik dan carilah
tempat magang yang memberi pekerjaan programming, jangan ambil
tugas magang yang hanya memberi tugas input data.
Belajar bahasa inggris – Surfing di internet tanpa bisa bahasa inggris
sama saja seperti nyetir ga bisa baca rambu lalu lintas.
19. 10 Things to Do Before You
Graduate!
Belajar mikro-ekonomi – Belajar ekonomi dan bayangkan dirimu
menjadi enterprenur nantinya, jgn mau jadi bawahan terus.
Jangan meremehkan mata kuliah non IT hanya karena
membosankan – IP jelek hanya akan menimbulkan banyak keraguan
dan impresi yang tidak bagus pada waktu mencari kerja nanti.
Berhentilah mengkhawatirkan nanti akan kerja di mana – Do it
the best you can do, and it will bring you to the best workplace
available.
Buatlah sebuah aplikasi sederhana sampai selesai – Aplikasi ini
nantinya bisa digunakan pada waktu wawancara, untuk membuktikan
bahwa kita bisa menerapkan prinsip “get things done!” tidak cuma
coding kesana kemari tapi tidak menyelesaikan pekerjaan.
Aktif di komunitas – Dengan sering memposting ke forum/milis kita
akan tahu apakah pemahaman dan penguasaan terhadap suatu konsep
benar atau salah, cukup atau kurang. Ini penting sekali untuk
mengetahui sebenarnya kita siap atau tidak terjun di dunia kerja.