• FB
  • Twitter
  • Google+
  • Youtube
  • Insta

About me

Let me introduce myself

A bit about me

Hello friends, I am Dhananjaya Naidu and I’m just like you; a java lover. I feel proud to say that I am a Java Developer and currently located in Bangalore, India.

I enjoy coding in full Java/J2ee stack (Spring, JSF, Hibernate, Struts, Servlets, JSP) and Web Technologies (HTML, CSS, JavaScript, JQuery).

I love to play Cricket, Kabaddi, Valley Ball and any Out door Sports. I love the nature and like to travel new places.


Dhananjaya Naidu

Personal info

Dhananjaya Naidu Reddi

Be good, Do good !!!

Birthday: 19 Jun 1988
Website: www.rdnaidu.com
E-mail: hello@rdnaidu.com

Skills & Things

Java & J2ee


My latest writings

Friday, 23 June 2017

Iterate through a HashMap - Java

There are several ways of iterating over a Map in Java. Lets go over the most common methods and review their advantages and disadvantages. Since all maps in Java implement Map interface, following techniques will work for any map implementation (HashMap, TreeMap, LinkedHashMap, Hashtable, etc.)

Method #1: Iterating over entries using For-Each loop.

This is the most common method and is preferable in most cases. Should be used if you need both map keys and values in the loop.
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {

    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());


Note that For-Each loop was introduced in Java 5 so this method is working only in newer versions of the language. Also For-Each loop will throw NullPointerException if you try to iterate over a map that is null, so before iterating you should always check for null references.

Method #2: Iterating over keys or values using For-Each loop.

If you need only keys or values from the map, you can iterate over keySet or values instead of entrySet.
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

//iterating over keys only

