
如何成为一个合格的程序员
确定目标
做什么事都要有明确的目标,因此,你首先要为自己确定一个可测量的目标,并把这个大目标分解为几个分阶段的小目标。比如,要在一年内开发出一套仓库管理软件:第一月的目标是学会一种计算机语言;第二个月的目标是熟悉仓库管理业务;第三个月学会数据库;第四个月写出原型……然后按计划去做,每完成一步你的信心就会增加一些,并会感受到成功的快乐。
选择工具
当你开始着手的时候,会发现市面上有太多的计算机语言和工具供你选择了。具体选择某种语言和环境与你的目标直接相关,比如要开发单片机系统和要开发管理系统,所选择的语言会有天壤之别。下面是一些参考意见(纯属个人意见):
1、脚本类:特点是简单、易学、易用。比较常用的有:Unix/ Linux的Shell语言,网页里用的VBScript/JavaScript,MS-Office里用的VBA,动态主页用的JSP、ASP、PHP等,通用语言Perl、Python等。当然像Python/Perl语言的功能已非常强大,有用它们写出的数据库、系统管理等大型系统,如Zope、WebMin等。
2、RAD类:这类以快速开发著称的语言及工具比较流行,常用的有VB、Delphi、Powerbuilder、Visual FoxPro等,这类工具常用来开发管理信息系统,如用友、金碟等,也用来开发通用软件。
3、专业类:最常用的是C/C++,Java等,如果你想成为专业的程序员,就要学习这些内容。它们通常用来开发系统级程序,比如 *** 作系统(MS-Windows、Unix/Linux等)、数据库(Oracle、SQL-Server等)、开发语言(C/C++、Python等)、工具软件(WPS、KV3000等),在大型系统里基本都有它们的身影。
4、专用类:这类语言种类最多,它们一般设计用来完成一项特殊的工作。例如现在最流行的Flash,它内含Action Script语言;AutoCAD内带VBA和AutoLisp;每一种单片机都带有自己的ASM语言;许多系统如MatLab、Spss、Intouch、Modsoft等都有自己的专用语言。
总的来说,当选择语言的时候,一定要与自己的目标相结合,另外,入门的时候,可先选择容易一些的,入门后,再选择专业些的。一开始就选择C++可能会让你知难而退,但如果选用Python,你就可能会觉得计算机语言原来也挺容易。
勤奋练习
除了多写程序,没有别的办法去更快地提高你的程序水平了。看书的时候,最好把书上的例子自己输进电脑实践一遍,然后进行各种试验,再联想出各种相关的程序,自己写出来,并验证自己的结果。如果有好的想法,就尝试把它写出来,很快你会发现你的水平在快速上升。
当你有了一定的基础的时候,可以尝试去读高手写的程序,解读他们的程序的设计理念、风格、解决问题的思路等。在这方面,GNU/Linux为我们提供了一个巨大的源程序宝库,里面有各种各样的程序源代码,详细研究一套你感兴趣的系统,你的水平会得到大幅度提高。
不断提高
除了多加练习,你还需要多读书,特别是英文书。读书可以在理论上提高你的水平。信息技术发展太快,而大部分的技术最先出现的时候都是英文版本的,要几个月以后才有中文版本的书出来,因此要想跟上步伐,一定要努力提高自己的英文水平,这样才能同步跟上信息技术。你可能担心自己的英语水平不行,没关系,刚开始多查字典,很多就会发现计算机英语其实很容易。当然,这里的书是泛指,包括网络上的各种文章,电子书等。
另外,多与他人交流经验也有助于自己水平的提高。互联网为我们提供了一个巨大的交流平台,各种BBS和新闻组上都有热心的高手回答你的问题。不过在问问题之前,自己一定要先努力尝试过,再给出自己的想法。动不动就问别人,自己水平得不到提高,别人也不再会回答你的问题。
继续深造
当你觉得自己成了程序员的时候,你就会发觉还有很多东西要学,你可以继续深入学习来提升你的水平。
1、向下深入:了解 *** 作系统的机制,了解底层的API,这对开发系统级程序非常有用。
2、向上延伸:学习项目管理,软件工程,设计模式,分析设计等,这对你开发大型系统非常有帮助,特别是一个团队去开发一个大型项目的时候。
3、横向扩展:熟悉各种系统如数据库、多媒体、人工智能等,然后集成起来应用,会产生更大的效果。
代码编程教学入门期守一个熬字诀,初学者尽量不要钻牛角尖,寻一个编程目的,还有反复练习。
代码编程教学入门应注意:
初学者尽量不要钻牛角尖,入门期遇到难题,耗了半天时间还是没弄懂,可以暂时跳过,知识积累到一定程度,回头再进行解决你会发现简单多了。
站在巨人的肩膀上,你遇到的那点小问题,已经有无数前辈也曾遇到过,他们总结了并分享在互联网上了,前人的经验是你的宝贵资源,要善于利用StackOverFlow,Quora,谷歌等。
有些程序员学习编程一上来就想着月薪1W+以上,这样的学习过程会非常痛苦,很容易放弃。最好是奔着一个小项目而学习编程,当你把作品做出来了,就有成就感,同时基本上具备找工作的能力,直接找个初级的开发岗位,再进阶,你的自学之路功与名都有了。
编程是一门手艺,需要反复练习,脱离书本和视频看是否能独立实现。学到最后的境界无非就是:我亦无他,唯手熟尔。
1自己介绍项目,看对项目的提炼总结能力(也是抽象能力);
2自己印象最深的bug,可以知道大概技术深度;
3设计模式提问,看有没有学习方法;
4语法基础问题,多线,分布,安全等问题,看知识面广度;
5智力问题,看反应能力,分析问题思路等
上述五步基本可知是否是一个好程序猿
计科专业从事软件开发十几年了,主要在浏览器内核领域研究的比较多,最近在研究服务器后台方向,辨别程序员水平高低主要看做出了什么产品,如同现在的程序员主要是项目经验,简历上写的一堆项目经验都是面试的时候主要提及的问题。经常在面试中会问两个关键点:一个是做过什么项目;一个是在项目组中承担什么职务,毕竟参与过和做的多少程度是不一样的,这些都是可以通过一些具体的细节检测出来,问题越具体越是容易看出水准,具体的东西不是能够编造出来的。
有很多技术公司直接不通过笔试,仅仅通过简单的面试就确定工资水准了,最简单的测试程序员水平的直接用笔试的方式,笔试可以把一些细节量化,尽量的细节化也是能测试出程序员基本功的,但这种基本用来测试初级程序员的,很多高级的程序员看到有笔试直接就抬腿走人了,因为有些程序员在一个方向做的时间太长了,很多基本功都忘得差不多了,所以笔试可能不过关,现实中很多程序员笔试不过关,面试还可以,也一样可以做项目说的就是这类人,起码这算是非常优秀的程序员。
有很多公司采用谷歌的方式,直接采用上机写代码的方式检验程序员水平,这种方式比较直接,但在现实中可能消耗的时间以及面试官的精力,目前只有极少数的公司用这种方式,国外的公司用这种方式比较多,这种看基本功非常有效。通过代码可以看到编码习惯以及算法的设计上,都能直接看的出来。
普通的程序员直接看项目的经验,高级的直接看做过的产品,特别是产品主要设计人员,这就是程序员内心的自豪感,毕竟作为一个程序员起码要有自己设计开发的产品,也算是不白做一个程序员,在程序员的职业经历中如果能经历过一个产品从开始设计的初稿到最后推向市场,如果是完整的经历,将是一种巨大的财富,只要经历过一次都会对产品设计有一个比较层次的认识,这种能力需要靠直接的面试语言表达来展示出来,谈下对产品的认识以及产品稳定性性能等方面的总结,能到这个层面起码是高级软件工程师的级别。
当然有些程序员内在的东西不是靠语言或者写代码看出来的,因为一个优秀的程序员不仅仅是代码能力以及框架能力,还有几个非常重要的能力
程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
希望能够帮到你。
自认为不是一个好的面试官,因为我认为在这么短的时间内,准确地衡量出来程序员水平的高低是有比较大的难度的,并且我有多次看走眼的时候,面试的时候觉得能力还不错,但是入职工作了一段时间之后,编程能力不忍直视。
工作之后接触一段时间,我会从这么几个方面观察他们,以判断技术能力的高低和发展潜力。
能不能出活儿、能不能debug
能不能把开发任务按时按质量地完成,当然是最主要的衡量标准了:
解决问题的方法
在开发过程中,难免会遇到没有见过的问题,有些程序员遇到问题无从下手,而优秀的程序员,自有一套解决问题的方法。
分析问题、流程设计的思路
有人会认为,程序员的主要工作就是敲代码,上班大部分时候都是在敲代码,其实并不是这样:
总结问题和改进问题的能力
好的程序员,相同的问题不会犯第二次,差的程序员,总会在一个问题上栽跟头:
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
不请自来,一介码农路过,留下些看法。
程序员主要是有四种综合能力,也就是debug 能力、 performance分析、 保护性编程和 投入产出比。
仅仅独立完成日后必然成高手?在这里不能说一棒子打死,至少对于很多人来说,能独立完成是没什么问题的,有的是因为对业务熟悉,有的是真的基础扎实。但怎么说呢,程序员和浏览器打交道是最多的,现在这个互联网时代,遇到的大部分问题百度都是可以解决的,也就是普通程序员 + 百度 = 超级程序员。 但很多人也没明白具体的原理,甚至都是这个项目抄抄那个项目抄抄的,久而久之虽然解决了平时的业务,但进步的空间却很少,甚至止步不前,写出来的代码也可能存在很多坑,所以,仅仅能独立完成任务的话,离高手还有比较远的一段距离。
如何辨别高手程序员?也就是结合我们一开始列举的那四个能力进行判断。不同级别的程序员,在那综合能力面前,强弱也是不同的。例如在奔溃的或者其他性能调优问题上,即使是面对大量复杂的代码,在信息不全的时候也会一步步的分析,抽丝剥茧缩小范围,最终定位根本原因
,并且最终给出一个好的方案。
如何成为高手程序员?
当然还有看他摘了帽子是否秃顶这样的笑话,就再不赘述了。
第一阶段(黄金):会用编程语言实现需求,比如现在的业务系统,都会找一些会搬代码的人来拼工作量,也就是能自己独立基于搭好的框架实现crud常规 *** 作。
第二阶段(铂金):除了crud,还会有一些自己踩过坑的经验,知道如何处理一些常见问题,或者可以基于搜索引擎快速解决一些异常情况。
第三阶段(钻石):能解决一些疑难杂症和会通过debug部分源码类库查看到这些疑难杂症是如何引发的,并通过编码解决这些问题,还能进行一些局部的性能优化,类似某个系统接口缓慢可以单独去优化。
第四阶段(星耀):会基于整个系统进行设计和规划,根据业务特性选择合适的框架,从源头控制开发遇到问题的频率,可以自主的搭建框架并完善机制,了解各个组件工作原理。
第五阶段(王者):小说里面总是说练武功的永远比不过创造武功的,同样的道理,用框架的也往往不如写框架的,所以写框架的这类人单独分层。
第六阶段(荣耀):其实这个阶段不应该列入进来,因为这类人往往不编码的,只是给出思想;像Hadoop这种框架就是基于人家发表的一些论文(bigdata)进行编码实现的,这类人注重的是思想和算法,区块链,大数据,云计算等等概念的创造和理论的支撑是这类人提出来的,这些人才是真正影响行业走向的人。
程序员的水平高低,不是靠语言或外在表现就能看出来的,不是看他会多少技术、参加过多少项目、写了多少博客,而是看他在实际业务场景中解决问题的能力,尤其是面对一些特别复杂的问题,或在高强度、高压工作状态下解决问题的能力与态度。
技术可以通过学习掌握,但是解决问题、定位问题的能力却不是一蹴而就。大家可能会说,“解决问题的能力”这个太宽泛了吧,可以更具象化吗,有具体的测量方法吗?简单整理了以下几点供参考。
优秀的代码能力
会写出满足需求的代码,早就不是评判程序员水平的标准了。代码编写既要满足业务需求,同时还要考虑后续的软件维护,说得通俗些,既要自己爽,也要别人爽。一个优秀的程序员,会致力于写出更简单、更效率、可读性强、扩展性强的程序代码。
逻辑思维
程序员在日常工作中,需要理解各式各样的业务需求,所以这就需要程序员具备一定的逻辑思维能力。可以说,逻辑思维是程序员的灵魂,因为每一行代码都是程序员逻辑的体现。
debug能力
项目着急上线,发布时出现问题?
业务高峰时段,系统宕机了?
业务催、运营催、用户催、老板催!
各种形态的bug,各种着急的心情,背后无数支眼睛盯得内心慌慌
这些都是一位合格程序员所需要面对的日常。不同的程序员,在解决问题的方法、效率、质量等方面,都各有千秋。一个经验丰富的程序员,能够扛住各方压力,在复杂条件下找到核心问题,通过抽丝剥茧的分析来找到产生问题的原因,并快速进行应对处理,事后及时复盘总结,减少同类问题出现的概率。
学习能力
随之互联网的发展,越来越多的人涌入程序员这个赛道,竞争日益激烈,加之新技术层出不穷,更新迭代快,程序员所使用的语言、框架、模式都会发生天翻地覆的变化。如果不主动学习,你很快就会被落伍淘汰。
沟通能力
这种其实在面试过程中能体现出来,沟通主要是技术沟通,以及和客户之间的沟通,所有技术都不是闭门造车就能搞定的,沟通能让事情推进起来更加顺畅,包括和产品经理之间的流畅的沟通也显得非常重要。程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
责任心
线上出bug了,第一时间响应、处理;
团队项目进度紧张、人手紧缺,主动补位;
又或者,在项目推进过程中如果只是关心自己模块内容,对于整个项目置之不理,只守着自己的一亩三分地。
随着时间轴的拉长,你会发现,有此f技术能力不是最好的,甚至不如你的小伙伴,最后做到了技术主管或经理、甚至更高职位,这里面除了技术实力,还有一个叫“责任心”的东西。
结束语
判断一个程序员的水平高低,核心是其解决问题的能力,而解决问题的能力养成,需要扎实的底层基础来支撑,要综合其代码质量、项目经验、框架能力、逻辑思维等等多方面,不能单看某一方面。
而对于1-6岁的程序员来说,想要成为一个高级程序员,变得越来越优秀,唯有持之以恒去学习、积累、实践、修炼。
----end----
一:50岁的时候,头发还是黑色的浓密的。
二:赚到的钱能保证家人快乐的生活。
三:当公司不要你的时候能成功转型。
其他的例如编程经验、写代码厉害啊什么的根本不值一提。
这就是程序员的面试嘛 :-)
(1)是否能熟练使用所用编程语言的主要功能;
(2)是否知道用合适的数据结构解决问题;
(3)是否知道基本的算法,并且用这些算法解决问题;
(4)只看少量代码的话,从变量命名和程序结构一般能够判断是否是新手;
(5)给出具体问题,能够用程序解决,能考虑到所有的边界条件;
(6)考虑程序的可扩展性,可维护性;
再往高一点走,就需要
(7)面对模糊的问题能够分析并且找到细节和具体的需求;
(8)知道利用已有的库,架构和工具等来解决新的问题,而不是什么都自己实现;
(9)能发现并改进已有程序中的瓶颈;
(10)对整个大项目的程序架构有很清晰的了解,知道相互之间的依赖,以及知道为什么采用这样就架构;
(11)给一个大的项目,能够对整个项目的程序架构和组件进行合理的设计,考虑并行性,低延迟,大数据量等各种需求和应对方式。
带领团队已多年,项目数十个,对判别程序员水平的高低,我有自己的看法,欢迎大家一起交流。
1代码质量。
优质的代码,首先是经得起考验。静态分析工具过一遍,无错误,无警告。当然警告部分需要人工重审,因为静态分析工具不一定完全正确。过了这一关,重要的还须过测试关,少Bug或无Bug的代码,才是好代码。优质的代码带有技术气质和艺术气质。阅读起来,有一种赏心悦目的快感,即工整美观,干净利落,又蕴含着理论常识,运用技巧,精准到位。
2表达能力。
3文档能力。
文档形式包括但不限于PPT,文字,图表,音视频。文档内容包括但不限于API说明,工具手册,项目事项,技术论述,陷阱总结,方案展示,指导手册。文档要求必须是满足公司或部门的规范和格式,否则五花八门的,不利于交流和传承。
以上3点,是我量化判断程序员水平的标准,仅供参考。相比水平,其实我更看重程序员的态度,执行力,时间观念,自学力等等,也是很重要的团队作战能力,也可以说是程序员水平的考量吧。
谢谢大家。
就是敲代码的。
我就是一个写程序的人员,过年我回家的时候,父母问我是做什么的,我就很复杂的和她们讲,但是她们听到之后,就会在问,你刚刚说什么,我并没有听清楚。
后来我觉得太麻烦了,就说我是敲代码的,然后他们就明白了,后来就没有在问过我了。
一 ,怎样学习C语言
很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程庌輌这简直就是天方夜谭。为什么C语言如此重要呢?
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。
第二:C语言能够让你深入系统底层,你知道的 *** 作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些 *** 作系统当中去呢?更不要说你去写它们的内核程序了。
第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。
那么究竟怎样学习C语言呢?
1:工欲善其事,必先利其器 这里介绍几个学习C语言必备的东东: 一个开发环境,例如turbo C 20,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。
一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。
除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。
2:葵花宝典 学习计算机语言最好的方法是什么?答曰:读程序。
没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。
3:登峰造极 写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。
是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。
有问题可以追问我;
如果对我的回答还满意
请随手采纳下啊!
谢谢楼主:!
首要之首:不要急于选择一种语言新手们有一个常见的错误就是犹豫于判断哪种编程语言是做好的、最该先学的
我们有很多的选择,但你不能说那种语言“最好”
我们应该理解:说到底,什么语言并不重要
重要的是理解数据结构、控制逻辑和设计模式
任何一种语言—甚至一种简单的脚本语言—都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的
我正在攻读我的计算机学学位,我编程使用Pascal,汇编,和C语言,事实上我从来没有把它当成职业以求获得回报
我一直在自学编程,工作上用不到它,我使用现有的知识,参考各种文档和书本,学习它们的用法
因此,不要急于选择何种编程语言
找出你想要开发的东西,使用一种能够完成这项任务的语言,这就可以了
根据各种开发平台的不同,有很多不同的软件开发形式可供你选择:从网站应用到桌面软件到智能手机软件到命令行脚本工具
这篇文章里,我将重点介绍一些很受欢迎的入门教程和资源,它们能帮助你学会如何在各种主流的平台上编程开发
我先假设你是一个悟性很强的读者,但对于新手,当我谈论程序代码时还是要按照入门级的水平
因为即使是你自己看一篇编程入门手册,如果发现都能理解时,心情自然会很高兴,这样利于你进一步学习
桌面脚本想要动手在Windows里或苹果系统里编程,最简单的方法是从一种脚本语言或宏语言开始,例如AutoHotkey(Windows)或Automator(苹果系统)
如今一些硬件程序员冲着他们的屏幕大喊大叫,说AHK和AppleScript并不是“真正”的编程语言
也许他们说的是对的—技术上,这些种类的语言只能做一些上层的编程
但是对于那些只是想来脱盲、想在他们的电脑里实现一些能自动运行的程序的新手来说,这些语言会是一个绝妙的入门入口—而且你会吃惊于它们丰富的功能
例如,大家都喜爱的Texter就是Adam使用AutoHotkey开发的能独立运行的Windows应用程序,所以说这种脚本语言远不是只能开发小规模脚本软件
如果你想从AutoHotkey入手,可以参考Adam的指导:howtoturnanyactionintoakeyboardshortcutusingAutoHotkey(然后,你可以下载Texter源代码看看这个功能齐全的使用AHK开发的Windows应用程序的内部结构)
Web开发HTML和CSS:开发网站,你第一件要知道的事情就是HTML(网页就是由它组成的)和CSS(一种让外观更好看的样式标记)
HTML和CSS并不是编程语言—它们只是页面的结构和样式信息
然而,在开始开发web应用程序之前你必须要学会如何手工的编写简单的HTML和CSS,web页面是任何webapp的前端显示部分
这个HTML指导是你入手的好地方
JavaScript:当你可以通过HTML和CSS构建一个静态页面后,事情就开始变得有趣了—因为到了该学JavaScript的时候了
JavaScript是一种web浏览器上的编程语言,它的魔力就是能在页面里制造一些动态效果
JavaScript可以做,脚本,和Ajax,所以它是web上各种好东西的关于因素
学习JavaScript从这里开
服务器端脚本:一旦你学会了网页里的知识,你就要开始对它添加一些动态服务器 *** 作—为了实现这些,你需要把目光转移到服务器端脚本语言,例如PHP,Python,Perl,或Ruby
举个例子,如果想要制作一个网页形式的****表单,根据用户的输入发送邮件,你就需要使用服务器端脚本来实现
像PHP这样的脚本语言可以让你跟web服务器上的数据库进行沟通,所以如果你想搭建一个用户可以登录注册的网站,这样的语言正是你需要的
Webmonkey是一个优秀的web开发资源网站,里面有大量的各种web编程语言的指导手册
阅读一下他们的PHP初学者指南
当你感觉差不多了的时候,看看WebMonkey’sPHPandMySQLtutorial学习如何使用PHP跟数据库交互
网上最好的要数PHP语言官方的在线文档和函数参考了
每个知识点上(例如strlenfunction这个)都在后面列出来用户的评论注释,这些对于文档的本身是非常有价值的
(我很喜欢PHP,但还有很多其他种服务器端的脚本语言你们都可以选择
)Web框架:过去数年里,web开发人员在开发动态网站的过程中不得不一遍又一遍的针对重复遇到的问题写出重复的代码
为了避免这种每次开发一些新网站都会重复劳动一次的问题,一些程序员动手搭建了一些框架,让框架替我们完成重复性的工作
非常流行的RubyonRails框架,作为一个例子,它利用Ruby编程语言,为我们提供了一个专门面向web的架构,普通的web应用程序都能使用它来完成
事实上,Adam使用Rails开发了他的第一个正式的(而且是叹为观止的!)web应用程序,MixTape
me
这就是他的如何在没有任何经验的情况下搭建一个网站
还有一些其他的web开发框架包括CakePHP(针对PHP编程者),Django(针对Python编程中),以及jQuery(针对JavaScript)
WebAPIs:API(应用层序编程接口)是指不同的软件之间相互交换的程序途径
例如,如果你想在你的网站上放一个动态的地图,你可以使用GoogleMap,而不需要开发自己的地图
TheGoogleMapsAPI可以轻松的让你通过JavaScript在程序中引入一个地图到你的页面上
几乎所有的现代的你所知道的和喜爱的web服务都提供了API,通过这些API你可以获取到他们的数据和小工具,在你的应用程序里就可以使用这些交互过来的东西了,例如Twitter,Facebook,GoogleDocs,GoogleMaps,这个列表远不止这些
通过API把其他web应用集成到你的web应用里是现在富web开发的前沿地带
每个优秀的主流的web服务API都附带有完整的文档和一些快速入手的指导(例如,这个就是Twitter的)
疯狂吧
命令行脚本如果你想开发一个程序,让它读取文字或文件、输入输出一些有用的东西,那么,命令行脚本语言将是个不错的选择
然而它并不像web应用程序和桌面应用程序那样有吸引力和好看的外观,但是作为快速开发的脚本语言,你却不能忽视它们
很多的在linux平台上运行的web脚本同样能以命令行模式运行,例如Perl,Python和PHP,所以如果你学会了使用它们,你将能在两种环境中使用它们
我的学习道路一直没离开Perl太远,我自学Python使用的是这本优秀的在线免费书DiveintoPython
如果成为一个Unix高手也是你学习的目标,那么你绝对要精通bash这个脚本语言
Bash是Unix和Linux环境下的一种命令行脚本语言,它能够为你做所以的事情:从自动备份数据库脚本到功能齐全的用户交互程序
起初我没有任何使用bash脚本的经验,但最终我用bash开发了一个全功能的个人代办任务管理器:Todo
txtCLI
插件(Add-ons)如今的web应用程序和浏览器都可以通过一些扩展软件来丰富自己的功能
由于一些现有的软件,例如Firefox、WordPress越来越受到开发人员的关注,插件的开发也日益流行,人们都在说“ButifonlyitcoulddoTHIS”只要你掌握了HTML,JavaScript和CSS,你就可以在任何的浏览器里开发你想要的很多东西
,scripts,和Stylishuserstyles这些软件都是用的更普通页面一样的语言写成的,这几个东西都值得你去研究一些
更高级的浏览器扩展程序,例如Firefox的扩展,它们可以帮助你很多
开发Firefox的扩展,举个例子,需要你精通JavaScript和XML(一种标记语言,类似HTML,但具有更严格的格式)
早在2007年我就写下来howtobuildaFirefoxextension,这是我在笨手笨脚的研究网上的一些学习资料后获得的成果
很多免费的、受欢迎的web应用程序都提供了扩展框架,例如WordPress和MediaWiki
这些应用程序都是用PHP写成的,所以只有对PHP熟悉你才能做这些事情
这个就是如何编写WordPress插件
而想驾驭GoogleWave前沿技术的开发人员可以从使用HTML,JavaScript,Java,和Python写小组件和小工具开始
我写的第一个Wavebot是跟着这个一个下午时间的快速入门指导开始的
开发桌面上的Web应用程序学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中
先学习开发web应用程序的好处就是我们有一些方法可以让web应用程序直接在桌面上运行
例如,AdobeAIR是一个跨平台的即时运行平台,它能让你编写的程序运行在任何装有AIR的 *** 作系统的桌面上
AIR应用程序都是由HTML,Flash,或Flex写成的,所以它能让你的web程序在桌面环境中运行
AIR是开发部署桌面应用程序的一个优秀的选择,就像我们提到过的10个让你值得去安装AIR的应用程序
移动应用开发能在iPhone或者Android智能手机上运行的手机应用程序的开发如今正呈现井喷之势,所以你也可以梦想一下如何在iTunes应用商店里通过你的天才程序大赚一笔
但是,作为一个编码新手,直接奔向移动开发所经历的学习曲线可能会很陡,因为它需要你熟悉高级的编程语言,例如Java和ObjectiveC
然而,你当然应该看看iPhone和Android编程究竟是什么样子的
阅读这个简单的iPhone应用开发例子可以初步认识一下iPhone程序的开发过程
Android程序都是由Java写成的,这有一个简单的视频教程教你如何开发第一个”HelloAndroid“程序(注:可能需要代理才能看这个视频)
耐心,刻苦,尝试,失败好的程序员都有一个不达目的誓不罢休的品质,他们会惊喜于通过长期推敲和失败换来的一点成绩
学会编程会有很好的回报的,但是学习的过程可能会是饱受挫折和孤独的
如果有可能,最好找个伴一起陪你做这件事
想精通编程,这和其他事情一样,需要坚持,反复尝试,获得更多的经验
以上就是关于怎么才能算是一个合格的程序员要求要懂些什么东西,到什么程度全部的内容,包括:怎么才能算是一个合格的程序员要求要懂些什么东西,到什么程度、程序员如何学习编程、如何辨别一个程序员水平的高低等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)