I was recently asked what development in C # differs from in C ++. As a result, the idea was born to explain the meaning of certain IT terms by the example of the potato growing process.
Imagine that you need to plant potatoes. You have many ways to solve this problem.
You can find a person with a tractor who will come and plant you potatoes, as well as a person who will ensure that the person with the tractor sows the potatoes correctly. They will come with their potatoes.
This is outsourcing.
You can find someone who will plant your potatoes on your tractor.
This is outstaffing.
You can find a person who will come to make measurements of the garden, will offer several models of tractors and the optimal mode of operation of the tractor operator. In this case, no one will plant potatoes, but you will know exactly how to do it.
This is R & D, or research work.
You can call a neighbor Kohl, so he planted you potatoes for a bottle of vodka and 2 packs of cigarettes.
This is freelance.
You can call all your relatives, neighbors, friends and plant potatoes together.
This is crowd sourcing.
You can go through friends, neighbors, relatives and tell you that you know best how to plant potatoes, but for this you need finances. You promise that as soon as you pick the potatoes, you will surely feed everyone who helped, first.
This is crowdfunding.
You can take a plow, a few buckets, potatoes, the book Planting Potatoes in 21 Days and plant the potato yourself. But, if you need to plant a different variety of potatoes, then you will need to dig up the garden again. Risk: at night a neighbor can visit and dig up your buried potatoes.
This is a development on Wordpress.
You can take a shovel and plant potatoes in the garden, where there is already fertilizer, dug holes and arrows, in which order to plant the potatoes.
This is a development on .NET / C #.
You first make a shovel from scratch, then a bucket, study the composition of the soil, and then count the number of potatoes by hand. Then you need to dig as many holes as you have potatoes. Next, you need to consistently fill all the holes with potatoes. Skip pits can not be, because you hit by current.
This is C ++ development.
You can come to the chairman of the collective farm and tell him that you know best how to plant potatoes, but this year you will not plant it, but you will do 100% this next year. And it will be really cool, and the harvest will be 10 times greater than the harvest of a neighbor. So now you need money, shovels, a tractor, a tractor driver (preferably two), five diggers and a secretary.
This is a pitching startup to the investor.
Your great-grandfather sowed potatoes, your grandfather sowed potatoes, your father sowed potatoes. And you also continue to plant potatoes.
This is product support (support).
Digging potatoes, you occasionally dig out the one that your father and grandfather planted.
This is legacy code.
At 8:00 in the morning, you and your friend, father, and neighbor are going to the garden to discuss progress on planting potatoes. You tell all those present that yesterday you planted potatoes, today you will also plant potatoes and you have no problems that prevent you from planting potatoes, except for mosquitoes that constantly bite you. But this will not affect the quality and speed of planting potatoes and the next harvest. After that, everyone takes shovels and continues to plant potatoes.
This is a scrum rally.
You planted potatoes. After a while, it began to germinate. And Colorado beetles began to appear in your potatoes. You start to poison them, collect them manually, crush and ignite. Most of them you manage to destroy, but after a while they sometimes appear again.
This is debugging code and bug fixing.
You planted potatoes. Your father came to the garden and said that the potatoes were crooked and you forgot to leave room for beets. So you need to transplant some potatoes. Two days later, when you finish the work, your grandfather comes and says that the depth to which you buried the potatoes is not sufficient, and therefore you need to move the whole potato 5 cm below. And he goes to drink beer with his neighbor Kolya and your father.
This is the team leader (Team Lead), project manager (Project Manager) and refactoring.
You want to earn some money. You go to your neighbor Kolya and say that you want to help him plant potatoes. A neighbor asks you to show the biggest potato you grew last year, and also give the names of other neighbors you already planted potatoes with in the past. The neighbor also asks you why you came to plant potatoes for him, to which you must answer that all your life you dreamed of planting potatoes only in his garden. Then you will be asked to explain the difference between the rake and the garden shears, tell you about the best rakes with which you had to work, and also explain in detail the process of harvesting hay and cleaning the well. And only after the neighbor's mother confirms that she “knows this little thing,” you will be given the most stupid shovel and you will start planting potatoes.
This is an interview with a service company.
You come to neighbor Kohl and collect potatoes in his cellar to plant in your garden. You promise that when your potatoes grow, you will return part of them or help to plant them next year. Of course, you do not do anything, and after a year you go to your neighbor again to take some potatoes from him.
This software is open source (open source).
Your village has a large field where people from the neighborhood throw out their potatoes and sometimes other vegetables. Someone throws out a rotten potato, and someone - a good one. Therefore, you decide not to plant your potatoes, but instead periodically visit the field to collect potatoes there.
This is StackOverflow.com.
Your whole family plants potatoes in the village. And at this time you are walking around the market and telling everyone that you have relatives who can plant potatoes quickly and efficiently, which they can sell dearly in the same market.
This is a sales manager selling his offshore team.
You just want to plant the potatoes alone. But in the garden gathered a hundred strangers to you. They do not help you to plant potatoes, but closely monitor the process. After you dig the potatoes in the hole, everyone quickly begins to write into the notebook the number of holes, rows and how many potatoes are left in the world. Then they exchange their notebooks and run to your neighbor, who also plants potatoes. None of the observers believe you that you just planted potatoes until you have overwritten all the information from other notebooks.
This is a blockchain.
You print 1000 photos with potatoes. You sell each photo to your neighbor for $ 1, telling that planting real potatoes is the last century, and very soon nobody will need this real potato, and everyone will have pictures of potatoes. And since it will be impossible to print new photos in the future, these photos will increase in price. Since everyone has a real potato, and no one has photos, neighbors are happy to buy photos. But for dinner, they still cook the real potatoes. At this time in the neighboring village, other people sell other photos of potatoes and say that only these photos will have value in 10 years.
This is bitcoin.
You have 10 hectares with potatoes. You start digging it up. But you are not interested in the whole potato, but only in the square-shaped potato, green and similar to Mickey Mouse. After you have dug up all the potatoes, pick up ten potatoes that match your criteria and go home.
This is data mining or the search for knowledge in large data arrays.
You live in a village where for 20 years no one planted potatoes. But you are sure that it is somewhere. Therefore, you take a shovel and start digging up everything - gardens, trails, fields, plantations and even lakes. After a while of hard work, you still get lucky and you really dig up potatoes. After a while, the whole village begins to look for potatoes, digging up everything.
This is a mining cryptocurrency (cryptocoin mining).
Potatoes can tell a lot about who raised it. For example, did the owner of her conscientious cultivate it, than fertilize the land, use what tools, did he grow it himself or, maybe, simply stole it from her neighbor, and whether his wife was also beautiful.
Behind the village there is a place where all residents should send samples of their potatoes so that everyone can appreciate their work.
But over time, this place turned into a dump. Someone refused to bear potatoes at all, someone brought rotten potatoes, and someone began to tell that he has potatoes, but he will not show it. Some people set up security and started taking money from everyone who wants to look at the potatoes.
Over time, in order to find a potato of a particular person, you need to sort through mountains of garbage.
This is open data.
You dug a lot of potatoes. The chairman of a collective farm came to you and issued a document where it is written how many potatoes you dug. But in order to read this document, you need to go back to the collective farm chairman, because he is the only one in the village who can read. Other neighbors may see the document, but no one understands what is written there.
This is hashing (hashing, hash function).
You have instructions on how to plant potatoes. It describes how to dig holes, what depth they should be, which side to put the potatoes in the hole.
You start planting potatoes. After each dug potato, your father checks to see if all the instructions are correct. And if at least one instruction is broken, you need to dig up the potatoes, fill the hole and start the process again.
This is test-driven development or TDD.
Your neighbors are digging potatoes. Someone has already brought the excavated potatoes into the cellar, and someone has dug, but has not yet collected, and she lies in the garden. And someone else did not even begin the process, and their potatoes are still in the ground.
Your task is to collect an exact copy of all the potatoes in your cellar, even the one that has not yet been dug. In addition, it is important for you to sign each potato - who raised it, on which particular city it was harvested, and what sort of fruit it was.
In addition, you need to do this in such a way that none of the neighbors know that you have made an exact copy of their potatoes and store it in your cellar.
This is data scraping or data parsing.
You come to the garden, and there r about bots plant potatoes. The optimal size of the potatoes, the depth of the pits and the speed of planting is calculated in real time based on indicators such as wind speed, humidity, temperature, the cost of potatoes on the world market and Kartoshka Inc. shares. on the New York Stock Exchange.
This is artificial intelligence (Artificial Intelligence).
You need to plant potatoes, but no one in your family can do this. So you go to a neighbor and watch him plant potatoes. After a while, they plant potatoes like your neighbor.
This is machine learning.
Source: https://habr.com/ru/post/453006/
All Articles