Oracle PL/SQL Exception Handling: Examples to Raise User-defined Exception

What is Exception Handling in PL/SQL?

An exception occurs when the PL/SQL engine encounters an instruction which it cannot execute due to an error that occurs at run-time. These errors will not be captured at the time of compilation and hence these needed to handle only at the run-time.

For example, if PL/SQL engine receives an instruction to divide any number by ‘0’, then the PL/SQL engine will throw it as an exception. The exception is only raised at the run-time by the PL/SQL engine.

Exceptions will stop the program from executing further, so to avoid such condition, they need to be captured and handled separately. This process is called as Exception-Handling, in which the programmer handles the exception that can occur at the run time.

In this tutorial, you will learn the following topics-

Exception-Handling Syntax

Exceptions are handled at the block, level, i.e., once if any exception occurs in any block then the control will come out of execution part of that block. The exception will then be handled at the exception handling part of that block. After handling the exception, it is not possible to resend control back to the execution section of that block.

The below syntax explains how to catch and handle the exception.

Exception Handling in PL/SQL
BEGIN
<execution block>
.
.
EXCEPTION
WHEN <exceptionl_name>
THEN
  <Exception handling code for the โ€œexception 1 _nameโ€™' >
WHEN OTHERS
THEN
  <Default exception handling code for all exceptions >
END;

Syntax Explanation:

  • In the above syntax, the exception-handling block contains series of WHEN condition to handle the exception.
  • Each WHEN condition is followed by the exception name which is expected to be raised at the run time.
  • When any exception is raised at runtime, then the PL/SQL engine will look in the exception handling part for that particular exception. It will start from the first ‘WHEN’ clause and, sequentially it will search.
  • If it found the exception handling for the exception which has been raised, then it will execute that particular handling code part.
  • If none of the ‘WHEN’ clause is present for the exception which has been raised, then PL/SQL engine will execute the ‘WHEN OTHERS’ part (if present). This is common for all the exception.
  • After executing the exception, part control will go out of the current block.
  • Only one exception part can be executed for a block at run-time. After executing it, the controller will skip the remaining exception handling part and will go out of the current block.

Note: WHEN OTHERS should always be at the last position of the sequence. The exception handling part present after WHEN OTHERS will never get executed as the control will exit from the block after executing the WHEN OTHERS.

Types of Exception

There are two types of Exceptions in Pl/SQL.

  1. Predefined Exceptions
  2. User-defined Exception

Predefined Exceptions

Oracle has predefined some common exception. These exceptions have a unique exception name and error number. These exceptions are already defined in the ‘STANDARD’ package in Oracle. In code, we can directly use these predefined exception name to handle them.

Below are the few predefined exceptions

ExceptionError CodeException Reason
ACCESS_INTO_NULLORA-06530Assign a value to the attributes of uninitialized objects
CASE_NOT_FOUNDORA-06592None of the ‘WHEN’ clause in CASE statement satisfied and no ‘ELSE’ clause is specified
COLLECTION_IS_NULLORA-06531Using collection methods (except EXISTS) or accessing collection attributes on a uninitialized collections
CURSOR_ALREADY_OPENORA-06511Trying to open a cursor which is already opened
DUP_VAL_ON_INDEXORA-00001Storing a duplicate value in a database column that is a constrained by unique index
INVALID_CURSORORA-01001Illegal cursor operations like closing an unopened cursor
INVALID_NUMBERORA-01722Conversion of character to a number failed due to invalid number character
NO_DATA_FOUNDORA-01403When ‘SELECT’ statement that contains INTO clause fetches no rows.
ROW_MISMATCHORA-06504When cursor variable data type is incompatible with the actual cursor return type
SUBSCRIPT_BEYOND_COUNTORA-06533Referring collection by an index number that is larger than the collection size
SUBSCRIPT_OUTSIDE_LIMITORA-06532Referring collection by an index number that is outside the legal range (eg: -1)
TOO_MANY_ROWSORA-01422When a ‘SELECT’ statement with INTO clause returns more than one row
VALUE_ERRORORA-06502Arithmetic or size constraint error (eg: assigning a value to a variable that is larger than the variable size)
ZERO_DIVIDEORA-01476Dividing a number by ‘0’

User-defined Exception

In Oracle, other than the above-predefined exceptions, the programmer can create their own exception and handle them. They can be created at a subprogram level in the declaration part. These exceptions are visible only in that subprogram. The exception that is defined in the package specification is public exception, and it is visible wherever the package is accessible. <

