Posted on

How to learn any Programming Language?

If you ask yourselves “how can I learn a programming language?“, Ask yourself “how did I learn English or Tamil or any other language?“.

Yes, it is as simple as learning a normal language, we start with the alphabets, then the words, then grammar, then the phrases, then essays and so on. While learning a programming language we tend to follow this structure.

Now we know what to ‘learn’, and by that, we do not mean learn five languages at a time, it will only complicate things and bring in a lot of confusion.

It will always be hard to learn your first language, but then that will help you learn all the other languages with ease.

The keynote is to master one programming language in order to learn other programming languages. Exactly like the ring from the movie,’The Lord of the Rings’.

It gets easier and easier to learn a new programming language once you master your first programming language.

Some programming languages are easier to learn than others. For example, learning Python or SQL will be much easier than trying to learn C# or Java.

It is of utmost importance that you understand the fundamentals of a programming language before moving on.

An intro to the world of computer science and the amazing things that we can do with programming skills would be a great idea when you are first starting out.

Talk to other people who have more knowledge about the language than you in order to know where to learn more about it.

But how do we achieve it?

“Tell me and I forget, teach me and I may remember, involve me and I learn.” -Benjamin Franklin

Suppose you learn a language, say French, but you don’t use the language for a week or a month, what happens?

Like water evaporating from a pond in summer, it will go down the drain without leaving behind a trace, won’t it?

The same happens with a programming language.

Try out a few languages and select the one which comes naturally to you. Don’t choose one for the sake of jobs, because, from an interview point of view, you will do much better with a programming language that comes naturally to you.

One must practice daily, that is code daily,solve problems. Programming languages are just like any other human language, its a language, you won’t feel like it’s master until you understand it.

Practising on a computer is a good thing but finding the logic without actually running the code will help you learn even better.

“work, work, work, code, code, code” that should be our mantra.

The more you code the more you learn.

Anyone can learn to code. Even people with significant disabilities have learned to code and become professional software engineers.

So how did they do it?.

A little interest, a little more dedication and a lot of hard work.

We all have the ability to do so, why not do it?

We recommend that you start with python, GUVI offers the course in Tamil, English, Arabic, and Hindi.

Posted on

Top 5 Programming Languages for beginners to learn in 2019

