开发者社区> 问答> 正文

手撕代码是程序员的基本功吗?

7000积分,体重秤*6

现在众多企业都要求在面试中用“手撕代码”来考验应聘者的代码能力,你觉得手敲代码是否可以体现真实的基础实力?

本期话题:

1、你觉得手撕代码是程序员的基本功吗?
2、为什么会用“手撕代码”来考验程序员能力?
3、你知道哪些常见的手撕代码的题目?

本期奖励:

截止2023年9月15日24时,参与话题讨论的有效回答(6名),将有机会获得智能体重秤*1。
截屏2023-09-07 11.30.15.png

获奖规则:参与话题的首位回答,以及中奖楼层百分比为5%,16%,35%,69%,81%的有效留言用户可获得互动幸运奖。 如:活动结束后,回复为100层,则获奖楼层为100 3%=3,依此类推,即第5、16、35、69、81位回答用户获奖。如遇非整数,则向后取整。如:回复楼层为80层,则80 16%=12.8,则第13楼获奖。

注:楼层需为有效回答(符合互动主题),灌水/复制回答将自动顺延至下一层。话题讨论要求原创,如有参考,一律注明出处,否则视为抄袭不予发奖。获奖名单将于5个工作日内公布,礼品7个工作日内发放,节假日顺延。

本期有效活动时间内共收到228个回答,根据抽奖计算,获奖名单是:
amumu12341、wbsama、游客6nprnbzqpv7f2、空盒子empty、J豆豆儿

首答获奖名单:穿过生命散发芬芳

