If you are reading this blog, you must have researched a bit about this field and you may know a little bit of HTML, CSS and JavaScript. Here, I will talk about the meaning of “Web Development” to me and how you can improve and enhance your web developing skills.
If you ask me who is a good web developer, I will say that a person who has an advance or intermediate skills in both “Front End Development” and “Back End Development”, if you have no idea what those terms mean, please let me explain with this very accurate graphics.
As you can see in this comic, Front end is the thing you as a user can see on a website. And Backend is the mess that a programmer creates in order to build a great front end. Also, notice at the beginning of this paragraph, I have used “skill” and not “knowledge”. There is a big difference between having a skill and having knowledge about something. For example, I have very good knowledge on how to fly an aircraft (from many flight simulator game) but if you tell me to fly an actual plane, I’ll probably crash it. By “skill”, I mean how much practice you have done that thing.
If you are a beginner in this field and just figuring out what things to be done, here are some points that can greatly improve your web dev skills.
Let’s state the obvious first, You need to have very good knowledge of HTML, CSS, and JavaScript: HTML is easy, you just have to memorize a bunch of tags and you’re good to go. But that is not the case with CSS and JavaScript, these two topics are so huge and have endless possibilities that you can’t possibly become a master of CSS and JavaScript just by memorising things and not practising enough. You need a ton of practice to become proficient in HTML, CSS, and JavaScript and you can use these in literally more than a billion ways. One way to practice HTML, CSS, and JavaScript is by copying other websites, take any website you like, like Facebook and copy it (only the frontend part not the database and stuff).
Learn any backend language: You are not a “Web Developer” unless you have no skill in backend development. Learn any backend language (or Server Side language) some of the famous ones are Python’s Framework Django or Flask, PHP, etc. Also, you need to learn Database Management and SQL to fully become a backend developer.
Don’t fix your eyes at the output rather think about the process: This is the most important part that most people who are starting WebD ignore. having a great output is good, but if the process that you followed to get that output is crappy then it will be really hard for you as a programmer to find bugs or scale the website in the future. But if you are confident that your code has no bug, then you are most certainly wrong, No code is perfect.
Make your project first on paper and then on a computer: It is always better to draw your future steps and make a detailed chart of your workflow (how you are planning to make that project). This point is also true for any creative work you do, expressing your ideas using pen and paper rather than a note-taking app or a computer helps our creative mind to work more and help you to find an easier and more efficient way to do things. There are literally dozens of advantages to working on pen and paper first, that deserves its own blog post.
Be open to suggestions and critics are your best friends: It is extremely important that you listen to all the critical comments and improve your work based on them. This way you can assess your skills and make decisions based on those critics. You have to ask your friends and family to review your work and make changes if necessary.
Keep your eyes open and always seek for inspirations: The world is filled with weird but amazing things, observe these little things and try to apply that on your design. Like for example, you come across a poster for an ad campaign and you liked the way that is designed, try to incorporate that in your design. The point you have to note is that do not copy the design as it as rather use your imagination and merge that design with your unique ideas. This might sound stupid but pay close attention to the dreams you are having, you can get some great ideas and inspirations from those dreams.
Web Development like any other skill cannot be learned in one day or even few months, you need a constant practice and with time you will reach the top level of web dev game and maybe one day your website will be featured in Awwwards.com.
P.S. I am not sponsored by any of the brands mentioned in this blog, I use those resources myself and wanted to share.
Quantum computing will move business, science, and government forward in unprecedented ways by solving problems that are too complex for today’s computational systems.
~ D-Wave Systems
Quantum Computers are a class of new generation computers that works on the basis of Quantum Mechanic concepts such as Superposition and entanglement. These computers are capable of computing operations that would take tens of thousands of years in a normal computer, in just a few minutes.
In 2019, Google released a video and an article that Google has achieved what they call a "Quantum Supremacy" which means that Google has created a Quantum Computer that outperformed worlds best supercomputers. They claimed that their Quantum Computer was able to solve a problem in less than 4 minutes that would take more than 10,000 years in a supercomputer.
A computer is just an electronic machine that takes some sequence of electric pulses as input and produces some other sequence of electric pulses as output. These pulses are represented as Binary digITS (0 or 1) also known as bits.
These bits are just switches turning on and off, 1 means a switch is turned on and 0 means that switch is turned off. Also, these switches are built with an electric component called Transistors.
For the past seven decades, scientists are trying to make these transistors smaller and smaller. In 1965, Co. Founder of Intel, Gordon Moore noticed that the amount of transistors in a computer chip nearly doubles every 18 months. This statement of Moore later became Moore's law as we all know it. Scientists were able to abide by this law by making the size of transistors smaller and smaller and adding more and more transistors inside a CPU of almost the same size. There are almost 1.7 billion transistors packed inside an Intel i7 CPU.
This was all good until a few years ago when transistors became so small (less than 5nm) that quantum mechanics became an issue. To understand this, you need to understand how transistors work. And since it is beyond the scope of this post, you can see this 8 min video by youtube channel Real Engineering. I recommend watching this video if you don't know how a transistor works before continuing this post.
The reason transistors won't work in sub-atomic space is because of a quantum mechanical concept called Quantum Tunneling.
The most "Explain Like I'm 5" version of quantum tunnelling is a metaphor by the youtube channel MinutePhysics. Imagine that you roll a ball down a hill there is a 100% chance that the ball will be at the valley and not at a valley between some other hill.
But imagine that the ball is an electron and you roll it down a hill, then there is a 99.9999999% chance that the electron will be at the valley of that hill and 0.00000001% chance that the electron is at the valley of some other hill or maybe inside the hill.
So in transistors, when depletion layers are very thin, the electrons can sometimes jump to the other side of the depletion layer and complete the circuit. The thinner the depletion layer more the probability of occurrence of Quantum Tunneling.
Heads up, I'll mention some principles and equations in physics and bold them so that you can look them up if you want.
Heisenberg's Uncertainty Principle says that we can't measure both the position and velocity of a particle at the same time. Not because we aren't technologically advanced but because unlike normal objects like a ball, quantum particles are probabilistic. This means that we can tell a ball is on the table with a 100% probability without even looking at it but in case of an electron, we can only tell that the electron might be in this position with some probability that is not 100%. The probability of position of any quantum particle is given by a Wave Function if you majored in physics then you might have seen this equation but most likely got scared, like me.
This function provides the probability of a particle as a wave, this is whole wave-particle duality thing everyone talks about and points to Double Slit Experiment.
Now as any wave, when it collides with a barrier, reflects. But this does not explain quantum tunnelling. Whenever a wave gets reflected from a barrier there is a quickly decaying wave that goes through the barrier, this is called an Evanescent Wave or Frustrated Total Internal Reflection. If the barrier is thin enough this wave will go beyond the barrier creating a tiny possibility of the particle being on the other side of the barrier. Also known as Quantum Tunneling. I'll embed this video from the youtube channel The Action Lab as an experiment that you can do at home to see Quantum Tunneling in action.
Now back to the topic, because of this reason, when the transistors get smaller the depletion layers (the barrier that's stopping the electrons from flowing) and as we all know by now, the thinner the barrier, larger is the effect of quantum tunnelling.
Quantum Computers work in the quantum space where the reality is stranger than fiction. Using a Quantum Computer,
These are some examples of applications of quantum computers and there are many more to be discovered.
Through this series of blogs, I will share my experience and research about Quantum Computing and try to contribute my part on the development of quantum computing and quantum softwares.
Follow my blog if you want to read future posts on this topic.
]]>