• Post Reply Bookmark Topic Watch Topic
  • New Topic

Learning to Learn.  RSS feed

 
Pankaj Shet
Ranch Hand
Posts: 320
Java Scala Spring
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.



 




 









 
Jesper de Jong
Java Cowboy
Sheriff
Posts: 16028
87
Android IntelliJ IDE Java Scala Spring
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There are indeed a LOT of concepts, libraries, frameworks and products in the Java world, in fact there are so many that it is, in my opinion, impossible to become an expert in everything. Besides that, the world is constantly changing and new frameworks, libraries and even new programming languages are being developed every year. You could be putting all your time in learning and then find out that in two years there are lots of new things you need to learn.

So you need to choose which of these subjects you will really want to become an expert in, and which of them you'll need to know less deeply. For example, I'm mainly a back-end Java developer, I like inventing and building concurrent, efficient, scalable server-side software, but I care less about front-end development (HTML, CSS, JavaScript). I do know the basics of front-end development and I regularly build webapps, but it's not what I choose to specialize in.

About the art of learning: What in my experience works best is experimenting and using the technologies you want to learn, by writing lots of small applications yourself. I find it a lot easier to learn stuff by doing and finding out the theory along the way, than to first try to read a book full of theory from cover to cover before I try to use a technology myself.
 
Pankaj Shet
Ranch Hand
Posts: 320
Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Jesper for your reply,
But practising needs creativity which I lack.
I need to understand, what to practise? and how?
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!