展开
收起
提个问题 2023-09-07 14:07:10 4562 40
249 条讨论
参与讨论
取消 提交讨论
  • 手撕代码是程序员的基本功吗?

    手撕代码是指手动编写代码,不使用任何现成的框架或库。对于程序员来说,手撕代码确实是必备的技能之一,因为在实际开发中,为了满足特定的性能需求、兼容性问题或者安全性考虑,往往需要手动优化或定制代码。而且,手撕代码也能更好地理解底层原理和编程基础,对于提升编程能力和调试技能非常有帮助。

    为什么会用“手撕代码”来考验程序员能力?

    手撕代码是检验程序员实际能力非常有效的方法。首先,手撕代码能更好地考察程序员的代码编写和调试能力,因为在手撕代码过程中,程序员需要仔细考虑每行代码的细节,包括数据类型、算法逻辑等。其次,手撕代码还能考察程序员的系统设计能力和问题解决能力,因为在解决实际问题时,需要综合考虑算法、数据结构、内存管理等多个方面。最后,手撕代码也能检验程序员的耐心和细心程度,因为要保证代码的正确性和稳定性,必须反复检查和测试。

    常见的手撕代码的题目

    以下是一些常见的手撕代码题目:

    实现常见的数据结构,如栈、队列、链表、二叉树等。
    实现常用的算法,如排序、搜索、图算法等。
    设计并实现一个简单的内存管理器,实现内存的分配和释放。
    编写一个简单的编译器,解析并执行简单的程序。
    实现一个简单的网络通信协议,实现客户端和服务器之间的通信。

    2023-09-15 22:44:34
    赞同 23 展开评论 打赏
  • 你觉得手撕代码是程序员的基本功吗?
    我觉得是的,正如加减乘除一样是数学运算的基本操作。虽然现在AI技术快速发展,都能辅助完成代码的开发,包括在此之前的自动补全等功能帮助我们快速开发,但是这些好比是交通工具能帮助提升开发效率,但手撕代码如同走路是一个程序员理解程序所必备的。
    在C++面试中,常见的手撕代码题目包括以下几类:

    1. 数据结构:涉及链表、树、图等数据结构的操作和算法,比如反转链表、二叉树遍历、图的深度优先搜索等。
    2. 排序和搜索:包括快速排序、归并排序、二分查找等算法的实现。
    3. 字符串处理:涉及字符串的操作和算法,比如字符串反转、字符串匹配、最长公共子串等。
    4. 设计模式问题:要求根据给定的场景,设计并手动实现适当的设计模式,比如单例模式、工厂模式等。
    2023-09-15 16:59:22
    赞同 20 展开评论 打赏
  • 必备能力
    程序员的能力的体现
    冒泡等

    2023-09-15 13:31:23
    赞同 18 展开评论 打赏
  • 手撕代码是最常见的面试类型,经久不衰;“手撕”的环境过于严苛,能最大限度的体现面试者的能力;数组类、BFS、DFS类的题目

    2023-09-15 12:34:56
    赞同 18 展开评论 打赏
  • 1、你觉得手撕代码是程序员的基本功吗?
    代码是程序员的象征,所以必须会手撕
    2、为什么会用“手撕代码”来考验程序员能力?
    要有足够的硬实力才能体现程序员的能力
    3、你知道哪些常见的手撕代码的题目?
    图论、动态规划类的高阶题目

    2023-09-15 12:32:03
    赞同 16 展开评论 打赏
  • 手撕代码必须是基本功,面试常见题目 排序,sql语句等等

    2023-09-15 12:13:55
    赞同 13 展开评论 打赏
  • 手撕是基本功,常见有冒泡排序,递归等等

    2023-09-15 11:57:14
    赞同 10 展开评论 打赏
  • 共建共享

    一、手撕代码是程序员的基本功

    1.手撕代码是程序员思维能力的体现。编写代码不仅仅是机械地敲击键盘,更是一种思考和解决问题的过程。程序员需要深入分析问题,理解需求,设计解决方案,然后将其转化为可执行的代码。这个过程需要程序员具备深入思考和逻辑分析的能力。以一个简单的例子来说明,假设一个程序员需要开发一个简单的待办事项应用程序,用户可以添加、删除和编辑待办事项。在手撕代码的情况下,程序员需要考虑如何创建用户界面、如何处理用户输入、如何存储和检索待办事项等等。这需要程序员运用逻辑思维、用户体验设计和数据管理的知识,而不是简单地依赖于自动生成的工具和库。

    2.手撕代码是程序员的基本工具。尽管有各种强大的集成开发环境和自动化工具可以加速开发过程,但并不是所有情况都适用于这些工具。有时,程序员可能需要编写特定领域的代码,或者需要在性能方面进行优化。手撕代码的灵活性和可控性使程序员能够更好地应对各种复杂情况。例如,在开发一个实时物理模拟引擎时,程序员可能需要手动实现复杂的数学模型和物理计算,这是无法完全依赖于现有工具的。

    3.手撕代码是程序员的核心竞争力。在技术行业,竞争异常激烈,技术不断更新。只有具备扎实的手撕代码能力的程序员才能不断适应新的技术和工具,保持竞争力。相反,那些依赖于工具和框架的程序员可能会在技术的快速发展中掉队。举个例子,假设有两位程序员,一位只擅长使用某个特定框架开发网站,而另一位具备扎实的手撕代码能力,可以根据不同的需求选择合适的工具和技术。当新的技术兴起或者需求变化时,第二位程序员更有可能适应并保持竞争力。

    二、常见的手撕代码的题目

    1.经典的算法题目。如快速排序、二叉树的遍历、最短路径算法等等,常常作为手撕代码的考察对象。这些题目旨在测试程序员对基本算法和数据结构的理解和运用能力。

    2.实际应用题目。这些题目通常模拟了真实世界中的问题,要求程序员设计和实现相应的解决方案。例如,一个常见的题目是实现一个简单的文件系统。这个题目要求程序员设计一个数据结构来管理文件和目录,实现文件的创建、删除、读取和写入等操作。这需要程序员深入思考文件系统的组织结构,如何有效地管理文件和目录,以及如何处理文件的读写请求。

    3.面试题目。面试题目通常旨在测试程序员的解决问题的能力、编程技巧和思维清晰度。一个典型的面试题目是反转链表。这个题目要求程序员编写一个函数,将一个链表反转。程序员需要理解链表的数据结构,然后设计一个算法来反转链表中的节点。这个题目既考察了程序员对链表的理解,也考察了他们对指针操作的熟练程度。

    2023-09-14 13:23:30
    赞同 9 展开评论 打赏
    1. 是的,手撕代码是程序员的基本功之一。它要求程序员能够熟练地理解和编写代码,熟悉编程语言的语法和细节,并能够通过手写代码来解决问题。

    2. 使用“手撕代码”来考验程序员的能力有几个原因。首先,手撕代码能够直接检验程序员对编程语言的掌握程度和理解能力。其次,手撕代码可以展现程序员的逻辑思维和解决问题的能力,因为在没有编译器和编辑器的帮助下,他们需要自己设计和实现算法。最后,手撕代码也可以考察程序员的代码风格和规范性,以及对代码的可读性和可维护性的关注程度。

    3. 常见的手撕代码的题目有很多,如:

    • 翻转字符串
    • 链表相关问题,如反转链表、判断链表是否有环等
    • 数组相关问题,如找出数组中的最大值或最小值、数组元素去重等
    • 树相关问题,如二叉树的遍历、判断二叉树是否对称等
    • 排序算法的实现,如快速排序、归并排序等
      手撕代码的题目可以根据具体情况和面试要求而不同。
    2023-09-14 11:02:03
    赞同 9 展开评论 打赏
    1. 手撕代码是评估程序员基础算法和编码能力的一种方式,是基本功的体现。但不能作为唯一标准。
    2. 手撕代码考察基础数据结构、算法的理解和实现能力,编程语言表达能力。这对程序员很重要。
    3. 但实际工作很少脱离IDE纯手撕代码,更多需要综合能力。不能以手撕代码为唯一评判标准。
    4. 常见的手撕代码题目有:
    • 基础算法:数组排序、链表反转、树遍历等
    • 基础数据结构:栈、队列、哈希表、二叉树等的实现
    • 简单算法:二分查找、递归求阶乘等
    • 简单问题:去重、字符串处理、数组求和等
    1. 手撕代码有一定意义,可以作为对程序员基础能力的检验。但同时还需要考虑团队协作能力、学习能力、实际开发经验等。
    2. 不可将手撕代码能力等同于开发能力,还需要在实际工作中进行全面评估。
    2023-09-14 10:51:05
    赞同 7 展开评论 打赏
  • 1、我认为手撕代码是程序员的基本功

    2、“手撕代码”完全是靠理解记忆了 手撕代码玩的6,IDE肯定不会差

    3、排序、递归、质数等等

    2023-09-14 07:50:45
    赞同 11 展开评论 打赏
  • 1、你觉得手撕代码是程序员的基本功吗?

    2、为什么会用“手撕代码”来考验程序员能力?
    不依靠开发工具,全凭本事

    3、你知道哪些常见的手撕代码的题目?
    冒泡、递归等

    2023-09-14 07:50:51
    赞同 4 展开评论 打赏
  • 1.手撕代码肯定是程序员的基本功

    2.程序员不应依赖IDE,手撕代码能很好的体现程序员的基础是否扎实

    3.手撕JDBC连接字符串等。

    2023-09-14 07:50:45
    赞同 4 展开评论 打赏
  • 追づ风

    我感觉是可以的 真正的程序员是不能过度依靠IDE的~

    2023-09-14 07:50:48
    赞同 4 展开评论 打赏
    1. 我认为手撕代码是程序员的基本功之一,但并不是唯一的基本功。编程能力包括很多方面,如算法设计、数据结构、编码规范、代码阅读能力等。手撕代码能够体现程序员的编码能力和快速解决问题的能力,但并不能完全体现一个程序员的全部能力。
      1. 用“手撕代码”来考验程序员能力的原因有很多。首先,手撕代码能够直接体现程序员的编码能力和快速解决问题的能力,这是程序员最基本的能力之一。其次,手撕代码能够考验程序员的算法设计能力和数据结构知识,这些是编程能力的重要组成部分。此外,手撕代码还能够考验程序员的编码规范和代码阅读能力,这些能力对于团队协作和项目开发非常重要。
      2. 常见的手撕代码题目有很多,例如:二分查找、快速排序、归并排序、冒泡排序、链表反转、二叉树遍历等。这些题目都是编程中常见的问题,能够考验程序员的算法设计能力和数据结构知识。此外,还有一些更加复杂的手撕代码题目,例如:图的遍历、动态规划、贪心算法等,这些题目能够更加全面地考验程序员的编程能力。
    2023-09-13 19:53:58
    赞同 5 展开评论 打赏
  • 手敲代码不是程序员的基本功

    程序员的基本功是对代码的理解度,包含优秀的算法思想,优雅的代码编程习惯,逻辑思维等。
    用“手撕代码”来考验程序员能力的原因如下:

    1. “手撕代码”能考察程序员的数据结构和算法的掌握程度。
    2. “手撕代码”还能考察程序员的逻辑思维能力、编程能力和学习能力。
    3. “手撕代码”也能快速检验出应聘者的编程基本功。

    “手撕代码”的意思是程序员在没有IDE的情况下写出基本的代码,是国外叫做白板编程的体现。
    以下是一些常见的手撕代码题目:

    • 给定一个整数数组nums,编写一个函数将其排序后返回。要求代码不能使用任何内置的排序函数或模块,并且要保证算法的时间复杂度为O(nlogn)。
    • 给定两个字符串str1和str2,编写一个函数来判断str1是否包含str2。要求代码不能使用任何内置的字符串查找函数或模块,并且要保证算法的时间复杂度为O(n)。
    • 给定一个数组nums,编写一个函数将其中的重复元素去除,要求去重后的数组长度小于或等于给定数组长度。要求代码不能使用任何内置的数据结构或模块,并且要保证算法的时间复杂度为O(n)。
    2023-09-13 18:00:22
    赞同 5 展开评论 打赏
  • 在前辈们的编码时代,不会像我们现在这样有这个强大的编译器、开发工具。那些用记事本写代码的,真的是在手撕

    2023-09-13 14:13:41
    赞同 4 展开评论 打赏
  • 1.个人觉得手撕代码是程序员的基本功之一,但也觉得并不是绝对。现在的开发者工具都有很强大的提示功能,让开发事半功倍
    2.觉得往往更考验的是程序员的理解能力

    2023-09-13 14:12:16
    赞同 4 展开评论 打赏
  • 1.手撕代码是程序员的基本功的体现,只能算作是基本功之一。
    死记硬背的代码记忆时间不会长,只有通过自己的理解之后才会记忆长久。
    2.对于手撕代码来考验程序员的能力,我觉得考验的更是逻辑、理解能力。
    3.对于java来说,常见有一些冒泡算法、单例模式等等

    2023-09-13 13:32:46
    赞同 4 展开评论 打赏
  • "手撕代码"是一种常见的面试环节,用于考验程序员的编码能力和解决问题的能力。以下是一些原因:

    1. 考察基础知识:手撕代码可以考察程序员对编程语言、数据结构和算法等基础知识的掌握程度。通过编写代码,面试官可以了解程序员是否熟悉常见的编程概念和语法。

    2. 解决问题的能力:手撕代码要求程序员在有限的时间内思考和解决问题。这可以考察程序员的问题分析和解决能力,以及对复杂问题的处理能力。

    3. 代码质量和可读性:手撕代码要求程序员编写结构良好、可读性高的代码。这可以考察程序员的代码风格、命名规范和注释习惯等,以及对代码可维护性的重视程度。

    4. 思维过程和沟通能力:手撕代码过程中,面试官通常会和程序员进行交流,了解他们的思维过程和解题思路。这可以考察程序员的沟通能力、逻辑思维和解释能力。

    5. 实际应用能力:手撕代码通常会涉及实际的编程问题,与面试者在工作中可能遇到的场景相似。通过手撕代码,面试官可以评估程序员在实际应用中的能力和经验。

    虽然手撕代码是一种常见的面试环节,但它并不能全面评估一个程序员的能力。其他方面,如项目经验、团队合作能力和软技能等也是评估一个程序员综合能力的重要因素。

    2023-09-13 13:00:23
    赞同 2 展开评论 打赏
