bui时间jquery 选择器器,如何让秒自动显示为当前,而不是整分钟

&figure&&img src=&https://pic4.zhimg.com/v2-60dae651db578eaa4434b7_b.jpg& data-rawwidth=&600& data-rawheight=&335& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/v2-60dae651db578eaa4434b7_r.jpg&&&/figure&&p&《&a href=&http://link.zhihu.com/?target=http%3A//norvig.com/21-days.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Teach Yourself Programming in Ten Years&/a&》&/p&&p&不过我知道大家肯定是不想看英文的了,所以我给大家找了&a href=&http://link.zhihu.com/?target=http%3A//blog.jobbole.com/22905/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&中文版&/a&。所有试图自学编程的人都应该发自内心的同意它的说法(除去少数过时的具体技术部分)。&/p&&hr&&h2&&b&正文&/b&&/h2&&hr&&p&&b&你们着什么急?&/b&&/p&&p&随意步入一家书店,满目都是《7天搞定Java编程》这种速成书目,同样的书籍还包括Visual Basic、Window系统、Internet互联网等等,它们都承诺在几天,甚至几小时之内就让你能够学会相关技术。我在亚马逊网站上做了如下的条件检索:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/exec/obidos/search-handle-url/ix%3Dbooks%26rank%3D%252Bfeaturedrank%26fqp%3Dpower%2501pubdate%253A%2520after%0and%2520title%253A%2520days%2520and%250D%title%253A%2520learn%2520or%2520title%253A%2520teach%2520yourself%2529%26sz%3D25%26pg%3D1/ref%3Ds_b_np& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pubdate: after 1992 and title: days and&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/exec/obidos/search-handle-url/ix%3Dbooks%26rank%3D%252Bfeaturedrank%26fqp%3Dpower%2501pubdate%253A%2520after%0and%2520title%253A%2520days%2520and%250D%title%253A%2520learn%2520or%2520title%253A%2520teach%2520yourself%2529%26sz%3D25%26pg%3D1/ref%3Ds_b_np& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&(title: learn or title: teach yourself)&/a&&/p&&p&出版日期:1992年以后,题目关键字:“天”,“学会”或者“自学”&/p&&p&然后得到了248条搜索结果。头78条都是计算机类书籍(第79条记录是《30天学会孟加拉语》)。我将“天”关键字换成了“小时”,不出意外地搜索到了253条记录,其中头77条记录是计算机书籍,第78条的搜索记录是《24小时语法和样式自学手册》。在总共搜索到的头200条记录中,有96%是计算机书籍。&/p&&p&从上面的搜索结果可以看出来,要么就是人们对计算机技术的学习如饥似渴,要么就是计算机技术实在太简单,不费吹灰之力就能学会。相比于计算机技术书籍的如此“速成”,在其他领域的书籍里,你却很难找到诸如:“三天学会贝多芬”,或者“五天搞定量子力学”,这种速成教材,甚至连《狗狗喂养手册》这种宠物指南,都鲜有“几天搞定”的说法。Felleisen &i&et al.&/i&在他们的著作《如何设计程序》一书中明确指出了这种“速成”的趋势,并评论到:“垃圾的编程技术当然非常容易,傻子都能在21天之内学会,哪怕他天生就是个白痴。”&/p&&p&让我们来仔细看看《&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Learn-C-Three-Days-Rachele/dp/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&3天学会C++&/a&》这种速成教材实际上意味着什么:&/p&&p&&b&●学会:&/b&在3天时间里你几乎没有时间去写任何有意义的程序,就更不要谈什么从编程中获得经验和教训这种事情了。你也不可能有时间和有经验的程序员一起工作和交流,也不会体验到在真正的C++环境下工作是什么感觉。长话短说吧,你就是没时间,也学不到什么。所以这种书籍最多也就让你有个粗浅的印象,但是绝对不可能有深入的理解。就像亚历山大教皇说的那样,“浅尝辄止是很危险的”。&/p&&p&&b&●C++:&/b& 如果你有其他编程语言的基础,那&b&么&/b&3天之内你也许可以学到C++的一些语法,但即使是这样,你还是无法了解如何使用该语言编程。简言之,如果你之前是一个Basic程序员,那么经过3天的学习,你会成为一个“能使用C++语法编写Basic风格程序的程序员”,不过这样是没法发挥出C++语言本身的优势的(说句不好听的,你连怎么犯C++的典型错误都不会)。仅仅知道一点语法意味着什么呢?Allan Perlis曾经说过:“一个无法改变你思维方式的编程语言是不值得学习的。”;另一种可能性是,你可以只学一点点C++知识(类似的,或者一点点JavaScript,或者一点点Flex Script),然后就可以利用现有的工具制作应用接口,完成特定的编程任务了。但是这样的行为并不意味着你“会”编程了,你只是会使用这个工具完成任务而已。&/p&&p&&b&●3天:&/b&很不幸,3天是远远不够的,往下看你就知道了。&/p&&p&研究人员(&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/exec/obidos/ASIN/X/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bloom (1985)&/a&、 Bryan & Harter (1899,见文后参考书目)、&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/exec/obidos/ASIN/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hayes (1989)&/a&、Simmon & Chase (1973,见文后参考书目) 的一系列调查研究显示,在各个领域内,要想获得专业级别的水平,大约需要10年时间的努力。参与此项调查的领域包括:国际象棋,作曲,发报,绘画,钢琴演奏,游泳,网球等。科学家们从神经心理学和拓扑学的角度对这些领域进行研究,并得出结论。若要在某一领域内达到专家级的水平,其关键在于“审慎地重复”,也就是说,并非是机械地,一遍又一遍地练习,而是要不断地挑战自我,试图超越自身当前的水平,通过不断的尝试挑战,并在尝试的过程中和尝试之后对自身的表现进行分析和总结,吸取经验,纠正之前犯过的各种错误。把这一“审慎”的过程不断重复,才能取得成功。&/p&&p&所谓的“捷径”是不存在的,即使对于莫扎特这种天才来说,也没有捷径可走,尽管4岁就开始作曲,可是他也花了13年的时间,才真正地写出了世界级的作品。再举一个例子,甲壳虫乐队(The Beatles),他们似乎在1964年凭借一系列热门单曲和其在艾德沙利文秀(The Ed Sullivan show)上的演出一炮而红,但是你也许不知道,他们早在1957年就在利物浦和汉堡两地进行小规模演出了,而在此之前的非正式演出更是不计其数。甲壳虫乐队的主要成名曲《&i&Sgt. Peppers&/i&》,则是1967年才发行的。&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Malcolm Gladwell&/a&公布了他对柏林音乐学院所作的一项研究的报告,该研究对比了一个班里的学习成绩为上、中下三个档次的学生,并逐一询问他们进行音乐练习的时间&/p&&p&这三个档次中的所有人,大约都是在5岁的时候开始练习音乐的,一开始的时候大家练习音乐的时间都差不多,大约一周2到3小时。但是到了八岁左右,大家的区别就开始体现了。后来成为班里最好的那一部分学生开始比别的学生练习得更多,大概每周6到9小时,12岁的时候每周8小时,14岁的时候每周16小时,往后则越来越多,直到20岁左右,他们每周练习音乐的时间已经超过30小时了。在20岁的年纪,那些精英级别的演奏家们都有累计超过10000小时的音乐练习时间。相比之下,仅有部分优等生能达到8000小时的累计练习时间,而那些音乐教师级别的学生,他们的累计练习时间只有4000小时左右。&/p&&p&所以,也许这个让你能达到专业等级的神奇时间应该是10000小时,而不是10年。(Henri Cartier-Bresson ()说过,“(作为摄影师),你所拍摄的头10000张照片都是垃圾”,但即使是垃圾作品,他拍一张照片也要花接近一小时。)Samuel Johnson ()认为这个时间应该更长:“在任何一个领域要想做到极好,势必穷尽一生的精力,否则根本无法企及。” Chaucer ()也发出过“生命如此短暂,技能如此高深”的感叹。Hippocrates (c. 400BC)因写下了如下的句子而被人称颂:“ars longa, vita brevis”,该句是来自于一个更长的引用:”Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile”, 这段话翻译成英语就是:“生命很短暂,但是技艺却很高深,机遇转瞬即逝,探索难以捉摸,抉择困难重重”。这段话是用拉丁文写的。在拉丁文里,ars可以翻译为“技艺”或者“艺术”,但是在古希腊文里,ars只能做“技能”的意思,而没有“艺术”的意思。&/p&&p&&br&&/p&&p&&b&你想当程序员么?&/b&&/p&&p&下面是我列举的程序员成功“食谱”&/p&&p&&b&●沉醉&/b&于编程,编程是为了兴趣。保持这种充满兴趣的感觉,以便于你能将其投入到你的10年/10000小时的编程时间中。&/p&&p&&b&●程序&/b&. 最好的学习方式是“&a href=&http://link.zhihu.com/?target=http%3A//www.engines4ed.org/hyperbook/nodes/NODE-120-pg.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在实践中学习&/a&”。更技术一些地说:“一个人在某个专业领域方面能够达到最高水平,并不是因为这个人经验增长了以后而自动获得的,而是这个人为了进步所做出了专门的努力之后产生的结果。”&a href=&http://link.zhihu.com/?target=http%3A//www2.umassd.edu/swpi/DesignInCS/expertise.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&(p. 366)&/a&“最有效的学习包括如下几个要素:明确并且难度适当的任务,适应学习者个人情况,及时的信息反馈,有重新开始和改正错误的机会)(p. 20-21) 《&i&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Cognition-Practice-Mathematics-Culture-Everyday/dp/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life&/a&&/i&》这本书提供了上述有趣的观点&/p&&p&&b&●&/b&同其他程序员&b&交流&/b&,多阅读其他人写的程序。这些远比你看书或者上培训班重要&/p&&p&&b&●&/b&如果你愿意的话,就选择去读一个计算机科学专业吧(当然你还可以去念这个专业的研究生)。如果你能做到这点,那么你就有机会找到一些需要计算机学位认证的工作,也会让你对这个行业有更深的理解。不过,如果你不是上学的料,那么你可以(当然需要有足够的毅力)靠自己学习,或者通过工作来积累经验。无论你采用哪种途径,光依靠书本是远远不够的。“如果说仅仅靠学习油画和调色技术无法创造出顶尖的画家的话,那么光学习计算机科学课程更不能造就顶尖的程序员。”,Eric Raymond这样说过,他著有《新黑客字典》一书。我所聘用过的最好的程序员仅仅只有高中文凭; 他写了很多伟大的软件,他有他自己的新闻组,并且通过股权赚够了钱,还开了家属于自己的夜店。(作者说的这个人是Jamie Zawinski,他是网景浏览器(Netscape)的早期开发这者之一,也是开源项目Mozilla和&a href=&http://link.zhihu.com/?target=http%3A//en.wikipedia.org/wiki/XEmacs& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&XEmacs&/a&的主要贡献者,他开了一家叫做DNA_lounge的夜店,位于旧金山的SoMa区——译者注)&/p&&p&&b&●&/b&与其他程序员一起&b&做项目&/b&。在某些项目中要尽量做到最好,在某些项目中却别做那么好。当你是最好的时候,你的领导能力就会得到锻炼,并激发你高瞻远瞩的视野。当你做得不好的时候,你就能知道你的领导怎么做事,以及他们不喜欢哪些事(因为领导总是把那些他们不爱做的杂事丢给他们认为不得力的人去做)&/p&&p&&b&●&/b&尝试&b&跟随&/b&其他程序员一起做项目。尝试去理解其他人所写的代码。看看如果你无法找到代码的作者本人的情况下,理解和修正他写的代码需要花费什么样的代价。同时也思考,如何规划你自己的程序代码,让它们更容易被其他人理解和维护。&/p&&p&&b&●&/b&至少学习半打&b&编程语言&/b&。包括一种支持类抽象的语言(例如Java或者C++),一种支持函数抽象的语言(例如Lisp或者ML),一种支持语法抽象的语言(例如Lisp),一种支持声明式编程的语言(例如Prolog或者C++模板),一种支持协同程序的语言(例如Icon或者Scheme),一种支持平行并发编程的语言(例如Sial)&/p&&p&&b&●&/b&牢记“计算机科学”中包含着“&b&计算机&/b&”这个词。了解计算机需要花多长的时间执行一条指令,花多长时间从内存中获取一个字(word)(包括缓存命中和不命中两种情况),如果连续从磁盘中获取数据,时间消耗如何?以及需要花多少时间才能再磁盘上定位一个新的位置?&/p&&p&&b&●&/b&尽量参与语言的&b&标准化&/b&过程。往大了说,你可以试着加入ANSI C++委员会这样的专业组织,往小了讲,你也可以从自己的代码规范入手,限定代码缩进是需要2个空格宽还是4个空格宽。无论采用哪种方式,你都需要了解其他人对于语言的喜好,以及他们的喜好的程度,甚至你要知道他们为什么产生这样的喜好的原因。&/p&&p&&b&●&/b&有良好的意识,能尽快适应语言标准化的成果。&/p&&p&要掌握上面所说的所有内容,光靠看书学习应该是很难做到的。当我的第一个孩子出生的时候,我几乎阅读了市面上所有的《如何…》指南书籍,但是我读完了以后还是觉得自己是个菜鸟。30个月以后,我的第二个孩子快出生时,我难道还要做一个书虫么?不!相反,我此时更依赖我的个人经验,这些经验相比于那些上千页的书籍,则更加有效和让我放心。&/p&&p&Fred Brooks所著的著名的论文《&i&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product//ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3D& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&No Silver Bullets&/a&| &/i&没有银弹》里向我们揭示了发现和培养软件设计人才的三步骤:&/p&&p&1.有组织地辨认顶尖的软件设计人才,越早越好&/p&&p&2.安排一个职业导师,为其职业前景指点迷津,并谨慎对待自己的职业履历&/p&&p&3.为成长中的设计师们提供机会,让他们能够互相激发促进。&/p&&p&即使一部分人已经具备了成为优秀软件设计人员的潜质,也需要经历工作的慢慢琢磨,方可展现才华。&a href=&http://link.zhihu.com/?target=http%3A//www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Alan Perlis&/a&则说得更加直接:“任何人都可以被‘教’成一个雕塑匠,但米开朗基罗则被‘教’如何不要成为一个雕塑匠,因为他要做的是雕塑大师,。这个道理放到编程大师身上同样管用。”Perlis认为,伟大的软件开发人员都有一种内在的特质,这种特质往往比他们所接受的训练更重要。但是这些特质是从哪里来的呢?是与生俱来的?还是通过后天勤奋而来?正如Auguste Gusteau(动画电影《料理鼠王》里的幻象大厨)所说,“谁都能做饭,但只有那些无所畏惧的人才能成为大厨!”我很情愿地说,将你生命中的大部分时间花在审慎地练习和提高上,这很重要!但是“无所畏惧”的精神,才是将促使这些练习成果凝聚成形的途径。或者,就像是《料理鼠王》里那个与Gusteau作对的刻薄的美食评论家Anton Ego说的那样:“不是任何人都能成为伟大的艺术家,不过,伟大的艺术家在成名前可能是任何人。”&/p&&p&所以尽管去书店大买Java/Ruby/Javascript/PHP书籍吧;你也许会发现他们真的挺管用。但是这样做不会改变你的人生,也不会让你在整体经验上有什么提高。24小时,几天,几周,做一个真正的程序员?光靠读书可读不出来。你尝试过连续24个月不懈努力提高自己么?呵呵,如果你做到了,好吧,那么你开始上路了……&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&参考书目&/b&&/p&&p&Bloom, Benjamin (ed.) &i&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product/X/ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3DX& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Developing Talent in Young People&/a&&/i&, Ballantine, 1985.&/p&&p&Brooks, Fred, &i&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product//ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3D& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&No Silver Bullets&/a&&/i&, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.&/p&&p&Bryan, W.L. & Harter, N. “Studies on the telegraphic language: The acquisition of a hierarchy of habits. &i&Psychology Review&/i&, 5-375&/p&&p&Hayes, John R., The &a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product//ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3D& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Complete Problem Solver&/a& Lawrence Erlbaum, 1989.&/p&&p&Chase, William G. & Simon, Herbert A. &a href=&http://link.zhihu.com/?target=http%3A//books.google.com/books%3Fid%3DdYPSHAAACAAJ%26dq%3D%2522perception%2Bin%2Bchess%2522%2Bsimon%26ei%3Dz4PyR5iIAZnmtQPbyLyuDQ& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&“Perception in Chess”&/a& &i&Cognitive Psychology&/i&, -81.&/p&&p&Lave, Jean, &i&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product//ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3D& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life&/a&&/i&, Cambridge University Press, 1988.&/p&&p&&br&&/p&&p&&b&问答&/b&&/p&&p&典型PC系统各种操作指令的大概时间&/p&&p&execute typical instruction&/p&&p&执行基本指令&/p&&p&1/1,000,000,000 sec = 1 nanosec&/p&&p&fetch from L1 cache memory&/p&&p&从一级缓存中读取数据&/p&&p&0.5 nanosec&/p&&p&branch misprediction&/p&&p&分支误预测&/p&&p&5 nanosec&/p&&p&fetch from L2 cache memory&/p&&p&从二级缓存获取数据&/p&&p&7 nanosec&/p&&p&Mutex lock/unlock&/p&&p&互斥加锁/解锁&/p&&p&25 nanosec&/p&&p&fetch from main memory&/p&&p&从主内存获取数据&/p&&p&100 nanosec&/p&&p&send 2K bytes over 1Gbps network&/p&&p&通过1G bps 的网络发送2K字节&/p&&p&20,000 nanosec&/p&&p&read 1MB sequentially from memory&/p&&p&从内存中顺序读取1MB数据&/p&&p&250,000 nanosec&/p&&p&fetch from new disk location (seek)&/p&&p&从新的磁盘位置获取数据(随机读取)&/p&&p&8,000,000 nanosec&/p&&p&read 1MB sequentially from disk&/p&&p&从磁盘中顺序读取1MB数据&/p&&p&20,000,000 nanosec&/p&&p&send packet US to Europe and back&/p&&p&从美国发送一个报文包到欧洲再返回&/p&&p&150 milliseconds = 150,000,000 nanosec&/p&&p&&br&&/p&&p&&b&附录:如何选择语言&/b&&/p&&p&很多人曾经问过我,他们应该选择什么编程语言作为入门之用?我想这个问题很难有一个确切的答案,但是下面几点可以用来作为选择的参考。&/p&&p&&i&●随大流&/i&。当被问到“我应该使用什么系统呢?Windows, Unix还是Mac?”,我的回答通常是:“看你的朋友们用什么你就用什么。”这么做的好处是,有了你朋友的帮助,你就能有效地回避操作系统固有的一些差异,对于选择编程语言来说,也是同样道理。同时,你还要有点儿战略眼光:如果选择了一种编程语言,并成为其编程社区的一员,那么你选择的语言和社区是正在不断壮大?还是奄奄一息?如果你有编程方面的问题,能不能从相关的书籍,网站以及在线论坛中得到解答?你是不是跟论坛里的人合得来?这些都是要考虑的。&/p&&p&&i&●简单实用&/i&。诸如C++以及Java这样的编程语言都是非常专业的开发语言,适用于有经验的大型团队进行开发,需要时常考虑代码的运行效率。所以,这类的编程语言就适合于那样(复杂)的编程环境。如果你是一个初学者,那么就不要搞那么复杂。你所需要的是一种简单易学的编程语言,你靠你自己就可以搞定的语言。&/p&&p&&i&●交互。&/i&给你两种选择去学钢琴:第一种,常规做法,也是互动的做法,也就是你每敲一下琴键就能听到琴音;第二种,批量模式,等你把所有该按的琴键都按了一遍,然后再一次性放给你听。你选择哪一个呢?显然,交互式的方式对于钢琴学习来说更容易,对于编程学习也是如此。那么就坚持使用交互式模式学习编程吧。&/p&&p&基于上述的观点,我所推荐的编程入门语言应该是Phyton或者Scheme.但是读者自身的环境是非常复杂多变的,所以你们也许会其他更好的选择。如果你的年龄还不到两位数,那么你们应该考虑Alice语言或者Squeak语言(很多成年的初学者也认为他们很有趣)。当然,做出选择并开始行动,这个最重要。&/p&&p&&br&&/p&&p&&b&附录:书籍和其他资源&/b&&/p&&p&&b&&i&●&/i&Scheme:&/b&《&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product//ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3D& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Structure and Interpretation of Computer Programs (Abelson & Sussman)&/a& | &a href=&http://link.zhihu.com/?target=http%3A//www.amazon.cn/dp/B0011AP7RY/%3Ftag%3Dvastwork-23& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&计算机程序的构造和解释&/a&》 这本书或许是计算机科学最好的入门书籍,本书从计算机科学的角度入手,教你如何进行编程。你可以在&a href=&http://link.zhihu.com/?target=http%3A//www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&online videos of lectures&/a&观看本书的在线视频教程,以及&a href=&http://link.zhihu.com/?target=http%3A//mitpress.mit.edu/sicp/full-text/book/book.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&complete text online&/a&的在线文字版。 学习本书是需要一些挑战的,相信该书会让一部分人望而却步的。&/p&&p&&b&&i&●&/i&Scheme:&/b&《&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/%253Ci%253Eproduc%253C/i%253Et/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How to Design Programs (Felleisen et al.)&/a& | &a href=&http://link.zhihu.com/?target=http%3A//www.amazon.cn/%25E7%25A8%258B%25E5%25BA%258F%25E8%25AE%25BE%25E8%25AE%25A1%25E6%%25E6%25B3%%E9%259B%25B7%25E6%25A3%25AE/dp/B0011AIAX2%3Ftag%3Dvastwork-23& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&程序设计方法&/a&》是一本好书,该书介绍了如何用优雅并且有效的方式进行程序设&/p&&p&&b&&i&●&/i&Python:&/b& &a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product/%3Ftag%3Djob0ae-20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python Programming: An Intro to CS (Zelle)&/a& 是一本介绍Python的好书&/p&&p&&b&&i&●&/i&Python:&/b& &a href=&http://link.zhihu.com/?target=http%3A//python.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python.org&/a&官方网站上提供了一些在线教程 &a href=&http://link.zhihu.com/?target=http%3A//wiki.python.org/moin/BeginnersGuide& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tutorials&/a&.&/p&&p&&b&&i&●&/i&Oz&/b&: &a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Concepts, Techniques, and Models of Computer Programming (Van Roy & Haridi)&/a& 被看做是Abelson & Sussman(经典计算机教程《&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.cn/dp/B0011AP7RY/%3Ftag%3Dvastwork-23& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&计算机程序的构造和解释&/a&》的作者——译者注)的当代传承者。该书绘制了一幅关于计算机编程的宏观蓝图,它囊括了比Abelson & Sussman的经典教材更广泛的知识领域,也更加通俗易懂。此书中使用了一种编程语言,Oz, 这种语言在工业领域内几乎不被使用,其主要目的就是针对于教学&/p&&p&&br&&/p&&p&&b&备注&/b&&/p&&p&T. Capey指出,Amazon网页上那个&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product//ref%3Das_li_qf_sp_asin_il_tl%3Fie%3DUTF8%26tag%3Djob0ae-20%26linkCode%3Das2%26camp%3D1789%26creative%3D9325%26creativeASIN%3D& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Complete Problem Solver&/a&页面把《21天搞定孟加拉语》以及《21天学会语法》这两本书移到了“购买此书的用户还购买过这些产品”这个区域内。我估计大部分人就是从这个区域看到这本书的。感谢Ross Cohen的帮助。&/p&
《》不过我知道大家肯定是不想看英文的了,所以我给大家找了。所有试图自学编程的人都应该发自内心的同意它的说法(除去少数过时的具体技术部分)。正文你们着什么急?随意步入一家书店,满目都是《7天搞定Ja…
&figure&&img src=&https://pic4.zhimg.com/v2-b8314f5bbdb60e642c2a43a90fb56ba7_b.jpg& data-rawwidth=&2560& data-rawheight=&1440& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&https://pic4.zhimg.com/v2-b8314f5bbdb60e642c2a43a90fb56ba7_r.jpg&&&/figure&&p&先跟大家说一个事实:&/p&&p&我公司招聘(小初创公司 )的时候, 曾经一个星期收到一千封简历: 600 IOS, 200 安卓, 200 美工。 95%都是应届生。&/p&&p&前些天跟几个培训机构的朋友聊天, 大家也纷纷表示, IOS现在工作不好找。&/p&&p&所以, 各位同学务必记住: 全栈开发才是趋势, 一人多能才是出路!&/p&&ul&&li&如果你只会切菜, 你就是打杂的。&/li&&li&如果你不但会切菜,还会煎炒蒸炸,粤菜鲁菜都精通,你就是大厨! 老板离不开你!&/li&&/ul&&p&下面是我总结的全栈开发的路径:(按照顺序来看,提及到的具体技术,请大家自行google 官方网站来学习。)&/p&&p&&br&&/p&&p&&b&HTML , CSS&/b&&/p&&p&互联网开发的本质是web开发。 这个是基础中的基础。&/p&&p&不要以为android, ios中用不到CSS。 现在越来越多的app已经被页面的改动拖死了。 微信,QQ,京东都开始越来越多的使用 native 壳 + webview了。 所以, 大家务必把 CSS 学好!&/p&&p&时间: 20分钟看概念。(主要是看CSS的各种属性), 然后自己动手写上3,5个静态页面。 也就熟悉了。&/p&&p&&br&&/p&&p&&b&javascript, jQuery, jQuery的各种插件。&/b&&/p&&p&javascript的语法非常简单, 5分钟入门。 (基本上你学会了for, if, try, 声明数组, hash, 以及 this的用法,也就没了)&/p&&p&jQuery 可以认为是javascript的人性化改版。 好多难用的,难以理解的函数,都被改造成了对程序员和蔼可亲的函数。 这个非常棒。&/p&&p&jQuery 操作DOM是重点。 这里建议大家多看看书, 30分钟看书,6 个小时练习。&/p&&p&&br&&/p&&p&&b&jQuery Plugs&/b&&/p&&p&光会jQuery是远远不够的。 我们在实际的工作当中,是要为web页面添加很多功能的。 所以, 要使用各种各样的插件。&/p&&p&下面是我回顾过去多年的项目经验,梳理出来的最常用的若干组件:&/p&&ul&&li&上传图片 jquery-file-upload&/li&&li&弹出窗口 modal dialog&/li&&li&轮播图 slider&/li&&li&表单验证 form-validate&/li&&li&树状菜单 jstree&/li&&li&图表 highchart&/li&&li&时间选择器 datepicker&/li&&li&标签页 tab&/li&&li&提示框 tooltip&/li&&li&快捷编辑 inplace editor&/li&&li&超级强大的下拉框: select2&/li&&li&地图插件: amap 高德地图。 bmap 百度地图&/li&&li&标签 tag&/li&&li&动画 animation&/li&&li&限制性输入框 masked input&/li&&/ul&&p&基本上,只要大家把上面的这些插件都“熟悉了”(也就是每个都做过demo), 那么做项目的时候, 老板就会对你很放心了。 也许你的算法不好,没关系啊,能解决问题就行。&/p&&p&&br&&/p&&p&&b&数据库基础:SQL&/b&&/p&&p&很多参加过前端培训的同学, 我发现都是不懂数据库的。 所以我把它单独列出来。&/p&&p&数据库就用 Mysql. 会用之后, 发现 sqlite, postgres 等等都是一样的。&/p&&p&基本功:&/p&&ul&&li&select ... where .&/li&&li&update&/li&&li&insert&/li&&li&delete&/li&&li&创建,删除数据库,&/li&&li&创建,删除index&/li&&li&foreign key 与 1对多,多对多的关联关系,以及 join.&/li&&/ul&&p&基本上,把这些了解过了, 你对数据库也就能上手用了。(注意, 务必都要手动敲一遍)&/p&&p&同时, 要熟悉 安装mysql, mysql GUI 客户端的过程。&/p&&p&&br&&/p&&p&&b&一门后端语言, 比如Ruby&/b&&/p&&p&后端语言, 包括 Ruby, Python, Java, PHP, .NET等等。&/p&&p&这里我推荐Ruby. 它非常优雅, 简单。 不花哨。 同样的事儿, Ruby 语言2行代码, 用Java写的话,你的先写3个Class再加一堆getter setter.&/p&&p&学习语言的基本功, 包括几个方面:&/p&&ul&&li&数据类型, 以及各种转换。&/li&&li&常见的 for, if-else, try-catch&/li&&li&this/self , 作用域这样的高级特性&br&(指针啊, static non-static, 元编程这样的特性,可以边做项目边学)&/li&&/ul&&p&&br&&/p&&p&&b&web开发的框架, 比如Rails, Spring, Play.&/b&&/p&&p&框架跟语言不一样。&/p&&p&学习了语言,你会发现 你其实只能写个算法。 连GUI都做不了。所以,我们需要借助框架来写Web.&/p&&p&java世界中比较知名的有:SSH (Spring Struts Hibernate, 居然跟十年前没太大变化) 以及 Play这个借鉴了Rails的框架。 Python中有Django, Tornado, PHP中有Cake, ThinkPhp等等。&/p&&p&还是用Rails吧。 那么, 无论任何一个Web框架,都需要具备下面一些基本功能:&/p&&p&&br&&/p&&p&&b&ORM(数据持久层)&/b&&/p&&p&让我们免于直接书写 select from 这样的语句。 有的同学问为什么, 当你见到100行的select from 的时候,你就会极度受不了这样的语法的。 Java中的框架叫 Hibernate. Rails中自带这个叫ActiveRecord.&/p&&p&&br&&/p&&p&&b&处理路由。&/b&&/p&&p&Java的第一个web框架Struts,05年红遍了大江南北。 它被人最推崇的地方,就是如何把一个 &/some_controller/action& 这样的URL, 交给对应的controller 和 action 来处理。 Rails中叫router, 可以认为更加简单方便。&/p&&p&&br&&/p&&p&&b&必要的表单辅助方法。&/b&&/p&&p&例如, &select& 标签,就是很复杂的东西。我曾经见到一个很著名的收费项目,没有使用表单辅助方法, 手写select标签, 写了8000多行。我都无语了。 COPY起来机器都卡。 而在rails中, 3行代码搞定。&/p&&p&&br&&/p&&p&&b&良好的页面渲染。&/b&&/p&&p&比如JSP, PHP, 都是这样。 在Rails中,我们使用erb. 可以很方便的在controller中定义变量, 在view中渲染。 也可以把公共的页面提取出来, 然后被其他页面公用。&/p&&p&&br&&/p&&p&&b&方便的单元测试。&/b&&/p&&p&当老板问起:“这个项目明天能上线吗?” 你的时候心是特别虚的。 但是,如果你有单元测试, 就可以先运行个命令(例如 $ rake tests)然后,告诉你的老板: “我们总共有300个单元测试, 通过了290个, 失败的10个不影响核心功能,我觉得明天可以上线”。 是不是就很专业?&/p&&p&&br&&/p&&p&&b&数据库迁移&/b&&/p&&p&这个可能刚入行的同学很少听说。 据我了解,在python, java中都比较少见。 只在Rails中见到。 这是对于“数据库的版本控制”。&/p&&p&我们在团队协同开发时,最大的问题是: 数据库容易不同步。 比较low的解决办法是把 sql文件放到代码仓库中,然后有了改动随时更新。&/p&&p&最好的办法, 是把数据库的变迁,使用代码来表示。 这样的话, 别人下载来代码, 运行个命令, 数据库就是最新的了。&/p&&p&&br&&/p&&p&&b&后端的组件大集合&/b&&/p&&p&下面是我梳理了过去十多年的项目,总结出来的最常见的web后端组件:&/p&&h2&1. 分页&/h2&&p&把结果集合按页显示。这个东东看起来常见, 实际上实现起来特别复杂。甚至专门有个论文: “分页设计模式”&/p&&p&在Rails中特别简单,使用 Karminari&/p&&h2&2. 上传图片&/h2&&p&后端处理上传的过程也极其常见:&/p&&ol&&li&处理request&/li&&li&保存到本地&/li&&li&生成各种尺寸的缩略图&br&等等。&/li&&/ol&&p&但是这么简单的东东在任何语言里面都很麻烦。&/p&&p&在Rails中, 使用 carrierwave&/p&&h2&3. 上传图片到云端CDN&/h2&&p&仅仅把图片上传到你的本地服务器还不够。 图片在北京服务器上,西藏的朋友访问起来是特别慢的。&/p&&p&最初 CDN只是极少数有财力的公司的专利。 现在越来越多的公司开始为平民提供服务了。 upyun就是其中一个。&/p&&p&ruby中的用法已经省略到几行代码了。 具体见 'upyun'的例子。&/p&&h2&4. 发送短信&/h2&&p&这个是最简单的技术。但是用的也最多。基本过程就是:&/p&&ol&&li&申请账号,充钱&/li&&li&添加个短信模板&/li&&li&使用代码向短信服务商发送请求。&/li&&li&短信就发送到了用户手机上。&/li&&/ol&&p&任何语言都可以很方便的实现它。 具体的短信提供商自行搜索吧。&/p&&h2&5. 所见即所得编辑器 WYSIWYG&/h2&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-6051c2cafff47f4549b4de_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1312& data-rawheight=&872& class=&origin_image zh-lightbox-thumb& width=&1312& data-original=&https://pic2.zhimg.com/v2-6051c2cafff47f4549b4de_r.jpg&&&/figure&&p&如果你的项目是 论坛,或者内容管理系统,那么就一定会用到它。&/p&&p&最著名的编辑器是 CKEditor。&/p&&p&虽然已经有人为大家做好了, 但是这个东东还是很复杂。&/p&&p&在Rails中使用的话, 记得用 'ckeditor' gem, 不要用 'ckeditor_rails' gem.&/p&&h2&6. 发送 HTTP请求的包&/h2&&p&虽然各种语言都有内置的发送HTTP请求的工具, 但是还是不如一些专门的第三方包好用。&/p&&p&Ruby中使用 HTTParty。&/p&&p&这些第三方包一定要满足几个特点:&/p&&ul&&li&可以发送RESTful请求&/li&&li&可以设置 timout等参数&/li&&li&可以记录 log&/li&&/ul&&h2&7. 良好的日志工具: log4j, log4r&/h2&&p&大家一定记住: 少用断点! 这个东东太low了。&br&一定要使用日志!&/p&&ul&&li&断点: 每次都得人肉运行。 无法把信息存留下来。&/li&&li&日志: 每次都会自动的记录下所有日志。 把信息写到某个文件中。&/li&&/ul&&p&我们在生产环境中, 永远会使用日志作为调试bug的工具。断点就是个玩具。在开发的时候用用还行。&/p&&p&举个例子: 在上亿用户的应用中, 每秒钟产生的log就几百屏。这个时候是没有机会给你时间打断点,一个变量一个变量的分析的。&/p&&p&所以,在优酷,每天会产生一个G的日志。 有了问题,我们都会在日志中分析。&/p&&h2&8. 要在恰当的时候使用配置项&/h2&&p&很多初学者会忽略这个问题, 配置项,有什么用?&/p&&p&下面一些东西必须提取出来:&/p&&ul&&li&调用的第三方的服务的域名&/li&&li&常见的系统常量&/li&&li&版本号等等&/li&&/ul&&p&千万不要把我们的后台服务器域名 分散的写在代码中。 曾经有个项目, 请求了后台120个接口, 每个接口的域名都是 &code&'http://yoursite.com/interface'&/code& ,如果它有个配置项, 就可以写成: &code&SERVER + '/interface'&/code&.&/p&&p&同学们, 配置项做起来容易,收效也大,大家务必重视起来!&/p&&p&ruby中的工具叫: rails-config&/p&&h2&9. 分析HTML&/h2&&p&可能一般的项目会用不到。 但是一旦用到,就会用的特别多。&/p&&p&我们这个时候,要对XML, HTML做分析的话,就得借助工具。否则用语言自带的分析XML 工具的话,会特别复杂。&/p&&p&这样的工具要:&/p&&ul&&li&支持 CSS selector&/li&&li&支持 各种常见的DOM操作&/li&&li&传统的XPATH也要支持。&/li&&/ul&&p&ruby中的工具叫 nokogiri.&/p&&h2&10. 普通登录 和 单点登录&/h2&&p&普通的登录,就是在某台特性的web应用中登录。 这个在传统语言中特别麻烦。 Java中的框架之前交Acegi. 现在好像被整合到了某个著名框架中。&/p&&p&总之, 需要对数据库中的用户进行密码验证, 还要有注册,解锁, 发送邮件,忘记密码等功能。 还要记录最后一次登陆IP。特别复杂。&/p&&p&Rails中的解决方案是Devise.&/p&&p&单点登录, 是让一个用户可以在多个不同的WEB应用中登陆。 需要在目标WEB应用中都添加一些配置,然后搭建一个单点登录服务器。&/p&&p&单点登录特别适合把一个大项目拆分成多个小项目。我曾经成功的把一个项目拆分成了20多个子项目。 各个项目之间还特别独立。&/p&&p&Ruby 中的单点登录服务器是 ruby cas.&/p&&h2&11. 定时执行的任务&/h2&&p&例如: 我要在每天的上午十点 发送一个提醒邮件。&/p&&p&Rails 中这个组件是 rufu-scheduler,下面是这个脚本的例子:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&scheduler.every '180s' do
# 每隔180s执行
scheduler.in '5s' do
# 5s时执行
scheduler.in '10d' do
# 10天时执行
scheduler.at ' 23:30:00' do
# 在某一个详细的时间段执行
&/code&&/pre&&/div&&h2&12. 延迟执行的任务&/h2&&p&跟“定时执行”不同, 延迟执行的任务的特点是:&/p&&ul&&li&不能马上执行&/li&&li&不能立刻结束&/li&&/ul&&p&常见的场景是: 我要发送一万封邮件。&/p&&p&如果一封一封的顺序发送, 那么估计要3个小时。&/p&&p&所以,解决方案是: 让十个或者更多进程(也叫worker)在后台发送邮件。每发送一个邮件,就是完成一个任务。 这十个进程每隔一段时间,就扫描一下任务表,看有没有任务要做。&/p&&p&ruby中的组件叫 DelayedJob&/p&&p&&br&&/p&&p&&b&知道软件工程的知识。&/b&&/p&&ul&&li&重构&/li&&li&单元测试&/li&&li&代码风格,代码的坏味道&/li&&li&设计模式&/li&&li&常见的实现模式&/li&&/ul&&p&同学们, 对于上面的概念, 如果面试官问到你这样的概念时, 千万不要不懂装懂。 对于新手, 你说不知道, 显得诚实。 我做面试官时, 最怕对方说:“重构,我知道呀! 就是重新构造代码么”。 一旦对方让你说说 重构的常见“手法”时, 就懵了。&/p&&p&所以, 对于上面几个概念,大家务必有时间要多看书。多学习!&/p&&p&&br&&/p&&p&&b&要知道自动化工具&/b&&/p&&p&&br&&/p&&p&&b&常见的工具&/b&&/p&&ul&&li&java中的: Ant, Maven, Ivy&/li&&li&c: Make&/li&&li&Rails: Rake,&/li&&li&javascript: npm, grunt&/li&&/ul&&p&&br&&/p&&p&&b&自动化的部署工具&/b&&/p&&ul&&li&Ruby: Capistran&/li&&li&Python: Fabric&/li&&/ul&&p&&br&&/p&&p&&b&测试的自动化工具&/b&&/p&&ul&&li&Selenium : 专门测试Web页面的工具。 可以实现对页面的各种操作。&/li&&li&Appium : 专门测试App的工具。 原理同 Selenium . 把人肉的操作过程使用代码记录下来,然后重现。&/li&&/ul&&p&这两个工具各位同学务必要学会! 然后在你的同事面前运行一下, 亮瞎他们的双眼。 ^_^&/p&&p&对于一些 持续集成的工具, 大家也要去学习(当然了, 要先学会单元测试,才能做持续集成)。 不过, 可惜的一点是,我无论在大公司, 还是小公司, 都没有遇到过做持续集成的朋友。 有些孤独。 侧面也反映出, 大家对于“实现代码” 和 “测试代码” 的平衡,不好掌握。&/p&&p&&br&&/p&&p&&b&一开始就要学习的: Linux, Vim, Git&/b&&/p&&p&虽然这三个技术我放在了文章末尾, 但是它们应该在你学习的第一天就出现。&/p&&p&对于点亮 .NET 和 IOS技能树的同学, 你们可以继续用Windows/Mac. 但是对于Java, Php, Android的同学, 赶紧用Linux!!! 因为,最后,你们的程序都要运行在Linux上的。&/p&&p&推荐大家使用 ubuntu (读音 乌班图,而不是 优版图) 桌面版。 目前最高版本是 16.04 LTS。 这个是最广泛的Linux.&/p&&p&推荐大家使用 win7 + ubuntu双系统。 这样对于新手比较友好。 不要使用虚拟机,特别卡。&/p&&p&&br&&/p&&p&&b&Vim&/b&&/p&&p&如果你开发的语言不是Java, Object C 这样的传统语言(需要编译), 而是 javascript, scala, Ruby, Python这样的动态语言,推荐使用VIM. 理由很简单:&/p&&blockquote&世界上只有三种编辑器: Vim, Emacs, 其他。&/blockquote&&p&同学们还是直接用Vim 吧。没那么花哨,极度好用。就是学习曲线略高。 一旦用上了,你身边的人看你敲键盘,完全是眼花缭乱的感觉。比鼠标流 效率高太多。&/p&&p&&br&&/p&&p&&b&版本控制工具: Git&/b&&/p&&p&不要用SVN. 过时了。&/p&&p&更不要用 CVS, VSS这样 的工具, 更加的过时。&/p&&p&使用Git。 使用命令行。 不要用图形化的工具, 也不要在IDE中使用GIT。&/p&&p&下面是必须掌握的Git命令:&/p&&p&clone, add, commit, push, pull, merge, branch&/p&&p&具体的大家自行查看吧。&/p&&p&&br&&/p&&p&&b&推荐唯一的一本书:《Pragmatic Programmer: 从小工到专家》&/b&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f54ba44ed495ebb90db26b4d7bf4e503_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&800& data-rawheight=&800& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/v2-f54ba44ed495ebb90db26b4d7bf4e503_r.jpg&&&/figure&&p&作者是 敏捷宣言的两个创始人。 世界顶级软件专家。&/p&&p&这本书05年9月左右开始,引领了我过去十一年的技术之路。充满了大量的方法论和安身立命的内容。 大家务必学习。 我过去读了好多本书,很多书是我一年就可以翻完的(因为已经具备了相应的知识和丰富的经验)。但是,这本书是特别少有的让人每次读起来都有收获的书。&/p&&p&通篇没有几行代码, 都是文字,但是句句经典。&/p&&p&&br&&/p&&p&&b&你要有自己的个人博客!&/b&&/p&&p&作为一个互联网程序员,你务必要有自己的博客或者个人网站。 比如 &a href=&https://link.zhihu.com/?target=http%3A//siwei.me/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://siwei.me&/a& 就是我最好的名片。好多朋友和机会都是从我的个人网站找到我的。&/p&&p&写技术博客很简单,你不需要长篇大论。 我每天写博客,无非就是把自己每天遇到的问题和想法记录下来。 一般来说不超过20行。 有的时候甚至就几十个字。但是它一旦被记录下来,你翻阅起来就特别方便。不需要去翻源代码了。&/p&&p&&br&&/p&&p&&b&程序员的知识很复杂的,不是看几本书就够的。&/b&&/p&&p&软件开发不是一个特别系统的学科。 它的内容特别繁杂。 我梳理了过去5年我写的上千篇文章,发现工作中用到的内容,是一个大杂烩: 有app端,有H5端,有语言层面,也有服务器层面,有脚本,还有方法论,如何梳理需求,各种工具,等等等等。&/p&&p&所以,大家不要认为, 我学了一本书,(某某开发指南)我就立马是个前端开发好手了。大家不要把自己限定成 前端 或者 后端; 也不要对自己说我就是一个java程序员, 我才不学PHP呢。&/p&&p&你一定要做一个全栈好手,需要你做什么你就能顶上!&/p&&p&&br&&/p&&p&&b&结语&/b&&/p&&p&没想到会写这么多,不过还有很多东西没能特别详细的说明。 一家之言,我的观点与市面上流行的不太一致。 但是作为行业老兵,我坚持自己的观点。&/p&&p&希望对大家有用。祝各位同学顺利!&/p&&p&&br&&/p&&p&作者: 申思维 &/p&&p&链接:&a href=&https://link.zhihu.com/?target=https%3A//www.imooc.com/article/12768%23child_7_1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&imooc.com/article/12768#&/span&&span class=&invisible&&child_7_1&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&来源:慕课网&/p&&p&本文原创发布于慕课网 ,转载请注明出处,谢谢合作!&/p&
先跟大家说一个事实:我公司招聘(小初创公司 )的时候, 曾经一个星期收到一千封简历: 600 IOS, 200 安卓, 200 美工。 95%都是应届生。前些天跟几个培训机构的朋友聊天, 大家也纷纷表示, IOS现在工作不好找。所以, 各位同学务必记住: 全栈开发才是…
&figure&&img src=&https://pic4.zhimg.com/v2-33a31b9ef36b963daffcf6_b.jpg& data-rawwidth=&601& data-rawheight=&297& class=&origin_image zh-lightbox-thumb& width=&601& data-original=&https://pic4.zhimg.com/v2-33a31b9ef36b963daffcf6_r.jpg&&&/figure&在五个月之前写了篇文章 &a href=&https://zhuanlan.zhihu.com/p/?refer=passer& class=&internal&&程序员常用的技术网站&/a& |
转眼间五个月过去了。五个月后的今天我打算写一篇程序员常用的刷题网站。&p&为什么要刷题呢?&/p&&ul&&li&巩固提高自己的基础编程知识水平&/li&&li&增加面试过程中的自信心&/li&&li&幸运的是:很多时候面试笔试题目你刷过&/li&&/ul&&p&总结下来就是:&b&刷题可以在提高自己编程能力的时候,增加拿到好offer的机会。&/b&&/p&&p&下面这些网站,可以给你提供很多的编程类的题目让你去练习,只要你耐心的去练习,明白所碰到的题目其背后的原理,那么相信你的编程能力将会得到一个质的飞跃。&/p&&p&(一)&a href=&https://link.zhihu.com/?target=https%3A//leetcode.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LeetCode Online Judge&/a&&/p&&p&LeetCode OJ is a platform for preparing technical coding interviews. Pick from an expanding library of more than &i&190&/i& questions, code and submit your solution to see if you have solved it correctly. It is &i&that&/i& easy!&/p&&p&Our platform currently supports a total of 9 languages: C, C++, Java, Python, C#, JavaScript, Ruby, Bash, MySQL.&/p&&figure&&img src=&https://pic2.zhimg.com/v2-42bbaaff050c212fb010b_b.jpg& data-rawwidth=&1366& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/v2-42bbaaff050c212fb010b_r.jpg&&&/figure&&p&同时这里有不错的解答:&a href=&https://link.zhihu.com/?target=http%3A//blog.csdn.net/column/details/leetcode-solution.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&专栏:LeetCode题解 - 博客频道 - CSDN.NET&/a&&/p&&p&(二)&a href=&https://link.zhihu.com/?target=http%3A//vjudge.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Virtual Judge&/a&&/p&&p&Virtual Judge is not a real online judge. It can grab problems from other regular online judges and simulate submissions to other online judges. It aims to enable holding contests when you don't have the test data.&br&&br&Virtual Judge currently supports the following online judges:&figure&&img src=&https://pic4.zhimg.com/v2-33a31b9ef36b963daffcf6_b.jpg& data-rawwidth=&601& data-rawheight=&297& class=&origin_image zh-lightbox-thumb& width=&601& data-original=&https://pic4.zhimg.com/v2-33a31b9ef36b963daffcf6_r.jpg&&&/figure&(三)&a href=&https://link.zhihu.com/?target=https%3A//www.codewars.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Codewars: Train your coding skills&/a&&/p&&p&Designed to test coding skills using challenges with real-world relevance. Qualified helps to make it easier to test larger, more complex challenges without manually reviewing and scoring every submission.&/p&&p&We provide an IDE with integrated test frameworks for each language (Mocha, RSpec, PHPUnit, JUnit, etc). These unit-tests drive our auto-scoring and allow students to try their code before making a submission.&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-6cce62d0c404cbb7971ef_b.jpg& data-rawwidth=&1366& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic3.zhimg.com/v2-6cce62d0c404cbb7971ef_r.jpg&&&/figure&(四)&a href=&https://link.zhihu.com/?target=http%3A//www.geeksforgeeks.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Geeksforgeeks&/a&&/p&&p&How many times were you frustrated while looking out for a good collection of algorithm、programming、interview questions?&/p&&p&What did you expect and what did you get? This portal has been created to provide well written, well thought and well explained solutions for selected questions.&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-713be0da3384_b.jpg& data-rawwidth=&1366& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic4.zhimg.com/v2-713be0da3384_r.jpg&&&/figure&(五)&a href=&https://link.zhihu.com/?target=https%3A//www.codeeval.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Coding Challenges for the World's Best Developers&/a&&/p&&p&CodeEval is a community of the world's top developers to practice and compete on code challenges. Build our your developer profile and see where you rank&figure&&img src=&https://pic1.zhimg.com/v2-ffdddd1a9cbfab4cd78c_b.jpg& data-rawwidth=&1366& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic1.zhimg.com/v2-ffdddd1a9cbfab4cd78c_r.jpg&&&/figure&&/p&&p&(六)&a href=&https://link.zhihu.com/?target=https%3A//www.topcoder.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Deliver Faster through Crowdsourcing&/a&&/p&&p&Deliver faster for your business through crowdsourcing.&br&&/p&&p&With a community of over 1,000,000 design and technology experts, Topcoder provides on-demand capability, bandwidth, and velocity so you can do more.&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-74ed3db08b170b5f34cb2_b.jpg& data-rawwidth=&1366& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic4.zhimg.com/v2-74ed3db08b170b5f34cb2_r.jpg&&&/figure&&p&所以给了这么多刷题的网站,还不动起来?&br&&/p&&br&&b&学习编程,欢迎关注专栏:&a href=&https://zhuanlan.zhihu.com/passer& class=&internal&&学习编程 - 知乎专栏&/a&&/b&
在五个月之前写了篇文章
| 转眼间五个月过去了。五个月后的今天我打算写一篇程序员常用的刷题网站。为什么要刷题呢?巩固提高自己的基础编程知识水平增加面试过程中的自信心幸运的是:很多时候面试笔试题目你刷过总结下来就是:刷题可…
&figure&&img src=&https://pic1.zhimg.com/v2-1fd88bbe11ec52a2d31d_b.jpg& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/v2-1fd88bbe11ec52a2d31d_r.jpg&&&/figure&3个月以前在知乎上回答一个问题&a href=&https://www.zhihu.com/question//answer/& class=&internal&&【有哪些能集实用,装逼于一身的冷门网站?】&/a&得到很多小伙伴的喜爱,一直到现在都还陆陆续续收到大家的赞,谢谢大家。&p&于是,我就想,现在有了专栏,干脆把这个回答写成一篇文章吧,当然肯定不是原封不动的摘抄过来,我会再添加一些比较小众但很实用的网站,希望可以给大家一些参考和帮助。&/p&&p&---&/p&&br&&br&以下是我在该问答下的回答,共分享了8个网站:&br&&br&啊,看到上面分享了好多比较酷炫的网站,好多都放进我的收藏夹了,(*^__^*) 嘻嘻……看的我也忍不住想分享了,因为是IT行业,所以分享几个我收集的比较实用而且酷炫的网站O(∩_∩)O~&br&&br&&b&1.&a href=&https://link.zhihu.com/?target=https%3A//netsmell.com/apps/helloworldcollection/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&“Hello World”大全&/a&&/b&&br&&br&网站一共收集了大约481种“Hello World”程序,差不多涵盖了目前已知的所有编程语言,比较有趣好玩,很多语言可能都没有听过。&br&&figure&&img src=&https://pic3.zhimg.com/d7bd509bb9f49dd5b8cd64a6290cfb33_b.jpg& data-rawwidth=&1553& data-rawheight=&914& class=&origin_image zh-lightbox-thumb& width=&1553& data-original=&https://pic3.zhimg.com/d7bd509bb9f49dd5b8cd64a6290cfb33_r.jpg&&&/figure&&br&&b&2.&a href=&https://link.zhihu.com/?target=https%3A//fontawesome.io/cheatsheet/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Font Awesome Cheatsheet&/a&&/b&&br&&br&Font Awesome图标,不多说,开发和设计都会用到。&br&&figure&&img src=&https://pic1.zhimg.com/ca15bd6c726e16733eaf5_b.jpg& data-rawwidth=&1175& data-rawheight=&888& class=&origin_image zh-lightbox-thumb& width=&1175& data-original=&https://pic1.zhimg.com/ca15bd6c726e16733eaf5_r.jpg&&&/figure&&br&&b&3.&a href=&https://link.zhihu.com/?target=https%3A//www.shiyanlou.com/courses/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&实验楼 - 国内领先的IT技术实训平台&/a&&/b&&br&&br&一个拥有在线开发环境的IT学习网站,各种在线开发环境啊!!各种在线开发环境啊!!各种在线开发环境啊!!&br&&figure&&img src=&https://pic4.zhimg.com/9d8cdceba478417dca19b5b_b.jpg& data-rawwidth=&1919& data-rawheight=&915& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic4.zhimg.com/9d8cdceba478417dca19b5b_r.jpg&&&/figure&&br&&b&4.&a href=&https://link.zhihu.com/?target=http%3A//netsmell.com/post/pathfinding.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&动画展示各种路径搜索算法&/a&&/b&&br&&br&我觉得还蛮有趣的,直观的感受路径搜索算法;&br&&figure&&img src=&https://pic2.zhimg.com/e32beadabd9_b.jpg& data-rawwidth=&1877& data-rawheight=&900& class=&origin_image zh-lightbox-thumb& width=&1877& data-original=&https://pic2.zhimg.com/e32beadabd9_r.jpg&&&/figure&&br&&b&5.&a href=&https://link.zhihu.com/?target=https%3A//mostexclusivewebsite.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Most Exclusive Website&/a&&/b&&br&&br&网站每次只允许一个人访问,而且只能访问网站60秒,已经有超多人排队了,你可以试试~当然这个可能并不一定实用,但是还觉得蛮好玩的。&br&&figure&&img src=&https://pic4.zhimg.com/d9a411addb3bbb56b373_b.jpg& data-rawwidth=&1178& data-rawheight=&850& class=&origin_image zh-lightbox-thumb& width=&1178& data-original=&https://pic4.zhimg.com/d9a411addb3bbb56b373_r.jpg&&&/figure&&br&&b&6.&a href=&https://link.zhihu.com/?target=https%3A//www.it-ebooks.info/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&IT eBooks - Free Download&/a&&/b&&br&&br&可以下载IT电子书籍的网站,英文;&br&&figure&&img src=&https://pic3.zhimg.com/f3ad44a09aa1f93f2c3fa4_b.jpg& data-rawwidth=&1019& data-rawheight=&889& class=&origin_image zh-lightbox-thumb& width=&1019& data-original=&https://pic3.zhimg.com/f3ad44a09aa1f93f2c3fa4_r.jpg&&&/figure&&br&&b&7.&a href=&https://link.zhihu.com/?target=https%3A//overapi.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Collecting all the cheat sheets&/a&&/b&&br&&br&这个网站可以查询到所有与编程相关的各种技术,并给出详细的知识点;&br&&figure&&img src=&https://pic3.zhimg.com/28e25b2bdb436c3b686d06c8e25d0e8b_b.jpg& data-rawwidth=&941& data-rawheight=&857& class=&origin_image zh-lightbox-thumb& width=&941& data-original=&https://pic3.zhimg.com/28e25b2bdb436c3b686d06c8e25d0e8b_r.jpg&&&/figure&&br&&b&8.&a href=&https://link.zhihu.com/?target=https%3A//devdocs.io& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&DevDocs API Documentation&/a&&br&&/b&&br&这是一份综合类的在线API列表,很全,方便查找。&br&&figure&&img src=&https://pic3.zhimg.com/ae624f795ee7afd331b50_b.jpg& data-rawwidth=&1305& data-rawheight=&913& class=&origin_image zh-lightbox-thumb& width=&1305& data-original=&https://pic3.zhimg.com/ae624f795ee7afd331b50_r.jpg&&&/figure&&br&---&br&&br&下面再添加一些比较小众,但也比较有趣或者有用的网站。&br&&br&&b&1.&a href=&https://link.zhihu.com/?target=http%3A//geektyper.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GEEKTyper.com&/a&&/b&&br&&br&一个在线模拟黑客工作的虚拟桌面系统,提供多种黑客工作的场景,就像是我们在电影里看到的黑客是如何操作电脑和进行代码录入的。伪装成黑客的网站啊,不一定有用但肯定有趣,我想所有程序员都想试试吧,毕竟成为一个黑客还是很酷炫的啊。&br&&figure&&img src=&https://pic2.zhimg.com/v2-6bceea386db2e_b.jpg& data-rawwidth=&1915& data-rawheight=&934& class=&origin_image zh-lightbox-thumb& width=&1915& data-original=&https://pic2.zhimg.com/v2-6bceea386db2e_r.jpg&&&/figure&&b&2.&a href=&https://link.zhihu.com/?target=http%3A//www.codewars.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&codewars&/a&&/b&&br&&br&Codewars是一个刷题网站,使用者可选择所学技术领域不断实战答题挑战,而且它的奖励系统激励程序员们像打游戏升级一样地做习题。&br&&figure&&img src=&https://pic1.zhimg.com/v2-229dc629ed75415efc0a2e_b.jpg& data-rawwidth=&1726& data-rawheight=&879& class=&origin_image zh-lightbox-thumb& width=&1726& data-original=&https://pic1.zhimg.com/v2-229dc629ed75415efc0a2e_r.jpg&&&/figure&&br&&b&3.&a href=&https://link.zhihu.com/?target=https%3A//github.com/justjavac/free-programming-books-zh_CN& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&免费的计算机编程类中文书籍&/a&&/b&&br&&br&其实这个算不上小众,但是我认为非常有用,免费的中文书籍诶,随时可以看,所以也放进来了。&br&&figure&&img src=&https://pic1.zhimg.com/v2-25de3b6f02e134e8be5db5_b.jpg& data-rawwidth=&531& data-rawheight=&842& class=&origin_image zh-lightbox-thumb& width=&531& data-original=&https://pic1.zhimg.com/v2-25de3b6f02e134e8be5db5_r.jpg&&&/figure&&br&这里还有英文的:&br&&br&&b&4.&a href=&https://link.zhihu.com/?target=https%3A//github.com/vhf/free-programming-books/blob/master/free-programming-books.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&free-programming-books&/a&&/b&&br&&br&分享了大量免费的编程书籍,比上面分享的中文版的编程书籍要全要多,不过都是英文的;&br&&figure&&img src=&https://pic1.zhimg.com/v2-932ccc5be0e718f88fba75e_b.jpg& data-rawwidth=&302& data-rawheight=&757& class=&content_image& width=&302&&&/figure&&br&&br&&b&5.&a href=&https://link.zhihu.com/?target=http%3A//www.theworldsmostexclusivewebsite.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The World's Most Exclusive Website&/a&&/b&&br&&br&一个独特神秘的网站。基本上,该网站允许用户访问的级别是基于你在Twitter上的追随者有多少。它一共拥有10个房间。要进入“室1”,你需要是一个经过验证的Twitter用户。要进入“室2”,你需要有至少5000个追随者。级别越高,要求也就越高。也是世界上最容易被破解的。我们技术娴熟的一个读者甚至无需登录Twitter,只花费了不到60秒的时间便查看到该网站的所有页面。&br&&figure&&img src=&https://pic1.zhimg.com/v2-99c97e193df5ffc0ea416b6f1c151169_b.jpg& data-rawwidth=&1117& data-rawheight=&824& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&https://pic1.zhimg.com/v2-99c97e193df5ffc0ea416b6f1c151169_r.jpg&&&/figure&&b&6.&a href=&https://link.zhihu.com/?target=http%3A//www.oreilly.com/programming/free/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&oreilly Free Programming Ebooks&/a&&/b&&br&&br&ORielly 的免费电子书,有需要的童鞋可以免费下载,虽说免费的书籍文章前面已经有过介绍了,但是书籍嘛,还是免费的,是很有用的。&br&&figure&&img src=&https://pic2.zhimg.com/v2-fdc2c5cdfb56bcc40847_b.jpg& data-rawwidth=&851& data-rawheight=&902& class=&origin_image zh-lightbox-thumb& width=&851& data-original=&https://pic2.zhimg.com/v2-fdc2c5cdfb56bcc40847_r.jpg&&&/figure&&b&7.&a href=&https://link.zhihu.com/?target=http%3A//www.pythonchallenge.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Python Challenge&/a&&/b&&br&&br&是一个基于Python语言的闯关挑战游戏,每一关给出一个Python相关的图片,闯关者需要解答问题之后才能跳转到下一个关卡,还蛮有趣的,Python学习者可以看看。&br&&figure&&img src=&https://pic4.zhimg.com/v2-1ed328ff4a1b_b.jpg& data-rawwidth=&793& data-rawheight=&904& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic4.zhimg.com/v2-1ed328ff4a1b_r.jpg&&&/figure&&b&8.&a href=&https://link.zhihu.com/?target=https%3A//regexper.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Regexper&/a&&/b&&br&&br&一个正则表达式的可视化开源工具,直接输入正则表达式就能用可视化显示出来,只需要把你的表达式输入进去,就有可视化的图形。&br&&figure&&img src=&https://pic3.zhimg.com/v2-779ba7a9b09c4d922df85_b.jpg& data-rawwidth=&1910& data-rawheight=&391& class=&origin_image zh-lightbox-thumb& width=&1910& data-original=&https://pic3.zhimg.com/v2-779ba7a9b09c4d922df85_r.jpg&&&/figure&---&br&&br&以上了就是我整理的16个相对来说比较小众,但是对程序员来说却有趣或者有用的网站,如果你还有其他相关网站,评论出来啊,我随时更新上来,大家共同学习嘛。
3个月以前在知乎上回答一个问题得到很多小伙伴的喜爱,一直到现在都还陆陆续续收到大家的赞,谢谢大家。于是,我就想,现在有了专栏,干脆把这个回答写成一篇文章吧,当然肯定不是原封不动的摘抄过来,我会再添…
&p&趁过年休整回答一下,主要说读博,对计算机学科(非理论方向)有效。&/p&&p&直博一般五年甚至更长,几乎朝夕相处,如果互相看着碍眼,是件很折磨人的事儿,无论对导师还是对学生。靠谱的导师对选择学生很慎重,这就像谈恋爱,最合适的才是最好的。&/p&&p&我总结导师主要从三大方面衡量同学:(1)学科基础,主要是学业成绩、编程能力等;(2)学术潜力,主要是科研热情、研究基础、文献阅读能力等;(3)综合能力,主要是人品、踏实与否、主动性、合作意识等,一言蔽之就是靠谱与否。不同老师对这三方面的权重不尽相同,但基本大差不离。&/p&&p&其中(1)可以通过竞赛经历+成绩单得知;(2)可以通过实习经历+论文发表情况得知,而(3)则有微妙之处,很多老师往往会在招到一个“不靠谱”的学生大伤脑筋之后,开始痛定思痛重视这方面。&/p&&p&老师们一般通过以下方式了解同学:长时间的面试,或向该生学校熟人打听。而有条件的话,老师们会更加信任以下渠道认识的同学:(1)在组里呆了足够久的同学;(2)其他老师鼎力推荐的同学;(3)组里研究生鼎力推荐的学弟学妹。这些方式都有足够可信的信源为该生的综合能力背书。&/p&&p&所以给希望寻找读博机会的同学的建议是,要寻找足够可信的渠道,让候选导师相信你能与他/她愉快地共事五年,或者是到实验室访问亲自证明,或者是请了解自己的老师/学长推荐。&/p&&p&再多说一句,其实读博是个双向选择的过程,同学也应该充分占有各种资料,选择真正喜欢的方向和合适的导师,才对得起这五年的宝贵读博时间。&/p&
趁过年休整回答一下,主要说读博,对计算机学科(非理论方向)有效。直博一般五年甚至更长,几乎朝夕相处,如果互相看着碍眼,是件很折磨人的事儿,无论对导师还是对学生。靠谱的导师对选择学生很慎重,这就像谈恋爱,最合适的才是最好的。我总结导师主要从…
已有帐号?
无法登录?
社交帐号登录
105 人关注
12324 人关注
316 条内容
129 人关注
418 条内容
489 人关注
104 条内容
437 人关注
507 条内容

我要回帖

更多关于 jq 获取当前选择器 的文章

 

随机推荐