One main skill required to cope up with the dynamic and ever-changing technologies is to program a computer. With all being digitalized around the globe, the vital part of our lives lie with the computers. The skill of programming a computer or a digital device will help ubiquitously from programming a digital watch to humanoid robots. There are so many languages that is being developed each and every day causing a large opportunity for the developers. Due to the escalating need for developers, there’s huge craze to learn the languages in which programs are being developed. There are so many programming languages and the developers shift from one to the other to be compatible with the latest technologies. Here are the few programming languages that will be useful for the beginners who are trying to program from the scratch. A fine knowledge in the following languages will provide a strong basement for developers to develop and even shift to new technologies or new programming languages.

  1. SQL: The Structured Query Language is a database programming language used as a backend for every application. As technologies hike matches the GLOBAL WARMING every day, the data stored and retrieved also pikes to the peak. The SQL is used to store and retrieve data from the database. Most of the devices and technologies include database for storage for future references. So the SQL is the basic requirement for all the database activities. SQL is a combination of syntactic and free level language where the queries to the database are written in the form of simple English with few constraints. “TO DIG DB, PING ME”

  2. Swift: The native iOS programming language used to create things in App Store. This hot new programming language was introduced by Apple in WWDC 2014.All the apps in the app store of an iPhone is created using Swift. Swift came from the Objective C and C++ with so many similarities to the C programming language. This language was developed by Apple Inc. Swift is preferred because they had a good readability . The maintenance part is very easy in swift when compared to any other language. It is unified with the memory management. Variables can be assigned in implicit manner. Similarly it had some defects like , it had only limited libraries.

  3. Java: Java is the Aishwarya Rai of programming language that shines even after 20 years of its development. Java has been a stable language as it is platform independent and used in server-side programming. The java code is written, compiled and converted to executable file, which is supported in various cross platforms. Java runs on the Java Virtual Machine that’s easily portable. Most of the old buttoned phones were based on Java programs. The Android development is also based on Java which is the most prevailing operating system and applications in recent mobile phones. The Latest programming language for Android development is KOTLIN (based on JAVA) which is introduced by Google officially in the year 2012. “Weather changes, cloud and mist arises, despite such, the SUN always shines”

  4. JavaScript: JavaScript is one of the easiest programming language to kick start with. It is a “frontend” programming language. It is widely used to design interactive frontend applications. All the websites use HTML and CSS for which the liveliness is implemented using JavaScript. Over 80% of developers and by 95% of web development use JavaScript for any dynamic logic on their pages. The JavaScript is easier but keeps growing day by day with greater demands. React JS and Angular JS are front-end frameworks for JavaScript that has a potential market especially in IoT and Mobile applications. “Many Programming languages came and went, yet there stood JS to make them reactive and dynamic”

  5. Python: As the saying goes “I’m aware that I’m surrounded by people who feel that they could do the job better… But for the better or worse the crown has landed on my head” the programming language that demands the market in recent times is PYTHON. The main advantage of Python is its simplicity in programming causing the reason of easy learning for the beginners. Python is highly recommendable for Data Analytics, Machine Learning, and Statistics. Web development is well established in Python through Django or flask. So not only is it possible to be an analytics master using Python, but you can also use it for full stack web development. Python is used in Instagram, YouTube, Google, reddit, Quora, NASA, Quantum Computing, etc.

Posted on

100+ Interview questions for Software Developer (SDE) / Software Developer In Test (SDET)

SDE/SDET Interview questions that will ramp-up your interview preparation

Myself, Balaji Boggaram Ramanarayan – I bag experience in taking/preparing for interviews in several big companies and always felt sharing a few of them such that it might be useful for you in interview preparation.

Note : These questions might help you ramp-up your speed in path of preparing to SDE /SDET interviews in most techie companies. 

 SDE – Software Development Engineer
 SDET – Software Development Engineer in Test 