Syntax: At subprogram level

DECLARE
<exception_name> EXCEPTION; 
BEGIN
<Execution block>
EXCEPTION
WHEN <exception_name> THEN 
<Handler>
END;
  • In the above syntax, the variable ‘exception_name’ is defined as ‘EXCEPTION’ type.
  • This can be used as in a similar way as a predefined exception.

Syntax:At Package Specification level

CREATE PACKAGE <package_name>
 IS
<exception_name> EXCEPTION;
.
.
END <package_name>;
  • In the above syntax, the variable ‘exception_name’ is defined as ‘EXCEPTION’ type in the package specification of <package_name>.
  • This can be used in the database wherever package ‘package_name’ can be called.

PL/SQL Raise Exception

All the predefined exceptions are raised implicitly whenever the error occurs. But the user-defined exceptions needs to be raised explicitly. This can be achieved using the keyword ‘RAISE’. This can be used in any of the ways mentioned below.

If ‘RAISE’ is used separately in the program, then it will propagate the already raised exception to the parent block. Only in exception block can be used as shown below.

Exception Handling in PL/SQL
CREATE [ PROCEDURE | FUNCTION ]
 AS
BEGIN
<Execution block>
EXCEPTION
WHEN <exception_name> THEN 
             <Handler>
RAISE;
END;

Syntax Explanation:

  • In the above syntax, the keyword RAISE is used in the exception handling block.
  • Whenever program encounters exception “exception_name”, the exception is handled and will be completed normally
  • But the keyword ‘RAISE’ in the exception handling part will propagate this particular exception to the parent program.

Note: While raising the exception to the parent block the exception that is getting raised should also be visible at parent block, else oracle will throw an error.

  • We can use keyword ‘RAISE’ followed by the exception name to raise that particular user-defined/predefined exception. This can be used in both execution part and in exception handling part to raise the exception.
Exception Handling in PL/SQL
CREATE [ PROCEDURE | FUNCTION ] 
AS
BEGIN
<Execution block>
RAISE <exception_name>
EXCEPTION
WHEN <exception_name> THEN
<Handler>
END;

Syntax Explanation:

  • In the above syntax, the keyword RAISE is used in the execution part followed by exception “exception_name”.
  • This will raise this particular exception at the time of execution, and this needs to be handled or raised further.

Example 1: In this example, we are going to see

  • How to declare the exception
  • How to raise the declared exception and
  • How to propagate it to the main block
Exception Handling in PL/SQL
Exception Handling in PL/SQL
DECLARE
Sample_exception EXCEPTION;
PROCEDURE nested_block
IS
BEGIN
Dbms_output.put_line(โ€˜Inside nested blockโ€™);
Dbms_output.put_line(โ€˜Raising sample_exception from nested blockโ€™);
RAISE sample_exception;
EXCEPTION
WHEN sample_exception THEN 
Dbms_output.put_line (โ€˜Exception captured in nested block. Raising to main blockโ€™);
RAISE,
END;
BEGIN
Dbms_output.put_line(โ€˜Inside main blockโ€™);
Dbms_output.put_line(โ€˜Calling nested blockโ€™);
Nested_block;
EXCEPTION
WHEN sample_exception THEN	
Dbms_output.put_line (โ€˜Exception captured in main block');
END:
/

How Does an Engineer Create a Programming Language?

Besides being a software engineer, Marianne Bellotti is also a kind of technological anthropologist. Back in 2016 at the Systems We Love conference, Bellotti began her talk by saying she appreciated the systems most engineers hate โ€”โ€messy, archaic, duct-tape-and-chewing-gum.โ€ Then she added, โ€œFortunately, I work for the federal government.โ€

At the time, Bellotti was working for the U.S. Digital Service, where talented technology workers are matched to federal systems in need of some consultation. (While there, sheโ€™d encountered a web application drawing its JSON-formatted data from a half-century-old IBM 7074 mainframe.)

The rich experiences led her to write a book with the irresistible title โ€œKill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones).โ€ Its official web page at Random House promises it offers โ€œa far more forgiving modernization frameworkโ€ with โ€œilluminating case studies and jaw-dropping anecdotes from her work in the field,โ€ including โ€œCritical considerations every organization should weigh before moving data to the cloud.โ€

Kill it With Fire by Marianne Bellotti - book cover

Bellotti is now working on products for defense and national security agencies as the principal engineer for system safety at Rebellion Defense (handling identity and access control).

But her latest project is a podcast chronicling what sheโ€™s learned while trying to write her own programming language.