for (Integer key : map.keySet()) {

    System.out.println("Key = " + key);


//iterating over values only

for (Integer value : map.values()) {

    System.out.println("Value = " + value);


This method gives slight performance advantage over entrySet iteration (about 10% faster) and is more clean.

Method #3: Iterating using Iterator.

Using Generics:
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();

while (entries.hasNext()) {

    Map.Entry<Integer, Integer> entry = entries.next();

    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());


Without Generics:
Map map = new HashMap();

Iterator entries = map.entrySet().iterator();

while (entries.hasNext()) {

    Map.Entry entry = (Map.Entry) entries.next();

    Integer key = (Integer)entry.getKey();

    Integer value = (Integer)entry.getValue();

    System.out.println("Key = " + key + ", Value = " + value);


You can also use same technique to iterate over keySet or values.

This method might look redundant but it has its own advantages. First of all it is the only way to iterate over a map in older versions of Java. The other important feature is that it is the only method that allows you to remove entries from the map during iteration by calling iterator.remove(). If you try to do this during For-Each iteration you will get "unpredictable results" according to javadoc.

From performance point of view this method is equal to For-Each iteration.

Method #4: Iterating over keys and searching for values (inefficient).

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for (Integer key : map.keySet()) {

    Integer value = map.get(key);

    System.out.println("Key = " + key + ", Value = " + value);


This might look like a cleaner alternative for method #1 but in practice it is pretty slow and inefficient as getting values by a key might be time consuming (this method in different Map implementations is 20%-200% slower than method #1). If you have FindBugs installed, it will detect this and warn you about inefficient iteration. This method should be avoided.


If you need only keys or values from the map use method #2. If you are stuck with older version of Java (less than 5) or planning to remove entries during iteration you have to use method #3. Otherwise use method #1.

Source @www.sergiy.ca

Wednesday, 3 May 2017

Command to view stored procedure

How to view a stored procedure? Which command is used to view a stored procedure?

You can use the following data dictionary views to display the body from stored procedures:




Here is an example of how to use the user_source view:

SELECT TEXT from user_source

where type='PROCEDURE'



Where TEXT lists the body of procedure "PROC1"

Tuesday, 20 December 2016

Java Frequently Asked Questions - Volume 1

  1. What is the role of JVM. 
  2. What if I change the extension of a class file to myfile.abcd
  3. what is class loader. What are different types of class loader.
  4. What if you call destroy method from init method in servlet.
  5. Which algorithm does garbage collection uses internally.
  6. How do you convect to JSON in restfull WS.
  7. Which algorithm does Garbage collection uses.
  8. How to tell JVM which garbage collection to be used.
  9. what is the time complexity of quick sort.
  10. Annotations
  11. Immutable class with List as variable.
    • Just because the reference to the list is immutable doesn't mean that the list it refers to is immutable. 
    • Even if list was made final this would be allowed
      // changing the object which list refers to
      but this would not allowed:
      // changing list
      example.list = new ArrayList();   // assuming list is public
      In order to make the list immutable (prevent also the first line), I suggest to use Collections.unmodifiableList:
      public class Example {
          final private ArrayList list;
          Example(ArrayList listArg) {
              list = Collections.unmodifiableList(listArg);
  12. Spring IOC with web.xml
  13. Integer i=10;Integer j=0; syso(i==j);
  14. Association, Aggregation, Composition
  15. HashMap size, load factor functioning
  16. How to configure eh-cache to store data in hard-disk
  17. Can we make hibernate Entity classes as Serializable. What is the problem if we don't.
  18. What is difference between Singleton class and defining all methods in the class as static.
  19. Can we configure properties of hibernate configuration as a bean in Spring.
  20. How are you storing database password in hibernate configuraion file.
  21. How are you generating Response in rest.
  22. Garbage collection tuning.
  23. Difference between openSession and getSession in hibernate.
  24. Difference between get() and load()  in hibernate.
  25. What is a web service and what is Rest.
  26. How to extend an abstract class in Spring configuraion.
  27. What is n+1 problem in hibernate.
  28. What is the difference between Controller, Component, Resource and Service in Spring.

Answers coming very soon....!!!

You may also interested... JAVA/J2EE MUST READ - INTERVIEW TOPICS

Thursday, 1 December 2016

101 power thoughts to Motivate YOU

Motivation is important. It is what energizes you, pushes you forward and drives you to take action towards accomplishing your goals. It not only gets you started but keeps you going with enthusiasm to do things you set out to do. Nothing gets done without motivation. A potentially productive day can turn into a wasted day if you don’t have the drive to get on your feet and start working. Everyone, now and then, needs a little push to get them going. It is through motivation that you can give your best and tap your full potential. Motivation is the cornerstone for success. It can influence you, affect your beliefs and transform your life. You can get a lot accomplished when you are driven and saturated with motivation.

So here are 101 thoughts just for you that will motivate you, speak to you, resonate with you, empower you and drive you forward on your success journey.

  1. Get driven into your ambition, pursue your goals passionately and you’ll see your dreams come alive.
  2. If you’ve been hoping for a successful future, now is the time to stop thinking and start creating.
  3. Problems come, things go wrong. Stuff happens. It is how you deal with it that makes all the difference.
  4. Life is happening right now. Stop postponing chasing your dreams until tomorrow.
  5. Being content with mediocrity is the biggest mistake you can make in life.
  6. You have the power to change your mindset and the right mindset can change the course of your life.
  7. Mute the noise of self- doubt. Stop second guessing yourself. Trust yourself and let self-belief lead you on the path to success.
  8. Accept yourself the way you are. You don’t have to be perfect to love yourself.
  9. Believing you have it in you what it takes to succeed is the first step. Setting goals is the next.
  10. Success is not a chance finding. It is a hard earned thing.
  11. Stop worrying about disappointing others. Start focusing on meeting your own expectations.
  12. Others may help you set goals and make plans but you have to walk the path.
  13. To succeed at anything, consistency is as important as competence.
  14. You cannot have it all but if you try hard enough, you can have a lot.
  15. Negativity is everywhere. You’ve got to make a choice- let it overwhelm you or use it to build a stronger you.
  16. If you allow your past to steal your present you are preparing yourself for an unhappy future.
  17. Life is about turning negatives into positives, obstacles into opportunities, moments into lasting memories.
  18. Success journey doesn’t have to be stressful. Enjoy the ride, learn and get enriched from the challenges you face.
  19. Many of day to day battles must be won in your thoughts first. That’s where success begins.
  20. Setting ambiguous goals is the surest way to get lost on your journey to success.
  21. Things won’t change until you want them to change and put in efforts to bring that change.
  22. You’ll never know what you’re capable of until you push yourself to the edge. To realise your full potential stretch your boundaries.
  23. Don’t let others’ opinion and judgement affect your confidence. You are capable of achieving more than they think you can.
  24. The more others push you down, the more you should use all your strength to bounce back.
  25. If you want to lead the pack and achieve success thicker and faster, begin working harder and longer.
  26. Don’t wish for things to happen. Recognise your potential, rely on your ability to work hard and make things happen.
  27. Willingness to move forward against all odds is what defines a winner.
  28. You have the ability and the strength to accomplish your goals. If you think otherwise, it’s time to change your thoughts and beliefs.
  29. Don’t blame others for the troubles in your life. Take charge of your life and start taking responsibility for the choices you make and the decisions you take.
  30. The greatest wisdom lies in understanding of your strengths and being aware of your weaknesses.
  31. Pursuit of success isn’t easy. That’s why few take the plunge. Those who do, accomplish their goals. Others have lifelong regrets.
  32. Being content with mediocrity is the biggest mistake you can make.
  33. Don’t fear the hard times. They bring out the best in you and build a tougher you.
  34. To recognise your ability is wisdom. To tap into your full potential is strength. Reaching there is success.
  35. 3 things to break yourself free from if you want to excel- closed mind, comfort zone, negative thoughts.
  36. A winner is one who knows what he wants to achieve, can figure out how he wants to achieve it and then goes all the way to actually achieve it.
  37. Stop worrying about disappointing others. Start focusing on meeting your own expectations.
  38. Get clear on your goals and you’ll figure out the shortest path to reach them.
  39. Stop giving yourself a hard time for not being perfect. Focus on being your best.
  40. No matter how many goals you’ve achieved there’s always room for more. Keep striving. Keep raising the bar higher.
  41. The answer to ‘what it takes to succeed’ is simple: you must love what you strive for and be unwilling to give up before you get it.
  42. In the dictionary of success, fear means failure.
  43. When you say no to fear, you open doors to a world of infinite possibilities and opportunities.
  44. Don’t wait for others to give you a push and show you the way. Be driven by your calling and march ahead towards your goals.
  45. Weaknesses become impediments when you fail to recognise them and take steps to overcome them.
  46. You ruin your chance to live a happy life when you fail to make a choice between living in quantity and living with quality.
  47. Don’t cut yourself short to measure up to others. You were born to live up to your own expectations.
  48. Without efforts, life doesn’t change or get better. To get things done, you need to get going and make things happen.
  49. Talent is not enough to succeed. You also need determination, will power, perseverance and a burning desire to succeed.
  50. The difference between those who succeed and others is that the successful finish many things they start while others finish only a few things of the many that they start.
  51. You can achieve and get done in life more if you learn to prioritise in your life.
  52. Stress is like pollution- ever present in your life. You cannot get rid of it but if you are motivated enough, you can manage it effectively.
  53. Never let your circumstances overwhelm you or negative thoughts to overpower you. Keep the faith, hold on to your dream and keep pushing. Your self-belief will propel you towards your goals.
  54. The road to success is not all smooth sailing. When difficulties knock you off balance, even the best can crack under pressure. People who rise to the occasion are the ones who are mentally tough and have the strength to outlast every obstacle that comes their way.
  55. Instead of comparing yourself with others or wishing you were different, dare to be yourself. It is your individuality that encompasses what you really are.
  56. You cannot always change your circumstances or alter your situation but you can develop positive attitude and make the best use of them.
  57. It is the pursuit of meaningful things not material things that makes your life happy.
  58. Don’t let your comfort zone suffocate your ambition. Step out and bring your dreams to life.
  59. Success isn’t about staying ahead of others. It’s about getting ahead in life and accomplishing your life goals.
  60. Whatever you set out to achieve stick to it long enough, give it all you’ve got and you’re sure to get it.
  61. Hope enables you to look ahead and faith empowers you to look further than you can see.
  62. It is not so much the amount of time spent pursuing a goal as the quality of efforts put in that shows incredible results.
  63. There’s a great wealth outside the comfort zone. Break out of the cocoon, challenge yourself and live a life of excellence.
  64. Stop being comfortable with being ‘okay.’ You have the ability to do great things. Your best is still within you. Unlock your true potential.
  65. Don’t regret lost opportunities. Sometimes the misses can teach more valuable lessons than the hits.
  66. Don’t be afraid to try something new. Seeking new opportunities, taking your chances and breaking new grounds is the only way you can position yourself for success.
  67. Don’t give in to the temptation of instant gratification. The best things in life are worth waiting for.
  68. You push yourself into mediocrity when you live below your potential. Challenge yourself, expand your horizon, learn, grow, excel.
  69. Develop a growth minded attitude, always aim at taking yourself to the next level and your will be surprised how much you can accomplish in your life.
  70. Those who don’t take risks, rarely commit mistakes. But then they don’t grow either.
  71. Life is never perfect. Life is what you make it to be. You can either play the victim, give in to the circumstances or you can choose to be the victor and live life on your own terms.
  72. If you don’t focus on the goals that matter, it doesn’t matter what you achieve.
  73. Your values serve as a compass helping you navigate through the intricacies of life and guiding you to live a meaningful life.
  74. In life things don’t always pan out. But that isn’t reason enough to stop planning your life.
  75. Don’t bother about others’ opinion about you. What matters is your conviction and grit to reach your goals.
  76. The secret to happiness is to live life in sync with your core values.
  77. Everyone can set goals. Achievers are those who can figure out how to accomplish the goals and then go all out to reach there.
  78. Life is short and unpredictable. Don’t put all your efforts and resources mapping out the future. Figure out your present and live each moment as best as you can.
  79. Life isn’t only about achieving goals. It’s also about giving meaning, adding value to your life and bettering it in all ways possible.
  80. You are unique; one of a kind. Don’t suppress your true self out of fear of being rejected or mocked at by others. Take pride in being what you are.
  81. Live your life your own way. Don’t let others push you around.
  82. Don’t let life’s struggles get you down. Learn to gain strength and grow from every difficult experience.
  83. Life doesn’t come with a user’s manual or with a set of solutions to go with its problems. You have to devise your own ways and means to handle it. Your success lies in how well you can sort out the challenges.
  84. All great achievements require hard work and commitment. If you master the art of self-discipline, you can reach your full potential, create breakthrough results and design the life that you always desired.
  85. Don’t dissipate your energies doing too many things and pursuing too many goals. Channelise your efforts on a few worthwhile goals and pursue them fervently.
  86. Negative self-talk and poor self-image can trip you up on the path of success. Value yourself; raise your self-esteem.
  87. The problems in life will never change. But what can change is your Attitude-how you take them and your Approach- how you tackle them.
  88. Disappointments don’t announce before coming. But if you keep yourself motivated and maintain a positive frame of mind, you can escape a lot of anger and annoyance.
  89. To succeed in life, you must identify your strong points, understand your true potential, hinge on your strengths and capitalise on your talent.
  90. The fiercest battles are not fought outside with others but with the enemy within. You win every time you overcome negativity and choose to live a positive and upbeat life.
  91. No matter how many goals you have accomplished or how many achievements you have to your credit, there is always room for more. As long as you breathe, give yourself something to look forward to, keep setting goals- that is the secret of a long life.
  92. There are two kinds of negative people in this world- those who will steal your dreams and those who will make you abandon your dreams; be wary of both.
  93. It is not important for others to believe in you; what is important is that you believe in yourself and believe with conviction.
  94. The world is full of dream crushers who will try to squash your dream, toss it aside and tell you- what you want to achieve is not possible. Don’t believe them. Carry on anyway and you will prove them all wrong.
  95. Having failed is not the worst feeling. Knowing you didn’t give your best is even more tormenting.
  96. Life is too short to be drifting through aimlessly. Make it meaningful- set yourself worthwhile goals and go after them passionately.
  97. In the end, what you get is not what you wished for but what you have earned for yourself.
  98. Sometimes on the journey of success, when you are feeling low and lost, all you have to do is to look through the rear view mirror- you will be glad how far you have come.
  99. Life can be tough but this isn’t reason enough to give up. Each time you fall, dust yourself off and come back stronger.
  100. You can never be too young, too old, too successful or too content to chase your goals. Follow your passion and go for it.
  101. Push your limits, challenge yourself. There is more in you than you ever imagined.

Monday, 24 October 2016

Java/J2ee Must Read - Interview Topics

Core Java:


  •     Abstraction
  •     Encapsulation
  •     Polymorphism
  •     Inheritance

Overloading, Overriding



  •     Checked & Un-Checked exception
  •     Customizing Exception
  •     Exception chaining and propagation


  •     General concepts
  •     How to create and use


  •     Basics
  •     Thread vs Process
  •     Life Cycle
  •     Interrupting Threads
  •     Thread pool concept
  •     Concurrency (Good to have)
  •     Executor service

Collections & Maps

  •     ArrayList, LinkedList with code examples
  •     HashMap, Hashtable, ConcurrentMap detailed implementation knowledge
  •     Hash code, equals concepts
  •     Sorting collection & Maps,
  •     Searching elements in Collection and Maps
  •     Comparator/Comparable utilization

Inner classes

  •     Types of inner classes
  •     Difference with others



Design Patterns

  •     Singleton, factory, builder
  •     Adapter, Proxy, Facade
  •     Strategy, Observer, Chain of responsibility

Data structures

  •     Trees, Stack, Queue, Linked List


  •     Arrays based programs
  •     Serialization vs Externalization
  •     Programs : like Singleton,Mutable class, Prime num, Febinnocii series, Sorting techniques, Hashmap implementation, String based programs,
  •     Object class methods with examples

Note: Features of all the versions Java 5, 6, 7 and 8

Advanced Java:


  •     Steps to write basic JDBC program
  •     Types of JDBC Drivers
  •     Difference b/w Statement, PreparedStatement, CallableStatemnt
  •     Result Sets
  •     Stored Procedures, Batch Processing
  •     Different interfaces used in JDBC program


  •     Lifecyle
  •     Request dispatcher
  •     ServletContext vs ServletConfig
  •     Different Scopes
  •     Session Tracking Mechanisms


  •     Implicit objects
  •     Flow of excecution
  •     Session Tracking, Cookies
  •     JSTL
  •     Custom jsp tags
  •     Different types of tags available in JSP like Directives, Actions, etc.


  •     What is ORM
  •     Hibernate object lifecycle
  •     Single row operations like get() vs load()
  •     Eager loading vs Lazy loading
  •     Annotations
  •     All the interfaces using in Hibernate programs like Session, SessionFactory, Transaction.. etc
  •     Cache like first level and second level cache
  •     Different types of mappings
  •     Hibernate features
  •     Difference b/w SQL, HQL, Criteria API, Native SQL


  •     IOC, Spring Core
  •     Dependency Injection (DI) like Setter, Constructor, Interface
  •     Spring Bean Lifecycle
  •     Spring MVC flow of execution
  •     Autowiring
  •     Different Scopes
  •     Annotations
  •     AOP concepts in depth
  •     RESTful Webservices
  •     Transaction Management
  •     Spring integration with different frameworks like Hibernate, JSF, Tiles, Log4j, and etc.
  •     Spring Security

Tuesday, 20 September 2016

Top 10 Computer Programming Languages in 2016

1. Java

  • Learning Curve: Medium
  • Java is one of the top programming language right now and most of its success goes to the Android Operating System that has captured more than 80% of the mobile OS market.
  • Java is a versatile language, providing OOP, functional programming out of the box. It also follows all the modern programming methodologies and try to enhance Object Oriented Methodology.
  • Java Technologies can also be used for creating awesome websites and enterprise-level web applications that solve the problems of the future. The apps created using the Java Programming language are scalable and is supported by Google App Engine for hosting purposes.
  • Features of Java:
    • Easy to write and debug
    • Pure Object Oriented Language
    • Robust, Multithread and Architecture neutral
  • Homepage: Java Oracle

2. Python

  • Learning Curve: Easy
  • Python is one of the succinct programming languages that yields from the basic philosophy of minimum and clean code.
  • There are tons of courses online from Udacity, Coursera, and other Massive Open Online Course platform that improves on the premises of starting with the simplest yet the most powerful programming language of all time.
  • Python is a multi-purpose programming language and can be used to build almost anything. Another staggering fact about python is its use in data science and other scientific endeavors.
  • Features of Python:
    • Simple and Easy to learn
    • Used as introductory language to newbie programmers
    • Great Programming language for Scientists
    • Supports OPPs and Functional Programming
  • HomePage: Python

3. C#

  • Learning Curve: Medium, Easy Only if already know Java
  • C# is one of the close brothers of Java but works on Windows platforms only. When I started learning C#, the similarities between C# and Java was way beyond my likings.
  • C# is one of the top languages as it helps the programmers to build modern web applications with ‘.NET’ framework and Azure.
  • You can also choose to create apps that work on the desktop, as well as portable Windows devices. The recent release of Windows 10 have made prospects of this programming language way better than other programming languages.
  • For gaming, a popular gaming development engine, Unity is all created using C# as its primary language.
  • Recent News of .NET framework becoming open source has also changed the prospects and growth of Microsoft and the C# programming language.
  • Features of C#:
    • Similar to JAVA
    • Pure Object Oriented
    • Can be used to do almost anything including web programming, game programming.
  • Homepage: Resources and More Information

4. C++

  • Learning Curve: Hard
  • If you are interested in low-level programming, then look no further than C++. C++ is famous for its system call libraries and can be used to control every aspect of the Operating System. The reason behind such control is the fact that it can call hardware related operations and ultimately gives the control in the hands of the programmer.
  • The current generation Direct X are all developed in C++ programming language as C++ is scalable, less memory hogger and works perfectly on the different set of devices, i.e. completely portable.
  • Features of C++:
    • Build upon the most popular language, C
    • Supports OOPs
    • Supports functional programming
  • Homepage: ISOCPP

5. PHP

  • Learning Curve: Easy
  • PHP(Hypertext Preprocessor) is one of the world’s most used server-side scripting language. All the magic that happens behind the door of the server is performed by a server-side scripting language such as PHP.
  • PHP oriented CMS are already popular in the market. Some of the popular CMS that uses PHP as its core languages are WordPress, Magento, Joomla and more.
  • PHP also offers a great deal of frameworks to work with. Some of the popular PHP frameworks are Yii, CodeIgniter, CakePHP, Symphony, Larval and more.
  • PHP works great with database oriented applications and can harness a lot, if properly used. Facebook has also launched a modified version of PHP, known as HACK programming languages.
  • Features of PHP:
    • Supports OOP
    • Works great with HTTP
    • Handles Data and forms efficiently
    • Works for Persistent Connection and more
  • Homepage: PHP

6. JavaScript

  • Learning Curve: Easy-Medium
  • JavaScript is the lingua franca of the web and also the no.2 programming language in our top programming language list. Without JavaScript, we would never have been able to manipulate those HTML DOM elements and create some amazing front-end interaction with the user.
  • JavaScript has evolved a lot in the past 10 years and now-a-days, a lot of JavaScript frameworks are linked to its success. Frameworks such as Angular.js, Ember.js and other provide more value to the programming language.
  • A great tool for the front-end developer.
  • Features of JavaScript:
    • Similar to C
    • Detects browser and loads browser specific information
    • Support functional and OOP
    • Can be used to validate user’s input
  • Learn more about JavaScript: MDN JavaScript

7. Swift

  • Learning Curve: Depends
  • There is no doubt in my mind that Swift is here to stay. Just a year old, the programmming language has brough a lot of oppurtunity to the iOS develoeprs in term of new features, which might include writing less code and developing faster codes.
  • An interesting article shows the recreation of one of the most notorious(read popular games) Flappy Bird using the swift programming language.
  • Features of Swift:
    • Modern
    • Designed for safety
    • Fast and Powerful
  • Homepage: Swift

8. R

  • Learnign Curve: Medium
  • R is not really a programming language, but it is one of the most popular stastical language used by scientist all over the world. You can learn more about R here.
  • Features of R:
    • Supports Input/Output files
    • Object Oriented Programming
    • Distributed Computing
    • Supports tons of R packages for array of tasks
  • Homepage: R

9. Ruby

  • Learning Curve: Easy-Medium
  • Ruby hails from the land of fast protoyping and agile development. If you are looking to get started with any project that require agile development and also needs to be develop prototypes faster, then Ruby is for you.
  • Web applications can be built using Ruby on Rails framework with tons of learning resources available online for both free and paid.
  • Also, online learning platform such as Udacity, Coursera and others provide tons of resources for learning Ruby and its framework Ruby on Rails.
  • Features of Ruby:
    • Supports OOP and functional programming
    • Great for Prototyping and Agile Development
    • Easy to learn for newbie programmers.
    • Bonus: A great resource that compares Ruby programming language with other programming languages. Must read for Ruby enthusiast.
  • Homepage: Ruby

10. Objective-C

  • Learning Curve: Depends
  • Objective C is the predecessor of the newest entrant of iOS programming language Swift that created ripples last year. Still, the frontier of iOS programming is still hot and can be learned.
  • Apple has released both XCode and Objective-C that works in tandem to create wonderful apps for their operating system.
  • Features of Objectve-C:
    • Creates app for iOS operating System
    • Large Community
  • Homepage: Objective-C

images: statisticstimes.com


What can I do


Coming Soon...!!!

Web Design

Coming Soon...!!!


Coming Soon...!!!

Graphic Design

Coming Soon...!!!


Coming Soon...!!!

User Experience

Coming Soon...!!!


Get in touch with me


Bangalore, India