滑动查看更多
问答分类:
问答地址:

话题讨论榜

  • 1
    AI客服未来会完全代替人工吗?
    奖品池:4000积分,折叠桌*5
    76

    AI客服因其高效、低成本和全天候服务的特点,在许多行业中得到了广泛应用。然而,关于AI客服是否会完全取代传统人工客服,这个问题的答案并不那么简单。以下是几个需要考虑的因素: 技术层面 自然语言理解和生成能力:尽管AI客服在处理简单咨询和常见问题方面已经相当成熟,但对于复杂、模糊或多意图的对话,AI可能仍存在理解上的困难。随着自然语言处理技术的进步,这一差距有望逐渐缩小。 情绪感知与同理心:目...

  • 2
    AI宠物更适合当代年轻人的陪伴需求吗?
    奖品池:4000积分,音箱闹钟*3
    67

    AI宠物作为一种新兴的陪伴方式,确实为当代年轻人提供了一种新的选择,尤其适合那些面临工作压力大、社交时间有限的年轻人。以下是AI宠物适应这种陪伴需求的几个理由: 1. 无需实际喂养 低维护成本:AI宠物不需要食物、水、清洁和医疗护理,减少了物质和经济上的负担。 灵活的时间安排:年轻人可以随时与AI宠物互动,而不必担心固定的喂食或遛宠时间。 2. 24小时在线互动 随时陪伴:AI宠物可以全天候...

  • 3
    FFA 2024 大会门票免费送!AI时代下大数据技术未来路在何方?
    奖品池:4000积分,咖啡杯*5,FFA大会电子票*25
    60

    在AI时代,大数据技术的未来肯定是越来越智能,越来越快。Apache Flink作为一个强大的流处理框架,我觉得它未来的发展趋势应该是更高效、更易用。 我期待它能更好地和AI技术结合,让数据处理不仅快速,还能智能预测和分析。这样,无论是企业还是开发者,都能用Flink轻松处理海量数据,快速得到有价值的洞察。 简单来说,就是希望Flink能成为AI时代数据处理的超级英雄,让大数据发挥出更大的价值。

  • 4
    AI助力,短剧迎来创新热潮?
    奖品池:4000积分,保温杯*3
    74

    🎁嘿,大家好!👋 ,今天跟大家聊聊AI技术如何助力短剧领域的创新发展。随着AI技术的飞速发展,短剧创作迎来了前所未有的变革。这不仅仅是技术的进步,更是创意和效率的双重提升。🚀 AI助力短剧领域的创新 智能编剧辅助 创意生成:AI可以基于大数据分析,生成多种剧情梗概和创意点子。这对于编剧来说,就像是一个无穷无尽的创意宝库,可以激发更多的灵感。💡 剧本优化:AI还可以帮助编剧优化剧本,检...

  • 5
    “云+AI”能够孵化出多少可能?
    奖品池:4000积分,小怪兽靠垫*4
    63

    1. 云计算的未来发展方向 云计算作为信息技术的重要组成部分,正处在快速发展的阶段。未来,云计算可能会朝以下几个方向进化: 更加广泛的普及和深入的应用:随着技术的成熟和成本的降低,云计算将进一步渗透到各行各业,包括但不限于医疗健康、教育、交通物流等领域,实现更深层次的数字化转型。 边缘计算的增长:为了减少延迟并提高效率,越来越多的数据处理将在靠近数据源的地方进行,即边缘计算。这将有助于实现实...

  • 相关电子书

    更多
    低代码开发师(初级)实战教程 立即下载
    冬季实战营第三期:MySQL数据库进阶实战 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载