Vikrama Sanjeeva

Ranch Hand
+ Follow
since Sep 02, 2001
Merit badge: grant badges
For More
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Vikrama Sanjeeva

Houssam El wrote:I would suggest to your friend starts taking computer science courses, here is a roadmap,
Computer Science Roadmap
It gives a concise explanation about the basis of the programming language

Thank you Houssam. That's a wonderful resource!!

Paul Clapham wrote:
Sequential processing, loops, arrays, basic arithmetic calculations, string processing.

Thank you Paul.

Campbell Ritchie wrote:
Callling methods. Designing classes (in an OO language). Flow control, which includes selection as well as loops. In Java®, the simpler features of the streams API.

Thank you Campbell.

Junilu Lacar wrote:
I would tell your friend there's a huge chasm between learning a first programming language and being able to develop a web application. That's almost like saying "My friend wants learn how to drive a car and then he wants to be a race car driver." There are many things he's going to need to learn to bridge that gap.

Developing a web application or working as a full-stack developer is his overall goal. I think, to achieve this goal, he has to learn his "first" programming language ? So, yes, he will have to go step-by-step to reach his goal.

One thing that has helped me over the years has been to always learn the principles behind techniques. Principles around cohesion and coupling, complexity and simplicity, decomposition, organization and modularization, and many others. If you understand principles, then it's easier to learn and apply practices and techniques and quickly adapt to the constantly landscape of technologies in our field.

Bottom line, yes, learn the techniques and technologies, but also study principles. Principles are at the foundation of learning. Any learning not grounded on a solid understanding of basic principles is flimsy and brittle at best, and downright dangerous at worst

Completely agreed! I've experienced the same over the years.

2 years ago

Paul Clapham wrote:

Campbell Ritchie wrote:

The beginner will be almost entirely focused on the box "General Programming Skills". Such skills as they learn will likely apply to many other languages besides Java, and conversely much of the Java code which is written by non-beginners these days doesn't use the skills learned in that box.

Paul, what topics do you think comes under  "General Programming Skills" ?
2 years ago
Thank you everyone for sharing your opinions and suggestions:

Houssam El wrote:
Java is one of the most powerful languages and is widely used in all fields i.e Desktop app, Web app, and Mobile app, furthermore, he would have the ability to read everything related to the Java language, the progress of learning never ends, finally, I would recommend books to learn from it, personally, I've studied Java from books although they cover many topics unlike videos, the author skims much information that will lead you to frustrating, and it might lead to leaving the path, here is a brief overview about what he waiting for him

The 2021 Programmer RoadMap

Finally, I wish him the best

This diagram gives a very good big picture of what is currently involved in Java & the related world. I think it will be well comprehended by a mid-level developer, but for the novice, who is just looking for the first step in Java programming, I think, it might create some confusion and fear as well.

Campbell Ritchie wrote:
Yes, HFJ is probably the best beginner's book around. Effective Java is very good, but parts of it are far beyond the beginner's level.

Agreed with your comments on HFJ and Effective Java. I think Effective Java can be used as a 2nd book reference, and I think going forward, once this novice will turn from a begginer to a mid-level java developer, he will be getting more stuff from Effective Java. Therefore, I think using Effective Java as a 2nd reference from the start of learning Java programming is not a bad approach.

Campbell Ritchie wrote:
Why has your friend decided so definitely what he is going to do. What has he done before? At the beginner's stage he should remember that computer sciences is a very large field and he might be happier doing something completely different.

This is an interesting question. As stated earlier, he is a complete novice. He doesn't have any background in programming. He is planning to learn Java as his first programming language. And then he wants to develop a web application. I think his approach is to get ready for the job market, and that's why he is planning to build skills in both front-end and back-end technologies. He is planning to be prepared in the next 2-2.5 years and then looks for relevant jobs.

After having a bit of research and discussion, I think, he should first learn fundamental programming and OO concepts using Java, and then learn Data Structures. This will (I think) build his solid foundation in programming. And then he can move to the front-end technologies HTML5, CSS, Javascript, React, etc, and databases RDBMS (SQL), Graph (Cypher)

