作为计算机专业学生,最应该学习的课程前五位是什么?【知乎】

2023-11-11

http://www.zhihu.com/question/19628851#answer-100293


对于目前排在首位的兵哥哥的答案,不敢苟同。

本人软件工程专业。

关于计算机专业和软件工程专业,实际上还是大相径庭的,远不是别人所说的软硬件的偏重问题。计算机专业本科应该不需要读人月这类的东西吧,然而出门就业又是相通的,这是大环境我们就暂且不表。

回到主题说书/课程。

课程其实说实在的,如果不是顶尖的如同兵哥哥的高校,老师教授对你的指导只能是方向性的,大方向。小的角度还需要自己去花费大量的时间去琢磨。这里我有针对性的来说吧,每个学校的培养计划不会一样,如果是课余自学的话,以下的参考一定对你有用。一定。以下按照重要性排列。

1. 计算机底层
这实际上就是兵哥哥说的《计算机组成原理》,我推荐的书是 《深入理解计算机系统》,1000%的会比你的课本给你更多的东西。不管是写程序做软件还是搞科研发论文,不对底层有一个清晰的认识,你的整个前进道路都是模糊不清的。而只对体系结构的了解是远远不够的,深挖才是归途,为什么现在很多解析内存CPU技术的博文博客火呢?因为大家都忽略啊!又因为大家都知道这是多么有用啊!不做底层的分析,你怎么去精准的定位问题呢?怎么去写出切合真实计算逻辑的简单而又高效的优秀代码呢?别闹了。我同意一个观点——读优秀的代码,从OS开始。读这些就是你学习认知底层的过程,就是在站在巨人肩膀上远眺的历程。

2. 数学
过硬的数学功底使得你能看到一些新技术的出现而不茫然,看到的旧的技术能快速的跟进上手。这就是所谓“知识”和“技能”的关系,将工具运用到纯熟的地步,你会发现别人遇到的很多问题在你这里都不是问题了,看起论文来也得心应手啦,这就是潜移默化和下意识的作用。

3. C/C++
排在第三位是因为我觉得不是极其重要了。当然,C语言是基本功我就不在赘述。
一门语言对你的作用是认识到计算机的“思考方式”与人类的不同,想要更加精确简单( KISS原则)的实现自己的想法,就要按照这个逻辑思路去执行。而选择C语言是因为它是成熟的,是最为值得探究的语言,也是你今后可能进入 Unix,Linux,嵌入式,甚至于IOS方向的基石。

4. 算法设计
依托数学的知识,在算法上的成绩应该不会太次。 《算法导论》是要看的没错。如果时间少的话, 《编程珠玑》《编程之美》《APUE》,这些书是要接触的。

5. 英语/(日语)
不得不承认美帝和倭寇就是比我们先进。
学习英语的好处不言而喻,打破这层壁垒就会让你感受到真正的世界的样子,去那些纯英文的编程网站,BBS,讨论组,个人博客,增长见识的同时是你在逐步的认清这个世界,知道外面的人在做什么在想什么,现如今的潮流是什么(为什么不提媒体我觉得你应该懂得),更进一步你未来的发展方向是什么,是否和大环境有冲突,这是你这一生究竟能达到多大成就的一个很重要的潜在因素,也是为你今后走出校园做一些非常必要的知识储备和心理预备役。
日语的问题,是在英语之后的一个可选项,IT方面的日企非常多,待遇也非常好,我们怀抱着“师夷长技”的心态去学习就好了。

题外话------------------------------

同在长沙,我不黑科大的同学啊,可实际上的情况是:科大内部,自己的本科生多数都会变成军官而较少的参与到实际的操作中去,如果兵哥是这其中的异类那算我抱歉了;科大的研究僧,外来的基本上也是理论派,实践能力不敢苟同,内部的同本科生。这样的情况导致了一个现象是:每年在科大的项目异常之多,但是能做的人又异常之少,很多都只能外包给“比邻而居”的另外两所985高校的学生,我有几个学弟就在同科大合作项目,前两年吧,还有个总装备部的项目——军用直升飞机的模拟训练系统(这尼玛听着就不像是学生能做的东西吧),经费印象中是8位数,是顶级了。越是去做项目,越会发现基础的重要性,越是需要在每一个必要的档口回到校园时代那种求知若渴的状态去阅读那些众人早已不屑的基础。

不匿,求批。
编辑于 2013-12-27  8 条评论  感谢  分享  收藏    没有帮助   
举报
 
