Sunday, November 10, 2019

Is coding creating peer pressure on students?

 Is coding creating peer pressure on students?


Alice completed her 12th and passed with an excellent score. She got an admission in a good Engineering college. Nowadays, Software Engineers are highly paid, so she chose to commence her career in Computer/ IT field. She was in the first year and as a freshie she was curious to know about the various new technologies of software world. Within a span of time, she heard many computer science buzzwords that were very interesting but she was unable to understand those basics that were helpful to master those technologies. It happens with all the first year students who want to join the world of technologies. Let’s see what happened with Alice.


She went on attending lectures and collecting theoretical knowledge about the IT world, which made her bored. So she was nervous as she didn’t find it interesting. Thereafter, due to placement and recruitment activities in college campus, she came to know that computer coders get highly paid jobs and they were very famous. She started thinking about coding and gradually gained interest. She started exploring many new things about coding. As she was a computer/IT student, she was familiar with computer languages and programming. By the rumours all around, her concept about coders/programmers was like they are the talented peeps who always sit in front of computer screens solving tough problems having fistful knowledge of programming languages. And if she wanted to be a good programmer then she must have apt knowledge about different programming languages. But she didn't know what she meant and what reality is? It doesn't mean that what she believed was wrong.  Every student who is expecting a good career in computer/IT field, wants to be the best programmer. But due to the absence of proper knowledge at that time, they get distracted from their path. It happened with Alice too. 


Computer programming commonly called coding. Code is all around you and we can see glimpses of code everywhere whether you are chatting on messenger, watching YouTube videos, booking movie tickets online, swiping a debit card, etc. Whatever happens is because of lines of codes which run in the background. Or simply if we want to use mobile without charging, we can't use it. Similarly even without lines of code we can't use any application in our phone, desktop or on the internet. So what it exactly is “ the process of creating a set of instructions that tell a computer how to perform a task.” People can speak many languages for communicating with each other in the same way many programming languages are used to communicate with the computer. Eg. C, C++, JAVA, Python,etc. 


Now, you know what is coding. But the big question is how to code? If you think coding is taught in the classrooms, the answer is "no". In classroom we only learn languages syntax and basic concepts. If you are searching any online tutorial to learn coding then also you don't get the way to learn it, you only find the algorithms and different methods with available code. There is one quote “If you want to be a good shooter, you don't need to shoot 1000 shoots from the wrong technique.” Some of the points to learn coding from my side are:-


  • Your concepts should be strong enough. It's fine if you don't know the syntax.
  • Coding is nothing but a logic to solve a problem. Logic will be built if you practise it. 
  • If you solve one problem then don't stop there find another way of solving this problem.
  • Do practise programming daily, for that use many online websites like geeksforgeeks, hackerrank, codechef, hackerearth, etc.
  • Don’t give up because on early stage you will find it difficult but as you keep going, your logic will be built up, so stick to it.

Now how programming will help you?


  • Creativity - There are no limits to the things that you can create when you have the ability to think and create new things. It gives you the ability to create something that you can be proud of.
  • Problem Solving - Programming sharpens your problem-solving skills. It improves your logic . The problem solving skills you learn by programming will transcend to every aspect of your life.
  • It obviously helps to earn a high salary package.


Growth of questions on programming languages on stackoverflow


Some of the programming languages that beginners start to learn first are as follows:


  • C / C++  :- C almost influenced every programming language. If you learn C first then it easier to learn other programming languages. Since C takes more complex code to perform simple tasks, beginners may find it tough to stay motivated if this is their first language. However, knowledge of C will definitely help you as a programmer in the long run. C++ is a powerful language based on C. It is designed for programming systems software, but has also been used to build games/game engines, desktop apps, mobile apps, and web apps. 
  • Python :- Python is always recommended for an easy language to learn at early stages of your career rather than having to jump into strict syntax rules. Python reads like English and is simple to understand for someone who’s new to programming. Python is an interpreted language. It is used in many applications like robotics, web scraping, scripting, artificial intelligence, data analysis, machine learning, face detection, etc. 
  • JavaScript :-   JavaScript is another language which is in high demand at the moment. JavaScript is an object oriented programming language designed to make web development easier and more attractive. In most cases, JavaScript is used to create responsive, interactive elements for web pages, enhancing the user experience.
  • Java :-  Java is one of the most popular programming languages in the world. Java has been used for so long that there is lots of information about it on the web. This is ideal for beginners because it has a large community. Java is being used everywhere, whether it is a desktop application creation or mobile-based applications.


Lastly, I want to say that every person will not be a perfect coder but every person has his own ability. Alice was in the process of finding her interest on the basis of her knowledge. This would be depressing but for one crucial fact: Humans are distinguished from other species by our ability to work miracles. We call these miracles technology. To work on miracles means to train machines to do your work easier, faster and more feasible. One who trains the machine more efficiently and easily is the perfect coder in the simple way.
So now the question arises, Is it necessary to code? 
Your whole life is full of opportunities. There are many things in which you can explore to get succeed. So it is important to find your own interest out of all these things which you are observing daily. Have some patience and at this point of time just keep exploring more and more. One day you will get your interest and then start investing on that. Whether its coding, development, networking, data mining, business analysis, database management or may it be anything, “Just follow your passion.” Instead of getting into the rumors from the society, have your own choices and excel the job in which you are interested. Specifically, if your interest is coding, I recommend you to start one of those five languages.
If you want to have expertise in coding, start your day 1 with at least two lines of code and be consistent.
Happy Coding, All the Best for your Future.


                                -Ms. Diksha Yanpallewar

