Difference Between Coding & Programming?

Last week one of my university juniors asked me this question! That, what’s the difference between Coding & Programming?

Then I thought I should write a post about it and try to explain. I believe it’s very important if you are working Software Industry you should know what you actually are!

Most people think both are the same thing! Not at all! There are differences between the two “worlds”. So let’s explore how professionals use them and try to understand the terms first by understanding what they mean.

What’s Coding?

Image courtesy: unsplash

Coding is how we communicate with computers. Code tells a computer what actions to take and writing code is like creating a set of instructions.
In order to become a coder, you need to be able to write code in different programming languages such as Java, C, PHP & so on. With this knowledge, you will be able to provide instructions and information to the computer to execute the programs you or your team creates.

Coding involves writing code for creating a software program or any sort of application, website, game.

What’s Programming?

Image courtesy: pexels.com

There are many definitions of what programming is, but the one I prefer is: “Programming is how you get computers to solve problems.” There are two key phrases here which is important:

  • you: without the programmer (you), the computer is useless. It does what you tell it to do.
  • solve problems: computers are tools. They are complex tools, admittedly, but they are not mysterious or magical: they exist to make tasks easier.

In order to come up with a solution or an application, you will need to carry out a few steps:

  • planning the application
  • designing it
  • testing the features
  • deploying it
  • maintaining it after development is finished

So it’s only fair to say that programming not only deals with coding but also implementing algorithms and much more.

Let me try to explain it in a simpler way so you can get a better understanding.

For example, you can program your watch to wake you up at 7 AM. Also, you can program the AC to come on at the temperature that you have chosen. These devices have code on the backend that works based on a set of instructions given by the user.

The Differences Between Coding and Programming in Brief:

  1. Basic Difference:
    Coding is a part of programming that deals with writing code that a machine can translate. Programming is the process of creating a program that follows certain standards and performs a certain task.
  2. Scope:
    Coding is about translating the requirement logic into machine-understandable code. In contrast, programming demands analysis and conceptualization of different aspects of any program and finding solutions to any issues that may occur during the process. It also involves critical parameters such as debugging, compiling, testing, and implementation.
  3. Tools:
    Coding doesn’t require as many software tools since it’s just an act of code translation to machine-readable form. Just a simple text editor like notepad or WordPad is enough. As a coder, you just need to know the details of the syntax of any programming language.
    Programming requires that you perform document reviews and analysis along with coding that requires extra tools. These tools include code analyzing tools, databases, testing frameworks, compilers, assemblers, debuggers, and modeling algorithms. A programmer needs lots of experience to obtain these skills.
  4. Expertise:
    Coders should have basic knowledge of programming.
    Programmers should have experience in creating algorithms, understanding requirements, processing data, modeling problems, and managing projects – these are just some of the practical skills needed.
  5. Outcome:
    While coding, your expected outcome is part of or the whole project. The code acts as a set of instructions given to the computer.
    On the other hand, programming yields the whole application, software products, or a website that’s ready to use.

So, how both Coding and Programming works together?

Let’s explain this using an example to get a better understanding. Imagine we are creating an app to monitor something like our daily routine for us. How will these two different fields work together?

First the programmer will have to:

  • plan the architechture of the app,
  • list down features of the app
  • designing the app

After the programmer is done with these first steps, they hand it over to the coder.
Now the coder will transform the ideas into code. After this process is done, the completed code is given back to the programmer.

Now the programmer will go through the code do some polishing by debugging, checking for errors, and doing tests before publishing the final product.
Now you can see how these two fields have come across together to work on an idea and produce something that’s usable.

Final Words:

Often people confuse programming & coding; hope by now you agree that they are distinctively different after comparing coding vs. programming with a number of factors.

Coding is the primary step and translates the requirements and codes to convert into a machine-readable syntax. Still, programming deals with the executable programs to produce the mechanical outputs following the inputs and requires the knowledge of the complete software development life cycle.

How to show Store(Vendor) Name on Checkout page in WordPress

So, this was the requirement from the client to show the Vendor Name on the Checkout page. Though the plugin shows the Vendor Name of each product on the right side just after the product name.
N.B: To support multi-vendor in WordPress I’m using Dokan Plugin.

How-to-print-store-name-in-multivendor-woocommerce-wordpress

Let’s copy the code from below:

add_action( 'woocommerce_before_checkout_form', 'print_vendor_name_on_checkout_page', 10 );
function print_vendor_name_on_checkout_page()
{
echo 'Shop: ';
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ){
$authror_id = $cart_item['data']->post->post_author; // <=== The post author ID
$author = get_user_by( 'id', $authror_id );
$store_info = dokan_get_store_info( $author->ID );
$store_title= $store_info['store_name'];
}
if ( !empty( $store_title ) ) { ?>
<span class="details">
<?php echo $store_title; ?>
</span>
<?php }
}