โ€œMarianne Writes a Programming Languageโ€ captures a kind of expedition of the mind, showing how the hunger to know can keep leading a software engineer down ever-more-fascinating rabbit holes. But itโ€™s also an inspiring example of the do-it-yourself spirit, and a fresh new perspective on the parsers, lexers and evaluators that make our code run.

In short, itโ€™s a deeply informative deconstruction of where a programmerโ€™s tools really come from.

Going Deep

In one blog post, Bellotti invited listeners to โ€œstart this strange journey with me through parsers, grammars, data structures and the like.โ€

And it is a journey, filled with hope and ambition โ€” and a lot of unexpected twists and turns. โ€œAlong the way, Iโ€™ll interview researchers and engineers who are active in this space and go deep on areas of programming not typically discussed,โ€ the podcast host promised. โ€œAll in all,  Iโ€™m hoping to start a conversation around program language design thatโ€™s less intimidating and more accessible to beginners.โ€

But the โ€œMarianne Writes a Programming Languageโ€ podcast also comes with a healthy dose of self-deprecation. โ€œLetโ€™s get one question out of the way,โ€ her first episode began. โ€œDoes the world really need another programming language? Probably not, no.โ€ But she described it as a passion project, driven by good old-fashioned curiosity. โ€œI have always wanted to write a programming language. I figured I would learn so much from the challenge.โ€

โ€œIn an industry filled with opinions, where people will fight to the death over tabs -vs.- spaces, there isnโ€™t much guidance for would-be program language designers.โ€

โ€”Marianne Bellotti, software engineer and podcast host

Fifteen years into a sparkling technology career, โ€œI feel like there are all these weird holes in my knowledge,โ€ Bellotti told her audience. And even with the things she does know โ€” like bytecode and logic gates โ€” โ€œI donโ€™t have a clear sense of how all those things work together.โ€

In the podcastโ€™s third episode, Bellotti pointed out that, โ€œfor me at least, the hardest part of learning something is figuring out how to learn it in the first place.โ€ She discovered a surprising lack of best-practices documents, she wrote in an essay in Medium. โ€œIn an industry filled with opinions, where people will fight to the death over tabs -vs.- spaces, there isnโ€™t much guidance for would-be program language designers.โ€

Still, her podcastโ€™s first episode showed the arrival of those first glimmers of insight. โ€œEven knowing very little upfront, I had a sense that in order for a programming language to work, there had to be some sense of cohesion in its design.โ€

Where to Begin?

Her Medium post cited a 2012 article titled โ€œProgramming Paradigms for Dummies: What Every Programmer Should Know,โ€ which offers a taxonomy of language types based on how exactly theyโ€™re providing their abstractions. That article apparently got her thinking about how exactly a programming language helps communicate the connections that exist between its various data structures โ€” which led to more insights. (In a later podcast, Bellotti even says โ€œtechnology suggests to its user how it should be used.โ€)

โ€œEventually I came to my own conclusions,โ€ she wrote in her Medium article. To be successful at creating her own language, she realized that she needed to think of  programming paradigms like object-oriented or functional programming โ€œas logical groupings of abstractions and be as intentional about what is included and what isnโ€™t.โ€

Bellotti is also trying to design a language that will work for her specific needs: to know how likely certain types of problems are in a given system, to achieve model resilience. But on her first podcast episode, Bellotti acknowledged that she still had to begin by typing, โ€œHow do you design a programming languageโ€ into Google โ€”and was surprised by how little came up. (Although she did discover โ€œthereโ€™s a whole world of obscure experimental languages that appear in research papers, rack up a host of citations, and never touch an actual computer other than their inventorโ€™s.โ€)

โ€œI feel like Iโ€™ve been struggling to hang pictures around my home and one day someone knocks on my door and introduces me to the hammer,โ€

โ€”Marianne Bellotti, software engineer and podcast host

So where to begin? Avoiding the standard dry collegiate textbooks like โ€œCompilers: Principles, Techniques, and Tools,โ€ she instead found her way to the book Writing an Interpreter in Go, a book which by necessity also created its own programming language (a modified version of Scheme called Monkey) for its interpreter.

That bookโ€™s author, Thorsten Ball, became her podcastโ€™s first guest, explaining that his language was not so much designed as experimented into existence. (Later, other people suggested something similar โ€” that Bellotti โ€œpick something you like in another language and copy the implementation to start, because figuring out all the edge cases from scratch is really hard.โ€)

