Should every engineer learn programming ?

Visualizing today's scenario of booming tech industry every engineer irrespective of their stream  have a question in mind "Should I learn programming though I'm not a CSE guy". 

The answer for this question is probably yes. But if you ask why ? Then continue reading..............





Why should I learn programming ?






To know about the answer to this question first you must know "What is Programming ?" 


If you think that programming is the task of typing some random shits in a computer, locking up yourself in a dark room, peeking into your monitor, and not interacting with the outside world behaving like some weird introvert nerdy guy, pheww!! then you better change your mind. Because this is not what programmers do ( partially some of them may do :P ). 







Being an electronic guy I'm going to break down about programming in my terms. 


The electronic engineers have done a lot of research and invented a beautiful thing called computers. The transition from big transistors to small microprocessors is really amazing. 


So, what is a Computer ? Yupp, Literally everyone knows Right ? In lay man terms it's just an electronic device.


I would call computer as the modern slaves of human dynasty for the 21st century. Slaves ?? Yes you read it right.


These computers are so powerful with tons of computing power, and amazingly fast, executing billions of commands in seconds. So obviously they are our slaves. They do whatever you say but can't think on their own( May be they can with the help of AI in future). 


So Whats the relation between learning programming and making computer our slaves.





The thing is that they are not smart enough to understand human languages. They can only understand machine language or binary language ( 0's and 1's). 


So literally this means that you have got a slave but he doesn't speak your language. Then what should we do. How can we command him ? The answer is you learn his language which is called programming. We need to learn programming and compile out thoughts into actions.    


Today computer(your slaves) is easily available in market. Be it a desktop, laptop or even your mobile. All of them have got a processor in them waiting eagerly to execute your instructions. 


So if you refuse to learn programming then it means that you have got a slave but you don't know how to extract the work from him.


If you want your slave to do the work for you then you better learn programming. Simple as that.


Okay, I can understand I have got a slave. But what work do you expect me to extract out of him ? The answer is literally anything, It depends upon your creativity and how you use him. It can be both Constructive and Destructive.


Impact of programming ?


I hope that everyone is aware about the Industry Revolution 4.0. It is the time to replace humans with automation and computers. But Why ? Because they are not a Work Evader like you. They do the given task with dedication & accurate precision( at-least they fulfill their duty they are built for :D ). In addition to that they are fast, economic, efficient, increased production and gives more throughput.  




Wait What? Is it going to occupy my job? Yes!

Am I not going to get any job? No! Surely you will get one.




Though computers can't replace every jobs in earth, they can do replace most of the jobs which human do.

But are we going to be jobless? The answer is No. Even there are chances for many jobs to be created. How? The answer is based on the previous fact that computers can't think on its own. So if you want to automate a task, if you simply substitute a computer there it is not going to figure out the task on its own. You have to tell it what to do, how to do. This is where the role of programmer comes. The programmer must figure out how he can write the codes for the following task. To answer to the question I can say briefly that we are not going to be jobless, but there is definitely a job shift towards programming.

Then why there are different engineering streams. why can't there be only one single stream CSE. We need different streams because there are various streams of sciences. By just knowing how to code you can't simply automate the tasks. You need to know about the process & working of it, then only you can automate it. 


Programming is used in almost every field. For E.g Mechanical engineers use G-code in CNC machines, 3d printers, etc. Electronic engineers use programming to code micro-controllers in circuits. Civil Engineers use Matlab to solve problems dealing with a structural stiffness,  finite-difference solution for fluid flow, etc. In every case we do programming but only the language differs.   


Now lets see about programming and Engineering. 


Take the case of Mechanical Engineers. Think that you are going to build a automated car factory where every thing is done by computerized process. Now to do this along with programming you also need the knowledge of mechanical factors. Now consider that there is a process of welding two parts. Of course you can automate it with two mechanical hands but before that You need to know about what is welding, types of welding, temperature required , type of material to be used, check for cold joints, etc. Hence to get to know about these things you need to learn mechanical engineering.


