您需要了解计算机科学才能编写代码吗?

您需要了解计算机科学才能编写代码吗?

我将从一个故事开始,这个故事与我写的关于晚年学习编程的文章并不太相似。 我很害怕学习编码,但是部分原因是因为我不知何故想起来,您需要结合数学和工程学的才能来做到这一点。

我整个学业都在数学上苦苦挣扎,偶尔表现不错,但大多数时候都不了解到底发生了什么(我在看微积分)。 我认为这是学习编写代码的一大障碍,因为扎根于我的文化理解的所有编程知识似乎都清楚地表明,要成为一名开发人员,您需要具备计算机科学专业的才能。 但是我后来了解到事实并非如此,实际上,我将提出相反的观点。

在我对计算机程序设计的业余或过度简化的观点中,我看到了几种不同类型的代码和代码应用程序,它们与技能,兴趣和能力相关。 我认为情况并非总是如此,因为曾经有一段时间计算机科学是数学系的领域。 打卡时代的机器用于解决复杂的数学问题,并且随着计算机科学的发展,其背后的工程原理也得以实现。 但是随之而来的是抽象层。

抽象对于技术进步至关重要 ,部分原因是它使思维共享能够寻求更复杂,更宏大的解决社会问题的方法。 考虑自动驾驶汽车(当今最先进和令人印象深刻的技术之一)。 为了利用机器学习来检测停车标志,将需要构建某些计算机视觉技术。 为了构建这些语言,将需要开发高级编程语言。 对于高级编程,您首先需要低级编程,然后是操作系统,然后是内核,然后是集成电路,等等。

如今,有了编程语言,库和工具,可以使您构建一些强大的问题解决方案,而不必创建或理解基础数学。 在这一点上,我们大多数人都熟悉诸如Wordpress和Wix之类的工具。 任何人都可以创建漂亮的网站,它不再只是HTML程序员的领域。

但是,如果您正在考虑学习编码,请知道有太多的工具和快捷方式,并且不需要了解数学,算法或方程式。 我的第一个代码项目是一个类似Facebook的网站,该网站需要登录名和密码,可以显示无限数量的照片,并允许用户对帖子进行评论。 我无需了解或理解复杂的数学就可以构建它,因此(假设)我不需要了解或理解计算机科学。 我只需要解决一个明显的问题,即使用PHP,Javascript和MySQL的一些类以及使用Google的功能。

从那以后,我建立了许多小项目,而我所要实现的最困难的数学就是一些简单的代数。 您将在初学者到中级水平上编写的大多数函数都只会遍历数组,这意味着您需要做的所有事情都算在内。 考虑以下PHP代码段,它将扫描文件夹中的图像,将每个图像发布到高级对象识别服务(机器学习) ,然后将结果推送到网站:

$trimmedfiles = array();
$result = array();
$files = scandir(‘check’);
foreach($files as $file)
{
switch(ltrim(strstr($file, ‘.’), ‘.’))
{
case “jpg”: case”jpeg”: case”png” : case”gif”:
$pathtofile = “check/”.$file;

$tagbox = json_decode(checkTagbox($pathtofile),true);
$results[] = [“detail”=>array(“tagbox”=>$tagbox,”thumbnail”=>$pathtofile)];
}
}
echo json_encode($results);
function checkTagbox($a) {
if (function_exists(‘curl_file_create’)) { // php 5.5+
$cFile = curl_file_create($a);
} else { //
$cFile = ‘@’ . realpath($a);
}
$body = [‘file’=>$cFile];
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, “ http://localhost:8080/tagbox/check ”);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
curl_close($ch);
return $result;

考虑一下此功能强大的高级功能; 检测图像中的对象,然后将对象的名称返回到其他可以显示,搜索等的系统。您可以基于这样的小项目来构建整个具有AI功能的电子商务站点。 而且我绝不是一个高级(甚至是优秀的)开发人员。 想象一下,您可以使用诸如Machine Box之类的工具以及诸如jQuery之类的库来构建什么,这些库旨在抽象化复杂的代码和数学代码。

如果您在上面的代码块中注意到,则没有数学,甚至没有一个整数。 这是因为类似PHP的语言使在目录中进行X遍历非常容易,其中X = 目录中的文件总数

如果您想进行编码和开发,请不要担心数学而停下来! 您会惊奇地发现,为了构建强大的功能,您实际上只需要知道很少的数学运算。 仍然有大量真正的计算机科学,特别是当您建立机器学习模型或理解区块链时,但是如果您密切关注,您将开始注意到这些技术的普遍*化始于抽象技术。数学。

从来没有比现在更好的时间开始编码了,现在就去做。

From: https://hackernoon.com/do-you-need-to-know-computer-science-to-write-code-dd155c517716