Friday, November 8, 2019

The Decision : Job vs Career


Jeetu sat on the bench. A lot of thoughts were striking in his minds. After all, he has to make decisions for his life. For the past few days, he was in a dilemma. A question was disturbing him “Whether to do a job or to continue learning in his field of passion?”. In the last semester of his Engineering, had a decent package of big software MNC in hand, good college grades and within a couple of months, he was going to graduate with Bachelor's degree from well-recognized college. After graduating, he was going to join the company. Everything was sorted, but he was uncomfortable and feeling something was being missed. When he joined Engineering, the aim was to complete an Engineering degree with good grades and landing into good MNC with a decent package. Today it was happening but he was not happy. There were a lot of changes in the past 4 years which transformed an unconfident teenager to the confident youngster who loves challenges and doesn't fear anything. The company  was paying enough to fulfill his basic needs and provide luxuries but not well enough to feed his passion and provide the adventures which can really satisfy him.  

This is not a story of Jeetu but the story of every Engineering student. When they are teenagers, some of them follow instructions of their parents, some of them are fascinated by luxurious life of people around them. By then, they are just delighted by outer material things and can’t see the things under the picture. They do hard work in higher secondary schooling to get admission to good Engineering college. They complete Engineering for 4 years with good grades. Going through the long process of 6 years and realizing this is not so me or the thing that I want is quite depressing. Do this long process of 6 years completely go to waste? Definitely no, not at all. Engineering is a really very beautiful process. In these years students not only get the degree but learn a lot during these degree years. 
The very first thing that comes to anyone's mind when talking about Engineers is "JUGADU". Yes, Engineers are really Jugadu and they are really proud of it. In Engineering college life, students come across many situations where there is no conventional solution to solve a problem. What we Engineers do to solve them - A very obvious Jugaad which do not only solves the problem but also in the most feasible and convenient way. 

Management is another thing that is learned best here. Engineers do a lot of technical stuff, flourish hobbies, playing games, spending a lot of time doing hangouts with friends, arranging various non-technical events and also participating in it and with all these things maintaining 75% attendance in all subjects throughout the semester is really challenging thing and still these students unconsciously manage all these things. The best instance of Management quality comes during exam times. Two days earlier, even the proper syllabus of subjects is not known to many students still they manage to not only pass the exams but to also get a good score. It's magic, isn't it? 

Another best part where Engineers are pretty good is following deadlines. The job may small or large and the time is given to it is less or more, deadlines are followed. It may be assignment submission or project completion. It is okay if a lot of time is there to complete the task and even better if very less time is there to perform task, task will get in any way by proper approach or any Jugaad.  Engineer won't give any chance to complain about not following the deadline, but again there is another case, quality about work is there or not? But this is a later part.    

If there is a problem, just figure it out not to make an issue about it but figure out to solve it. This problem-solving approach is another great quality. It may be finding bugs in projects or any real-world problems. Problem-solving is part that really interests Engineers.
With all these qualities Engineers demand some adventure and thrill. Even though need to do a lot of work with machines but work gets boring when it is completely monotonous. Some challenges, some adventure should be there. Again that's the reason Engineers leaving desk jobs which don't feed them challenges and use their make use of their potential.  

In various fields like Business, Glamour, Politics, Entrepreneurship, Social services. We see more personalities from Engineering background compare to other backgrounds such as medical or Commerce. Root for this lies in 6 years process through which Engineers go. It is the process of self-realization. Self-realization about their interests and qualities. With all these qualities discussed above, why would any individual prefer to monotonous desk jobs. Definitely he will seek for challenging profiles. 

   An hour passed, but Jeetu was still on the bench. Even after thinking for this much time he was unable to reach the conclusion and make a firm decision. He went through the process and when he is aware of his skill set and potential, he needs to take the decision. There was no doubt the job was good and he will get a good salary but he also knew he can do better than this job. Various fields were there where he could make use of his skills and make more money. let Jeetu take his own decision about his career but what about you. What do you feel about yourself? Have you ever thought about you and your skill set? your potential and your interest? or made a decision just because everyone else is doing it so even I should do the same. Its time to think and decide....
- Mr. Mayur Labhshetwar
x

Monday, November 4, 2019

Blockchain : The Enigma

Blockchain : The Enigma


Today, there are very few names which come in front when it comes to security domain. Though there are big names in the game, Blockchain is the leading one. Even the CEO of IBM, Ginny Rometty, has said that, “What the internet did for communications, blockchain will do for trusted transactions”. Blockchain is an undeniably ingenious invention. Except the fact that there are many myths about blockchain, I think it’s very simple if you understand it from the very basic.