In that first podcast episode, Bellotti explained her concern that โ€œtiny little design decisions I donโ€™t even realize Iโ€™m making could have dramatic impactsโ€ฆ it does seem to be the case that programmers create languages without being able to fully anticipate exactly how they will be used or how technology will change around them.โ€

Things Get Complicated

There are moments where it all sounds so simple. (โ€œWhat youโ€™re doing when you write a programming language is actually writing a series of applications that take string input and translate it into something the machine can execute.โ€)

But things get complicated pretty quickly, and by episode three Bellotti started to see a pattern: โ€œConfronting what feels like a tidal wave of information is becoming an all too familiar feeling on this project.โ€ Yet, while considering a need for her languageโ€™s source code-interpreting parser, she realized that parsers can be auto-generated โ€” as long as she can supply that tool with the necessary grammar rules.

โ€œI feel like Iโ€™ve been struggling to hang pictures around my home and one day someone knocks on my door and introduces me to the hammer,โ€ she told her podcast audience.

She ends up talking to a linguist who studied under Noam Chomsky, who refers her to another linguistics professor, who begins by discussing whether language can be learned through the brute-force assimilation of machine learning, and ends up explaining why Chomskyโ€™s โ€œcontext-free grammarโ€ ultimately became the basis for programming languages and compilers.

But there are resources to discover. Along the way, Bellotti found a Reddit forum about programming language design. (โ€œThis subreddit is full of great stories and people will give detailed explanations and encouragement, which is rare on the internet these days.โ€) Sheโ€™s also found a forum for people building Domain Specific Languages.

By December, sheโ€™d received a comment from a grateful listener who was also writing their own programming language, and was glad to find a relevant podcast. And Bellotti acknowledged in a response that her whole journey โ€œhas been so much fun so far.โ€

Progress is clearly being made. By episode 12, Bellotti considered how hard it would be to add modules to her language. (โ€œFrom my vantage point, being able to split a system specification into smaller parts means you get to reuse those parts and build progressively more complex systems that are in easily digestible chunks.โ€) And thereโ€™s also already an empty repository on GitHub thatโ€™s waiting expectantly for the code to arrive.

Then, in mid-April Bellotti announced that episode 12 would be the last one โ€œfor a while. Iโ€™ve made some design decisions that I feel really good about, but itโ€™s clear that the only way to validate them is to write code and try things out.โ€

Sheโ€™s also spending some time researching how to optimize her compiler, โ€œBut really, I just need to just be heads-down, hands-on-a-keyboard for a while on this.โ€

And so, the podcast has entered a productive hiatus, leaving listeners with this tantalizing promise.

โ€œIโ€™ll be back in a couple of months to let you know how that went.โ€

3 Must-learn programming languages for developers in 2021

Photo by Kevin Ku on Pexels.com

Amidst the pandemic, it is essential to understand the major skills and a quick peep into the most in demand tech jobs that may help professionals to grow and explore various career prospects.

Especially with the evolving technology, which is offering innumerable job opportunities, for fresh graduates and even experienced programmers who are willing to learn the innovative trends that are emerging into the world of programming.

For a few the chances might be minimum in the growing tech market due to skills being mismatched. Therefore, to supersede this obstacle, we tailored 3 top programming skills which have high demand in the tech world today:

1. C++
The post-pandemic work that has forced people to work from home has seen an enormous rise in demand for cloud adoption. Various problems of data breaches have forced companies to come up with a greater budget for security purposes. The day-to-day cybersecurity threat is getting worse. So, if one wants to prosper in the said field, should be highly fascinated with IT not just that, sometimes it is even required more than that. Having command over various programming languages like C++ will make it easier. The demand for cybersecurity professionals with C++ skills has been rising especially with the rising cybersecurity cases globally.

2. Python
AI and ML are rising unexpectedly, mostly during pandemic times as businesses have been stuck in the digital world having no other way out than opting for AI and ML. For an AI engineer, it requires both the knowledge of technical and non-technical skills. A fastest-growing industry like this needs an ample amount of people with proper skills and knowledge. Well, Python is considered by experts the most suitable programming language for Machine Learning, Artificial Intelligence, and Natural Language Processing.

3. Rust
If one is starting a career in the world of programming they should be highly equipped with the knowledge of Python and JavaScript which forms the very base of it the reason being as they have a wide number of applications and have been used for many years. However, 2021, which is full of different things has something new to offer for people who aspire to be a programmer. In a survey, it was found that Rust was the most loved programming language which has been gaining prominence for the past few years.