计算机专业概念有点大。我本人毕业于国防科技大学计算机科学与技术专业,个人觉得就计算机科学与技术(CS)专业而言,以下这些是必修的:

1、 计算机组成原理(包括先修课程“数字逻辑与数字系统”,简称“数电”):这是一门硬件基础课,学完后你能清楚的知道如何从用最简单的数字元件,像搭积木一样构成整个计算机系统,那就算及格了。  一门名为计算机体系结构是本课程的扩充包,对于了解近代计算机结构体系当然是必要的,但由于这里讨论的是Top 5,因此我认为计算机组成原理更为基础。
2014-07-15:在评论里有人让我推荐书目,我个人比较喜欢这本 Computer Systems - A Programer's Perspective (2rd Edition)。中文译本是《深入理解计算机系统》。在之前写的,本文最后的补充阅读中我也提过这本书。

2、 线性代数,概率论和离散数学:要知道,凡是能称之为“科学”的专业,就必须有一定的数学功底,否则难以称作“科学”。这三门课我觉得是本科时期最重要的三门数学课,比高等数学重要。如果你想在计算机科学的道路上走远点,那这三门可是必修的。

3、MIT开设的 《Introduction To algorithm》,中文版叫《算法导论》:我觉得应该学习它而不是国内习惯开设的《数据结构》。数据结构仅仅是算法的一部分,国内的数据结构课程回避了很多本质的东西,仅仅是对一些常见的数据结构的罗列,学起来总有些不痛不痒的感觉。《Introduction To algorithm》虽然有些章节夹杂着很多很让人讨厌的“数学”,但却能从本质上带你领略这门十分必要而且有趣儿的课。

4、 操作系统与编译原理:操作系统可以说是《算法导论》的实验课,最好能在学习期间自己实现一个小型的操作系统,或者操作系统各分系统的Demo。编译原理可能是普遍本科生觉得难的一门课,但是作为CS本科生或者未来的软件科学家,这是基础中的基础,学完之后所有的语言在你看来应该没有太大的区别,这门课应该是离散数学+算法导论的实验课。最好能在学习期间自己实现一个小型的编译器,语言最好能自创,或者是某个已有的你喜欢的语言的基本子集。

5、 掌握一门常用的编程语言和编程技术:能了解你用过的所有的程序内部大致是怎样的,能用你熟悉的语言编写大部分的程序,至少不能是对任何一个程序满头雾水。

以上这些不难做到,我觉得是基础中的基础,我固执地以为,不能掌握他们就不应该获得CS学士学位。 

补充阅读:

在评论中有位朋友这么说道:

一看就是典型科班好学生。人生很短,学自己要用到的就好。多花时间在2、3、5是对的,甚至任选其二就能让你受益良多、乐在其中。 1和4所起到的作用,比起它们的意义,更多的是让一部分学生从一开始就对计算机产生失望和绝望,是抹杀学生本来的兴趣的凶手。回到问题本身,既然是“应该学习”,1、4不该放在里面,即使不学它们,我想在计算机专业的大多数领域是做得下去的。

我想对此做个回应:
首先,我自认为不是典型的中国式的“典型科班好学生”。这里列出的Top 5不是为了成为“典型科班好学生”,因为光学好这5门绝不够“好”;更不是为了“在计算机领域做得下去”,我相信在某个计算机领域,比如作为Microsoft Office的金牌培训讲师,只要精通Office就能干得很棒。
这里列出的Top 5是作为一个计算机科学与技术专业毕业生该有的知识储备,是这个专业的根基。如果你对这个专业真正有兴趣,并且热爱它,那我认为学习这里列出的Top 5会是个不错的选择。

当然,对于一个计算机世界的从业人员,学好它们也会收益良多。比如对于程序员来说, 操作系统与编译原理这门课能够让你对你的程序如何在计算机里出生,运行,死亡有个好的认识,在我的编程经验中,我觉得这种认识让我收益良多。很多朋友也许知道有一本经典的书籍叫“Computer Systems:A Programer's Perspective”,里面的基础就是来源于 操作系统与编译原理
还是那句话,如果你喜欢CS,这5门课是必须的,要是在这5门课上感到失望或者绝望,我想你该考虑换个专业了。
编辑于 2015-04-26  80 条评论               
直接学编程。
然后,在实际运用中慢慢补充各种知识。
“学习”没有“应不应该”之分,
让兴趣当自己的导师 ~

