A. 怎么成为一名程序员,要从哪里开始学起,先学什么在学什么
答:
首先你要清楚程序员也分很多种,从语言分,有C,C++,C#,java,Delphi等等,你要考虑好弄自己向哪部分发展。
一般如果没什么理解可以从C语言学起,因为C语言比较贴切于机器语言,大学里面一般也都是先学C的,学好了C语言,可以触类旁通,更容易学其他的语言。
2.Java据说是现在最热门的(所有程序员都觉得自己用的那个语言最牛逼),IOS或者android学了可以做手机软件哦,Delphi和C#是用控件拖出自己想要的结果,然后在后台写代码的,不过有人说Delphi相对落伍了,但好些大公司还是在用Delphi来搭框架的。
3.选定好语言后,如果觉得自己理解能力动手能力超强的话,自己买本入门的书,或者网上看些教学视频,边看边实践。不过这个对于初学者来说真的挺难的,因为第一次的话,可能连环境都搭不好,用来编程的软件对初学者来说还是蛮麻烦的一种软件,不是这个不行,就是那个设置错了,或者连一些基础的窗口啊工程啊项目啊的概念都没有,网络起来又要答案一个一个看,浪费时间。而且还要自己搭数据库啊什么的,真的很难。有老师教的时候,还能挂科一大片的。不过入门了,之后就简单了,自己随便找本书,学学代码用法啊,照着打就可以了。
拓展资料:
程序员(英文Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
网络词条 程序员
B. 自学程序员的步骤
1、自学算法。因为编程语言实现了它们自己的排序和搜索,所以自学成才的程序员总是倾向于学习如何使用它们,而不是去了解它们的工作原理。
2、自学计算理论。这是关于计算机如何解决问题,以及编程语言如何构建的一门科学。从有限状态机到 Λ 演算,在这一类中,有一大堆重量级的主题。
3、自学纯数学。传统的计算机科学涉及范围广泛的重要数学主题,包括线性代数、微积分、概率论和统计学。
4、自学大〇符号法(Big O notation)。这个改编自数学领域的工具,让开发人员能够描述并比较不同算法的整体性能。
很多新手都是初生牛犊不怕虎,因为不了解编程领域,便不假思索地定了一些很高的目标,比如想进大厂,想做有复杂度的项目,想短时间学习一门语言并找到工作。
理想非常充实,而现实却很骨感。可能低估了进入该行业的难度。不是您可以仅凭意图快速完成学习过程的。
一定要先易后难,一步一来,例如,首先了解语法,尝试编写一个demo,接着了解高级特效,实现高级特性,然后自己脱离教程写一些代码,最后做项目,大概是这样的一个逻辑。
实际上,对于新来者来说,完成这些步骤并不容易。别看学习基本语法并不难,但是如果想入门,可能会遇到很多问题,例如环境配置在安装和使用IDE之后,代码语法错误,编译错误和执行 错误对于新手来说很难解决。如果不借助外力,基本上是无从下手的。
C. 北京一位程序员自制700集免费教程获奖,这位程序员为何这么做
根据新闻的报道可以发现,有一位80后程序员自制了700多集免费的教程,并且获得了奖项,那么在这种情况之下也引起了不少人的关注,并且也引发了很多人的好奇,这一位程序员为什么会做出这样的事情?为什么会把自己的经验免费地分享给大家呢?相信有不少朋友对于这个问题也是非常的感兴趣。
只有每一个人在做事情的时候,都为其他人着想才能够让我们的社会变得更加和谐,更加美好,而在这一个过程中也能够让我们看到人性的光辉,让我们对于整个社会变得更加有信心,所以我们也希望作为程序员的精神能够感染更多的人,让越来越多的人在生活之中,愿意对其他人提供帮助。
D. 程序员教程高等教育出版社与程序员教程清华大学出版社哪个好
作,要成为一个高水平的程序员尤为艰难。这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理解和消化。首先编程本身就依赖于英语,虽然现在技术的发展,可以使得某些开发工具在变量名和字段名中支持中文,但还未发现能够完全使用中文的编程语句。其次,软件开发中的技术文档和资料大都是来自英文,即使有翻译好的,不是晦涩难懂,就是译法混乱,比如:roll back就有"回滚"、"回退"、"返回"、"重算"等多种译法,又如我们遇到翻译后的术语"域",往往不清楚译者是根据"field"、"region"还是"domain"所译(如果阅读原文则不存在这些问题)。还有更重要的一点,这就是等待译文会严重影响我们掌握新技术的时间。通常,一本外版计算机图书从获得版权到翻译出版要一年的时间。就算原作者消化新技术和写作的时间最短为一年,那么加起来这已经超过通常软件版本的更新周期(软件版本的更新周期一般是1年至2年),这意味着当你通过阅读翻译资料掌握这一版本的软件时,可能该版本已经淘汰至少是面临淘汰。当然,这并不是说国内没有好的译者和译文,也不是说不能通过阅读译文来进行学习。而是说通过别人翻译的间接阅读风险较大,如果能掌握计算机英语,利用第一手原文资料进行学习,除了效率之外,被误导的风险较小。比如:国内引进的一部外版好书《Java编程思想》(原书名《Think in Java》),其翻译水平较差,就严重影响了阅读和学习,不少读者深有体会。如果读着有着过硬的计算机英语水平就可以按照书上提供的作者网址下载原文阅读,不但可以获得原汁原味的感受,还可以免费下载该书最新的第二版(据悉机械工业出版社已经取得该最新版本的版权,但该书要到2001年上半年才能面市)。
因此,我们可以得出这样的结论,干程序员这行实在是离不开英语。实际上,可以毫不夸张地说英语是IT的行业语言。由于英语的优势,印度、爱尔兰等国的软件业在国际上比我们更有竞争力,这并不是说我们的程序员在编程和开发能力上不如别人,而是在使用计算机英语水平上差距太大。不久前在南京举办的一次高规格的软件开发交流会上,就遇到过印度专家讲课,英文翻译译不下去的情景,因为太多的IT专用术语和缩略语以及很强的专业知识使得没有计算机背景的英语专业翻译无能为力,而在场的开发人员因为语言障碍又无法和印度专家直接沟通,错过了一次极好的交流学习机会。现在,已经有越来越多的程序员意识到计算机英语的重要性了,这种压力一方面来自进一步向高级程序员或资深IT开发人员发展的需要,一方面来自于后起之秀不断竞争的威胁。对于前者,没有较好的计算机英语,能难进一步发展,晋升到更高的技术职位;对于后者,不少大学已经开始使用原版教科书进行专业授课,毕业生的计算机英语水平实在是后生可畏,挑战是不言而喻的。
那么,一个程序员应该怎样去学习和掌握计算机英语呢?是立即开始背英汉计算机字典还是先考完6级再考"托"考"G"?其实,在下定决心之后最关键的是要搞清6个W,即:为什么学(why)、学什么(what)、怎样学(how)、何时学(when)、何处学(where)、跟谁学(who)。下面我们就谈一谈这6个W。
首先是为什么要学计算机英语。几乎所有的程序员都知道学习计算机英语的重要性,但并不是所有人都具有学习的主动性。这个问题的提出就是要让我们从自身的需求出发,掌握学习的主动性。一旦你有强烈的学习动机,任何学习上的困难都不会认你屈服,而你的每一点进步都将给你带来无比自豪的感觉。
学什么,是死背单词?还是猛抠语法?其实都不是。计算机英语的学习是一项系统工程,需要找到一个适合自己的学习目标,并从词汇、语法、阅读、写作多方面去融汇贯通。用程序员的术语讲,"学什么"的问题本质上是一个"确定系统边界"的问题。应为学习计算机英语是一个很宽泛的概念,若不根据个人的具体情况进行定义,恐怕难以有一个可以管理学习目标。无目标的或边界不清的项目往往是失败的项目,在学计算机英语的问题上也是一样。因此,我们先要根据自己的实际英语水平和工作需要界定计算机英语学习的系统边界。关于实际英语水平,我们可以简单地以大学非英语专业的英语教育作为参考,以通过大学英语四级考试(CET4)作为基线,即如果你通过了CET4,则表明你的英语水平为中高级,词汇量接近5千,不存在基本的语法问题,有一定的读写能力;如果你没有通过CET4,则表明你的英语水平为初中级,词汇量不足4千,可能存在一些语法问题,读写能力较弱。关于工作需要,我们可以将计算机英语学习对象划分成计算机研发人员、泛IT人员。其中计算机研发人员是指从事计算机研究和开发的专业人员,他们又划分为软件研发和硬件研发,显然程序员是属于前者。计算机研发人员要掌握的计算机英语最专业,要求最高,但软件硬件各有侧重。泛IT人员是指在IT行业从业的或与IT行业有密切联系的那些非研发人员,包括操作使用人员、技术管理人员、支持服务人员等等。不难看出,泛IT人员对计算机英语的要求不是太高,也不太专业,一般能够使用英文界面的软件,能够阅读原版的操作手册和说明书即可。针对以上的划分,我在下表中大致给出了计算机英语的学习目标:
表1 计算机英语的学习目标
初中级 中高级
泛IT行业人员 掌握计算机英语的基本术语;
了解计算机英语中常用的语法和惯用法;
能借助字典阅读英文界面和在线帮助以及简单的操作手册,阅读熟读在70-90词/分钟。 掌握计算机英语的常用术语和缩略语; 掌握计算机英语中语法和惯用法的表达方式和功能;
能借助字典阅读英文文档和技术资料,阅读熟读在100词/分钟以上;
能使用英文编写简单的文档。
计算机研发人员 掌握计算机英语的常用术语和缩略语;
熟悉计算机英语中的语法和惯用法;
能阅读英文界面和在线帮助以及简单的操作手册,阅读熟读在80-100词/分钟。 掌握大量的计算机英语术语和缩略语;
熟练掌握计算机英语中语法和惯用法的表达方式和功能;
能阅读英文文档和技术资料,阅读熟读在100词/分钟以上;能借助字典翻译专业技术图书。
能使用英文编写简单的技术文档和程序注释。
知己知彼,百战不殆。在了解了学习计算机英语的一般要求之后,接下来就需要对自己的具体情况进行具体分析,制定一个学习计划或简单地定一个学习方向。作为程序员学习计算机英语的根本目的是为了提高自己在英语环境中掌握计算机技术的能力,所以学习的内容应该是围绕本专业的领域展开。对于没有上过计算机专业英语课程的程序员来说,学习的重点应该是掌握专业词汇和术语,了解计算机英语的一些规范译法和习惯用法。对于有一定计算机英语基础的程序员则应该把重点放在提高阅读速度和阅读质量上,并逐渐习惯使用英语注释程序撰写文档。
在明确学习目的和学习方向之后,还必须有一个好的学习方法,"怎样学"就是一个学习方法问题。这其中还包含了何时学、何处学、跟谁学等一系列问题。
在这里我建议把短期的系统学习和长期的日常学习结合起来,这样做的效果最好,也最科学。所谓短期的系统学习是指集中一段时间系统地学习计算机英语,这对于没有参加过大学计算机英语课程学习程序员尤为重要。而日常的学习则是指在日常工作用有意识地多接触和多使用计算机英语,边用边学,持续不断地积累提高。下面我就从这两个方面来具体谈一谈。
要系统地学习计算机英语,最好是参加专门的计算机英语课程培训班。培训班的选择非常重要,好的老师、成功的办学经验和系统的课程设置都是选择的重要依据。然而大多数程序员工作繁忙,可能采取的方式多是自学了。如果不能选择一位好老师,那就只能选择一本好教材了。一本好的计算机英语教材对系统地学习计算机英语帮助极大。目前市面上的计算机英语教材多达30种,在选择教材时不少程序员往往无从下手,大家不妨从以下几方面进行考虑:
教材的难易程度--对于不同学历层次有不同的教材,选择教材是一定要看清该教材的培训对象是中专、大专、本科还是研究生。选择难易程度适合自己的教材,太简单则不利于提高、太难则容易使学习受挫。
教材的专业侧重--有的计算机英语教材偏重于硬件,有的偏重于软件,还有的教材是信息电子类的计算机英语,侧重于通信电子方面,比如:汇编语言、单片机等。另外有的教材侧重于理论,如:数据结构、离散数学;而有的则侧重于应用,如:软件工程、数据库开发。所以程序员在选择计算机英语教材时,应仔细察看书中的内容,以免偏离软件开发的实际工作需要。
教材的体系结构--目前计算机英语教材主要分为按语法体系组织和按计算机体系组织的两种结构。如果你是初中级的英语水平建议使用前者,如果你是中高级的英语水平建议使用后者。
教材的易用性--教材的易用性是指教材的编排是否符合人们的学习习惯。虽然计算机英语是专业课程教材,但如果编排活泼、图文并茂、注解查阅方便肯定能调动学习的兴趣,降低阅读的难度。这方面国内的教材应该多向国外的教材学习。
然而国内许多大学的计算机英语课程作为专业英语教学起步较晚,而早期出版的计算机英语教材大多出自于任课老师收集的计算机英文资料,教材规划不够系统,编排也比较简单。这些教材虽然使用的学校较多,为早期的计算机英语教学做出过不可磨灭的贡献,但致命的弱点是内容陈旧、与时代脱节。最典型的代表是清华大学出版社的《计算机英语》,该书最新版本是1997年更新的,里面还充斥着Dos这样的陈旧内容。有些老师苦于没有新颖实用的计算机英语教材,于是一本国外的计算机入门读物《Computing Essentials》(McGraw-Hill出版公司)被许多大学选用为计算机英语教材,效果极佳。这本书现在已经由高等教育出版社影印发行,书名是《计算机专业英语》。该书的特点是:时效性强(版本更新快),新颖实用,编排活泼。但对于中高级英语水平的专业开发人员未免有点太浅。
我们在分析和研究了市面上大量计算机英语教材的基础上,又结合计算机英语教学和学习经验,编写了一本非常适合于软件开发人员的《计算机英语》,该书已经由机械工业出版社出版,是该社"重点大学计算机教材"系列中的一本。需要说明的是该书最适合的读者对象为英语达到CET4的程序员,因为该书的选材直接来自国外计算机教材和出版物、技术文档和专业论文、IT精英的言论以及计算机方面的大网络全书,这样的选材在保持原汁原味的同时使学习者更能接触到计算机英语的真实语境和主流思想,虽然有一定的难度,但非常实用和专业。同时为便于学习,我们为超出CET4的词汇和一些专业术语都进行了注释,而且注释就在课文旁边,免去了翻查生词表的麻烦。这本书适合于程序员的另一条重要原因是全书侧重于软件和应用,没有枯燥繁琐的理论。计算机英语是用来学习专业英语的,而不是用来学习计算机理论的。我们没有像其他的计算机英语教材那样,充斥了大量难懂的计算机理论文章,而这些理论本身就非常难学。这本教材与其它计算机英语教材不同的地方还在于它更关注计算机素养、计算机应用以及IT对社会和生活的深刻影响。在这里我们可以聆听到IT精英比尔·盖茨和IBM公司CEO郭士纳的精彩演讲,也能拜读到英特尔公司前总裁葛洛夫的惊世之作《只有偏执狂才能生存》的序言。
系统学习计算机英语,这里的系统性包括了计算机体系的系统性和英语语言的系统性,我们在学习时必须时刻牢记。除了借助计算机英语教材系统地了解计算机硬件软件、操作系统、软件工程、编程语言、网络通信、信息安全、应用系统等诸方面的英语表达和专业词汇外,还要对英语语言本身从听、说、读、写四个方面下功夫,以免出现偏废。有些程序员就是因为在听和说方面偏废,以至于影响到出国发展。如何加强听和说的训练,这是关于英语学习的话题,我自己的一个经验是多看原版电影(VCD/DVD)以提高听力(当然不能看字幕),多参加英语聊天(英语角)以提高口语。
计算机英语的学习不同于考"托"考"G",无法靠短期的突击来完成。长期的日常学习尤为重要。所谓的日常学习并不需要你抛开工作,安排专门的时间,而是边用边学。比如,你为了解决编程上的一个问题,查阅英文的帮助或技术资料。然而,不少程序员不太喜欢看英文,他们喜欢使用中文版的软件,喜欢汉化的帮助,喜欢读翻译好的书。这实际上就错过了许多日常学习计算机英语的机会。不可否认,读中文肯定比读英文方便,节省时间,但从长期的发展来看,弊大于利。这种对翻译的依赖使许多程序员失去了获取一手资料的宝贵机会。
其实,既然你已经通过对计算机英语的系统学习掌握了一定数量的专业词汇,就完全可以借助字典去使用那些原文资料和在线帮助,加上有金山词霸这样的工具,阅读原文并不很困难,关键是一个习惯问题。我有一个朋友,在自己的电脑里从不装任何中文版或汉化软件,连上网聊天也坚持用英文。几年下来英语突飞猛进,效果甚佳,有志者不妨一试。
在日常工作中大量阅读英文书籍和资料是提高计算机英语水平的最佳途径。目前市场上大量的计算机原版影印图书为我们提供了绝好的机会。阅读英文计算机图书一开始是"啃"的感觉,比较费时费力,对于不太好读的地方,不妨拿起笔来逐行逐字翻译出来,这样对提高英语水平很有帮助。对于有经验的程序员可以利用自己的专业背景知识和上下文(Context)进行大胆推测,这样有利于提高阅读速度。即使是不求甚解,也不要紧,你可以通过多读同类书来弥补。原版计算机书读多了,你会发现一些很有规律的东西和一些常用的词汇,这些来自实践的经验非常宝贵,并让你终生受益。一般在完整阅读2-3本原版书以后,你就能发现读原版书的乐趣。值得一提的是读原版书的真正乐趣并非只是在于提高英语水平,而更是在于获得一种和西方人一致的思维方式,这种思维方式对学习计算机技术极为有益,因为计算机技术甚至现代科学体系都是建立在这种思维方式的基础之上的。坚持阅读英文计算机图书可以达到"品"的感觉,这种感觉是指在阅读时无需将英文转换为中文,而是直接用英文和作者在同一个水平线上进行思考和交流。至此,我们获得的不仅是英语水平的突破,更是计算机水平的突破。这也是许多计算机高手成功的秘密。
如果你有一定的英语基础,并希望突破计算机英语的障碍并成为高手,从现在起就养成一个学用计算机英语的良好习惯吧。下面是你可以立即选择的努力方式:
1、 给自己起一个英文名字。并用作网名和登录名。
2、 立即将自己电脑中的所有中文版或汉化软件换成英文版。连Windows也用英文的。
3、 选一本适合自己的计算机英语教材。
4、 保证一年至少读1-2本原版影印的计算机书,并坚持读完。
5、 上网尽量多访问英文的技术论坛和网站。不使用汉化的帮助。
6、 在程序中使用英文注释。坚决不用中文或汉语拼音作变量名、字段名、文件和文件夹名。
7、 每月至少看1-2部原版电影(VCD/DVD),尽量不看字幕,提高语感和听力。
8、 不看中英文对照读物,但可以看注释读物。多使用英英字典,少使用英汉字典。
9、 每天坚持记录和复习遇到的生词。对于缩略语,一定搞清每个字母的英文含义。
如果你还有什么更好的方法不妨也提出来和我们交流,以便使更多的程序员收益。
E. 一个程序员所要经历的步骤
程序员应具备的12种能力
毕业四年来,感觉自己也是从一名不合格的程序员一步步走过来的。回头反思一下,合格的程序员有很多标准和要求,下面是我总结的一个合格程序员应该具备的12种能力。中国软件行业的崛起,靠的是合格的程序员。任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基础。写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考。我一直以为,当程序员是很辛苦的,如果不是真正的喜欢,很难坚持下去。如果真的不喜欢这个职业,也该尊重这个职业,尊重自己,赶紧改行。
1. 编程语言能力
不用多说,作为合格的程序员,精通一门语言是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。
2.编码能力
我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,缺少最基本的职责素养。我经常把代码必须成程序员的孩子,你就是是孩子他爹,孩子他妈,是有感情的。对你自己的孩子,你能不仔细呵护吗?你是称职的父母吗?这是我编写的一个Java编码规范,供大家参考,这里可以下载http://gurudk.javaeye.com/blog/111734
另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
思维的条理性,写代码之前,先简单计划一下,用自然语言把流程写下来,用于整理实现思路。不要看了需求或设计之后,马上就敲代码了,敲完代码马上就debug。花点时间思考,敲代码只是最后一个很简单的工作,不要把自己变成一个代码打字员,编写边想,写了删,删了写。安安静静把实现过程想清楚,在脑子里先实现一遍。再去敲代码,水到渠成。
3.面向对象思维能力
如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。
另外一个常用的工具就是日记本,好听点可以称为知识管理工具,我用的是myBase,感觉非常好用,在之前,我的所有的片段内容都是记录的单独的文本文件里的,非常不好找,管理也很混乱。
经常上互联网,看到好多好的资料想保存下来,作为日后查看之用.一开始,我用的是firefox自带的书签,但是自己分类太累,多了之后不便于查找,很麻烦。后来用了得乐书签(del.icio.us)的firefox插件,非常方便,现在成为了我必备的一个工具。
还有一个最重要的工具就是搜索引擎了,我装了google forfirefox插件,感觉不错,还有英文翻译功能。按照我同事的说法,内事用,外事用google。很多技术资料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等于打开了一扇通向知识宝库的门,使用搜索引擎,关键字选择很重要。
经常去浏览大牛的blog,逐个网站访问很麻烦,去看了又可能没有更新,可以借助于RSS订阅工具,我是用iGoogle桌面工具,每天早上花半个小时扫一下,大牛的最新文章尽收眼底了。
5. 英语能力
新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,使用金山词霸,google的firefox插件等工具配合,贵在坚持。
6.学习能力
在IT也混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。
要想系统的学习一门技术或工具,看书是最好的方法。看完后,然后上网找相关资料,进行深入学习。学习要抓紧一切可以利用的时间,比如电脑启动要花1分多钟,旁边放一本书,可以看上几页了。公交车上,地铁上也可以看。
当然,不能只学习技术,要经常联系自己的软技能,比如沟通能力,表达能力。你可以把自己学到的东西,解释给自己的同事听,既加深了理解,又增进了同事之间的交流。学习的最高境界就是你能够把学到的东西解释给别人听,这才说明你理解了。在学习心理学上,称之为构成主义。
我学一样东西,总是先上网了解有没有相关书籍,如果想学,就买一本或者去图书馆找相关的书来读。我买的书,家里快放不下了(到目前位置,我买了1万多块的书)。我多半是把目录看完,了解这本书讲解的主要内容,然后需要的时候,我就可以立即补充它进入到我的知识结构。每个人可能都有自己的学习方法,意识到学习的重要,并能够根据需要补充自己的知识,这种能力更重要。
7.创造能力
普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。
打破这一思维定势的首先的一个办法就是在面临一个问题时,首先想到的是“没有不可能”,或是“一切皆有可能”,前面那个是阿迪的广告语,后面是李宁的。只有这样去想,才能寻找解决问题的别的出路,即使最后我们试了很多种办法,还是只有着一种解决方案,但我们在这种寻找解决方案的过程中,常常会产生很多好的想法,这样才会使我们真正深刻思考一个问题。建议大家看一看《水平思考》这本书,他提供了一些进行创造性思考的方法和工具。
但我认为,坚持认为存在另一种解决方案的信念是第一位的,方法和工具都是其次。
8.文档能力
也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。
word是一个最实用的工具,很多程序员,多级编号都不会用,索引目录也不知道如何生成,更别灵活应用样式了。很多排版都是所谓的dirty work。垃圾样式一大堆。其实,静下心来,稍微学习一下,就能写出一篇格式漂亮的文档。
9.抽象能力
抽象能力是认识事物从现象到本质的能力。如果你只是停留在“见山是山,见水是水”的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。
10.代码评审能力
代码评审和单元测试是保证代码质量的两种常用手段之一。代码评审能力,说明了你的审美标准,知道什么是好的,什么是不好的,什么是优雅的代码,什么是糟糕的代码,你才能让自己做的更好。
11.单元测试能力
没有单元测试的代码,只能说是半成品。因为没有什么能证明你的代码是可以运行的。测试驱动开发是一个非常好的敏捷过程的最佳实践。单元测试还可以作为回归测试,在修改代码时,起到警戒线标志的作用。是否具有单元测试的意识是区分程序员是否合格的重要标准。写不写单元测试是区分平庸程序员和优秀程序员的重要标杆。
12.DRY
DRY是一种原则,就是Don't RepeatYourself.出自《程序员修炼之道-从小工到专家》。这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。
还有一个就是我们经常在不同的地方切换IP,如果每次手工做,也非常浪费时间,写一个bat命令可以解决,找一个小工具也可以解决。
编码时,对代码的复用也是在重复你自己,虽然拷贝过程很爽,但是维护一致性就要付出巨大的工作量,特别是将来维护的人不是你的时候,使用代码生成工具可以解决这个问题。类似的例子太多了,如果你发现你经常做一些重复的工作,就要警惕了,是否违背了这个原则,想一些办法将他们自动化。
F. 程序员入门:如何自学编程
1、选定方向
编程的世界是多元纷繁的,大的方向就分前端开发、后端开发、移动开发、云计算、数据处理、智能硬件、物联网、虚拟现实等等,光编程语言都几十种。如果没有做过功课,贸然进入只会分分钟懵逼。所以最好是根据自己的兴趣爱好再结合市场前景,先选定一个方向,再选择一门语言,然后头也不回的深深扎进去。
2、优化学习方式
做好笔记,记录经验,我们大多数人并没有过目不忘的神技,很多时候我们学了也不一定马上掌握,需要过后花时间慢慢领悟,而且还有忘掉的风险,所以对于重要的知识点都要做好笔记。
3、多看官方文档,外文资料
互联网是一个更新迭代很快的行业,所有编程语言都会不断的更新新功能和修复旧Bug,网上查的资料很有可能是旧的解决方案,现在已经不适用了。所以最好最快的方法就是查看官方文档。
4、动手做项目
我们学习编程的最终目的就是用所学的做出具有一定功能的项目,而做项目又是最好的学习和巩固知识的方式。如果前期能力不足就先做一些简单的功能模块,一步一步慢慢来,不要一开始就要实现各种酷炫炸天功能,遇到不会的就在网上查, 现在互联网这么发达,获取资源也及其方便。
G. 有哪些新手程序员该知道的工作小技巧
1.积极大胆的谷歌。你得知道如何有效的组织搜索关键字,查阅别人写的代码,然后合理地用在代码里,从而解决问题。
2.拥抱变化,坚持不懈。老手程序员在接触新技术时,能欣然接受像个初学者一样处处受挫,并总能在完成工作的同时自学成才。
3.承认细节的重要性。例如变量和函数的命名、CSS属性的命名、该用哈希还是数组,以及其他看起来微不足道,但可能对项目有深远影响的事情。
4.承认大多数的“重要决定”其实并没有那么重要。一般的开发者经济常在技术选型等“重大问题”上陷入唇枪舌战,而程序员老鸟们会避免浪费时间在骂战中。这一点上,它们就像禅宗大师一样。
5.选择合适的工具解决问题。网上有无数的开源库、工具和框架,让人眼花缭乱。而老手们清楚地知道针对怎样的问题,应该用怎么样的工具。
6.明白代码“不值钱”(该删就删)。你必须习惯于删掉几百行代码来重写程序的某一部分,毫不留情。
7.在评估技术的时候要全面。例如,我一直在鼓吹Elixir。它语法优美,社区完善,有很大的潜力。但Elixir诞生的时间太短,所以如果要构建复杂的功能,可能会难以找到能帮你提高效率的开源工具。因此,在评估要不要选择使用一项技术时,你得把所有这些因素都考虑在内。
23.知道什么时候开始回馈。到了某个时候你需要将你的技能和经验传授给年轻的开发人员,就像你的导师当时教授你一样。
24. 能写烂代码。有时候可以当一当“胶带式程序员”。关键是随着时间推移,你需要弄清楚什么时候可以走捷径,什么时候必须走捷径。这其实是最难掌握的技能之一。
25. 礼貌地告诉别人你工作到很晚。如果你是办公室里最后一个,可以发一封简短的汇报邮件。别人一般会注意到邮件上的时间戳的。
26. 像一个领导者(Leader)一样做事,而不是老板(Boss)。老板是让别人为他工作的人,领导者是人们追随的人。做个领导者。
27. 去打打桌上足球。从长期来看,同其他开发者(或不同岗位上的同事)建立联系比在紧巴巴的期限里交付一个功能更有价值。
28. 在压力下学习。你需要知道如何应对像系统宕机而你要负责将它复原的情况,即使一开始你完全没有头绪。
H. 要当个高手程序员需要具备哪些知识
1.不需要,而且学习java如果你先接触C,我怕语言上的差异会让你难以转型,java是面向对象的,C是面向过程的,我推荐学习java,入门简单,用途广,就业方向舵
2.计算机专业的课程肯定是必须的,数学是培养你的逻辑思维,编程人员非常讲究逻辑能力,现在是全球信息化时代,一般走编程道路的人,英语是不能或缺的学科,很多时候你要就业的公司都是外企比较多,如果你不会英语会非常非常吃亏,数据库必定要学,电脑的作用简单点说就是处理数据的问题,连数据都不会,你编写的程序永远都只能是小打小闹的程序。同时如果能力够,时间够,接触一下数据结构,算法,甚至计算机操作系统都要学习一下,对于你写程序,理解程序运行原理都是很有作用的
3.你每天能抽5个小时来学习已经足够了,不过要贵在坚持,同时你要知道,学程序是绝对不能脱离敲代码,一个入门的程序员,敲代码一定要超过10万行(呵呵,坚持啊)
4.网上的视频都不会教你太多的,因为人家培训机构还是得赚钱,如果你想进阶最后还是得靠你自己,还有配套一系列好的教科书,你才能事半功倍,这方面多去网上查查看,视频看多也没用,关键还得靠自己去写,去想,去验证,去实现
5.现在毕业生普遍都是高不成低不就,学校里学的东西往往只是基础,真正企业用到的基本没有,这就需要你自己多去实战,看人家写好的大项目代码,认真吸取经验,刚开始写程序时很累的,而且很多东西都不懂,很容易你就会放弃,所以坚持才是最要紧的,但是如果你热爱上它,你会发现一天的时间很快就在写程序中度过,我以前学java就是这样,天天晚上写到2,3点都不觉得累
最后还是得说一下,程序员道路是刚开始是比较辛苦的,程序设计大一点你就会感觉无能为力,但是千万不要放弃,否则你就不应该开始...
祝福你能顺利走上高手程序员的道路吧
I. 零基础如何自学编程成为一名程序员,有哪些书推荐
在线学习网站很多,但是在线教育的视频并不是全部免费,有些免费的学习教程只会让你看一小部分,目的是吸引你买付费的课程。因为知识本身是无价的,如果没有回报,创作者如何投入更多的时间和精力去完成更多的更优质的课程呢。下面介绍几个大家常见的在线教育平台,大平台,课程种类多,选择多。
一、B站
B站虽然不是专业的在线教育视频网站,但是该平台内容多,用户流量大,很多教育创作者还是会上传很多优质的教程上传于B站去扩大自己的影响力。所以,如果你想要找一些免费的学习视频,可以来B站先搜索一下,B站选择多,没有广告,不收费。
二、腾讯课堂
腾讯课堂是腾讯推出的专业在线教育平台,聚合大量优质教育机构和名师,下设职业培训、公务员考试、托福雅思、考证考级、英语口语、中小学教育等众多在线学习精品课程,打造老师在线上课教学、学生及时互动学习的课堂。
三、网易云课堂
云课堂,是网易公司倾力打造的在线实用技能学习平台,主要为学习者提供海量、优质的课程,课程结构严谨,用户可以根据自身的学习程度,自主安排学习进度。立足于实用性的要求,云课堂精选各类课程,课程数量已达10000+,课时总数超100000,涵盖实用软件、IT与互联网、外语学习、生活家居、兴趣爱好、职场技能、金融管理、考试认证、中小学、亲子教育等十余大门类,其中不乏数量可观、制作精良的独家课程。
四、慕课
中国大学MOOC是由网易与高教社携手推出的在线教育平台,承接教育部国家精品开放课程任务,向大众提供中国知名高校的MOOC课程。在这里,每一个有意愿提升自己的人都可以免费获得更优质的高等教育。
五、极客学院
极客—jiker,是一群热爱技术、热爱教育的极客们,一起创办的国内领先的 IT 在线咨询及教育平台。
六、课堂在线
学堂在线是清华大学于2013年10月发起建立的慕课平台,是教育部在线教育研究中心的研究交流和成果应用平台,是国家2016年首批双创示范基地项目,是中国高等教育学会产教融合研究分会副秘书长单位,也是联合国教科文组织(UNESCO)国际工程教育中心(ICEE)的在线教育平台。目前,学堂在线运行了来自清华大学、北京大学、复旦大学、中国科技大学,以及麻省理工学院、斯坦福大学、加州大学伯克利分校等国内外一流大学的超过2300门优质课程,覆盖13大学科门类。
其实,自学网站很多,而且每个方向都会有很多专业学习网站,就不再一一列举了。
教育网站千千万,学习方式也很多,不管是通过自学网站学习还是看书学习,都需要学习者自觉且坚持,才能真正的学到东西。不然收集再多优质的课程,也只会躺在你的收藏夹,进不了你的大脑。希望你能通过以上分享找到你喜欢的自学网站和喜欢的教程,然后通过学习提升自己。
J. 求计算机软考《程序员教程》电子版
《程序员教程》电子版这个的下载地址:http://blog.xunlei.com/web/category.html?uin=88649429&category_id=86&cid=
http://db.k167.com/dn/200701/2005%C4%EA%B3%CC%D0%F2%D4%B1%BD%CC%B3%CC.rar
第一个体积小,第二个清晰些但大
历年程序员考试题电子版 这个到处都有了 ,你自己去网络下吧