就 计算机 而言,为什么大多数情况下非科班生 比不上 科班生

本文探讨了在计算机科学领域,科班生与非科班生在学习和解决问题上的差异,通过一个位运算算法题为例,展示了科班生如何运用位运算、数电优化和数值计算进行深入分析和优化。文章强调,虽然非科班生可能在某些方面表现出色,但科班生往往能构建更深层次的知识网络。
摘要由CSDN通过智能技术生成

本文无意引战,只是陈述自己在学习 CS 过程中的感受。

声明如下

  1. 本文观点通过对大多数情况的不完全归纳得到,CS 吊车尾和非 CS 怪物的存在并未纳入考虑范围。此外,非科班生和科班生的选取遵守对照原则和单一变量原则——在本文中具体体现为专业排名相近、智力相近、性别相同、性格相近等,评价指标为算法理解能力、工程代码能力。

  2. 本文观点并不是建立在严谨的实验或推理上得到的,并不具备可信度,权当玩笑话。

  3. 本文所讨论的 CS 科班生为系统学习了 CS 核心课程的人、并不局限于计算机专业

  4. 图源来自网络,如果有侵犯您的权益,请联系作者以删除。


欢迎来到正文部分

随着对 CS 了解的加深,我愈发有这样一种感觉——计算机的学生学的真的是计算机,所有的课程、分支都是
在教你用得好(如软件工程)、用的新(如人工智能、图形学)、用的妙(如计组、算法)。这让我有些担心——计算机鲜明、
强烈的工具导向是否会逐渐磨灭我们那种 wow 的感觉和提问的乐趣呢?有失必有得,回报就是对计算机的理解的加深。

Matt Might 在 What every computer science major should know 中谈到如何学体系结构时,认为 Computer scientists should understand a computer from the transistors up.

在我刚入学的时候也常常听人说起:计算机学生大四毕业的时候所有学过的课程都会在脑海里串成一张相互联系的网络。
这种网络,是 CS 学生用自己的时间堆出来的,也是科班生与非科班生一个重大差异

下面本文就一道简单的算法题为例具体谈谈这种让人“舒服”的联系

这是 LeetCode 上的一道中等难度的位运算题

题目链接在这里:大家之后可以去刷一下
只出现一次的数字 II

题目简介

给你一个整数数组 nums ,除某个元素仅出现一次外,其余每个元素都恰出现三次 。请你找出并返回那个只出现了一次的元素。

示例:
输入:nums = [2,2,3,2]
输出:3

暴力算法

首先,能得到正确结果的算法 >> 优美但只能看的算法
循着这种思想,我们通常会写一个暴力算法理清思路

int singleNumber(vector<int>& nums) {
   
    unordered_map<int, int> numTimes;
    ...
    for (int num : nums) {
   
        ++numTimes[num]</
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
计算机科班通常需要学习以下四个核心领域,也被称为"四大件": 1. 计算机组成原理(Computer Architecture):学习计算机硬件的基本组成和工作原理,包括中央处理器(CPU)、存储器、输入输出设备等。了解计算机内部的运行机制,包括指令执行、存储器层次结构、总线和I/O管理等。 2. 操作系统(Operating System):学习操作系统的概念、功能和原理。掌握操作系统的管理和调度进程、内存管理、文件系统、设备管理等基本知识。了解操作系统如何提供对硬件资源的抽象和管理,以及如何协调多个应用程序的执行。 3. 数据结构与算法(Data Structures and Algorithms):学习各种基本的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、图算法等)。掌握数据结构和算法的设计思想和实现方法,培养解决问题的能力和编程技巧。 4. 数据库系统(Database Systems):学习数据库的基本概念、结构和操作。了解关系型数据库和非关系型数据库的特点和应用场景。掌握SQL语言的基本使用和数据库设计、优化的基本原则,以及数据库管理系统的原理和技术。 除了这些核心领域,计算机科班还会学习其他重要的课程,如编程语言、网络通信、软件工程、人工智能等,根据个人兴趣和专业方向的不同,还可以选择深入研究相关的领域。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值