Now take the case of electronic Engineers. Every circuit and chip are designed using softwares. To build these software first you need to know about electronic parameters like types of transistors, resistors, capacitors, etc. The process of fabrication of chip is fully automated. Embedded system is fully based on chip level coding. But here the coding is alone not enough. You need to understand  the basics of transistors, electric properties, internal factors, etc in order to design a complete working module. Hence you need to pursue electronics engineering. 


In the same way every engineering has its own application of computers. Hence I can say that programming is just a tool which helps you to connect with computers so that you can use them in your own engineering domain.


Programming can't sustain on its own. It needs to be applied in different fields to see it's impact.


Don't think like programming as some weird alien language. You will find it interesting when you get into it. It will make you think. At least use your fresh brain to some extend.       

  
What can I do with programming ?

The beauty of programming is the easy access to it. You can do many cool stuffs and automate your daily life.

There are lot of things you can build right now itself. Let me say some of them now which I have seen or experienced. 

The first thing is that you can earn from home. As said earlier you only need a computer to do the task. You can do freelancing works like web development, building apps for private companies, etc. Everything right from your home.

Do you know about the Flappy Bird game story. Its a simple 2-D game. It was built by a single person. You can build it in 2 days. The game was a massive hit in both apple store and google play store. The creator earned millions just for a simple game. You can pretty much build your own simple game and release it in app store.  



I saw a guy who applied machine learning using python and applied it to GTA V. He built a self driving car in GTA 5. Actually it performed really well. It was way better than our actual driving. It was kinda cool and fun.



There is a thing called arduino which is a microcontroller prototyping board. Electronic engineers are mostly aware of it. You can code it to interact with sensors and various other modules. So whats cool with it. Say you are going out of station. You need to water your plants for few days. No Need to give your house key to your neighbor. Simply by hooking some sensors( moisture sensor to be precise ) and controlling a valve of your water tank ( or your garden hose ) you can program it to automatically water at predefined times. Even you can do advanced things like by knowing the moisture factor you can control how much water it should spray. For E.g If it is raining then there is no need to spray water. In the same way if you are out of your home and worried about theft and security you can build a motion triggered burglar alarm. By using image processing you can detect motions in front of camera and when detected you can take a pic of the intruders and send it to your personal mobile which can be used to alert the cops.

Want to add fancy features to your bike/car ? You can build a mobile bluetooth controlled ignition system with the help of an app. 

Want to make a smart home like a jarvis by which you can control light and fans by voice. Yes it is possible. You can even build a app for that to make it interact with your switches and circuit breakers in your home. 



Tired of doing excel works. You can write a simple python script to automate your excel works like transferring data from one excel to another and do the calculation process. 

Want to book a phone in a flash sale ? you can write a python and java script code to do it automatically for you when you are in your college / school / office.

Own a shop ? Need a software for billing, accounting, filing GST. Why to approach third parties. You can even build a simple software on your own.

Need to automate tasks like turning your heater ON automatically when you wakeup. A coffee machine which automatically puts coffee for you when you wake up. Yes all these are possible. You can just hack into the system and modify it according to your needs if you know programming.


Need to lower your current bills ? Just build a app connected with your meter to receive live current consumption updates to your mobile.

Want to know how is your stocks invested in the companies are performing ? Build an app. It can alert you if it is going Up or Down.

Want to send wishes automatically to your beloved ones exactly at 12 midnight. No need to stay awake till then. Just do a simple application. Leave the rest to it.

Always forget to pay your bills ? you can write a program that finds your bill amount from email and pays it automatically. You can automate all of your process like reading the OTP from your mobile, filling the card details and making the payment. 

You can pretty much build everything which you dreamed for. Programming is everywhere. What else are you waiting for?

Note for beginners: If you learn programming with no passion just for the sake of getting an IT job then I would say that you wont succeed and can't master it.

So to conclude programming is an awesome tool. Use it Wisely.  Happy Coding. 



If you have any suggestions or queries then comment below. 


        

No comments :

Post a Comment