Course 1: Java Programming Masterclass covering Java 11 & Java 17

Course 2: Data Structures and Algorithms: Deep Dive Using Java

2 years ago
Hi all.

This is a question on someone's behalf, who is young 20 years old and looking to start a career in Java and is motivated to become a full-stack developer (front-end and back-end) in web application development. He is completely a novice and has no background in programming.

He is looking to start from online resources, therefore, could you please advise/recommend a course for this young chap?

My suggested course is:
and the recommended books are: Head First Java, 2nd Edition by Kathy Sierra, and Effective Java 3rd Edition Joshua Bloch

Other opinions are highly appreciated.


2 years ago
Hi Pete,

Thank you for your detailed response. It's really helpful.

1) Could you please provide the Amazon link for the 2nd edition of the book?

2) My plan is to write first OCA, then OCP and finally Spring certification. What do you reckon for this path? Which spring certification is popular and accepted in the industry? I might be asking too much here, but I want to ensure that I know where I'm going, and it is the right direction.

Thanks Pete for your responses.

I contacted OCP Support with my SCJP 1.2 transcript and they've given below response:

Dear Viki

Thank you for writing back to us.

We see that you have earned the credential Sun Certified Programmer for the Java 2 Platform on 5-JAN-2002 under testing id SP9865371.

Kindly note as you have already passed the exam Sun Certified Programmer for the Java 2 Platform hence you need to pass only one upgrade exam 1Z0- 813 to earn the credential Oracle Certified Professional, Java SE 8 Programmer

Kindly visit for more details at :

We appreciate your understanding in this


OCP Team

From their response, it's clear I can go directly to exam 1Z0- 813. However, after discussing with you (as my gap is much) I'm planning to for OCA 808 and then OCP 809 exams. This might be the long route and expensive as well (as I've to pay two separate exams) but I think it will help me to slowly digest the new concepts in Java and also will help me to regain my confidence.

Having said that, I think (after my research here on forums), I need below two resources to start preparing for OCA 808:

a) OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808 1st Edition
b) Ethuware tests

I just need your review on above to ensure I'm on the right path. This will help me to start my preparation.


Hi Pete,

Thanks for your response.

So you mean I've two options?

1) Either to go for OCA 808 and then OCP 809 or
2) Go for the upgrade exam 813

Both of the above paths will lend me to OCP for Java 8 Programmer?

Pete Letkeman wrote:For this path I suggest that you try directly for the Java OCA 808 exam and then the Java OCP 809 exam.
I suggest that you take a few moments and read some of the stories found here
By over over these stories you can see how others prepared and what material they used.
This could save you time, money and frustration.

Hi Pete,

Thanks for your response.

Could you please share the rationale behind taking Java OCA 808 exam first and then the Java OCP 809 exam? Is it mandatory? And does my SCJP 2 certification is not acceptable to take OCP 809 exam?


I'm out of programming from last 6+ years and during all this time I was working as a Business / System Analyst, focusing more on business requirements and related documentation.

However, I'm now planning to move back to back-end programming.

The last version I used was JDK 4 with Struts 2.

I notice nowadays Java 8 with Springs are heavily used in the software development industry.

Therefore, I'm planning to upgrade my knowledge of Java 8 and Springs modules.

I've done some tutorials on Springs framework but I feel more confident on the subject by writing exams. Programming small code snippets and learning new concepts for the exam is what works well in my case.

Having said that, what is the recommended path if I want to go for Java 8 and Springs certification? I mean the books, mock exams, and the time required to prepare.

Any help would be highly appreciated.


I understand that GA performs analytics and stores analytics data in google analytics storage. I'm not sure of it's length, but as I remember, it can store for longer time may be 2+ years. I've integrated GA with one corporate portal back in 2010. It worked wonders, without a doubt.