All that you need is how well can you stand out in your interviews.
SDE and SDET Interview Questions

 

  1. Heap – Max Heaps and Min Heaps
  2. Conversions : Decimal ,Binary, Hex, Octal (All other possible combinations)
  3. 90 Degrees Matrix conversion
  4. Quick Sort + Applications
  5. Merge Sort + Applications
  6. Remove duplicates in a String — In place
  7. Reverse a string – Inplace
  8. Decide if 2 strings are anagrams or not ?
  9. Binary Search
  10. Reverse SLL without using any extra nodes
  11. Maximum Sub array [Kadane Algorithm]
  12. Find an element which is repeated more than n/2 times in a given set/array. [Moores Voting algorithm]
  13. Find and element in rotated Binary sorted array
  14. Implement power function without pow() function
  15.  Verify if given linked list is circular/cyclic or Acyclic. Follow up can be to indicate the starting point of cycle
  16. Implement Blocking queue
  17. Find a pair in array that will sum up to particular number
  18. Reverse a double linked list
  19. Reverse pairs in SLL. i.e I/P : a->b->c->d->e->f O/p : b->a->d->c->f->e
  20. Segregate even and odd nodes in a given linked list
  21. Addition of 2 linked lists to separate one. (also learn inplace)
  22. Convert SLL in to DLL (XOR based linked lists)
  23. Circular shift an array of integer input array by ‘k’ number of elements
  24. Search for a given pattern in text [Rabin Karp Algorithm]
  25. atio() and itoa() implementations (ASCII to integer and Integer to ASCII)
  26.  Binary Semaphores
  27. Generate subsets of given set of integers
  28. Generate all permutations of a given string
  29. Level order Traversal
  30. Inorder successor of a given node in BST (Binary Search Tree)
  31. Find ‘k’ largest /smallest elements in a given array (Hint : can use heaps)
  32. Heap Sort + applications
  33. Find minimum length unsorted sub array on which storing them makes complete sorted array
  34. Search if a given pattern exists in input text using Suffix Arrays
  35. Re-arrange a string so that all same characters are ‘d’ distant apart
  36. Knights tour problem
  37. Rat in Maze [Back tracking]
  38. Find out if two rectangles overlap or not
  39. Find closest pair of points in the given plane
  40. Find all subset of elements in the given set whose sum equals to a given target
  41. Compute x^y such that it can work for floats and negative values
  42. Find median of  given two input sorted arrays
  43. Find total no of zeros in a given array of 1’s followed by 0’s
  44. Find if there is any sub array which sums up to zero
  45. Count number of inversions in a given array
  46. Find minimum element in a rotated sorted array
  47. Find the fixed point in the given array
  48. Find the maximum sub array sum [D&C]
  49. Count # of occurrences of a number in the sorted array
  50. Find the max and min element in a given array with minimal number of comparisons
  51. Check if a number is multiple of 3 or not ?
  52. One line function to check if a number is power of 2 or not ?
  53. Function to multiple a number by 7.
  54. Function to multiple two numbers without using * product operator
  55. Function to write Fibonacci series in iterative manner
  56. Generate all prime numbers less than or equal to n [Sieve of Erastho..]
  57. Given a number, Find the next biggest palindrome number
  58. Implement logic for fair coin from biased coin
  59.  Check if a number is divisible by 7 without mod operator
  60. Find all the possible words from a phone keypad
  61. Lexicographic sort of permutation of all words
  62. Shuffle a given array / deck of cards [Fisher Yates Algo]
  63. Reservoir Sampling Algorithm
  64. Select ‘k’ random elements from ‘n’ elements
  65. Given a number ‘n’. generate a pascal triangle out of it.
  66. Write an exponential precision function [Taylor series]
  67. Generate all prime factors of a given number
  68. Generate all possible combination of ‘r’ elements in a given array of size ‘n’ [Probability Distribution Function]
  69. Length of Longest common sub sequence of given sequence of numbers
  70. Find minimum cost path in a given cost matrix
  71. Total # of solutions in a coin change problem
  72. Find binomial co-efficient
  73. Knap-sack standard problem
  74. Egg-Drop standard problem
  75. Length of longest palindrome sequence
  76. Palindrome Partitioning
  77. Maximum Length of chained increasing pair
  78. Find the middle of given linked list
  79. Check if a given Single linked list is a palindrome or not
  80. Insert/Delete/Search in max heap
  81. Implement sizeof() operator
  82. Find successor of given BST
  83. Find all triangle triples in given array
  84. Find lowest common ancestor of a given node
  85. Return a single element by knocking out all other elements by ‘k’ [Josephus]
  86. Given a sorted skewed binary tree, Create a BST out of it.
  87. Given an array with integers, Output all the elements which were repeated exactly twice
  88. Maximum depth/height/diameter of a given tree
  89. Serialize and De serialize a given binary tree
  90. Find single repeated or non-repeated number in conditional list. (XOR)
  91. Implement “diff” in linux
  92. Program to count # of set bits in a given integer.
  93. Convert BST to doubly linked list
  94. Convert integer to String without .toString()
  95. GCD of two numerals
  96. Given an array in post order traversal, check whether the given array is in BST or not
  97. Reverse the words in a given English sentence
  98. Get the median of a stream of large numbers
  99. Print all the paths of a given Binary Tree from root to leaf
  100. Modify array such that arr[i] == arr[arr[i]] Inplace
  101. Find the missing number in a billion number list
  102. Bit wise addition

Watch interesting videos for Data Structures and Algorithms & C, C++, JAVA in your native language (Tamil, Telugu, Hindi) here.

Posted on

