下面是我认为优质的知乎回答和文章的集合,还附有部分精彩原文。(最新版的文章集合我整理发布在知乎上了:知乎上关于编程和程序员的优质回答和文章)
准程序员(给高校学生)
你想告诉准程序员些什么? 回答者:蓝色
不要担心自己没有计算机基础,也不要羡慕高中有计算机基础的同学,其实你们都还是在一个水平线上。很多课程不是没用,不要太抱怨,只是教学的方式没有办法引起你的兴趣。对于一门课程,选一本经典的教材,认真研读,并且善于Google,看看国外名校这门课程的教材与讲义,并且做做他们的作业。数学很重要,也许你只有这一次机会有大把的时间来好好学习数学。
计算机专业大类下,还有哪些细分的专业,分别是干什么的? 回答者:罗文
不要担心自己没有计算机基础,也不要羡慕高中有计算机基础的同学,其实你们都还是在一个水平线上。很多课程不是没用,不要太抱怨,只是教学的方式没有办法引起你的兴趣。对于一门课程,选一本经典的教材,认真研读,并且善于Google,看看国外名校这门课程的教材与讲义,并且做做他们的作业。数学很重要,也许你只有这一次机会有大把的时间来好好学习数学。
这可能是我见过最好的编程指南了! 作者:编程的二胖
从大一入学被调剂到计算机专业,到喜欢上这个专业,再到毕业拿到10多个offer,最终进入理想的大厂工作。回想起来这些年确确实实踩了很多坑。我刚开始学习编程的时候也想一口吃成一个胖子,想速成,但是有时候却是不尽人意。
回忆了下这几年学习编程的过程,整理了一些我自己认为很需要注意的几个方面,分享给大家。希望能让初学编程的你,少走一些弯路,可能文章比较长,但我真心希望初学编程的你能够认真看完,至少,我认为如果我刚学编程的时候看到这篇文章,对我或多或少是有一些帮助的。
如何确定自己是否适合做程序员? 回答者:毛文强
程序猿最重要的能力是什么?
解决问题的能力!这个很多IT从业者都是赞同的,应该没有太大异议。
那么如何从“解决问题”的角度看自己是否适合做程序猿呢?
我认为有两大标准可以用来衡量——“探索精神”和“逻辑思维”
新手关于如何看编程经典书的一些疑惑? 回答者:孙天齐
很多学计算机的朋友,都有类似的困惑:我学了计算机专业,怎么还是做不出网站、软件、APP?很多人误以为是教材不接轨,因此崇拜国外教材,其实不是那么回事。我尽量详细地答一下,顺便也讲讲计算机科学到底是干什么的。
为什么现在国内各大高校仍选用谭浩强的《C 程序设计》为教材? 回答者:牛岱
为什么部分外行人看起来不太复杂的网站,比如Facebook,需要大量顶尖高手来开发? 回答者:子柳
【搜索商品】——这个功能,如果你有几千条商品,完全可以用select * from tableXX where title like %XX%这样的操作来搞定。但是——当你有10000000000(一百亿)条商品的时候,任何一个数据库都无法存放了,请问你怎么搜索?这里需要用到分布式的数据存储方案,另外这个搜索也不可能直接从数据库里来取数据,必然要用到搜索引擎(简单来说搜索引擎更快)。
室友想抄我的代码,给还是不给? Doraemon
当然可以给,但是建议你在代码里做点手脚。
如何成为一个优秀的程序员?
作为 IT 行业的过来人,你有什么话想对后辈说的? 回答者:二律背反
一个程序员,应该花80%的时间做代码设计、画UML图、画时序图,20%的时间写code和debug;菜鸟程序员的这个比例恰好是反的。一句话,不论这个需求有多紧急,你都一定要“想好再动手”;“想好”的标志就是设计文档写好了;文档一旦写好,写代码就是纯粹的无脑工作。
英语,很重要。能否使用英语查阅资料,是区分技术人员水平的重要指示之一。寄希望于“有人迟早会翻译成中文”的人是愚蠢的、是会被淘汰的。
要有分享精神,不要担心你知道的东西告诉了别人你就没价值了
…
有哪些新手程序员不知道的小技巧? 回答者:汉彬
我有一个学习的小技巧,就是学习新技术的时候,多看看“官方文档”。
多年来的学习和工作经历,让我比较深刻认识到一点:看“官方文档”非常重要。
我们很多的问题和技术细节,其实,只要我们认真将官方文档过一遍,会发觉大部分的问题和认识模糊的地方都消失了。甚至,你还能发现自己之前通过搜索获得的到一些资料,可能是不准确或者已经过时的。官方文档是真正的好东西,因为编写文档的人群,通常就是这些技术或者软件的开发者,他们才是对这些东西最了解的人,因此,他们写的文档质量是很高的,通常也是最新的。
有哪些新手程序员不知道的小技巧? 回答者:胡子大哈
编码的时候只思考同一个思维层次的逻辑,在这层完成之后再思考下一层。
它基于这么一个事实:我们每个人智力是有限的,同一个时间只能思考有限内容的东西,我们都不是天才。由于这个事实的存在,所以程序 bug 就会存在(废话)。因此,思考问题的时候(编码)不要跨抽象层级思考,在我们有限的智力里面现保证这个层级的逻辑正确,再思考下一个。
怎么成为优秀的软件工程师,而不是优秀的码农? 回答者:萧井陌
优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍。
程序员基础掌握得好学新东西真的就快么? 回答者:姚冬
计算机领域有三件事最重要,存储,计算和传输这三个组成了一个不可能三角,存储大,计算快,传输带宽高延迟低,是不可能同时实现的几乎所有技术都是围绕这三个问题来做的,都是牺牲其中一两个来换取另外的,只是看具体场景里哪个更重要。看到一个新技术,就要想想它要解决哪个问题,它打算牺牲哪个换哪个,想明白这个很多事情就好理解了。
每个程序员必须掌握的常用英语词汇(建议收藏) 回答者:黑马程序员
天天写业务代码,如何成为技术大牛? 作者:李运华
要想有机会,首先你得从人群中冒出来,要想冒出来,你就必须做到与众不同,要做到与众不同,你就要做得更多!
请问下小白在软件公司,都是在自己看,偶尔同事分点任务都是简单的增删改查的,改改bug有前途吗? 回答者:李默之
说了这么多,只是想说一个道理。在任何一家公司,只要你自己肯用心,总能收获有价值的东西。很多人都是在被动的等着别人给你资源和机会,希望能从中历练。
你不知道的是,在你每天漫不经心的做着些边角活的时候,你和别人的差距就已经在慢慢地拉开。
编程能力究竟是什么? 我们该怎么做?
什么才算是真正的编程能力? 回答者:h8liu
计算机科学有两类根本问题。一类是理论:算法,数据结构,复杂度,机器学习,模式识别,等等等。一类是系统:操作系统,网络系统,分布式系统,存储系统,游戏引擎,等等等等。
理论走的是深度,是在追问在给定的计算能力约束下如何把一个问题解决得更快更好。而系统走的是广度,是在追问对于一个现实的需求如何在众多的技术中设计出最多快好省的技术组合。
编程新手如何提高编程能力? 回答者:姚冬
编程不是一种知识,而是一门手艺。
回忆下自己当年是怎么学会骑自行车,学会游泳,学会打篮球的,按照那个思路去学编程,而不是用你学大学课程的思路去学编程。
记住,编程是手艺,不是知识。
编程到底难在哪里? 回答者:DJ Hitori
这篇回答并不是讲述在生活中程序员如何买苹果,而是以买苹果为例说明程序员如何解决问题。程序员需要对问题进行透彻的分析,理清其涉及的所有细节,预测可能发生的所有意外与非意外的情况,列出解决方案的所有步骤,以及对解决方案进行尽量全面的测试。
而这些正是我认为编程难的地方。任何一点遗漏都会成为bug,轻则导致挨骂,重则导致经济损失甚至危害安全。
注意这些难点全部和语言无关。和编程所需要的绝对严密的逻辑相比,语言实在是太简单了。(某些自带代码混淆效果的语言除外)
编程究竟难在哪? 回答者:invalid s
编程不难。但它要你创造。
混知乎或其他网络论坛,总有人忍不住骂“你们码农怎么什么话题都想插一嘴?”
很遗憾。但程序员的工作,恰恰正是“理解各行各业的工作,然后把它教给电脑”。
没错。学编程,学的甚至不是计算机本身;相反,它要求你从声学到视觉暂留、从结构力学到滤波解调……随便哪行哪业,你都要能够快速抓住重点、然后把它说的清清楚楚明明白白,这才可能把它教给计算机、让CPU代替人工作。
咸鱼翻身——编程自学指南(一)正向路线 作者:到处挖坑蒋玉成
1、永远不要假设自己有足够的热情(信心保护)
2、确保你学到的东西都是性价比最高的内容(高性价比学习)
3、循序渐进地学习新知识,选择新目标(最低耦合)
…
你会如何重新学习编程? 回答者:ze ran
这个无法转载,没有原文示例,大家自己去看吧。编程就是打怪升级啊,点亮一个个技能点,最后融会贯通。
如何系统、科学地自学编程知识? 回答者:林建入
走入编程,然后走出编程。编程是为解决问题服务的,我们应当多思考想要解决的问题是什么。这会在我们迷茫的编程生涯中起到指南针的作用。它会告诉我们需要学习什么,然后由我们自己来回答如何学习。
编程的技术资料好多都是全英文的该怎么学习? 回答者:Boyan 你不应该回去专门学英文 / 背单词你要能接受自己不能 100% 看懂资料你要学会的,是阅读;而不只是,阅读英文你要培养一种习惯,能用英文阅读的习惯