这样说吧,如果你只是从事普通的工作岗位,对算法要求不高的话,就不必刻意的去学习了。事实上,算法在日常编程中都会用到的,最好懂一些吧。
如果你想从事高端职业,例如AI,游戏,这就需要算法的知识了,而且很重要!
Ⅱ 我是个程序员感觉自己的逻辑思维能力不强,如何提高
多多训练自己,每次训练后自己反思自己哪里还不行,就行我们考试一样~~
Ⅲ 程序员一定要算法能力强吗
算法能力强对于低级点的程序员不是必须但是成为高级的程序员就是必须的了,算法学的好的话,不论对你思考问题的方式还是对你编程的思维都会有很大的好处。算法的学习不只是理论的支持,更需要你不断的在理论的基础上去code,去思考。
Ⅳ 大多数程序员算法很垃圾吗
大多数程序员算法垃圾。根据查询相关信息显示:大多数程序员的算法是根据课本上的老旧的算法,效率低,冲突率大。
Ⅳ 为什么程序员普遍缺乏数据结构和算法的知识
语言只是工具,而算法才是程序的灵魂。这句话,我估计你在编程之路上,已经听到过无数次。但具体到工作里,你是不是还会有下面这样的困惑?数据结构和算法,跟操作系统、计算机网络一样,是脱离实际工作的知识。除了面试,我可能这辈子也用不着。就算不懂这块知识,只要 java API、开发框架用得熟练,我照样可以把代码写得“飞”起来。那今天我就来详细聊一聊,为什么要学习数据结构和算法。
如果你理解他们背后对应的数据结构,那就可以迅速看到这些类背后的本质区别,那个时候,你根本不用死记硬背,自然理解什么样的场景里该选择什么。在西安交大读研究生的时候,一个师兄给了我一本《算法导论》,从此我便一头扎进算法世界,到现在也十多年了。这期间,我研究过数十本数据结构与算法的书籍,并对它们进行了仔细地对比、分析。
Ⅵ 算法不扎实的程序员,每一个都很慌
初学者经常问这样的问题,然而这些其实是错误的问题。
对于初学者而言,你最应该优先考虑的是,哪些东西构成了程序的基础?
最经典的一句话: 程序 = 数据结构 + 算法 。
如果说编程语言是程序的血肉,那么算法就是程序的灵魂。
人不能没有血肉之躯,但是没有灵魂的人依然只是一个死人。
不能单纯依靠算法衡量一个程序员的好坏,但是面试的时候考算法绝对是简单高效的筛选手段。近些年大厂的面试几乎必考算法也是这个原因。每一个算法学的不扎实的程序员,在面试的时候都很慌。
下面这些书籍应该是算法方面最常见的经典书籍。我有幸都读过,有些读完了,有些半途而废,不过基本上也都算是熟悉。顺序上由易到难,从薄到厚,每本书下面我会简单的介绍一番,希望能对你的学习有所帮助。
首先是两本算法入门书籍,也可以当做算法读物:
《啊哈!算法》
用他的自我介绍的来讲:“这不过是一本有趣的算法书而已,和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。”
图文并茂,而且画风有趣,适合新手入门,但是代码是C的,看着比较累,文字也略显冗长。
图是非常棒的,启蒙用,非教科书
《算法图解》
和《啊哈》类似,他的介绍是:“像小说一样有趣的算法入门书。”
书里面讲的很好,python代码也很容易读懂,比之《啊哈!算法》,书中的例子没有那么有趣,但是图很清晰,文字和代码不冗杂。
缺点同样是非教科书,非常浅显,三四个小时就看完了。有一种刚刚热身的感觉。
接下来这几本都是最常见的书了:
《数据结构与算法分析C语言描述》
这本书的作者几乎不浪费笔墨在一些简单的地方。书很薄,但是覆盖面很广很深,作者实在是非常厉害。
不过反过来说,就是有些地方讲的语焉不详……
这本书还有Java语言版本的,但是相比之下C的更好一些。
挺好的一本书。
还有一点是翻译不是很给力,好多人都没坚持看完。
《数据结构与算法Python语言实现》
英文版评分非常高,中文版评分非常低……
据说是也翻译的不好。另外就是本书自身错误也不少……几版过后依然很多没有改过来。
书中数学证明和介绍比较简单。因为采用Python语言的原因,比较易读。
浅显易懂,内容上循序渐进,环环相扣。相比于上一本,我会更推荐一些。厚度也不算厚。
《数据结构与算法 Python语言描述》
北大教授裘宗燕的书,这本书前面写的挺好的,尤其是在面向对象还有ADT等思想的阐述,都很不错。
但是读到后来给我一种虎头蛇尾的感觉,前面气势如虹绪论就写了很长,最后三章感觉有点草草收尾的意思。就像编辑在催稿,而作者很忙的样子……
另外就是这本书的编排顺序我个人也不是特别喜欢。
接下来是两本大部头,都是非常厚的书。
他们最大的特点就是:出现率远大于看完率
《算法导论》
算法书中的权威,MIT的6.046J就是按照这个来讲的。
公认最好的算法书,组织结构合理,内容详尽。引导读者从思维方式上对算法进行领悟。
书中对算法的数学结构进行了详尽的阐述。有非常多的数学证明。
这本书我说不出什么缺点,只能说有些内容是因为我还没到大牛的境界,暂时还无法体会理解。
我个人的观点是:不要纠结于详细的伪代码,不用纠结于连篇累牍的讲解。体会其中算法的精髓就好。
《算法》第四版
如果说,《算法导论》是学术上最好书,那这本应该是实际应用最好的书。
它对数学的要求比《算法导论》低很多,摒弃了算法的证明。
书中具体给出了每位程序员应知应会的50个算法,深入浅出,大量图解。非常棒。
java基础的话你能撸出来Hello World基本上就可以开始看这本书了,这本书最大的不友好之处在于它的第一章非常长,没看过的人又不知道哪里可以跳过。
这本书后面的翻译感觉不如前边了,不知道是换人了还是DDL了……
翻开书就会看到很多的图,配套作者在coursera上面的课程学的话事半功倍!
接下来的几本我看的比较少,简单介绍一下,希望大家自己去发现和了解,不要漏下这些好书:
《编程珠玑》
很薄一本啊,但是我放在那还没看完……
这本书被称为: 历史 上最伟大的计算机科学着作之一
融深邃思想、实战技术与趣味轶事于一炉的奇书。
内容不深,但是不是一个知识点一个知识点的给你讲解算法原理的。
这本书的核心思想是让你了解如何正确选择和高效地实现算法。书中还有一些趣闻轶事,看着倒是很有意思~
有兴趣的同学可以看看~
《算法竞赛入门经典》系列
算法竞赛入门经典书,ACM必备书籍吧算是。书中题目对于竞赛来说比较简单,但是对于一般我们平时工程来说偏难。语言用的是C/C++,请好好做例题好好做作业,读书的时候好好思考和复习~
反正我是没读过,捂脸……
《剑指Offer》
这个书很有意思,对于在校生来说我个人觉得是必看的书。没有任何工作经验的同学在面试的时候真的会被问懵的。这本书可以让你了解如何应付考官日常问题,在解答面试问题的时候,书中很多方法和思路会让考官觉得你思考的很全面,给你加不少分。
我面试的时候也曾快速扫过一遍这本书,让我在回答问题的时候条理更清晰。书中代码是C的,emmm,于是代码部分我就没太看……
《用Python解决数据结构与算法问题》
最后给大家推荐一本在线的 免费 的算法书。
https://facert.gitbooks.io/python-data-structure-cn/
不是大部头,也不是读物,新手入门足够用,书中介绍了大多数日常需要的算法,并且讲的比较浅显~转行的新手基本可以通过这本书来快速掌握常用基本算法了~
反正免费,是否适合自己看两页也就get了~
如果需要PDF版,可以在“程序员必修课”公众号后台回复:“Python算法书”获取。
Ⅶ 程序员,感觉技术停滞了怎么办
你是一名程序员,感觉技术停滞了。那你就去深造呗,就是你可以选择各种的程序任务去做。哦!针对自己有弱点的地方,然后去学习。活到老,学到老。
Ⅷ 我一直在做程序员,但我的逻辑思维能力较差,怎么办
你这种情况,最好还是放弃程序员这个工作,寻找一个新领域吧。工作应该是快乐的,而不只是为了获得收入。
Ⅸ 程序员如何提升算法思维
持续学习,持续开发,是目前主流IT业界程序员的一个生活常规,在现代技术迭代速度非常快的情况下型罩,只有不断保持自我学习和探索才不会与时代脱节。无论是专业的IT从业者还是IT小白,都需要培养自己的算卜兄闹法思维。南邵电脑培训发现拥有良好算法思维后的直接好处有:更高的面试成功机会,和更快的日常问题处理能力。
何为算法思维,并不是对一些已经设计好的优秀代码的反复背诵和背板,而是自己对于问题的抽象能力的练习,即从抽象问题到实际进行编码或者设计程序解决问题的一个能力,如果单纯对于一些算法进行背诵的话,我们的思维能力不会得到提升,最多就是熟练的码农而已。所以,当看到别人设计的优秀算法后,我们一定要探寻算法背后那“曲径通幽”的思维之路。只有经历了思维之路的磨难,才能永远占有一个算法,并有可能举一反三,或者是设计一个巧妙算法。
个人认为,对于提升算法思维的方法,首先我们需要深入思考各种苦恼的问题,例如:
假设我喜欢租车出行,那么对于某一个地方的停车点一般在什么时候有车的机率最大?有车的概率是否与天气,温度等因素有关?
我希望可以在回家之前通过手机APP让家里的空调提前工作起来,但尘饥是我非常Geek,不想使用现成的产品而想自己实现一个,和同学吹牛的时候可以更加脱颖而出?
在明确了这些问题以后我们就可以开始思考如何尝试写一个小的程序来帮助自己解决,这个时候如果手头有一个习惯的语言就非常合适了(比如我个人就喜欢Python,有很多库可以使用,而且入门非常容易),如果没有的话,可以去看看各个语言合适的场景,不过对于爬虫、数据分析相关个人认为更加贴合日常生活的项目来看,还是考虑直接从Python3起步比较好,后期如果想用树莓派做点智能家居相关的项目的话Python也是非常合适的。
对于Python的学习,目前有很多非常成熟的课程,可以覆盖各个不同的能力范围,这里着重推荐Coursera的视频课程,配合本地IPython或者LeetCodePlayground一起调试和练习,可以获得很好的效果。