SAP and Its Modules

Dear All,

I hope the first blog What is SAP? is interesting and useful,
Please find the list of SAP Modules

We have two major classifications

  1. Technical consultant
  2. Functional consultant

Technical:

  1. SAP – Basis
  2. SAP – ABAP

Functional:

  1. SAP FI Module– FI stands for Financial Accounting
  2. SAP CO Module– CO stands for Controlling
  3. SAP PS Module – and PS is Project Systems
  4. SAP HR Module – HR stands for Human Resources
  5. SAP PM Module – where Plant Maintenance is the PM
  6. SAP MM Module – MM is Materials Management –
  7. SAP QM Module –  QM stands for Quality Management
  8. SAP PP Module – PP  is Production Planning
  9. SAP SD Module – SD is Sales and Distribution
  10. SAP BW Module – where BW stands for Business (Data) Warehouse
  11. SAP  EC Module – where EC stands for Enterprise Controlling
  12. SAP TR Module – where TR stands for Treasury
  13. SAP    IM Module – where IM stands for Investment Management
  14. SAP   QM Module – where QM stands for Quality Management
  15. SAP – IS where IS stands for Industries specific solution
  16. SAP – Cross Application Components
  17. SAP – CRM where CRM stands for Customer Relationship Management
  18. SAP – SCM where SCM stands for Supply Chain Management
  19. SAP – PLM where PLM stands for Product Life Cycle Management
  20. SAP – SRM where SRM stands for Supplier Relationship Management
  21. SAP – CS where CS stands for Customer Service
  22. SAP – SEM where SEM stands for STRATEGIC ENTERPRISE MANAGEMENT
  23. SAP – RE where RE stands for Real Estate

The Technical role does not require domain experience and any fresh/exp candidate can start learning the module.

Basis: – Pure Administration/Analysis:-

Will involve (Network, Database, Operating System, Authorization, Interface etc) – A basis consultant have to work tireless , ready to face challenges , a detective , a trouble shooter, think out of box to resolve the issues.

ABAP: (Advanced Business Application Programming)

originally Allgemeiner Berichts-Aufbereitungs-Prozessor, German for “general report creation processor” ) is a high-level programming language created by the German software company SAP.

Developer who performs Coding – will have to work along with the Functional consultant, design and test the application based on the requirement guided by the functional consultant.

An ABAPer can work with a functional consultant of any module. Knowledge on Java concepts preferable.

Functional:

This would require the domain Knowledge. A person has to know about the domain subject to practice as a functional consultant in that module.

A fresher can practice in any of the functional module if he has learnt the corresponding domain subject and guidance from a senior functional consultant – yes it is a long term career building plan.

Finally there is one more classification “Techno – Functional”.

They are the so called genius. (A muni who got mukkthi)

Example: – An ABAP er works with a functional consultant “SAP FI” for about 5 years, and then the ABAPer will be prone good for that module FI.

  1. He will learn FI to perform the logics – code and test
  2. He will trouble shoot all issues from that module
  3. When he performs the same activity for years, he will then learn all possible topics in Finance.
  4. Now he can practice as both Technical and Functional consultant.

The market has very good craze for this kind of people.

Beware: “Jack of all master of none” It is very difficult for a functional consultant to practice on multiple modules.

Please comment if need more information.

Regards

Bala

Posted on

What is SAP ?

Hi Everybody,

Many of you have heard about the rapid growing software application SAP.

I am happy to blog on the topic “What is SAP”

Hey guys – I could read your mind voice “What is new in this blog Mr. Bala ? – If I will Google it – I can get lot more information about SAP?”

