Hi Ranchers,
Here are the core technologies which a full stack
Java developer must know:
Mandatory Techs and Tools for any Java technology.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HTML5(Twitter Bootstrap, Foundation), CSS3(SASS,COMPASS,LESS), XML, JSON, Google Maps API, DOM , Javascript and related languages like(TypeScript/DART/CoffeScript)
REST API's,
Any one Language like Java and related languages (Groovy/Scala/Clojure)
Log Frameworks: Log4J, Apache Common Logging, SLF
Repositories: (SVN/GIT)
Bug trackking tools: JIRA.
CI/CD/TDD tools:
Jenkins.
QA Tools: HPQC/ALM
Testing tools: JUnit/Spock.
Build Tools: (Ant/Maven/Gradle)
Web Servers: Apache
Tomcat.
Enterprise Servers: WebSphere/WebLogic/JBOSS.
IDEs: Eclipse.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Apart from the above,
Core Java technologies:
OOPS
Data Structures and Algorithms,
Regular Expressions
Annotations
Generics
Java I/O, NIO, NIO2
Garbage Collections and Java Performance Tunning.
Reflection
Lambda Expressions.
Exception Handling
Functional Programming.
Operating System Concepts(Helpful in Multithreading , Concurrency and Parellalism)
Tech Architect related subjects like: Software Architectures, Design
Patterns, OOAD, UML,
JEE:
Java Web Techs:
JSP,
Servlets.
Java Enterprise techs and frameworks: EJB/JPA/JMS,
Java Web Services: SOAP/REST
Frameworks and Technologies like:
Spring Core(DI/IOC/AOP/Data/Security)
Java Web Frameworks like Spring MVC, Grails, Play, GWT, Vaadin,
JSF.
WorkFlow Engines like jBPM, Spring WebFlow.
OSGi and Dynamic Modularity Frameworks.
ORM and Data Mapper Frameworks(Hibernate/MyBatis)
Core JavaScript concepts like: DOM Manipulations.
Javascript frameworks like Jquery,
AngularJS, Knockout, Backbone, ExpressJs, EmberJS, EXTJS, ReactJS, Polymer, Aurelia, Three, D3, ALLOY-UI etc.
Object Oriented Javascript, Server Side javascripts like NODE.JS.
DataBase Technologies like: RDBMS(Oracle/MYSQL/DB2)
Big Data Technologies like: Hadoop/Spark/Flume, NoSQL, NewSQL.
Apart from Above there is a trend of DSMAC(Distributed, Social, Analytics, Cloud):
Distributed, Parellel programming(AtejiPX, CUDA Java)
Social Media API's like Facebook API, Twitter API, LinkedIn API.
Mobile techs(Java Mobile Web Apps, Java Native Android Apps)
RIA and Desktop apps technologies like JavaFX/GroovyFX (Can be used for building native Android Apps).
Big Data Technologies like: Hadoop/Spark/Flume, NoSQL, NewSQL. (Note: I don't have maths,physics background: So cannot go into the fields like (AI, Robotics, NLP, Machine Learning, Deep Learning)
Cloud CRM technologies like Salesforce(APEX Language), Amazon Web Services.
On top of the above there are trends:
Software containerization platforms like Docker
Microservices
IOT, Android TV, Android Wearables
Serverless Architectures, Codeless Developers
We can make pretty good use of above to learn:
Content Management Systems like Liferay 7.0 (Liferay with SMAC), AEM(Adobe Experience Manager)
Liferay Mobile Apps using Liferay Screens
Also there is new programming Paradigm coming up:
Reactive Programming(RxJava, RxJS, Akka)
There are several lists of technologies piling up...
Assuming I need to learn all of the above,
What strategy should a fresher make in order to master above things?
What should be my approach?
How to conquer all the above?
I have came across some great Professors and Professionals who can learn technologies in a short span of time in equal depth.
There are people who master several programming languages:
Languages include:
C,C++,Java, C#.Net, Scala, Groovy, Haskell, Perl, Python, Ruby and more...
I chose Java as a language,
But after 6 yrs of experience in Java, Still I feel, I stand no where in the competition
I want to
learn the art of learning and want to master the chosen technology..
It will be great pleasure to get advice from the masters of technology present on this Great Java Forum.
Regards,
-Pankaj.