better career with java
DESCRIPTION
TRANSCRIPT
@ankarajug #javaizmirde
(Better)Career in Java
Mert ÇALIŞKANMarch 2013
@ankarajug #javaizmirde
AnkaraJUG
ankarajug.blogspot.com
facebook.com/ankarajug
twitter.com/ankarajug
first event @ November 2012...
Founding Fathers: Barış BAL Çağatay ÇİVİCİ Mert ÇALIŞKAN
http://bit.ly/ankarajugKAYIT
@ankarajug #javaizmirde
Mert ÇALIŞKAN
Open Source Software Advocate, Founder, Implementor
Member of Apache Software Foundation and OpenLogic ExpertCommunity
Author of PrimeFaces Cookbook from PacktPub
10+ years of experience w/ Java
Coder @ T2.com.tr
tr.linkedin.com/in/mertcaliskan
@ankarajug #javaizmirde
To JAVA? or NOT..? :)Come to the Dark Side..!
@ankarajug #javaizmirde
Agenda
History of Java
Versions of Java.. SE, EE and the others..
Java Web Frameworks
Better career w/ Java
Q & A
@ankarajug #javaizmirde
YOU KNOW THIS TRANS-ATLANTIC?
@ankarajug #javaizmirde
• RMS Titanic sank in North Atlantic Oceanon 15 April, 1912 on maiden voyage
So Eventually Everything Dies...!Tragic analogy, ok :)
• You, Me, All of Us...
• Companies, Technologies...
• Key point is: You should avoid not making it like Titanic, which sunk in 2hrs and 40 minutes...!
@ankarajug #javaizmirde
Where it all began...
Founded February 24, 1982
Sold to Oracle January 27, 2010 for $7.4 billion..!
Sun was mainly selling Hardware, but they also working on computer software like Java, MySQL and NFS..
Founded in 1977 by Larry Ellison and a couple of clever guys, their motivation is to compete with IBM’s System R, which was a relational database.
@ankarajug #javaizmirde
James Gosling... was the FATHER of Java
Larry Ellison... is the new BOSS
Age: 69
Age: 58$$$ makes you look
younger..!
@ankarajug #javaizmirde
History of JAVAJava Language Project started in June 1991
(James Gosling and his fellas)
First named as: OAK
Running byteCode on Java Virtual Machine
WORA (Write Once, Run Anywhere)
First started with applets in the WEB world
With the dawn of Java Enterprise Edition, Servlets made their way to rule the world.
The Duke
@ankarajug #javaizmirde
Editions of JAVAJava Card: application on smart cards
Micro Edition (ME): mobile phones + set-top boxes
Standard Edition (SE): Cool Software Platform
Enterprise Edition (EE): Oracle’s Enterprise Computing Platform
Java DB: Oracle’s supported version of Apache Derby.
JavaFX: Aim was RIA (looks dead for me)
Personal Java: (discontinued) Java edition for mobile and embedded systems based on Java 1.1.8
The Duke
@ankarajug #javaizmirde
CHRONOLOGY OF JAVA SEJDK 1.0
January 23, 1996
JDK 1.1 February 19, 1997
Introducing Abstract Window Toolkit
J2SE 1.2 December 8, 1998Swing was on Board
J2SE 1.3 May 8, 2000HotSpot JVM and JNDI
J2SE 1.5 September 30,
2004
New Cool Features on LanguageGenerics, AutoBoxing, var-args & etc...
J2SE 1.4 February 6, 2002
reg-ex, Java Web Startembedded XML parser
@ankarajug #javaizmirde
CHRONOLOGY OF JAVA SE
Java SE 6December 11, 2006
Java SE 7July 28, 2011
Java SE 8Summer, 2013
Best is yet to come..!lambda expressions... streaming..filtering..
closures...
Dynamic lang. support like Groovy
String in switch (finally!)
Renamed to Java SE instead of J2SE from now on.Support for running scripting lang. like Rhino.
@ankarajug #javaizmirde
Enterprise JAVA
Java EE = Java Enterprise Edition
Extends Java SE
javax.faces.* UI + JSF Related Stuffjavax.servlet.* Handling HTTP invocations
javax.enterprise.inject.* CDI, Like Spring dependency Inj.javax.ejb.* EJB Stuff
javax.validation.* Bean Validationjavax.persistence.* Persistencyjavax.transaction.* Stuff for transactions
javax.jms.* Messaging Stuff
@ankarajug #javaizmirde
CHRONOLOGY OF JAVA EE
Java EE 5May 11, 2006
Java EE 6December 10, 2009
J2EE 1.2December 12, 1999
J2EE 1.3 Sept. 12, 2001
J2EE 1.4 Nov. 11, 2003
Servlet 2.2 Servlet 2.3 Servlet 2.4
JSPEJBJMSJTAJAASJSFEL
JAX-WSJAX-RSJAX-BJPAJSTL
any manymore...
Servlet 2.5
Servlet 3.0
@ankarajug #javaizmirde
Java Frameworks..
Ok you get to know the language in 4 years...
But you DEFINITELY NEED to learn the frameworks. Java is mostly about frameworks (lots of open source ones).
I think you ask yourselves now.. Which one should we go with?
They differ in context, if you want do WEB, here is a list what you can find around.
@ankarajug #javaizmirde
Java Frameworks..
JSF
WebWork
Struts
Spring MVC
Tapestry
Spring Guice
Hibernate iBatis
Toplink KODO
EclipseLink
Model/Persistence Layer
picoContainer
Controller/Dep.Inj.
HiveMind
XWork
Apache CXF
Spring WS
IntegrationApache Axis2
UI
IDE
Eclipse IntelliJ IDEA
JDeveloper
Wicket GWT
NetBEANS
Cocoon
ZK
Echo3 Vaadin
@ankarajug #javaizmirde
One framework to rule them ALL...
Spring
@ankarajug #javaizmirde
Java Frameworks..Spring
Spring SecuritySpring Web Flow
Spring Web ServicesSpring Dynamic Modules
Spring IntegrationSpring Batch
Spring Batch AdminSpring.NET
Spring AMQPSpring AMQP.NETSpring GemFire
Spring GemFire for .NETSpring LDAPSpring Social
Spring for AndroidSpring IDE
Spring BlazeDS IntegrationSpringSource Bundlor
Spring RooSpring Python
SpringSource OSGi Test StubsSpring Security Kerberos
ExtensionSpringSource dm ServerSpringSource dm KernelSpringSource dm Server
SamplesSpring Data Commons
Spring DataSpring Data JDBCSpring Data JPASpring Data RedisSpring Data SolrSpring Mobile
Spring Data MongoDBSpring Data Neo4j
Spring GemfireSpring Data Hadoop
Spring Social FacebookSpring Social LinkedIn
Spring Social TwitterSpring.NET CodeConfigSpring.NET REST Client
Spring.NET SocialSpring.NET Social DropboxSpring.NET Social LinkedInSpring.NET Social Twitter
Spring.NET Visual Studio 2010 Extension
Spring Social YammerSpring Shell
Spring Data GemFireSpring Migration AnalyzerSpring Integration SplunkSpring Integration PrintSpring Security SAML
@ankarajug #javaizmirde
Java Frameworks..Spring
Spring SecuritySpring Web Flow
Spring Web ServicesSpring Dynamic Modules
Spring IntegrationSpring Batch
Spring Batch AdminSpring.NET
Spring AMQPSpring AMQP.NETSpring GemFire
Spring GemFire for .NETSpring LDAPSpring Social
Spring for AndroidSpring IDE
Spring BlazeDS IntegrationSpringSource Bundlor
Spring RooSpring Python
SpringSource OSGi Test StubsSpring Security Kerberos
ExtensionSpringSource dm ServerSpringSource dm KernelSpringSource dm Server
SamplesSpring Data Commons
Spring DataSpring Data JDBCSpring Data JPASpring Data RedisSpring Data SolrSpring Mobile
Spring Data MongoDBSpring Data Neo4j
Spring GemfireSpring Data Hadoop
Spring Social FacebookSpring Social LinkedIn
Spring Social TwitterSpring.NET CodeConfigSpring.NET REST Client
Spring.NET SocialSpring.NET Social DropboxSpring.NET Social LinkedInSpring.NET Social Twitter
Spring.NET Visual Studio 2010 Extension
Spring Social YammerSpring Shell
Spring Data GemFireSpring Migration AnalyzerSpring Integration SplunkSpring Integration PrintSpring Security SAML
53
@ankarajug #javaizmirde
Head Start...!
DEMOhttps://github.com/mulderbaba/testinfected
JPA
PrimeFaces
HibernateSpring
CXF Hamcrest
jUnit
Mockito
AppFuse
http://appfuse.org/display/APF/AppFuse+QuickStart
is a full-stack framework for building webapp on the JVM.
@ankarajug #javaizmirde
Open Source LicensesAcademic Free License 3.0 (AFL-3.0)Affero GNU Public License: See "GNU Affero General Public License 3.0 (AGPL-3.0)"Adaptive Public License (APL-1.0)Apache License 2.0 (Apache-2.0)Apple Public Source License (APSL-2.0)Artistic license 2.0 (Artistic-2.0)Attribution Assurance Licenses (AAL)BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause)Boost Software License (BSL-1.0)Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1)Common Development and Distribution License 1.0 (CDDL-1.0)Common Public Attribution License 1.0 (CPAL-1.0)CUA Office Public License Version 1.0 (CUA-OPL-1.0)EU DataGrid Software License (EUDatagrid)Eclipse Public License 1.0 (EPL-1.0)Educational Community License, Version 2.0 (ECL-2.0)Eiffel Forum License V2.0 (EFL-2.0)Entessa Public License (Entessa)European Union Public License, Version 1.1 (EUPL-1.1) (links to every language's version on their site)Fair License (Fair)Frameworx License (Frameworx-1.0)GNU Affero General Public License v3 (AGPL-3.0)GNU General Public License version 2.0 (GPL-2.0)GNU General Public License version 3.0 (GPL-3.0)GNU Library or "Lesser" General Public License version 2.1 (LGPL-2.1)GNU Library or "Lesser" General Public License version 3.0 (LGPL-3.0)Historical Permission Notice and Disclaimer (HPND)IBM Public License 1.0 (IPL-1.0)IPA Font License (IPA)ISC License (ISC)LaTeX Project Public License 1.3c (LPPL-1.3c)Lucent Public License Version 1.02 (LPL-1.02)
MirOS Licence (MirOS)Microsoft Public License (MS-PL)Microsoft Reciprocal License (MS-RL)MIT license (MIT)Motosoto License (Motosoto)Mozilla Public License 2.0 (MPL-2.0)Multics License (Multics)NASA Open Source Agreement 1.3 (NASA-1.3)NTP License (NTP)Naumen Public License (Naumen)Nethack General Public License (NGPL)Nokia Open Source License (Nokia)Non-Profit Open Software License 3.0 (NPOSL-3.0)OCLC Research Public License 2.0 (OCLC-2.0)Open Font License 1.1 (OFL-1.1)Open Group Test Suite License (OGTSL)Open Software License 3.0 (OSL-3.0)PHP License 3.0 (PHP-3.0)The PostgreSQL License (PostgreSQL)Python License (Python-2.0) (overall Python license)CNRI Python license (CNRI-Python) (CNRI portion of Python License)Q Public License (QPL-1.0)RealNetworks Public Source License V1.0 (RPSL-1.0)Reciprocal Public License 1.5 (RPL-1.5)Ricoh Source Code Public License (RSCPL)Simple Public License 2.0 (SimPL-2.0)Sleepycat License (Sleepycat)Sun Public License 1.0 (SPL-1.0)Sybase Open Watcom Public License 1.0 (Watcom-1.0)University of Illinois/NCSA Open Source License (NCSA)Vovida Software License v. 1.0 (VSL-1.0)W3C License (W3C)wxWindows Library License (WXwindows)X.Net License (Xnet)Zope Public License 2.0 (ZPL-2.0)zlib/libpng license (Zlib)
Question here is:But how do they license these frameworks?
How can I use them in a free way?
Open Source Initiative
@ankarajug #javaizmirde
Open Source LicensesAcademic Free License 3.0 (AFL-3.0)Affero GNU Public License: See "GNU Affero General Public License 3.0 (AGPL-3.0)"Adaptive Public License (APL-1.0)Apache License 2.0 (Apache-2.0)Apple Public Source License (APSL-2.0)Artistic license 2.0 (Artistic-2.0)Attribution Assurance Licenses (AAL)BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause)Boost Software License (BSL-1.0)Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1)Common Development and Distribution License 1.0 (CDDL-1.0)Common Public Attribution License 1.0 (CPAL-1.0)CUA Office Public License Version 1.0 (CUA-OPL-1.0)EU DataGrid Software License (EUDatagrid)Eclipse Public License 1.0 (EPL-1.0)Educational Community License, Version 2.0 (ECL-2.0)Eiffel Forum License V2.0 (EFL-2.0)Entessa Public License (Entessa)European Union Public License, Version 1.1 (EUPL-1.1) (links to every language's version on their site)Fair License (Fair)Frameworx License (Frameworx-1.0)GNU Affero General Public License v3 (AGPL-3.0)GNU General Public License version 2.0 (GPL-2.0)GNU General Public License version 3.0 (GPL-3.0)GNU Library or "Lesser" General Public License version 2.1 (LGPL-2.1)GNU Library or "Lesser" General Public License version 3.0 (LGPL-3.0)Historical Permission Notice and Disclaimer (HPND)IBM Public License 1.0 (IPL-1.0)IPA Font License (IPA)ISC License (ISC)LaTeX Project Public License 1.3c (LPPL-1.3c)Lucent Public License Version 1.02 (LPL-1.02)
MirOS Licence (MirOS)Microsoft Public License (MS-PL)Microsoft Reciprocal License (MS-RL)MIT license (MIT)Motosoto License (Motosoto)Mozilla Public License 2.0 (MPL-2.0)Multics License (Multics)NASA Open Source Agreement 1.3 (NASA-1.3)NTP License (NTP)Naumen Public License (Naumen)Nethack General Public License (NGPL)Nokia Open Source License (Nokia)Non-Profit Open Software License 3.0 (NPOSL-3.0)OCLC Research Public License 2.0 (OCLC-2.0)Open Font License 1.1 (OFL-1.1)Open Group Test Suite License (OGTSL)Open Software License 3.0 (OSL-3.0)PHP License 3.0 (PHP-3.0)The PostgreSQL License (PostgreSQL)Python License (Python-2.0) (overall Python license)CNRI Python license (CNRI-Python) (CNRI portion of Python License)Q Public License (QPL-1.0)RealNetworks Public Source License V1.0 (RPSL-1.0)Reciprocal Public License 1.5 (RPL-1.5)Ricoh Source Code Public License (RSCPL)Simple Public License 2.0 (SimPL-2.0)Sleepycat License (Sleepycat)Sun Public License 1.0 (SPL-1.0)Sybase Open Watcom Public License 1.0 (Watcom-1.0)University of Illinois/NCSA Open Source License (NCSA)Vovida Software License v. 1.0 (VSL-1.0)W3C License (W3C)wxWindows Library License (WXwindows)X.Net License (Xnet)Zope Public License 2.0 (ZPL-2.0)zlib/libpng license (Zlib)
Question here is:But how do they license these frameworks?
How can I use them in a free way?
Open Source Initiative
@ankarajug #javaizmirde
Open Source LicensesAcademic Free License 3.0 (AFL-3.0)Affero GNU Public License: See "GNU Affero General Public License 3.0 (AGPL-3.0)"Adaptive Public License (APL-1.0)Apache License 2.0 (Apache-2.0)Apple Public Source License (APSL-2.0)Artistic license 2.0 (Artistic-2.0)Attribution Assurance Licenses (AAL)BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause)Boost Software License (BSL-1.0)Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1)Common Development and Distribution License 1.0 (CDDL-1.0)Common Public Attribution License 1.0 (CPAL-1.0)CUA Office Public License Version 1.0 (CUA-OPL-1.0)EU DataGrid Software License (EUDatagrid)Eclipse Public License 1.0 (EPL-1.0)Educational Community License, Version 2.0 (ECL-2.0)Eiffel Forum License V2.0 (EFL-2.0)Entessa Public License (Entessa)European Union Public License, Version 1.1 (EUPL-1.1) (links to every language's version on their site)Fair License (Fair)Frameworx License (Frameworx-1.0)GNU Affero General Public License v3 (AGPL-3.0)GNU General Public License version 2.0 (GPL-2.0)GNU General Public License version 3.0 (GPL-3.0)GNU Library or "Lesser" General Public License version 2.1 (LGPL-2.1)GNU Library or "Lesser" General Public License version 3.0 (LGPL-3.0)Historical Permission Notice and Disclaimer (HPND)IBM Public License 1.0 (IPL-1.0)IPA Font License (IPA)ISC License (ISC)LaTeX Project Public License 1.3c (LPPL-1.3c)Lucent Public License Version 1.02 (LPL-1.02)
MirOS Licence (MirOS)Microsoft Public License (MS-PL)Microsoft Reciprocal License (MS-RL)MIT license (MIT)Motosoto License (Motosoto)Mozilla Public License 2.0 (MPL-2.0)Multics License (Multics)NASA Open Source Agreement 1.3 (NASA-1.3)NTP License (NTP)Naumen Public License (Naumen)Nethack General Public License (NGPL)Nokia Open Source License (Nokia)Non-Profit Open Software License 3.0 (NPOSL-3.0)OCLC Research Public License 2.0 (OCLC-2.0)Open Font License 1.1 (OFL-1.1)Open Group Test Suite License (OGTSL)Open Software License 3.0 (OSL-3.0)PHP License 3.0 (PHP-3.0)The PostgreSQL License (PostgreSQL)Python License (Python-2.0) (overall Python license)CNRI Python license (CNRI-Python) (CNRI portion of Python License)Q Public License (QPL-1.0)RealNetworks Public Source License V1.0 (RPSL-1.0)Reciprocal Public License 1.5 (RPL-1.5)Ricoh Source Code Public License (RSCPL)Simple Public License 2.0 (SimPL-2.0)Sleepycat License (Sleepycat)Sun Public License 1.0 (SPL-1.0)Sybase Open Watcom Public License 1.0 (Watcom-1.0)University of Illinois/NCSA Open Source License (NCSA)Vovida Software License v. 1.0 (VSL-1.0)W3C License (W3C)wxWindows Library License (WXwindows)X.Net License (Xnet)Zope Public License 2.0 (ZPL-2.0)zlib/libpng license (Zlib)
Question here is:But how do they license these frameworks?
How can I use them in a free way?
Open Source Initiative
69
@ankarajug #javaizmirde
Must Read Books...
@ankarajug #javaizmirde
Must Read Books...
@ankarajug #javaizmirde
Must Read Books...
@ankarajug #javaizmirde
Must Read Books...
@ankarajug #javaizmirde
Must Read Books...
@ankarajug #javaizmirde
The Java Magazine...
http://www.oracle.com/technetwork/java/javamagazine/
bi-monthly since 2011..!!!For Free..!!!
@ankarajug #javaizmirde
For the love of code since 2005...around 6000 students meet 3000 mentors of OSS from over 100 countries...
Mutual benefits : you get ~5000$, you can use the stuff for summer internship and google gets the OSS support.
Google Summer of Code
http://bit.ly/GSOC2013
@ankarajug #javaizmirde
Resume Preparation
People skim resumes... So makeit to the point as much as possible
It’s not what you know. It’s what you’ve done with what you know...
Keep it short1 to 3 sentences, 1 to 3 pages at most
@ankarajug #javaizmirde
Where can I work on Java?
X XXXX
XX
XX
X
XX
XX
X
X
Currently 18 technoparks located in Turkey...
X
@ankarajug #javaizmirde
Career in JAVAParticipate in Open Source
Be a Contributor / or better: be a Committer
Learn the Language from inside out...
Oracle Certifications are one way to go...
Java SE 7 ProgrammerJava EE6 Web Component Developer
Java EE6 Enterprise JavaBeans DeveloperJava EE6 Java Persistence API Developer
Java EE6 Web Services DeveloperJava EE 6 Enterprise Architect
@ankarajug #javaizmirde
Will it Compile???
int €i = 1;YUP...! Literals can start with letter, connecting character like "_", and
currency character.
@ankarajug #javaizmirde
Will it Compile???
int €i = 1;YUP...! Literals can start with letter, connecting character like "_", and
currency character.
@ankarajug #javaizmirde
Will it Compile???
float f = 320.0;Nope..won't compile, this one's double by default.
@ankarajug #javaizmirde
Will it Compile???
float f = 320.0;Nope..won't compile, this one's double by
default.
@ankarajug #javaizmirde
Will it Compile???
Nope... you cannot assign int to char and char is between 0-65535, so you will
get gibberish output.
char c = -80;
@ankarajug #javaizmirde
Will it Compile???
Nope... you cannot assign int to char and char is between 0-65535, so you will
get gibberish output.
char c = -80;
@ankarajug #javaizmirde
Can you extend String???
public final class String implements java.io.Serializable, java.lang.Comparable<java.lang.String>, java.lang.CharSequence {........}
@ankarajug #javaizmirde
Can you extend String???public final class String implements java.io.Serializable, java.lang.Comparable<java.lang.String>, java.lang.CharSequence {........}
@ankarajug #javaizmirde
Communication
CreativityProfessionalism
Experience
For better career...
Knowledge
@ankarajug #javaizmirde
Communication
CreativityProfessionalism
Experience
For better career...
Knowledge
If you know Java then dive into the frameworks.. If you know all of them go through scripting languages...
Know you stuff very well...
Know broad... Know deep...
@ankarajug #javaizmirde
Communication
CreativityProfessionalism
Experience
For better career...
Knowledge
Stay Current... Use your knowledge...
Practice... Practice... Practice...
@ankarajug #javaizmirde
Communication
CreativityProfessionalism
Experience
For better career...
Knowledge
Be Open-Minded...
Listen to people’s thoughts.. They’re more valuable than you think.. You CANNOT know
everything..!
@ankarajug #javaizmirde
Communication
CreativityProfessionalism
Experience
For better career...
Knowledge
Reject the status quo...
Don’t be a rebellion but don’t kill the rebellion inside you...
@ankarajug #javaizmirde
Communication
CreativityProfessionalism
Experience
For better career...
Knowledge
Take and accept the responsibility...
Make it all in a classy way...
@ankarajug #javaizmirde
To sum up on career...You are the one that will be building your OWN career.
Work for your employer and work for yourself also...
Take the time to build your skills:your knowledge, your communication skills, your experience.
And don’t kill the child inside you, make it creative as always...
Act Professional, because you have to be a ONE..!
@ankarajug #javaizmirde
To sum up...
JAVA is still HOT TOPIC...
Read Read Read...
Participate...Be Active...Be a part of JAVA :)
Oracle is investing on Java so best is yet to come.
Take a leap, dive into Java, build your career on it.
@ankarajug #javaizmirde
JUST DO IT
@ankarajug #javaizmirde
@ankarajug #javaizmirde
@ankarajug #javaizmirde
E0F