Acting as an alternative for C++. Useful mostly for people who are looking for problem-solving techniques when they are working on large-scale applications. Offering a new atmosphere to programmers is highly functional helping developers remove bugs caused by C++.

Various courses are available with projects for hands-on experience.

Programming Languages: Choose Wisely?

languages cybersecurity

Weโ€™ve got decades of experience in programming and language adoption under our belt at this point, and there are a few things we can say definitively that developers in general (and DevOps engineers specifically) should be aware of.

First, it doesnโ€™t matter as much as you think. It really doesnโ€™t. Most developers donโ€™t choose programming languages based on important things like optimization or general applicability. They choose a language based on ease of use, availability of third-party libraries and simplification of things like UI. Open source version availability helps, but only insofar as it spawns more third-party libraries. So, use the language that works best for the project, and donโ€™t get too hung up on whether or not itโ€™s the newest shiny one.

Second, the changes in use and adoption that matterโ€“the top five to 10 languages that make up the vast majority of all professional programming activityโ€“donโ€™t happen overnight. Both JavaScript and Python are considered โ€œrapid ascentโ€ in terms of uptake when they took off โ€ฆ but both were around for years before that spike in adoption occurred. So, learning any of the top few languages is a far better long-term investment than learning the hottest new language.

Third, those top languages actually donโ€™t change much. They were written to fulfill a need, and that doesnโ€™t change much over time. Indeed, the only language I can think of that has fundamentally changed in its lifetime is C++, which seems to want to keep up with the times rather than keep serving its original niche. Python? Java? Still pretty much the same as when they became popular back in the day. And thatโ€™s a good thing. But that means if you want to try something new and engaging, you need to look to up-and-coming languages. At the time of this writing, specialist languages like R and Kafka are having their day, and thatโ€™s a good thing. After all, we know that different applications have different needs and different platforms have different needsโ€“and have been trying to address that second one forever, currently with languages like Flutter. All of these will offer new ways of doing things, which is good exposure.

Fourth, (though we briefly toyed with eliminating this one) organizations do determine the pool of available languages. Frankly, allowing each team to build a separate architecture was never a good idea from a long-term maintenance point of view โ€ฆ but a fairly large number of organizations played with the idea and learned the lessons about technical debt all over again. Now weโ€™re back to โ€œWe use these languages, pick one,โ€ which is better than โ€œWeโ€™re an X shop,โ€ and offers maintainability over time without burning a ton of man-hours.

And finally, you can do anything with those languages your organization makes available. Iโ€™ve seen object-oriented assembler, Iโ€™ve seen entire websites served in C; the list goes on. The language you choose makes certain things easier or harder, but if you need to get it done, youโ€™ll either get an exception to the language list, or youโ€™ll figure out how to get it done with whatโ€™s available. But you can โ€ฆ But as my father used to love to say, โ€œJust because you can, doesnโ€™t mean you should.โ€ He had nothing to do with programming and as little as possible to do with computers, but his logic still applies perfectly.

So, grab an approved language, and crank out solutions. Just keep driving it home; youโ€™re rocking it. Donโ€™t stop, and donโ€™t worry too much about which language youโ€™re using, just focus on the language and do what needs doingโ€“like youโ€™ve done all along.  And spin us up even more cool apps.

Friends meaning

WHAT IS FRIENDSHIP?

The defining characteristic of friendship is a preference for a particular person. However, different people may have distinct definitions of and requirements for friendship. For example, very young children may refer to someone as their โ€œbest friendโ€ two minutes after meeting, while very shy people or individuals from reserved cultures may report having only a handful of friends during their entire lives.

Thereโ€™s no absolute definition of what does or does not constitute a friendship. However, some common traits of friendship include:

  • Some degree of commitment, both to the friendship and to the other personโ€™s well-being.
  • A desire for โ€œregularโ€ contact with the other person. โ€œRegularโ€ contact could occur once every two days or once every two years.
  • Mutual trust, concern, and compassion.
  • Shared interests, opinions, beliefs, or hobbies.
  • Shared knowledge about one anotherโ€™s lives, emotions, fears, or interests.
  • Feelings of love, respect, admiration, or appreciation.

Anthropologist Robin Dunbar theorized there was a limit to how many friendships an individual can have. In general, most humans have up to 150 friends, 50 good friends, 15 close friends, and 5 intimate friends. These numbers have shown to be consistent across time, from hunter-gather societies to the age of social media.

FRIENDSHIP AND GENDER

