- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章95%的程序员都用不到的“算法”,是不是没必要死磕?由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
写代码快十年了,没写过一次插入排序,也没有写过一次红黑树,甚至递归也很少涉及到。这是绝大多数程序员的工作现状.
然而,许多人对“算法”却情有独钟,认为它是评判一个程序员技术水平高低的重要标准之一.
有句话叫做:程序员=数据结构+算法。为此许多人痴迷于刷leetcode不能自拔,执意追求算法,却忽略了在工作项目中学习的重要性.
另一部分人则走向另一个极端——算法无用论。公司项目的核心代码都是我写的,几乎都是“评论回复功能”怎么实现,“点赞功能”怎么实现,“充值提现功能”怎么实现,根本不会涉及所谓的算法,花大量精力去刷算法题,根本就是浪费时间.
在面试过程中,“算法”往往扮演着智力题的作用。因为计算机科学知识深度较浅,培养起来不难,大公司在招聘初级开发工程师时,都会用算法知识,来考察面试者的学习能力及潜力,而不是会使用某种技术.
在实际工作中,绝大多数情况下也不会用到算法,更多的是增删改查、API的对接,数据格式的调整。只有在做比较底层、比较尖端和敏感的场景,才可能涉及算法的实现,但这些场景的需求也远远不止算法.
对于软件工程而言,写出易懂、易合作、易维护的代码,显然比写出效率高一点,代码却很复杂要重要许多.
这样看来算法就显得很“鸡肋。”这也是许多写了多年代码的程序员,坚持算法无用论的原因之一.
另外一部分人认为,算法非常之重要.
大公司非常注重基础,编程语言、数据结构与算法、Lnux、操作系统等等。算法也是发掘程序员学习能力和成长潜力的关键手段。此外,算法能力的强弱,也能判断程序员面对新问题时,分析和解决问题的能力.
懂算法和不懂算法的程序员,完全是两个水平,一个天一个地,所以算法非常重要.
其实不论哪种看法,都十分极端。算法究竟有多重要,到底是算法重要还是项目经验重要,在许多人心中都有答案.
这个问题与“学历还是能力重要?”“选择重要还是努力重要”类似。当你偏执地认为A很重要,所以B不重要的时候,就犯了一种逻辑谬误。势必要为此付出代价.
死磕算法,不了解常见的技术方案,就要付出代价.
轻视算法,过于重视项目经验,同样要付出代价.
因为工作中所需要的技能太多太多,沟通能力、管理能力、商业、规划、招聘、架构、工程等等,都会共同决定一个人能达到的高度.
在庞大的职场技能体系中,算法仅仅是其中的一环,缺算法行,缺了算法也不行。把算法替换成上面所述的任何一种能力,结论都是一样的.
原文地址:https://mp.weixin.qq.com/s?__biz=Mzg5MzYwMzEzNQ==&mid=2247492291&idx=1&sn=7adfce825a518dde7bea8d014c3912bf&chksm=c02efe93f7597785ffb23f367d0873475c6d87ea0419eea14f9a8e16336a4ff27f436b508c14&mpshare=1&s 。
最后此篇关于95%的程序员都用不到的“算法”,是不是没必要死磕?的文章就讲到这里了,如果你想了解更多关于95%的程序员都用不到的“算法”,是不是没必要死磕?的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
问题 (1)synchronized的特性? (2)synchronized的实现原理? (3)synchronized是否可重入? (4)synchronized是否是公平锁? (5)s
我是一名优秀的程序员,十分优秀!