Let’s illustrate by comparing a blockchain with a bank. Your bank maintains a central database( “ledger”) of all their customer details. This may store account numbers, balances, transactions, and more. Whenever you interact with your account for your financial transactions, the account details in the database are updated. Only the bank has access to the ledger, so if they decide to make a change, there’s not much you can do about it. This shows some lack of transparency between the bank and the user. Now imagine if a hacker gained access to this database. They could change balances, delete transactions, and more. It’s hard to take action against this kind of activity because bank is a central entity. Again there are security restrictions for bank to maintain a system which is not prone to hacking because it is a single authority and have only one central database. Bank also charges high transaction fees for providing the service. The stats shows that JPMorgan Chase, Bank of America and Wells Fargo earned more than $6 billion from ATM and overdraft fees in 2015. If we observed above problems of current system, we repeatedly notice the term “Centralized System” . So, can we think of a better solution?


Here, blockchain comes into the picture with its “Decentralized Nature”. Bitcoin is a cryptocurrency build on blockchain architecture. It doesn’t charge any transactional fees in the service. Blockchain is a decentralized public database. Everyone who is connected in the blockchain network is called as a peer. As it is a public database, each peer has separate local copy of blockchain. The blocks are connected to each other with unique hash. The hash is calculated from applying cryptographic algorithms(e.g.SHA-256, SHA-512) on the digital information present in the block.  Blockchain consists of blocks which contains digital information about transactions like, in case of bank, sender’s account number, receiver’s account number, amount, timestamp, hash of previous block and the hash of that particular block. Blockchains are immutable i.e. we can’t update or delete any information in the block once it is created.


In blockchain, the hash of previous block is stored in each block for validation of blockchain. Suppose there is a blockchain of 100 blocks, and now, a new block(101th) is created, it is broadcasted to each and every peer in the network. At each peer, the value at previous hash field of 101th block is matched with the hash of 100th block. If the hashes are being matched, the peer sends a confirmation that the block is valid. While taking Consensus, if system gets successful confirmation from more than 50% peers, the block is added to the blockchain. Peers who send negative response will get to know the fact that there are malicious activities done on their blockchain copy. That particular peers request the adjacent peer who sent positive confirmation to share its blockchain copy, so that it will get valid blockchain copy, this concept is called as Byzantine Fault Tolerance. If successful confirmation percentage is less than 50%, the block is not added to the chain and the transaction should be attempted again. Now, we will see the significance of validation through matching of hashes. If a hacker enters in our decentralized network and manipulated some transaction information in 70th block in the blockchain copy of 2nd peer. The hash of 70th block will be changed only in the blockchain copy of 2nd peer. As hash of 70th block is used as previous hash in 71th block, the hash of 71th block is also changed. Like this, change in 70th is transmitted to 100th block. In other words, if hacker changes any transaction in any block, the changes are reflected in the most recent block in the chain. So, while validating the blocks through hash we will immediately detect the manipulation. In this way, with the decentralized nature, public distributed ledger, cryptographic functions, banking system with blockchain is always an upper hand to current banking system.


Now, it is time to think where blockchain is being used or can be used. Upto this, we only discuss blockchain use in banking domain, although it isn’t restricted to this domain only. Blockchain has so many use cases as following:



  • Bitcoin, the biggest cryptocurrency of the world, is running on blockchain. Bitcoin is like digital gold. Today, the price of 1 bitcoin in Indian currency is 6.5lakhs.
  • Election voting system with blockchain.
  • Blockchain healthcare use cases: to stop counterfeit drugs, to improve access to medical reports.
  • Supply chains.
  • Blockchain in cloud storage.
  • Insurance: Claims processing - The blockchain provides a perfect system for risk-free management and transparency.
  • Blockchain technology in energy sector.
  • Smart contracts use in land registry and sales.
  • Blockchain may make selling recorded music profitable again for artists by cutting out music companies and distributors like Apple or Spotify. 

Upto this, we have seen only good things about blockchain, but how can it be possible that there are no limitations to it. As every coin has two sides, blockchain too has some limitations. Bitcoin currently has notable transaction costs after being touted as ‘near free’ for the first few years of its existence. As of late 2016, it can only process about seven transactions per second. It requires high computational power for generation of specific hash(Proof Of Work). That’s why blockchain should be implemented where the need of data security is very big such as in voting system, in banking system, etc. There have been many attempted over bitcoin and other popular blockchains, but not a single attack has break security of blockchain. There is one notable security flaw in Bitcoin and other blockchains: If more than half of the computers working as nodes to service the network tell a lie, the lie will become the truth. This is called a ‘51% attack’. Though there is possibility to penetrate the system, it seems just like a theory, because there are millions of peers in bitcoin network all over the world and to hack the system, one has to manipulate 51% of peer at the same instance of time which is impossible at this point.
Blockchain is ruling the world in security domain. Research and development are at good pace in this field. There is huge scope for more development on issues raised on blockchain. I recommend everyone to read more about blockchain and think for any new and more secure features you can implement.  Happy Learning, Happy Blockchain ;-) .