Yes, you can get more information from Google, but please go through the fact that I am briefing below for the importance of this blog.

  • If you are a (SAP – core user, technical consultant, Functional consultant (Know what is SAP)) you know better about SAP and you don’t require the content of this blog.
  • If you don’t know about SAP then you need to invest lots of time in surfing the net to understand the topic.
  • You might get a fantastic and vital document but without proper guidance you may feel lost.
  • SAP is Ocean, if you do not have a roadmap and preplanned journey in learning you might get lost.
  • While you are reading an SAP content book from internet and if you are not able to understand a concept – you cannot interact with the book to clarify the doubts, either you have to surf further or communicate with expert for clarification.
  • I am going to guide you in understanding what SAP is in simple words.
  • Post reading my blog if you need any further information, then you can interact with me
  • Yes definitely I am going to take the responsibility of clarifying the doubts about SAP if you follow my Blog.

About me:

I am Balamurugan Palani working for IBM INDIA Pvt Ltd as Application Architect and I am having 9 years of Experience in IT. I have worked on various Implementation and Support Projects of SAP in Basis track.

What does SAP stands for:–

SAP stands for Systems, Applications and Products in data processing.

SAP is one among the top largest software company in the world.

The SAP R/3 system is a business software package designed to integrate all areas of a business.

It provides end to end solutions for financials, manufacturing, logistics, distribution etc.

All business processes are executed in one SAP system and sharing common information with everyone.

SAP is an Enterprise Resource Planning (ERP) system by SAP AG, company based out of Walldorf in Germany. SAP software suite that is being implemented as part of re-engineering and Provides end to end solutions for financial, logistics, distribution, inventories. Present scenario large numbers of companies are using sap software for their day to day business activities.

I can explain you in simple word. Let us take an example of the car Manufacturing Company.

To manufacture and sale the car in an industry the below requirements has to be met.

  1. Labor  – HR department
  2. Finance investment  and control – FICO
  3. Machinery – Production planning
  4. Production Management
  5. Quality Management
  6. Outlets for sale of car – Sales and distribution

In early days before SAP came in to market the companies used different software products for each department for their operation.

Eg : People soft for HR module, Tally for Accounts, Excels / planners for Production planning, Rosters for Production management,  etc …

Think of the manual efforts involved in when the data has to be shared between the two departments. (Time consuming, supporting conversion, scope for manual error)

Cost involved in purchasing and maintaining these many software’s.

Dependency between the soft ware’s, if people soft will not provide data on time to finance department then finance department  will not be able to credit the salary, if no salary the employees will not show interest in work. If there is no work then there is an impact in productivity and will affect the sales and company finance.

This is an enterprise where group of people have to work together with the shared resource to achieve the common goal set.

Example scenerios

Case 1:

What if Finance team will ask the details to HR team “Please detect Rs 500 for employees who have Less than 85% attendance and credit Rs 500 bonus for who have 100% attendance?”

The HR team now has to prepare the list of two set and provide it to Finance team manually, post approval from Finance team the transaction will be executed manually.

Case 2:

The Sales team will promote the product and get the orders placed as manual papers. He then will segregate the orders EOD and send them in a courier to the Sales Head office of the company. The company will receive the same by next day and then intimate the production department that 100 cars required for Madurai sales office in 4 weeks. The production department will then start the planning and Production in co-ordination with the Labor department.

This is a chain process End to End. If there is a gap in the chain process then the company will not be able to produce and will lose business.

Also each and every department play the vital role to succeed.

Co-ordination between each department is very much required to get the better yield.

This co-ordination is what we call as Integration in SAP application. The strength of SAP application is the word Integration.

Is’nt it amazing if I say that all the modules are in-corporated into one application SAP.

R/3 architecture

Distributed across the globe (Presentation layer)

Processed centrally by one server (Production Application Layer) (set of services)

Database to store and retrieve the data (Production database)

Most fabulous thing is each and every module is closely integrated ie if a sales executive in Madurai takes the order placement of 5 cars required, the data is immediately available to the production department based on which they start the planning and production @ Gujarat.

I hope you are interested to learn more about SAP

Will continue in my next blog about each modules and the Integration.

Regards

Bala

Lets learn and share at www.guvi.in

Posted on