Culture strongly affects peopleโ€™s understanding of friendship. In the United States and many other industrialized wealthy nations, women tend to have more friendships than men and to invest more energy in those friendships. Romantic relationships are, for many men, a sole or primary source of friendship. So as children grow into adolescents and adolescents become adults, boys may have fewer and fewer friendships.

Cultural norms suggest that women are โ€œbetterโ€ at friendship, more communicative, or more in need of intimacy from friends. This can create a self-fulfilling prophecy in which women are more likely to have friends. Women also spend more time investing in their friendships. A man might only talk to his closest friend once every few months, while on average, women in the U.S. tend to talk longer and more frequently to their friends.

Among people in long-term relationships, women tend to do more work to sustain friendships and other close relationships. This might include sending Christmas cards, remembering birthdays, making phone calls, and updating friends on major life events.

Researchers are increasingly sounding alarm bells about an epidemic of loneliness. Loneliness can shorten a personโ€™s life and erode their health. It may even pose greater public health risks than smoking. This suggests that gender norms about friendships may actually harm menโ€™s health. As marriage rates decline, men without friendships may feel progressively more isolated.

Genderย may also affect whom one chooses as a friend. A 2018 study found that gender discrimination can decrease the likelihood that a person will form friendships with members of a different gender. Cross-gender friendships can foster empathy, break down gender barriers, and undermine genderย stereotypes. Gender norms that undermine these friendships may therefore perpetuate gender stereotypes andย misogyny.

FRIENDSHIP ACROSS A LIFESPAN

Lifelong friendships can be immensely rewarding. People may draw inspiration from talking to those who knew them when they were young. Lifelong friends connect people to their history, offer insight on how a person has changed and evolved, and are often deeply connected to one anotherโ€™s families. These friendships offer a sense of permanency and consistency that can be deeply reassuring at times of ambivalence, loss, or anxiety.

Sustaining a friendship across a lifespan, however, can be difficult. Peopleโ€™s interests and lifestyles change as they age. In childhood, a friendship might be based upon geographic closeness or a single shared interest. So a move or a change of interests can affect even long-term friendships.

Some barriers to sustaining lifelong friendships include:

  • Changes in lifestyle. For example, if one friend has a child and a marriage and the other does not, the two may struggle to relate to one another.
  • Geographic distance. Childhood friends often walk next door or hitch a ride from a parent to see one another. When time together requires a plane or long car ride, the friendship is harder to nurture.
  • Time constraints. Peopleโ€™s lives tend to become more demanding as they get married, have children, become caregivers for aging parents, embark on challenging careers, and accrue more financial obligations. Finding time for friends can be difficult in adulthood, especially when friends have very different lifestyles or do not live near one another.
  • Cultural values surrounding friendship. In the U.S. and in many other countries, romantic relationships are treated as the primary and most important relationship. This can cause some people to value their friendships less as they enter adult romantic relationships.
  • Shifting understandings of friendship. Thereโ€™s no โ€œrightโ€ way to have a friendship. One of the challenges of sustaining a friendship is finding a shared understanding of what the friendship should look likeโ€”how frequently to talk, what to talk about, how openly to discuss disagreements, etc. As childhood friends grow up, their desires for their friendships may change. This can leave one friend feeling like the friendship doesnโ€™t offer enough, while the other friend feels the friendship demands too much.

How to learn coding FOR Beginners without any background?

First thing to understand is that it can be done. For the specifics and how to’s, one needs to have an objective in mind.

So,

  • Choose a path and decide a goal. If one is just starting out, choose something general like developing websites or mobile applications or desktop software etc. Find out what computer languages and technologies are used in your path of choice. This especially helps you avoid a “What next now?” stage in your learning.
  • Start by doing little tutorials from youtube or some websites. Many of the languages have online “Language X in 20/15 minutes”. Once youย  are done with two or three (or as many that makes you comfortable) of these, you will have an idea of the syntax and keywords of the language: the rules that govern its writing. This will definitely give a feel of whether that is the language and its workings; some languages may be difficult as a beginner, and some others might feel more intuitive (more on that later in the article).
  • Next, find a good book or a website along the lines of “Language X for beginners”. There are many out there, free as well as paid but free is preferable as there is not a difference anyways. The internet is vast resource in itself. Try and look up reviews and opinions from people who have used the book before using it yourself, but try not to get stuck up on choosing a book, since they mostly cover the same content, only differ in style. The book will help on the core concepts of programming logic and provide basic examples, and get you started on your programming path in a specific language, and equip you with knowledge of core programming principles and algorithms that can be applied to other languages in some similar way.
  • DO NOT COPY PASTE CODES. A good habit is to write something different from what the presolved example says. So for example if the book tells the output “Hello World!”, make it say “Good Morning, People of Earth!”; if the example is to write a program that takes any name as input and outputs “Hello (Name)”, make it take the age instead, or the hometown. This helps counter the urge to copy code and also helps to ingrain core concepts in memory. Also, try to do supplementary exercises from the internet every time after learning a new topic, to see different ways in which it can be applied, and the various problems that might occur while implementing it.