What I'm worried is user data and app data. Which I will store in MongoDB. So if some analytics has to perform on this data, then I don't think GA will come in handy here. After your advise (of not using Hadoop unnecessarily until required), I think I've to use R Studio to write our own custom data analysis algorithms. I'm not familiar with R, but it's is one of the language in my research road-map to master upon. Please suggest, how you see things in this case? That is, performing analytics on user data and app data to make value out of the collected data which in turn will help business to make future decisions. I'm not experienced with R, but of you can suggest something simple here using R then it would be great for me and my app.

Many thanks.

7 years ago
Wonderful !!

I completely agree with the rational behind your advise.

Just few things:

  • You said, GA provides end to end pipeline for free. I tried to look into free storage but only free storage I found in 15GB google drive. May be I'm missing something here? Could you please provide some starting links to this end to end service for free which includes all 5 services you mentioned (data collection storage, transfer, processing, visualization) ??

  • Secondly, just for info, we do have Hadoop cluster setup as part of uni project, which the management encouraged me to use instead of going for paid online services (actually initially I proposed Firebase, but they (the management) is not willing to pay continuously for Firebase service in future, that's why asked me to the already made Hadoop cluster).

  • Rest, I really appreciate yours ideas of learning the echo-system side by side on non-critical prototype, gathering data with GA and setting up a business culture for taking necessary decisions based on the collected information. This is indeed very piratical advise, as well as using Hadoop when really required.

    Also thank you very much for raising the JDBC compliance issue of MongoDB !!

    Many thanks.


    7 years ago

    chris webster wrote:Hadoop is all about distributing your data and your processing across multiple cheap machines. The data is replicated so there are e.g. 3 copies of each block of data, with diifferent copies on different machines. If you have more nodes than replicas, e.g. 3 replicas across 6 nodes, then on average each node only contains half the total original data volume. Hadoop knows where your data is replicated, so it can decide to process different subsets of your data on different nodes at the same time. This is how Hadoop allows you to exploit the power of distributed processing.

    If you only have two nodes, and your replication factor is 2 or more, then each node contains all your data anyway, so Hadoop cannot decide how to break up the processing in this way. And if you only have one node, then nothing is distributed at all.

    The first case you mentioned i.e of 3 replicas across 6 nodes, you mentioned Hadoop can decide what to process where.

    Whereas, in your last example, i.e two nodes with replication factor is 2 or more, in this case you said, Hadoop cannot decide how to breakup processing.

    My question, why in 2nd case, Hadoop cannot decide ? If both nodes are deployed on two separate machines, and one machine is loaded and not have good resources as compare to the other, then don't you think YARN will select the second machine to process the task ?


    7 years ago

    I'm here to take a expert advise on using Hadoop or not for my situation/case.

    Brief intro: I'm a masters by research student doing research in BigData area which I wish to explore more by continuing into PhD.

    We've a side project in its inception phase (not related to my research) for developing mobile app using Ionic framework. One of the non-functional requirement of the project is to collect various analytics, for example, how many times apps downloaded, visited, which feature is used more, which user uses what etc etc. As a part of proposed solution, we've proposed to use Google Analytics to capture the required analytics and MangoDB for storing user's data.

    I believe these statistics can be easily captured by GA. However, recently, I was thinking to use Hadoop and its related technologies (Hive, Impala, Sqoop etc) for doing analytics work. Why ? Because this way, I will get a chance to work on Hadoop echo-system which will be a good compliment with my Master's research which is in BigData.

    What I know that Hadoop is mainly used where we have really BigData (in TBs or more) in a variety of format (unstructured, semi-structured) and where value out of data is needed by performing analytics.

    My question is, we will not have much data in mobile app, but we do have data analytics work in app. So does it make sense (reasonable?) to export data from MangoDB into HDFS and use Hive or Impala for doing analytics ?

    Please give feedback. Your expert advise is highly appreciated.

    Many thanks.

    7 years ago

    In my case; System B is completely a separate System. Actually, we own System A which provides payment services by publishing required Web Services. Whereas other systems (B1,B2,Bn) integrates with System A in order to make payments.

    After above replies, I am concluding that System B can be shown as (Primary) Actor as it will be the one who will be initiating interaction (s) with System A.