Programming Languages Ranking: January 2014 vs January 2013

prog

The “first and only” developer focused analyst firm RedMonk has recently published their ranking of programming languages as of January 2014. Let’s see how the situation has changed since January 2013 and what’re the languages to watch this year. It goes without saying that the better you understand current coding trends, the better you can plan your entire software development strategy.

So, here’s the comparison of Top 20 programming languages as of January 2013 and 2014, according to RedMonk:

 January 2013  January 2014
  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. Ruby
  6. C#
  7. C++
  8. C
  9. Objective-C
  10. Perl
  11. Shell
  12. Scala
  13. ASP
  14. Haskell
  15. Assembly
  16. ActionScript
  17. R
  18. CoffeeScript
  19. Visual Basic
  20. MATLAB
  1. JavaScript
  2. Java
  3. PHP
  4. C#
  5. Python
  6. C++
  7. Ruby
  8. C
  9. Objective-C
  10. CSS (new)
  11. Perl
  12. Shell
  13. Scala
  14. Haskell
  15. R
  16. MATLAB
  17. Clojure
  18. CoffeeScript
  19. Visual Basic
  20. Groovy

 

As seen from the table above, the Top 3 languages remain the same for the second consecutive year and are JavaScript, Java and PHP. In spite of their vast differences in both design and usage, JavaScript and Java remain the focal languages for enormous developer communities worldwide. Regarding PHP, it holds its 3rd position confidently enough, backed up by huge investments from Facebook and Zend as well as ubiquitously popular CMS and frameworks such as WordPress, Phalcon, Symfony2, etc.

This year, C# and C++ have improved their positions and both went up from the last year’s ranking. This can be partly explained by the increasing demands for high-performance server and client applications and video games we’re observing today.

As for the newcomers, we’ve got Clojure and CSS getting on the bandwagon this year. Clojure joins the Top 20 list for the first time since RedMonk began surveying programming languages. Although ThoughtWorks have put Clojure to this year’s “Adopt” section of their Technology Radar (together with Scala), the fact it’s got to the Top 20 Languages List proves current demands for Java Virtual Machine (JVM) based alternatives to be really high among developers. As such, code-as-data philosophy is likely to go mainstream in or after 2014.

In the Technology Radar by ThoughtWorks CSS is actually listed among the top leaders in the “Hold” section. It is indeed the core technology for building websites and mobile apps along with JavaScript and HTML and it seems weird it got to the RedMonk’s List only in January 2014. The reason for this delayed acknowledgement may underlie in the following: as a language, CSS lacks some of the key features which results in a very high level of duplication and a lack of meaningful abstractions. Whereas CSS3 aims to fix some of these issues, it will take years for CSS3 modules to be supported in most browsers. However, such modern CSS frameworks as LESS, SCSS or SASS are able to eliminate the lion’s share of handwritten coding, making the language itself more flexible and better applicable to modern software development environments.

Last year, Ukrainian online community of software developers conducted their own survey of programming languages popularity, and that’s how their 2013 Top 20 looks like:

  1. Java
  2. C#
  3. PHP
  4. C++
  5. Python
  6. JavaScript
  7. Objective-C
  8. Ruby
  9. C
  10. ActionScript
  11. 1C
  12. PL-SQL
  13. Pascal/Delphi
  14. Perl
  15. Scala
  16. Groovy
  17. Basic
  18. T-SQL
  19. Erlang
  20. CoffeeScript

It’s interesting to note that while the 2014 Ukrainian survey results are yet to be unveiled some day in the future, last year’s Top 5 matched very closely this year’s Top 5 by RedMonk!

And what’re the languages to watch for 2014?

  • Statistical programming languages such as R and MATLAB or Julia that will be used more extensively going forward given the rapid development of diverse Big Data technologies
  • Alternative JVM languages such as Scala, Groovy, or Jython which are more agile and dynamic than Java

 

Learn and share at www.guvi.in