By the time that book is finished using the techniques suggested above, one can attain reasonable proficiency in programming, and can now write own programs from scratch (basic programs).

But if there is no specific objective behind learning coding, or if the learning is just for programming in general, one of two paths written below is recommended:

  1. Learn C, C++ or Java

These above-mentioned languages are more technical and strict, making them a little difficult to master. Some programmers are actually of the opinion that C should not be in the list of languages for beginners and starters, it is a fair thought but it can be argued because C forms core for most other programming languages so mastering C at first can make learning other languages an easy task. The main bummer for many people is the dynamic aspect of c and c++. Competitive programming is also a thing which a beginner can jump into to learn things in a more quick and application oriented way.

2. Learn Ruby or Python

These have easy and more intuitive syntax and can help to get up and walk quickly in programming. They are also very similar. These are not only simple but have wide usability and demand in the market. From machine learning to AI to web development, these languages have a good future, beside the fact that they are heavy to run and compile but that doesnt matter.

All in all, START NOW and BE CONSISTENT. Three months is a lot of time if there is focus and value of time.


Sanskrit Mother Of All Languages.

sanskrit core language of all languages.

The Foundation of all languages is known asย “Sanskrit.” The core words are taken from Sanskrit and then later modified accordingly by the people as per their convenience, because of this see a large variety of languages. Still, the abbreviations change; therefore, after every 2-4 km, the same language changes its tone by which it makes challenging for a newbie while communicating with the local people of a particular area.ย 

These are some fundamental building blocks of the Sanskrit language. Combining these alphabets form words that are later combined to form a sentence or many sentences. In Forming sentences, there are some rules in Sanskrit, the law which we commonly called as grammar. The grammar of Sanskrit is a little hard to learn, but after learning, it makes it easy to form sentences and narrate them to anybody.

The primary source of all medical, chemical, and other proven knowledge has come from these scriptures written in Tad Patras, which were more durable than paper and sometimes waterproof. All the knowledge which we know today has come from Vedic Rushes. The Rigveda, Yajurveda, Samaveda, and Atharvaveda are Vedas famous in the Sanskrit language, covering almost all aspects of all subjects.

Sanskrit has the most extensive library of words; every word has a synonym in this language. In the future, NASA will use Sanskrit as their primary coding language because the research has proven that Sanskrit is better to code than in binary. The matter is the village in which the primary language of these local people.

Cryptocurrency

What is this crytocurrency that everybody is talking about? In simple words, it is digital currency in encrypted form. Money transaction is processed and validated through data mining. As of now, using crypto currency is a very complex process. Still, it is becoming popular in recent times worldwide.

Here, money transaction is carried out between two parties only.Hence there is no third party involvement. After validation and processing through data mining,it is kept in public ledgers but the transactions are kept confidential.Once a transaction is validated, miners get this crypto currency as reward.

Litecoin, Bitcoin, Ethereum ,Pipple are some examples of cryptocurrency. Out of this, Bit coin is the most popular crypto currency.

Cryptocurrency works on Block Chain Technology, which is a decentralised technology spread across many computers that manages and records transactions.

There are more than 4000 cryptos worldwide as of now. It’s users are called miners. This virtual currency is exchanged over the internet and uses cryptography as a means of security. There is no central authority to manage this system and it is immune to government interference.It is highly confidential and totally decentralised person to person payment method. All the transactions and accounts can be traced but the owner accounts are usually not easily traceable.

International money transfer can also be done through crypto. As it is becoming popular nowadays, it’s value is getting increased. Some people even use it for investment purposes. A large number of individuals and businesses have started using this. Many online websites also accept virtual currencies as payment.

Bitcoin is a premier crytocurrency created by Satoshi Nakatomo on 31 st October, 2008. It is pseudonomous and is controlled by users called bitcoin miners. These miners use different computer program and resources to solve highly complicated mathematics problems and get a number of bitcoins in exchange. They do this by verifying transactions and adding them to a public ledger called Blockchain. It holds the transaction history of all bitcoins in circulation. These miners keep the network secure and ensure that all systems are synchronized together. Those miners who help to accurately track the transactions and maintain network are rewarded with cryptos.