比如,
当他发现他自己写的排序怎么这么慢的时候,他自然会去学“数据结构和算法”;
当他想做一个自动抓取网页信息的robot的时候,他自然会去学“计算机网络”里数据包里有些什么;
当他对谷歌街景里的方向识别技术感到神奇的时候,他自然会去学“计算机图形学”和“线性代数”;
当他真的想知道CPU是怎么工作的,他自然回去学“计算机组成原理”;
。。。

如果用不到,没必要折磨自己。
在你感兴趣的方面,按我说的这样学习,我不信你成不了牛人。
同意的顶!
编辑于 2012-06-16  13 条评论               

覃超曾经沧海难为水,Facebook工程师

1. 数学课 (概率,统计,微积分等等)
2. 语言课(java,c++)
3. 数据结构和算法
4. 计算机网络
5. 操作系统和编译原理

其实只要算法和数学牛,可以吃遍硅谷大多数的IT公司。
发布于 2011-05-30  2 条评论               
上面的回答都太理论,EE/BME背景的非计算机专业的小生认为实践乃是第一必修课,参考 http://www.udacity.com/ 和  https://www.coursera.org/ 的现有网上课程(包括很多计算机相关的基础课、中级乃至高级课程),推荐毕业后不以科学研究(读博士,当教授)为目的的计算机前5门课程分别为:

1.计算机基础(推荐 https://www.coursera.org/course/cs101 )每周1天,大概6周就够了,了解下计算机基本原理,懂点简单的编程,并具体实践操作,从实践中体验计算机的魅力。

2.简单具体的编程实践(项目)课(推荐 http://www.udacity.com/overview/Course/cs101/ 建个搜索引擎),每周1天,大概7周就够了。学计算机专业的人不懂搜索那简直就是个大笑话,计算机专业有那么酷应用,活生生的摆在现实生活中,自己若能独立或几个人合作做个小项目,比如建个学校bbs上面可以用的小小搜索引擎,那比读一堆似懂非懂的理论然后n年后再来实践有效多了。

3.数据结构或算法导论(乃至概率统计、线性代数、离散数学),有了之前2门课程基础,再学数据结构和算法相关的,就没那么抽象了,边学边实践,继续以项目实践为方法,从数学理论的角度比较系统的学习相关的经典理论,站在理论的高度上去理解计算机科学,并加于实践、深入。(暂时没有学过的好的网上课程,不过估计这门课会不错 https://www.coursera.org/course/algo )学这门课程同时结合c、java或c++等语言来做项目,理论联系实践,只要功夫身,估计就可以毕业,并找到不错的工作了。

4.计算机网络或操作系统。信息时代,互联网、移动互联网时代,学计算机的不懂操作系统,不懂网络之间的通讯、协议,那会被别人笑话的,以实践为第一方法,通过项目实践来学习。(找不到合适的网上课程,推荐稍微有点点相关的实践课  http://www.udacity.com/overview/Course/cs253/ )

5.机器学习、人工智能。推荐 https://www.coursera.org/course/ml 这机器学习课程是我学过的最牛逼相对通俗易懂,通过实践能收获很大的网上课程。另外推荐 http://www.udacity.com/overview/Course/cs373 跟世界上最牛逼的人工智能专家之一学点机器人应用估计再也不会觉得学计算机没用了,好好学正常前途无量,不管是在工业界还是学术界混。这应该算中高级课程了,能体现计算机与非计算机专业实力区别的好地方,继续强调实践动手(编程)能力,通过实践深入理解并掌握相关的理论知识。

最后多废话点,推荐1门以读博为目的高级课程,课程水平应该是属于研究生阶段的,但学好前面4门课程并掌握好本科概率统计基础课程的也可以开始学了,课程非常难、非常棒、也非常有用:
6.Probabilistic Graphical Models( https://www.coursera.org/course/pgm )。学了这门科,不管你是做图像分割、语言识别、还是搞生物信息学的,都大大有益。当然,这门课程绝对不是浮躁的人能学得来的,课程作业保证你累死累活的,不过若能努力坚持并完成里面的编程、测试作业,那成就感不用说,学完后,你的计算机科学水平估计超过国内99%以上的学生,甚至超过许多国内计算机系的教授水平。走工业界的话,在大数据(海量数据)分析时代,你应该很容易、有很多机会大展身手。
发布于 2012-05-08  10 条评论               

叶启威Hacker, Focus on problem

1.  Concrete Mathematics 具体数学,绝对是计算机科学的数学基础“之一”,国内的计算机科学跟不上国外的一大原因,我始终认为是数学上的差距。
2.  Introduction to Algorithms 算法导论,所有的程序都需要算法作为基础,所以算法是不得不学的。
3.  Introduction to Computer Science and Programming 整体的介绍了计算机,同时也让学生了解CS能干嘛,自己该干嘛。
4.  Operating System Engineering 操作系统的重要性不言而喻,同时也介绍了编译器。
5.  Network 网络编程,中国 大学的本科生们有多少能熟练于网络编程。当今又有多少程序不需要考虑到网络。

just my opinion

其实还有很多需要计算机科学学生了解的~如 @苏衡 所说的写作,交流。
发布于 2011-05-18  6 条评论               

pansz欢迎评论

1。英语
业界所有从基础到前沿的文档,全是英语,英语不合格的人,或者不能流畅阅读英文技术文档的人根本不适合在该专业学习。所以我把它表明为 No. 1

2。编译原理与操作系统。
上面两个是你在实际工作中基本没多少机会去学,但是又非常有用的基础知识。另外,把编译原理学通要求你至少精通一种语言,因此我就不再单独列出需要学习什么编程语言了。
3。逻辑与数学建模。
如果有这样的课的话,应学,这本是国人比较缺乏的东西,但是作为程序员来说,又是必须要有的东西,用计算机的思想去思考现实中的事物与流程。
4。测试与用户交互。
如果有这样的课的话,应学,现实中,对很多产品,测试员成为最了解这个产品的人,他也最了解这个产品在用户手中看起来是什么样子,用起来是什么样子。也最能够理解下一款产品我们可能需要什么功能。不需要什么功能。


由于多了三个“与”字,我已经超五个了,就不说了。

编辑于 2011-12-28  3 条评论               
本人现在是计算机专业大三的学生。结合自己学院课程的设置和个人的理解,想谈谈自己的看法,括号中是本校相关课程的教材和开设时间,毕竟学院这么多年教学,是有它开课的道理的。这里感谢张小兵同学的精彩答案。


1. 数学类的课程: 离散数学(《离散数学教程》,北大出版社)
其实个人觉得图论是最有用的部分,无论是算法设计还是工程应用,而群论,组合学,数理逻辑部分却始终不知道具体如何应用,还得继续学习。至于线性代数和概率统计,同样重要,特别是线性代数体现了很多计算机的思维方式,不过相比于图论,个人觉得离散数学更重要。当然先修课程高等数学是必不可少的,甚至我觉得概率统计应该在高数学完后立刻学,不该拖到大三。
(高等数学:大一上下;线性代数:大一上;离散数学:大二上下,大三上;概率统计:大三上)


2. 硬件类课程: 计算机体系结构(《计算机组成与设计》,David Patterson;John Hennessy著,机械工业出版社)
这门课是理解计算机内部的构造,指令体系的设计(基本是都是学MIPS的),流水线以及硬软件借口,学完该课程应该能自己模拟一个CPU或者Cache,其中的成就感是无法描述的。这门课在UC Berkeley是大一学的,从理解课程的角度,大一学生完全没有问题的,前提是改变学习的方式。
重点无疑是理解,上课时老师讲的一个例子是,我们统计数据的时候,平均数大多用算术平均数,在他博士时有一次发现算术平均数不对,需要用几何平均数才符合计算结果。虽然几何平均数我们初中就学会了,但是当时除了做不等式,我们基本从来没想过它有什么用,那次实验让他真正理解了几何平均数,也值得我们反思国内的教学。
事实上,目前从我们学院看来先修课程有数字逻辑设计和微机原理,其实内容很多重复,包括DRAM,SRAM讲了三遍等等。
(数字逻辑设计:大二上;数字逻辑设计实验:大二下;微机原理,微机实验:大二下;计算机体系结构:大三上)


3. 软件类课程: 数据结构与算法(《数据结构与算法》,高等教育出版社)
事实上,如果大一开始学习的是C++语言的话,要想真正理解面向对象的部分,包括STL,容器等等,需要学习数据结构与算法。算法的学习确实很重要,也很有趣,但是对于大多数将来在企业工作的普通人来说,对于算法的追求绝不是ACM大赛上那种情形,更多的是基本知识,基本算法的掌握和应用。而学好了数据结构与算法这门基础课,对你理解C++大有裨益,最大化地发挥了C++的特点。这里补充一点,这门课和图论同时学习效果会更好。其实学好了C++之后对于其它语言的学习也会很有帮助。
(计算概论:大一上;程序设计实习:大一下;数据结构与算法:大二上;数据结构与算法实习,大二上;算法设计与方法:大二下)
PS:我们算法设计与方法课用的教材是:《算法导论》(应该是MIT那本教材),同时正好也是室友和他导师翻译的最新一版,推荐阅读。


4. 编译原理(《编译原理》,北大出版社;推荐使用:龙书,虎书)
编译原理看上去很枯燥难懂,特别是对词法,语法的分析等。虽然将来只有一少部分人会从事这方面工作,但是对于你理解各种编程语言会获益匪浅,训练的是基本的素质和能力,一般学完这课之后,能够自己实现编译器,比如我们专业编译实习课做的是一个基于Android平台的mini java编译器。
(编译原理:大二下;编译实习:大三上)


5. 操作系统(《现代操作系统》,Andrew S. Tanenbaum著,机械工业出版社)
实话说,我在上课的时候,更多的是觉得这课有点像一门科普课,但是每次的实习作业却和上课完全不同,需要自己去查API,寻找算法,一般是Windows和Linux两个平台作业。个人觉得作为一个学习计算机的人,对操作系统的理解是必须的,将来的用处也会很多。个人最大的感受就是学会查找API,并且使用,完成大量的数据处理,这和之后一系列的开发都很有关,同时增加对Linux的熟悉。学完该课应该能自己实现一个小型操作系统,比如我们专业操作系统实习要求做的是一个小型Windows。
(操作系统原理:大三上;操作系统实习:大三下)


当然,除了这些,最好还能掌握JAVA语言,其实作为一种入门语言,我一直觉得可能JAVA比起C++更有优势,毕竟漂亮的图形界面比起黑框显然更能引人入胜,当然有了C++的基础,学习JAVA相对是会轻松的,JAVA学习前期不推荐使用IDE。至于其他的语言,国外那套经典的动物书是最好的选择了,自学应该没有问题,可以考虑一下LISP这门函数语言。除此以外,像网络,汇编,数据库类的课程都是根据个人的兴趣爱好而定了,并非基础课程。
(JAVA,大二下,推荐书籍:疯狂JAVA讲义,虽然名字很俗,但是确实900页的书说的非常详细,深入浅出,很到位;程序设计技术与方法,大三上,计算机程序的构造和解释,俗称SICP)


总之,计算机专业的学习还是需要一个循序渐进的过程,追求系统的学习,对某些知识一定要理解深,挖得透,用我们体系结构老师的话,你要做一个沉在水底的人,而不是浮在水面上。你用一个月学习的东西,也许只够你用一个月,你用三个月学习的东西,可能够你用一年,但是你用十年学习的东西,一定够你用一辈子。
编辑于 2012-01-06  13 条评论               
0.学会使用搜索引擎的正确姿势
1.眼保健操
2.护颈操
3.怎样才能减少熬夜
4. 怎么找女朋友
编辑于 2015-04-28  2 条评论               

饿得扶墙走现在种树也不晚

英语,汇编,c,Linux,任意一种脚本语言。

英语不多说了,国内想获取点信息,你会发现链接很多但翻来覆去都是那一篇,而英文资料众多。特别推荐stackoverflow,上面提问的响应速度简直让我惊呆了,而且人普遍nice。


推荐汇编并不是要求汇编写的多好没事就抓起一段代码优化,而是快速了解计算机体系结构和组成原理。是的,快速了解,我觉得大学体系结构和组成原理明显是架在云彩上的课程,很少有机会实践,而汇编是实践的绝佳途径。学明白汇编,好多问题就想明白了,最有名的例子就是c里的指针。


c语言是高级语言里最基础的,一切都是遵照计算机的本质来实现语句。解释一下,比如好多人抱怨,为什么c在使用数组之前必须声明好大小,有些语言都可以动态分配?其实动态分配的也是先声明大小,只是不够用了就在开辟一块内存。因为是最朴素的,所以执行效率最高,高阶的编程人员都会用c来编写一些对性能有严苛要求的模块。

Linux看似不好用,但其实对程序员十分友好,而且可以高度定制,谁用谁知道。对于命令好不方便的地方,一般发行版都会有图形界面,二者互补。


学一门脚本语言的原因是脚本语言能轻松完成各种功能,任何功能都有库支持,我记的Python的发明者对初学者的建议是:“你要会做轮子,但千万别自己做轮子。”懂你熟练运用库加上正则表达式,你会发现生活如此美好。


题主问的是前五位,并不是仅五个,这里之所以没提算法,数据结构等经典科目是因为我觉得要先用得到,才会对知识有获取的欲望,当你写的东西效率低的时候,你自然就会去找算法去看了,内碎片化严重,自然就去找数据结构看了,其他经典科目同理。


以上是我个人理解。
编辑于 2014-08-17  1 条评论               

明明软件工程师

想到的第一个是:表达能力训练课
俺见过不会表达(语言、文字)的计算机工程师,太多了
发布于 2012-05-08  1 条评论               

SangY~

计算机组成原理:了解计算机硬件是怎么跑起来,怎么让软件怎么工作的。
操作系统:了解一下整个系统是怎么管理的。
计算机网络:互联网时代,怎么也要知道网络是什么吧。
C语言:建议是C,帮你了解程序是怎么运行的,基础的写代码读代码的能力。
数据结构与简单的算法:了解一些常见的编程方法与思想

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作为计算机专业学生,最应该学习的课程前五位是什么?【知乎】 的相关文章

  • Android OpenGLES2.0(十六)——3D模型贴图及光照处理(obj+mtl)

    在Android OpenGLES2 0 十四 Obj格式3D模型加载中实现了Obj格式的3D模型的加载 加载的是一个没有贴图 没有光照处理的帽子 为了呈现出立体效果 手动 加了光照 拥有贴图的纹理及光照又该怎么加载呢 模型文件 本篇博客例
  • 【JVM】JVM调优(基础篇)

    一 概述 先来说下JVM调优主要是在调啥 调优就是调节JVM运行时内存大小 gc垃圾回收细节 要想调整JVM运行时内存大小 需要我们知道JVM内存划分知识以及要想调整gc垃圾回收的细节 需要我们知道垃圾回收器工作原理以及它们使用的垃圾回收算
  • FlinkCDC第三部分-同步mysql到mysql,ctrl就完事~(flink版本1.16.2)

    本文介绍了 来源单表 gt 目标源单表同步 多来源单表 gt 目标源单表同步 注 1 16版本 1 17版本都可以使用火焰图 生产上最好关闭 详情见文章末尾 Flink版本 1 16 2 环境 Linux CentOS 7 0 jdk1 8
  • cocos2d-x 源码分析 总目录

    这篇博客用来整理与cocos2d x相关的工作 只要有新的分析 扩展或者修改 都会更改此文章 祝大家愉快 1 源码分析 1 CCScrollView源码分析 http blog csdn net u011225840 article det
  • Python破解12306图片验证码

    不知从何时起 12306的登录验证码竟然变成了按字找图 可以说是又提高了一个等次 竟然把图像识别都用上了 不过有些图片 不得不说有些变态 图片的清晰图就更别说了 明显是从网络上的图库中搬过来的 谁知没多久 网络就惊现破解12306图片验证码
  • 删除 GitHub 提交记录中的文件或敏感数据

    BFG Repo Cleaner 是一个简单 快速的 10 720 倍 工具 代替 git filter branch 在你的 Git 存储库中清除不想要的文件或敏感数据 GitHub 地址 https github com rtyley
  • 代码审计-strpos数组绕过

    ereg 函数用指定的模式搜索一个字符串中指定的字符串 如果匹配成功返回true 否则 则返回false 搜索字母的字符是大小写敏感的 strpos 函数查找字符串在另一字符串中第一次出现的位置
  • CloudOS:物联网开发平台,云上开发,边端交付

    文章目录 一 CloudOS概述 二 CloudOS主要功能 1 云上开发 2 边端交付 3 数据管理 4 安全保障 三 CloudOS应用场景 1 智能家居 2 智慧城市 3 工业物联网 四 总结 欢迎来到云计算技术应用专栏 CloudO
  • 工作中如何做好技术积累(摘自美团点评技术团队博客)

    引言 古人云 活到老 学到老 互联网算是最辛苦的行业之一 加班 对工程师来说已是 家常便饭 同时互联网技术又日新月异 很多工程师都疲于应付 叫苦不堪 以至于长期以来流传一个很广的误解 35岁是程序员工作的终点 如何在繁忙的工作中做好技术积累
  • 由于设备驱动程序的前一个实例仍在内存中,Windows 无法加载这个硬件的设备驱动

    感谢这位 sizzg7796 网友
  • 【Jenkins】部署vue项目(多种方式部署)

    文章目录 Jenkins部署vue项目 先安装node js 上传到linux并解压 配置Jenkins 环境变量 jenkins 创建任务 部署方式 第一种 npm run build 打包的形式 执行脚本 build Steps 第二种
  • Detr代码解读(一)数据加载

    文章目录 导读 数据加载 dataset train 数据源文件不存在报错解决 CocoDetection 采样 数据处理 处理 target 处理 img 收集策略 collate fn batch 导读 源码 Detr Detr用的数据
  • 深入理解React Hooks与闭包:提升你的React开发技能

    深入理解React Hooks与闭包 提升你的React开发技能 深入理解React Hooks与闭包 提升你的React开发技能 深入理解React Hooks与闭包 提升你的React开发技能 前言 1 React Hooks 简介 2
  • PID双环控制(速度环和位置环)

    PID双环的控制过程 PID双环控制的前期准备 代码实现步骤 效果图 位置环做为外环 速度环作为内环 可以看到外环的输出值作为内环的目标值 外环计算一次pid 我们根据pid公式可以知道 当离位置目标越来越近时 第一个误差 外环误差 就越来
  • python输出结果去掉引号_从二维数组python中删除引号

    我目前正在尝试执行对具有大指数的幂进行赋值的代码 而不对其进行计算 而是对其进行记录 我有一个包含1000行的file 每行包含两个由逗号分隔的iteger 我被困在试图从数组中删除引号的位置 我尝试了许多方法 但都无济于事 这是我的代码
  • 转---30 分钟学会 Flex 布局

    正文从这开始 Flex 基本概念 在 flex 容器中默认存在两条轴 水平主轴 main axis 和垂直的交叉轴 cross axis 这是默认的设置 当然你可以通过修改使垂直方向变为主轴 水平方向变为交叉轴 这个我们后面再说 在容器中的
  • 使用three.js加载obj+mtl模型

    已经有比较好的博客介绍如何加载模型 使用three js加载obj mtl模型完整案例 有一点小问题 会导致模型加载不成功 需要修改两处地方 1 将 Detector js 替换为 WebGL js 根据Three js中Detector
  • 自动登录远程服务器脚本,iTerm2使用脚本自动登录远程服务器

    在iTerm2下ssh不能自动登录 不自动登录每次输入命令太麻烦了 这里介绍一个采取expect脚本的方式实现iTerm2下ssh自动登录 新建一个expect脚本 login exp usr bin expect if llength a
  • 从无监督构建词库看「最小熵原理」,套路是如何炼成的

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP 神经网络 个人主页丨kexue fm 在深度学习等端到端方案已经逐步席卷 NLP 的今天 你是否还愿意去思考自然语言背后的基本原理 我们常说 文本挖掘 你真的感受到了 挖掘 的

随机推荐

  • Unity iOS打开AppStore评星页面,浅谈Application.OpenURL()方法。

    http fairwoodgame com blog p 38 Unity iOS打开AppStore评星页面 浅谈Application OpenURL 方法 Posted in Unity on August 6 2013Comment
  • 8、工厂方法

    文章目录 概念 demo 概念 定义一个创建对象的接口 让其子类自己决定实例化哪一个工厂类 工厂模式使其创建过程延迟到子类进行 demo package com cn go designpattern public class Factor
  • 同步、异步、阻塞、非阻塞的理解

    同步 异步 阻塞 非阻塞的理解 有关这四个概念总会混淆 前几天特意查了下 简单理解了下这四个概念 若理解的不对 希望大家指正 一 同步异步 同步是调用者发出请求后 一直等待被调用者响应 如果被调用者没有响应那会一直不返回 以买书为例 如下
  • counterfactual generation network——因果推断用于提高分类器鲁棒性

    因果推断本是一个小众方向 但是感觉近几年突然火了起来 本文便是2021年发表于ICLR的一篇将因果推断用于提高图像分类的文章 本文出发点 先说一下本文针对的问题 我们知道图像分类任务就是将输入网络的图像尽量映射成我们想要的输出结果 通常是一
  • 2021江西省icpc(A,B,D,F,G,H,J,K,L)

    K Many Littles Make a Mickle 签到题 任意门 先从最简单的签到题开始吧 include
  • IPIDEA的使用方式

    文章目录 一 平台介绍 1 前言 2 简单介绍 3 适用场景 4 特色功能 二 获取代理ip池 1 注册信息 2 获取代理API 3 获取代理信息并检测代理可用性 三 代理爬取数据 1 编写功能代码 2 插入到代理代码 四 使用感受 一 平
  • Mac OS X 上干净卸载软件

    英文参考文章地址 http www cultofmac com 90060 how to completely uninstall software under mac os x macrx 在Mac OS X上卸载软件一般都很简单 在 应
  • 【Sentry使用】自定义transaction

    在使用Sentry时 你会发现有两种颜色的柱形图 一个是紫色的 在上面 一个是灰色的 在下面 这两类柱形图分别代表error和transaction 而在Python脚本环境下 不会自动进行transaction的记录 也就是说只会在出现异
  • YOLO的XML和TXT标注文本解释

    XML和TXT标注文本解释 转换函数 xml 左上角坐标和右下角坐标 转换为txt txt 中心点坐标 比例 宽 比例 高 比例 0到1之间 转换函数
  • aix安装bff_AIX的yum安装

    之前在AIX上安装yum是按照步骤一步步来做 今天找到一个脚本 可以很方便的执行脚本来做 ftp ftp software ibm com aix freeSoftware aixtoolbox ezinstall ppc 可惜的是很多时候
  • 中小研发团队架构实践之统一应用分层

    中小研发团队架构实践之统一应用分层 原文 中小研发团队架构实践之统一应用分层 一 写在前面 应用分层这件事情看起来很简单 但每个程序员都有自己的一套 哪怕是初学者 如何让一家公司的几百个应用采用统一的分层结构 并得到大部分程序员的认同呢 这
  • RabbitMQ死信队列

    目录 一 概念 二 出现死信的原因 三 实战 一 代码架构图 二 消息被拒 三 消息TTL过期 四 队列达到最大长度 一 概念 先从概念解释上搞清楚这个定义 死信 顾名思义就是无法被消费的消息 字面意思可以这样理解 一般来说 produce
  • 同心聚合力,开局谋发展——云孚科技参加哈工大青企联首届年会

    3月2日 云孚科技CEO张文斌先生受邀参加了历时3天的哈尔滨工业大学青年企业家联合会 以下称青企联 首届年会 并参与龙江行活动 哈工大党委常务副书记安实出席青企联年会并致辞 哈工大原副校长郭斌出席青企联年会并参加了赴香坊区调研座谈会 张文斌
  • Python 中的json模块dumps参数详解

    1 什么是JSON 维基百科中的定义 JSON JavaScript Object Notation JavaScript对象表示法 是一种由道格拉斯 克罗克福特构想和设计 轻量级的资料交换语言 该语言以易于让人阅读的文字为基础 用来传输由
  • 如何使用百度的GPU来跑自己的项目

    请先阅读如下两篇文章 并先读完我的文章再决定你是否要动手安装 因为有很多坑 白嫖百度GPU TeslaV100笔记 在 AI Studio 上使用 tensorflow 和 pytorch 的方法 亲测可用 免费使用谷歌GPU 这里谷歌是需
  • easyui field 获取对象子属性的值

    我们从服务器获取的数据格式如下 total 10 rows orderId 4 payment 1 paymentType 1 postFee 1 status 2 createTime 1510029825000 updateTime 1
  • 深入解析IT专业分类、方向及就业前景:高考毕业生如何选择适合自己的IT专业?重点探索近年来人工智能专业发展及人才需求

    目录 一 IT专业的就业前景和发展趋势 二 了解IT专业的分类和方向 三 你对本专业的看法和感想 四 本专业对人能力素养的要求 五 建议和思考 其它资料下载 当今社会 信息技术行业以其迅猛的发展和无限的潜力成为了吸引无数年轻人的热门选择 特
  • leetcode学习项目

    https leetcode cn com explore learn card data structure binary tree leetcode上专项介绍供学习树 https leetcode cn com explore lear
  • Linux中创建sftp用户并限制目录权限

    注意两点 一是禁止该用户通过ssh登录 二是不需要创建家目录 家目录简单来说 就是在 home下的用户命令 默认每个用户在 home中都是有与用户名一样的文件夹 创建组 groupadd sftp 创建用户 useradd g sftp s
  • 作为计算机专业学生,最应该学习的课程前五位是什么?【知乎】

    http www zhihu com question 19628851 answer 100293 对于目前排在首位的兵哥哥的答案 不敢苟同 本人软件工程专业 关于计算机专业和软件工程专业 实际上还是大相径庭的 远不是别人所说的软硬件的偏