That’s all! We’re done!
N.B.: In my case customers are allowed to order from one shop/vendor at once. That’s why I’ve printed the shop name outside the foreach function.

So, what if in your case you allow ordering from multiple stores? Just print the store name inside the foreach!

add_action( 'woocommerce_before_checkout_form', 'print_vendor_name_on_checkout_page', 10 );
function print_vendor_name_on_checkout_page()
{
echo 'Shop: ';
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ){
$authror_id = $cart_item['data']->post->post_author; // <=== The post author ID
$author = get_user_by( 'id', $authror_id );
$store_info = dokan_get_store_info( $author->ID );
$store_title= $store_info['store_name'];
if ( !empty( $store_title ) ) { ?>
<span class="details">
<?php echo $store_title; ?>
</span>
<?php }
}
}

Done! Pretty simple, isn’t it?

Lightweight YouTube Embeds – A Better Approach for Embedding YouTube Videos on your Site

     

Have you ever checked how much extra data a single embedded YouTube video can add to your web pages.

It’s easy to embed a YouTube video but have you ever checked how much extra data a single YouTube video can add to your web pages. The browser has to download nearly 800 KB of data (see screenshot below) for rendering the YouTube video player alone! And these files are even downloaded before the visitor has clicked the play button.

Only the base.js itself adds 492KB data! In total 23 requests are made and downloads ~800 KB data even before the play button is clicked! Don’t believe? See it in action here.

This increases the overall loading time of your page thus affecting the page speed. The other drawback with the default YouTube embed code is that renders a video player of fixed dimensions and isn’t responsive. If people view your website on a mobile phone, the video player may not resize properly for the small screen.

Normal YouTube Embed Video:

The standard embed code for YouTube uses the IFRAME tag(Google+ technique) where the width and height of the video player are fixed(may be you can write some custom CSS to make responsive) thus making the player non-responsive.

So, I’ve been looking for a solution so that the weight of the page doesn’t goes up. Finally found a solution!

Step-1:
<div class="youtube-player" data-id="VIDEO_ID"></div>
Step 2:
Copy-paste the below JS anywhere in your web page. The script finds all embedded videos on page and then replaces the DIV elements with the video thumbnails and a play button (see demo in action).

<script type=”text/javascript”>

function myIframe(div) {
var iframe = document.createElement(‘iframe’);
iframe.setAttribute(
‘src’,
‘https://www.youtube.com/embed/’ + div.dataset.id + ‘?autoplay=1&rel=0’
);
iframe.setAttribute(‘frameborder’, ‘0’);
iframe.setAttribute(‘allowfullscreen’, ‘1’);
iframe.setAttribute(
‘allow’,
‘accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture’
);
div.parentNode.replaceChild(iframe, div);
}

function initYouTubeVideo() {
var playerElements = document.getElementsByClassName(‘youtube-player’);
for (var n = 0; n < playerElements.length; n++) {
var videoId = playerElements[n].dataset.id;
var div = document.createElement(‘div’);
div.setAttribute(‘data-id’, videoId);
var thumbNode = document.createElement(‘img’);
thumbNode.src = ‘//i.ytimg.com/vi/ID/hqdefault.jpg’.replace(
‘ID’,
videoId
);
div.appendChild(thumbNode);
var playButton = document.createElement(‘div’);
playButton.setAttribute(‘class’, ‘play’);
div.appendChild(playButton);
div.onclick = function () {
myIframe(this);
};
playerElements[n].appendChild(div);
}
}document.addEventListener(‘DOMContentLoaded’, initYouTubeVideo);
</script>

Step 3:

<style rel=”stylesheet”>
.youtube-player {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
max-width: 100%;
background: #000;
margin: 5px;
}
.youtube-player iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
background: transparent;
}
.youtube-player img {
object-fit: cover;
display: block;
left: 0;
bottom: 0;
margin: auto;
max-width: 100%;
width: 100%;
position: absolute;
right: 0;
top: 0;
border: none;
height: auto;
cursor: pointer;
-webkit-transition: 0.4s all;
-moz-transition: 0.4s all;
transition: 0.4s all;
}
.youtube-player img:hover {
-webkit-filter: brightness(75%);
}
.youtube-player .play {
height: 72px;
width: 72px;
left: 50%;
top: 50%;
margin-left: -36px;
margin-top: -36px;
position: absolute;
background: url(‘//i.imgur.com/TxzC70f.png’) no-repeat;
cursor: pointer;
}
</style>

 

You can see my solution on action here

Now, the page only downloads ~60KB before playing the video. I’ve reduces the downloads by 7.5% and one-third request (previous request was 23!)

A Deep Dive into CSS Grid

As the title says A Deep Dive into CSS Grid, I’m not gonna explain the basic of CSS grid rather in this post I’ll try to explore almost all features and properties of CSS grid.

Recap: CSS grid allows us to divide a webpage into rows and columns with simple properties to build complex layouts as well as small user interfaces using CSS only, without any change to the HTML.

Let’s dive in detail..

Property: display
To make an element a grid, set its display property to grid.

.to-be-grid {
display: grid;
}

Doing this makes .to-be-grid a grid container and its children grid items.

Property: grid-template-columns

We can create columns by using the grid-template-columns property. To define columns set this grid-template-columns property to column sizes in the order that you want them in the grid to appear. Let’s have a look:

.grid {
display: grid;
grid-template-columns: 100px 100px 100px;
}

This defines 3 100px width columns. All grid items will be arranged in order, in these columns. And the row height will be equal to the height of the tallest element in row but this also can be changed with grid-template-rows.

Property: grid-template-rows

It is used to define the number & the size of rows in a grid. It is similar in syntax to grid-template-rows.

.grid {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 100px 100px 100px;
}

Only the grid-template-rows property without grid-template-columns would result in column width being same as the width of the widest element in that row.

Property: grid-template

Grid is shorthand for three properties: grid-template-rows, grid-template-columns, and grid-template-areas.

You can use it is like this:

.grid {
grid-template:
“header header header” 80px
“nav article article” 600px
/ 100px 1fr;
}

You define the template areas such as you normally would, place the width of every row on its side then finally place all the column widths after a forward slash. Like before, you’ll place all of it on one line.

Data Type:

The unit “fr” is a newly created unit for CSS Grid Layout. The fr unit helps to create flexible grids without calculating percentages. 1 fr represents one fraction of available space. The available space is divided into total number of fractions defined. So, 3fr 4fr 3fr divides the space into 4+3+4=11 parts and allocates 4, 3 and 4 parts of the available space for the three rows/columns respectively. For example:

.grid {
display: grid;
grid-template-columns: 3fr 4fr 3fr;
}

If you combine fixed units with flexible units, the available space for the fractions is calculated after subtracting the fixed space. Let’s check out another example:

.grid {
display: grid;
grid-template-columns: 3fr 200px 3fr;
}

The width of a single fraction is calculated like: (width of .grid – 200px) / (3 + 3). The space of the gutters, if any would have also been subtracted initially from the width of .grid. This is the difference between frs and %s that percentages don’t include the gutter that you define with grid-gap.

Here 3fr 200px 3fr is essentially equal to 1fr 200px 1fr.

Guess, that’s a lot for today :p  Will continue remaining in part two.

C# join tables using IQueryable in LINQ

Yesterday I was struggling with how to Join tables using IQueryable in C# or Asp.Net and return it in List. So, here I’m with the solution. Let’s start..

With the introduction of LINQ the difference between writing code for  accessing a list of data in an external data source like SQL Server is vanishing. With the introduction of .NET Framework 4.0 this has changed.In this post i would like to filter my SQL data employing 2 tables.

In my project I’ve 2 tables. 1: Containing all the basic user data like Full Name, DOB etc and 2nd containing user’s student id, card number and so on.. I’ve needed a Data like this: Full Name [Roll Number]

So, here’s the code

var query = (from a in DbInstance.User_Account
join s in DbInstance.User_Student on a.Id equals s.Id
where s.Status == 1
select new { a, s } into t1
select new
{
Id = t1.a.Id.ToString(),
Name = string.Concat(t1.a.FullName.ToString(), ” [“, t1.s.RollNumber.ToString(), “]”)
}).ToList();

Happy #programmers day

Happy programmer’s day to every programmer who said:

– I convert coffee into code
– It is working on my machine
– I will fix that later
– It’s not a bug, it’s a feature
– That’s weird
– How is that possible?
– I cannot repair your computer
– I am not a hacker

In case you don’t know about it :p

The Day of the Programmer is an international professional day that is celebrated on the 256th (hexadecimal 100th, or the 28th) day of each year (September 13 during common years and on September 12 in leap years). It is officially recognized in Russia.

The number 256 (28) was chosen because it is the number of distinct values that can be represented with a byte, a value well known to programmers. 256 is also the highest power of two that is less than 365, the number of days in a common year.

To know more, have a look a here.

Happy programmer’s day again. Cheers!

GitHub is now free for all developer teams

YES, THAT’S TRUE!

Popular software collaboration and hosting platform GitHub has made some of its core premium features free for everyone. The Microsoft-owned company said yesterday that an organization can now make private repositories for development without paying any fees.

Image courtesy: Github Blog

Teams that want more advanced features like code owners or enterprise features like SAML support will still have to upgrade to a paid plan, but those now start at $4 per month and user for the Teams plans instead of the previous $9, with the Enterprise plan starting at $21 per month and user.

Apart from private repository access, a team can also get 2,000 GitHub action minutes/month at no cost. Actions is GitHub’s automation tool offering which lets applications orchestrate any workflow based on an event — like sending a notification. So, the free tier offering is ideal for small-scale projects.

Previously on Last February, Github announced unlimited private repositories for all types of users.