Ripple or XRP is an open source digital payment platform. Here money can be transferred in actual currency or cryptocurrency. XRP is used as a bridge currency to settle cross border payment in a faster and cheaper manner.

The cryptocurrency has neither been made legal nor banned. In India, they are not in use legally. Experts are advising on shutting down its trading. Likewise, other major countries are thinking of banning cryptocurrencies. So we have to wait and watch if the crypto will become the future of transactions or goes away for good.

Decoding the Indian Programmer

In India, the new millennium began to fundamentally change every aspect of the country with much media frenzy around the prospect of information technology. As a result, most college-going student’s ‘well-meaning’ parents compelled their children to undertake computer science and related study fields, independent of their interest.

ย With technological advancement foraying into our economic, political and social lives, demand for such graduates is substantial around the world. An estimated half a million jobs will be developed in this field over the coming decade, and by 2024, nearly three-quarters of the science, technology, engineering and math (STEM) positions will be over computer-related occupations, predict reports. More than half of the world’s STEM graduates are produced by China, India, the United States and Russia and so most computer science students are coming from those countries.

Portrait Of Confident Indian Programmer At His Workplace Stock Photo,  Picture And Royalty Free Image. Image 74810023.

There has also been a significant rise in student enrolment in computer science graduate programs in recent years, tripling in some of these countries. Do these growing numbers, however, also turn at the end of the program into quality graduates?

Talent shortages are extreme in India’s IT and data science environment with a survey reporting that 95 per cent of the countryโ€™s engineers are not qualified to take on software development jobs. According to a report by Aspiring Minds employability Survey Company, only 4.77 percent of applicants can write the required logic for a program โ€” a minimum criteria for any programming work.

Indian IT companies need to fire incompetent programmers

More than 36,000 engineering students from IT-related divisions of over 500 colleges took Automata โ€” a software development skills examination focused on Machine Learning โ€” as well as more than two-thirds could not even write a piece of code that compiles. The study further noted that while more than 60% of candidates can’t even write compiling code, only 1.4% can write technically correct and usable code.

The disparity in employability can be due to alternating learning-based methods rather than designing programs for different problems on a computer. There is also a shortage of good programming teachers, as most good programmers are getting jobs at good salaries in industry, the study reported.

Furthermore, programming skills for Tier III colleges are five times lower than those of Tier 1 colleges. According to a report, Sixty-nine per cent of the top 100 university candidates are able to write a compilable code versus the rest of the colleges where only 31 per cent can write a compilable code, the report said.

Debate about the standard of Indian student programmers is a never-ending one. Most developers worldwide are said to start coding at a shockingly young age. However, many will be surprised to know that in India only one in ten begins coding before age 15. Elsewhere the number is three out of ten.

When too many books are offered to a student to read but not enough time to engage in practical practice, then what will he learn?

In addition, students are often required to take assessments demonstrating only their memory skills and not their real skill or information. The amount of new technical data is said to be doubling every 2 years. But most educational institutions are still teaching Java, Turbo C++, and C++ pre-standardized. So, for students starting a 4-year engineering degree, their third year of college outdates half of what they learn in their first year.

What can be done to resolve the problem?

Social networking site LinkedIn recently said that in the coming years, skills such as web creation and user experience design will be highly in demand. It is therefore necessary to design an academic curriculum tailored to meet the needs of the generation to come and to make them IT fluent.

To this end, educators use different techniques to combine education with technology, and programming can be considered as one of the finest ways of doing this.

Early technology exposure has reshaped how children interact, socialize, develop, and know. Such digital natives think and process knowledge differently, due to increased engagement with technology. Today it is extremely important that every child transitions from engaging with technology to being an active co-creator.   

Computational learning incorporates mathematics, logic, and algorithms, and introduces innovative solutions to problems for youngsters. Computational reasoning shows us how to deal with big problems by splitting us into a series of smaller, more manageable issues. This approachโ€™s applications go beyond composing code and structured programming. The analytical method is used in areas as diverse as biology, archaeology and music.

Hence, it has become extremely crucial to instill knowledge about Computer Programming from a very young age in the children of our country. Because, only then we can dream of leaving the mark of our nation in renowned global competitions like The ACM-ICPC (International Collegiate Programming Contest).