"计算机科学并不亚于天文学之于望远镜"

大枣 2024-01-12 13:46:06

计算机科学绝不仅仅是研究计算机的学科,著名的计算机科学家 Dijkstra 有一句名言“计算机科学之于计算机并不甚于天文学之于望远镜。”寓意计算机只是一种工具,但透过“这个镜头”你可以看见更加广袤无边的“科学宇宙”。(感觉对于学习计算机是”鸡肋“但是毕竟是句名言还是要说一下)

纵观人类技术革命的发展,从农耕时代到工业时代再到信息时代,技术力量不断推动人类创造新的世界。每次技术革命,都在以改变一切的力量,在全球范围掀起一场影响人类所有层面的深刻变革。

可以说自上世纪40年代,世界上第一台现代电子计算机“ENIAC”诞生于美国宾夕法尼亚大学后,人类社会所产生的翻天覆地的变化都与它息息相关,而与之相关的专业的申请热度也一直居高不下。

2020年新冠疫情止住了很多人留学的脚步,相对商科和工程类专业,计算机专业的留学生人数仍呈现出增长趋势,目前达到了19%,较去年增长0.9%。(稍微介绍一下历史和目前的发展态势)

重点是如何学习计算机科学这门技术(这是重点,重点,重点,,,,)

计算机专业的课程之间,存在各种逻辑关系,但并非每个人都从最底层开始学习,越是底层越难,越不容易入门,因为底层理论和技术往往是科学家和工程师长期研究出来的。想学好计算机,首先面对的不是它的数学和物理学基础,而是实际操作或者解决问题的程序。(不是说数学和物理知识重要而是说不要一开始就研究计算机数学和物理底层而是把它们当作是了解部分对于绝大多数人99.99%人来说不是重点学习内容)

再有曾经在网上看到,有人选择离散数学作为第二门课程。这样选择不太合理,离散数学难度比较大,容易劝退初学者。对于绝大多数初学者,本来就是学应用技术的,不太可能做计算机科学理论研究,未来工作时使用离散数学的可能性微乎其微。离散数学是计算机理论基础这些理论都是无数个数学家研究的结果,本身就不是入门级,作为入门非常不合适。这些“基础”并不代表基本功、必经之路,而计算机软件专业真正的基础,就是编程。

好那么那些才是学习和锻炼重点呢?

0-1

(谈几点程序员应该具备的技术思维,应该具备的思维很多这里就不在赘述,当然细心,耐心,和毅力是一个程序员的基本素质这些也不再讲解,这里再讲解较为重要的有两项思维,逻辑思维与抽象思维)   

1,逻辑思维:

技术是实现目的的某种手段。而要实现目的,必定要遵循某些规律。逻辑是自此及彼的序列,是表现规律的某种形式。

逻辑关乎的问题是:何以认为是真。无论是人文学科还是理工学科,说话做事都必须符合逻辑律。不合逻辑的话,是难以站住脚,抬到桌面上的。

程序是算法步骤的实现,也是逻辑思维的最典型应用范例。程序里全是逻辑。严谨周密的逻辑思维,是技术思维的基础。

做一个需求,最基本的就是要具备良好的逻辑思维,组合数据库表设计和流程算法来实现,处理好各种必要的细节,并处理各种预期或非预期的错误和异常。在出现非预期情况时,要根据代码和逻辑来推断是哪里出问题了。程序设计开发,需要处理大量的逻辑,并保证逻辑正确。

说起编程这事,说难不难,说简单也不简单。说难,是因为编程需要经常动脑思考和持续学习,需要良好的逻辑感,需要驾驭大量的逻辑,对于那些不爱动脑的人或者缺乏逻辑感的人,基本是发送了劝退券;说简单,是因为程序员面对的是确定的局部的较小的语境和代码,只要在这个小范围内做好推理即可。

所以说程序员通常倾向于以逻辑思维方式分析和解决问题。他们善于分解问题,找出规律,并通过编程语言实现解决方案。然而,并不是过分强调逻辑思维可能导致忽视其他创造性的解决方案。因此,程序员应努力培养创新思维,结合逻辑和想象力,从而在解决问题时能够有更多的选择。

2、抽象思维:

逻辑计算机就是很多就是抽象的现实世界很多场景

逻辑思维解决构造实现的基本问题。但要解决更高层的问题,就需要用到抽象设计思维。

抽象设计思维关乎质量属性,关乎系统整体的一致性和扩展,从统一、分离和扩展的层面来思考问题。譬如:

同一类相似需求,能否抽离共性,建立统一解决方法,或者可复用的部分?

同一类相似但又有差异的需求,能否将共性和差异分离开,只解决差异的部分?

业务需求发生变化时,如何进行扩展?

如何将系统中的大量元素有效地组织起来?

如何统一而优雅地处理应用中出现的大量而繁琐的错误和异常?

如何应对大流量大数据量?

如何从错误和异常中恢复?

如何保证多个系统之间的数据的一致性?

编程需要对问题进行抽象,将其转化为代码和算法。程序员通常擅长于从具体的问题中抽象出模式和规则,并将其应用于不同的情境中。然而,并不是过度的抽象思维可能导致与非技术人员沟通时出现困难。因此,程序员应学会以简洁明了的方式解释技术概念,并注重培养良好的沟通能力。

学习计算机以上两种思维即是基础也是重要的核心思维,因为其非常重要,所以在后面会单独写两项来重点讲解,什么是 逻辑思维 与 抽象思维 ,还会再结合计算机知识来进行讲解。再会

2 阅读:135

大枣

简介:如何快速学习