这个怎么学习编程编程

我是如何学习计算机编程的
我在很小年纪的时候就开始学习编程,我学习编程的方法是创建大量的不同的网站。下面列出的是我创建的主要的网站,其中最早的一个是我11岁时开发的。我希望读者能从我这些复述中获得的信息是:如果你想学习编程,做大量的练习性的项目是非常必要的。
学习一种技术最好的方法就是练习,练习,练习。所有我知道的最优秀的程序员都深深的享受编程&&编程是一件让他们干起来无由的高兴的事情。也因此他们大量的编程。经常,那是一种不健康的废寝忘食。学习如何编程&&以及如何编好程&&并不需要你具有超人的能力。你只需要去按照自己的意愿动手去做,做出点什么东西。
做什么东西并不重要,重要的是你找到东西动手去做。我所认识的那些优秀的程序员,他们都有各自不同的最初学习编程的动机。有些人学习编程是为了开发动画游戏。有些人是为了解决他们在使用计算机时遇到的问题,或让工作更有效率。有些人是为了开发产品来满足人们的需求。有些人(真正的程序员)学习编程只是他们为了深入了解计算机工作原理的步骤之一 ;他们希望能搞清楚这种机器。有些程序员编程只是因为他们享受解决难题的挑战。
让所有这些&优秀程序员&统一起来的唯一因素就是,他们全因为生活中的某些原因而为编程着迷,继而花大量的时间编程,做大量的,大量的用于练习的项目。
那么,我就不再罗嗦了,下面就是我如何学习编程的故事:
我的第一个网站
在我大概十一二岁的时候,我感到需要给自己做一个网站。我已经记不清为什么需要一个网站了,只记得那样就开始做了。于是我就在网上搜索关于网页、Web浏览器、HTML如何工作的信息。很多的信息我发现都已经过时了,有些明显是错误的或给了错误的向导(例如为IE浏览器和Netscape浏览器分别做网站),但过程是非常的有趣的,我学到了很多新东西。
尽管在网上搜到了很多粗制滥造的的信息,我还是想办法做了一个简单的网站,我叫它&Feross的网站&。开发它,我使用的是微软的Frontpage,那是一个非常棒的所见即所得的HTML编辑器。我使用很常见的语法,例如粗体,斜体等对网站做修改,在编辑器里即时查看这些HTML标记能达到的效果。这是很有效的学习方式。
下面是我的第一个网站的截屏。这个网站已经不存在了。
你从上面的图片上看不出来,这个网站上的每个元素都在动,闪烁的动画,还能出声。我在网站的每个页面上都放置了不同的MIDI格式的歌曲。而且都是自动播放,你没有办法让它们停下来,除非把电脑消音。哈,这就是当年流行的网站设计风格。
等再长了几年岁数后,我们重新设计这个网站,让它变的漂亮些。我使用了在网上发现的一些免费的网站模板,用微软的画图工具修改了一些图片。
尽管我大量的依赖于模板,但这不失为一个学习HTML和Web浏览器的好方法。&Feross的网站&除了用来收集我小时候的一些视频外没有其它用处,所以不久后我就对它失去了兴趣。
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章
seajs.config({
base: "/resource/passapi/scripts/"
seajs.use('seajs/seajs-css');
seajs.use(['artdialog/src/dialog-plus'], function (dialog) {
$('#favorite').on('click', function(){
$.getJSON('/passapi.php?op=userstatus&callback=?', function(data){
if (data.status == 1) {
var _this = $('#favorite').find('span');
$.getJSON('/?app=favorite&controller=favorite&action=add&jsoncallback=?&contentid='+contentid, function(json){
if(json.state){
_this.html('如何成为一名真正的程序员?
已搜索过没有合适的答案。前两年当了学徒工,做网页制作学会了div+css基础比较扎实。后来慢慢接触了ASP和Access读取数据和一般功能的实现也基本能解决,各种建站的知识和工具都基本能使用自如;现在广东某二线城市,拿3千多的工资。公司就我一个技术员;(昨天刚发工资,当初老板承诺有4千左右,上个月加班加点累死累活,本以为能到4千了,结果不增反减,这也是我决心转程序的原因之一。)自学C#发觉很难静心看的下书,以前在看《C#入门经典》真心看不下,现在在看《图解C#》,但是还是很难有真正的进步,在网上看视频教程又太慢了。。。英语水平处于初中级别,也就基本告别英语文档了,还是跟学C#一样,没耐心静不下心学习。根据@恶魔奶爸 的指导,买了赖世雄的入门教程,他的广播教材真心拖沓呀。。。45分钟讲了2个对话。。。我想在明年去广州投靠师傅,但是前提是我必须成为一个真正的C#程序员,求方法;感谢各位大牛、小牛的答案,感谢知乎这个平台,就连我这么笨的人也从各位的回答中读出了一点门道,还有陌生人的关心。有人问什么是“真正的程序员”,我只能说可能是我描述不当,我心中的哈姆雷特是一个可以通过软件公司面试,在北上广深以一个程序员的身份存活下来,并且活得越来越好的人。再次感谢
按投票排序
那些说要把《算法导论》当成入门书籍的人,你们真的有把这本书看完吗?卧槽,你们知道这本书有多难看吗。
十几岁开始写程序,近十几年来都在教人写程序,还经营着一个可能随时倒闭的软件公司,主要的开发语言是C#,看上去有资格回答此问题。-------------------------------------------------------------------------------------------------------------------题主的问题是——如何成为真正的程序员。排名第一的答案是“至少把《算法导论》的结论和伪代码部分,蛋定地看完”,客气一点说,你们是在回答“真正的程序员必备的知识有哪些”的一部分,不客气的说,这是在误人子弟,比我还毁人不倦。首先,我不认为《算法导论》是所有程序员必须一开始就掌握和精通的内容。我无意否认某些核心课程的重要性,但是我们必须看到——很多程序员并不懂程序员的三大浪漫——编译原理,图形学,操作系统,但这并不妨碍他们在日常工作中创造出各种有价值的软件。之所以这么讲,原因是:行业的门槛因技术的不断进步而降低 不是所有的程序员都需要系统而全面地学习才能胜任工作这些年来,编程语言、开发工具的迅速发展,我们可以用C#、Java、Objective C这样的语言完成大多数开发任务(而不是在纸上打孔或者用汇编),用着Visual Studio这样爽的开发工具, 这并不是因为厂商大发慈悲要拯救程序员于水火之中,而是微软这样的厂商在取悦我们的老板和客户——技术发展的目的是降低软件开发的用人标准,进而降低软件行业的人力资源成本,更快、更好、更便宜地满足用户的需求。从公司的角度来看,如果要求所有开发人员都是基础扎实、技能全面的,那么用人成本一定很高,我完全相信经过一定训练和挑选的***鸟毕业生在经理的正确管理下可以很好的开展工作,尽管他可能不懂算法和数据结构,C和C++基本不会,这并不妨碍他为公司创造价值,随着他开发经验的增长,在时间允许的情况下再去补充一些基础知识也是完全可以的。其次,题主的情况,未必能承担系统而全面学习所带来的成本几年以前有个“学生”,打引号是因为我并没有真正教过他,中专毕业,专业是钳工,曾经给我展示过胳膊上的长长的疤痕,说是被车床伤到的。他要求跟我学的时候属于入门阶段,最开始学习的并不是什么三大浪漫,而是C#. 在掌握了一门编程语言后,很快自学了其他语言(甚至Delphi), 在一年后找到了一个小公司做些基本的开发工作,然后涉足安全领域,开发了各种工具,现在在一家安全公司上班,提升很快,收入不菲。前不久跟我聊他配合网监做一些取证和提审的工作经历。2006年,我在武汉某个夜市的大排档上,凌晨2点多,看到一个服务员在忙里偷闲看一本计算机书籍(扫一眼就知道),仔细一看是一本Java入门书,聊起来才知道这妹子是护校毕业,但是对计算机有兴趣,就想在大排档当服务员攒学费去***鸟。她还拿出一沓油迹斑斑的信签纸,上面全是她写的程序,她说每次去网吧都要装开发环境,太麻烦了,所以干脆在纸上写。哥看不下去了,给一开软件公司的朋友打电话强烈推荐这妹子去实习,朋友一听情况表示拒绝,我说你只要给他管工作餐就好,不用发工资。1个月后这妹子进入试用期,2个月后转正,后来在朋友公司做了近两年,据朋友说开发能力很强,再后来,我就不知道了。作为教师,感动我的总是这这样的“学生”,而不是那些坐在教室里花着父母的钱虚度光阴的学生。可能有人会觉得这样的程序员是“野路子”,不登大雅之堂,但这一点都不妨碍他们兢兢业业的工作,为公司创造价值并且改变了自己的生活。如果这些人要系统而全面的学习计算机专业的基础课程,得需要多少时间和金钱成本?他们所处的环境是否允许他们这样做? 他们不这样做,是不是就成不了“真正的程序员”?好了,我们来谈谈什么是真正的程序员。在我的意识里——能够根据客户的需求(或者上级的要求),选择恰当的技术方案(或者按照上级的指示)开展开发工作,在合理的时间内完成开发任务并达到质量要求的人,就是真正的程序员。要成为这样的程序员,其实没那么难。在这个答案里,我想把程序员分为两个层次:L1- 能根据上级的指示,按照公司的要求和规范开展开发工作的,称为程序员。L2- 能根据客户的需求,选择恰当的技术方案,制定合理的工作计划,独自或带领团队完成开发工作并达到质量要求,称为软件工程师。我想题主可能想成为的是后者,而不是普通的编码人员,在我接触到的程序员中,其实很少有单纯从事简单编码工作的,他们大多数都是干的软件工程师的活。软件工程师应该具备哪些能力呢?我们以前归纳过:1. 分析问题的能力2. 设计解决方案的能力3. 编码实施的能力4. 排除故障的能力这四种能力如果要展开来讲,要写好长的,暂时就不写了。 开始回答——”如何成为“的问题。科学家追求的是知识,工程师追求的是能力。而能力是很难从书本上的来的,只能从实践当中来。我注意到题主的问题中,提到看书静不下心,看视频又觉得太慢,可能从一个具体的项目开始更能激发学习兴趣并且获得成就感。先给第一种路径建议吧——从C语言开始,@ 的问题,也一并回答了。之所以建议C语言,是因为C语言里没有那么多现成的、强大的类库,在不熟悉基本的语法、面向对象这些概念时C#其实比C语言难以理解,很难深入。学习C语言不仅限于对C语言语法的掌握,而是通过C语言的学习,建立程序设计的思维,比较深入地了解一些计算机系统的工作原理。在我的教学班级中,我的教学内容是这样组织的,题主似乎也可以按照这种方式来学习:第一阶段
高级程序语言的基本概念(编译、库、链接等),开发工具的使用(Visual Studio 2010), C语言的基本结构以及在VC中的一些差异,动手能力上达到能按照书本输入一个程序,能编译,能运行的结果即可。第二阶段
变量、指针、表达式、函数、分支、循环、简单的输入与输出。
第一阶段和第二阶段的时间往往很短。第三阶段
开始做第一个小程序(比如最简单的超市收银系统),这个时候学生开始头大,因为很多要用到的东西根本就没给他们讲过,即使网上查得到资料也未必都能用在项目里。学生被我带进一个接一个的坑里,我从不在第一时间告诉他们答案,总要他们冥思苦想抓耳挠腮一个星期了,下周上课的时候才开始讲解决的思路和方法。
经过1个月左右的折磨,他们基本可以完成一个单机版的的超市收银系统,完成比如输入(从键盘,扫描枪就免了)信息、修改输入、价格查询、汇总结账这样的功能。从知识层面上,结构体、指针、文件访问这些基本都解决了,顺带着把简单的查找、排序算法也学了。
可以说这是学生最痛苦的阶段,但是正是这个阶段开始培养他们的自学能力,这个太重要了。但是效果也很明显,到后期的时候,少数学生开始先于我提出解决方案了。
然后接着折腾,先带学生回顾做过的这个程序,看如何能做的更好,运行的更快,Review和重构。
由于是纯C完成的,程序总是看上去很混乱,修改、扩充也不是很方便,于是我们开始探索另一种编程思想——面向对象,C++上场,又是1-2个月,用C++重新写这个程序,在这个过程中,要求他们自己实现String类,封装数据结构和业务逻辑、数据访问......
到这里,一个学期结束了,第二学期要求学生把这个控制台的黑窗口改成图形用户界面。MFC不准用,只准用一个叫做Easy-x的图形库,而且只准用其中的putpixel函数来绘制点,一轮新的折磨开始,从画点、划线、逐点写汉字开始,绘制按钮、绘制文本框、响应鼠标和键盘,并且要求他们开始设计和实现TextBox, Button,Image这些类.....,,顺便把消息循环之类的机制也做了初步的了解和简单的实现。
到这时候,有的同学已经开始做出”高仿Windows"了,要不要太惊喜!
到这里,我基本可以相信我的学生不会为C#和Java发憷了,更重要的是——他们具备了真正的程序员所必须具备的核心能力——自学能力、独立解决问题的能力。
就到这里吧。--------------------------------------------------------------------欢迎不同观点,评论里@ 说道:“作为计算机专业出身的,混迹过几家大点公司的表示很不赞同。这样出来的仅仅只会是最低端的会写代码的员工。和真正的程序员或者软件工程师还有很大差距。整个学习过程都没有一点工程的思想和合作的思想,这在软件开发中是很致命的。这也是本科教育和培训机构的差距。可能这样学出来的很多外包公司都不愿意要,别说大的互联网公司和软件公司。我的看法是:1.不是公司里的所有程序员都需要是大牛2.不是所有程序员在一开始都需要是大牛2.不是所有人都要进BAT或者MS,IBM这样的大公司第一,就像盖房子,有人设计结构,有人设计外观,有人砌墙,有人装修,软件行业分工必然是越来越细(全栈工程师则是另一个极端),越是在大的软件公司里越应该这样,最低端的会写代码的员工存在的价值还是很大的。第二,人是会成长的。从学习路径的选择上,我一贯提倡”先博大、再精深”,在初学阶段用较快的速度(尽管看上去不扎实)涵盖较大的知识面,然后再根据需要或兴趣选择在某一个领域深入学习,没有什么不可以的。我反对的是一开始就投入过于理论、过于抽象的学科里去,这很难取得成就感(相比较于做实际的项目),会降低学生的学习积极性甚至打击学生的自信心,产生“我不是干这行的料”的想法,只有少数较有天赋的学生能取得较好的学习效果;作为教师,我们必须对大多数学生负责。在知乎的另一个回答里,我曾经表达过“脱离生源质量和培养目标谈学习方案是不切实际的理想主义”的看法,我们不可能要求软件行业的从业者都是211、985院校的毕业生,IT行业不可能是精英才能进入的行业。从另一个角度,在学生获得了较宽广的知识面后,完全可以在第二、三学年深入地学习其他课程,而且学的较为轻松,进步速度也很快。第三,并不是人人都需要进入大公司。作为名校毕业生,进入大公司当然是理想的选择。但是对于高职(专科学历)的学生,或者对于那些本来就不是计算机专业的人群来说,毕业时能在一个软件公司拿到3-6K(武汉薪资水准)就已经很高兴了,这能使他们脱离父母的供养,从经济上获得独立。在工作中再进一步提升专业知识和技能,还是可以成长为大牛的,到时候再通过漂亮的工作经历进入较大的公司或取得较高的职位是完全可以的,十几年来我已看到过不少这样的例子。想起一件事来,2012年我公司做了一个CAD项目,验收的时候甲方通知我说从某大公司请了个“技术很强的技术总监”的人来参与验收,到现场的时候那小子客客气气地站起来说“*老师好”,接下来就哈哈哈了。至于“工程的思想和合作的思想”,@说的很对,在教学设计和实践中,“实用型、工程化”是我们一直坚持的原则,其实我们的学生在大一上学期就开始分组做课程设计、按模板编写各种项目文档(尽管真心写的很烂),每天提交工作日志(包括周末和节假日)...... 在这一点上,可能我们比多数本科院校做的好。---------------------------------------------------------------------------------@ 在评论里提到编码规范和其他工程能力,反思了一下这学期的教学(大一),确实是做的不足,有时候仅仅满足于学生把功能实现了就完事的标准,这样容易养成学生不良的习惯,必须要加以改进。谢谢指教!
这很容易,又很困难。算法、语言等当然很重要,但更重要的是这个:“每天”在我看来之所以重要,有两个原因:1. 坚持训练自己2. 承诺这是每天必做之事,真正认为这对你是至关重要的请老实地告诉我,除了吃饭拉屎等生理上的必须,和上班打卡对老板微笑等社会上的必须之外,你每天在坚持自己的什么?真正的程序员并不比其他任何人,比如真正的作家、画家,或者搬砖工人更特别,这只是一件事情,关键在于,你是否由衷地热爱,并用行动在坚持。这张图表示迄今为止,John Resig 坚持了 204 天(半年多),每天写代码。写代码也许太困难太专业,但你能坚持半年每天早上起来叠被子么?我坦白我试过,满地打滚地做不到好男人。虽然我认为不叠被子有太多好处。这是成为真正的任何人的必经之路。包括 —— who wants to be a real programmer.----* 不知道 John Resig 是谁,自己去搜索
个人看来,真正的软件工程师要达到以下四点:1. 至少熟练一门语言,和一个组件。2. 熟练各种职业技能,比如调试、单元测试、写文档,和presentation。3. 熟悉你所在领域的业务,比如互联网、医疗、汽车、金融等等。4. 熟悉一个高大上的领域,比如os、编译、图形、ml。
当无助、沮丧、不安。。你重写一段代码,更简洁,更优雅。一阵轻松..一切都会好起来,就像这段旧代码。
我觉得过两天就好了。真的。C#好像真的很难一样。。俄罗斯什么十几岁的小屁孩没上过学都能随便码出神一样的代码。慢慢学就是了。都是入门难,当你突破了一个点的时候,你就顿悟了,这需要时间。你1岁学走路的时候也是不知道该如何入门,一样的,就那么会了。我们是人。
首先我不同意的说法!!!可能是他站的太高,层面的问题,但是对于很多人而言,你可能不是科班出身,并没有系统的学习研究过软件工程、算法、数据结构。甚至你都没有专科的学历。这时候你最先要做的是快速融入这个环境,搞出一个hello world,而不是从底层算法,设计思想入手。我个人的建议是最快的是去培训学校,因为大多数人的自制力是达不到自学的层次,这时候你需要指引,需要共同学习的环境和氛围。次之看视频,再次之看书。在我看来你没有达到一个层面之前你必须去模仿,去借鉴。因为你自己的理解可能更加的片面。最理想的做法是进入一家不错的公司进行实习,有好的leader去带你,他为了减轻自己的工作压力,自然想方设法去让你胜任工作,当然这需要机遇。我想说的是,不同的方法适用于不同的人,但是千万不要以一种高高在上的姿态去教育别人,你也许很成功。但是你的方法完全不适用于目前看起来永远不如你的人,我追求的是一种普世的价值,其实每个人都在路上,只要愿意一直走下去,每个人都可以说:我在这,你在哪?
问题确认:对你的问题,我的理解是“如何成为一个能赚到足够的钱的应用软件程序员”。因为你要在北上广立足,就要赚钱。既然学了C#,想必是准备从事应用软件开发,虽然我认为Java可能是更能帮你达到你目标的选择。为什么斗胆回答这个问题:十年以上软件开发经验,带领的团队成员平均年薪250K+,有90后也有70后,最重要的是,我希望我的回答能够对你有所帮助,也希望能够有更多的优秀人才加入到这个行业。因为牵涉到薪水,所以我选择匿名,见谅。这个回答适合谁:对应用软件开发有强烈的兴趣能读懂IT英语,智商平均+,本科学历,耐操我理解的程序员:程序员干的事情就是:和团队一起把业务模型映射到技术模型上,详细说就是:理解业务模型,包括用例,用户界面,数据量,安全性要求,性能要求。理解技术模型,包括数据库表,业务处理逻辑,数据转化,显示和一些现在的你可能还没有完全理解也不需要理解的东西比如SCRUM,DevOps,CAP...把业务模型映射到技术模型上怎么判断你是否准备好入行了:一个可能的最简单易懂的标准是,能够用你最熟悉的技术写一个简单的论坛,包括用户注册,登录,树状列帖子并翻页,看贴发帖回帖的就够了,用户界面可以仿照知乎。并且能够用版本控制软件保存源代码,用脚本编译并部署你的应用。当然,如果能写出一个山寨简版知乎就更好了。怎么去面试一个入门的初级职位:非应届的话,做一些你应聘职位需要技术的面试题,我觉得对你来说应该是C#基础,CSS,HTML,JS和SQL,至少要及格。如果是应届的话就去做基础概念题,其实还好,应届的话IQ,EQ和学校可能更重要。尽量事先了解你要面试的公司,去google查一下公司的背景和风格,用linkedin查一下你将来可能同事的经历,如果能查到的话。一见面就要表现出对面试职位的强烈兴趣,对面试公司和面试官的尊重。并保持到面试结束。不要表现出负面情感,不要吐槽任何人或任何事,即便面试官给你很大的压力,有些面试官会故意表现的富有攻击性来测试你的应对。对不懂的问题要直接承认不懂,不要吹牛,绝大多数情况下你无法瞒过面试官。但是要讲出你认为的难点和你会采取的行动。刚入行的时候,如果有选择的话,尽量选择这样的公司:开发人员多的(大多数情况下即便工资低很多也值,而且大公司薪水一般就是平均线)做产品而不是做项目的软件是主业的公司,入门时尽量别选大的甲方公司的IT部门最后,钱是怎么赚的:软件开发有这些环节:需求,分析,设计,实现,调试,部署,测试,发布和维护。实际做过的环节越多,每个环节上的经验越丰富,你就能贡献更多,也就能赚的越多。这个行业一般说来,junior (100k~200k), senior(200k~300k), expert/staff(300k+), architect/principle (400k+) 是技术路线的薪水分布。从senior开始其实有三个选择,分别是业务,技术和管理。现在的行情是走哪条线都能拿到很高的薪水,所以入门时做好基础就行,之后等自己明白了再做选择不迟,一般情况下5年经验时做出选择比较科学。另外,推荐几个学习的网站:thoughtworks的technology radar,还有英文版上的presentation
热爱写程序,热爱算法,热爱数学,热爱思考,热爱生活,热爱身体。
一个人是否可以成为真正的程序员,他的分水岭就在于,能不能至少把《算法导论》的结论和伪代码部分,蛋定地看完。语言啊,API什么的,都是皮。当然我并不是说语言都是一样的。语言之间是很不一样的,但是对于你解决问题来讲,仍然只是皮。基础知识打好了,至少你拿到了一个别人的solution,你也知道是牛逼还是傻逼,进而挑选使用。千万别听那些人说什么【会用开源库就好了我为什么非得去弄明白】,对于他们来说,冒泡排序还是快速排序,只要是别人写的,都一样。
标题起得太大咯,是在故作老成么?“程序人生的寂静欢喜”——怎么看都感觉像是某位已故计算机大师的墓志铭,可却偏偏被一个菜得抠脚的毛头小子拿来当做人生寄语——也是日了狗了!人都没生过,谈什么人生!?莫怪我,我偏要“奢谈”一下!一.记叙一开始我是拒绝的!因为我根本就不喜欢写程序。打高中数理化就不好,什么排列组合、圆锥曲线、电磁场中一带电粒子、水溶液中的水解电离,困扰我有如梦魇。高考时,祖坟上冒出一缕青烟,数学创历史新高考了88,理综破有史记录考了200,数据不仅太美太感人,而且大吉大利、元亨利贞!终于,我以总分522分考上了一所梦寐以求的2本就读于计算机科学与技术1202班——命中犯2!可是对于编程其实我是拒绝的——大一花了一年的时间来研究心理学,大二花了一年的时间来研究哲学,大三花了一年的时间来研究中医——结果,《离散数学》挂了,《数字逻辑》挂了,《数据结构》挂了,《编译原理》挂了——恨不得自挂东南枝!人在做天在看,出来混总是要还的!曾坚信“天生我才必有用”,“我辈岂是蓬蒿人”;曾笃定“心所愿力毕至”,“有志者事竟成”;曾夙愿“天授其赋必赐其福”,“好风凭借力,送我上青云”。可是,一个冷峻若紫电青霜的问题劈面而来:不写程序又能干嘛呢?然而我根本就不会写程序!试想,一个打字只能用到右手食指、左手食指和左手无名指的人,敲代码时是多么捉急!试想,一个高数补考考了19分,满脑子宏大叙事的理科弱智,写程序时是多么脑洞大开!后来去公司实习,遇到的第一个项目就是要使用通信框架,当我第一眼看到了开发手册上的如下句子时,我就知道,春天不会再来了!客户端通过调用ESPlus.Application.Basic.Passive.IBasicOutter接口对应的方法以及预定其相关的事件,就可以完成基础功能或得到相关状态改变通知。我们可以从 ESPlus.Rapid.IRapidPassiveEngine暴露的BasicOutter属性来获取IBasicOutter引用。接口、预定、事件、暴露、属性、引用,你们一个一个来,我还大概能明白,你们群起而攻之,我便委地如泥了!重载的Query方法(带有CallbackHandler参数的)在发送请求信息后,不会阻塞而继续向下执行,而框架在收到对应的回复信息时,会回调CallbackHandler委托指向的方法。由于调用线程与回复回调的线程不是同一个线程,所以称这种机制为回复异步调用。再当我看到“重载”、看到“阻塞”时,我彻底愤怒了!而紧接着映入眼帘的“委托”、“回调”更使我出离愤怒!最后“线程”、“异步”更令我万念俱灭,心如死灰!从此,我便以一种菜得抠脚的姿态狼狈不堪地行走在险象环生的程序世界里。莫非是寒更雨歇,葬花天气,猎猎北风袭单衣;荒原寂寂,远听猿啼,近看寒鸦起;鬼影幢幢,步步惊心,不知今夕何夕。好多次我都想,别瞎费劲了,你不是写程序的料!真正适合写程序的人根本就不可能是这个样子!于是乎放弃。可是不写程序又能干嘛呢?好歹读了四年大学,何况拉弓没有回头箭。还是要顶风逆水雄心在,不负人民养育情!终于,苦水的浸泡痛彻了肌肤,磨练了身心,同时也浇灌出了涅槃之花!某天我突然发现,那些原本看来佶屈聱牙的技术文档如今看来却直白如话,那些原本晦涩难懂的语法如今却能够熟练运用,那些原本看都看不懂的源码如今也能够在自己指下流淌,实习之前我连循环语句都写不对,如今却也能用和等框架开发出像样的网络通信应用。二.议论更重要的是,从当初的不喜欢、不擅长、不自信,到而今能够怀揣着一颗欢喜之心来写程序,能够以乐在其中的心绪来开启自己的程序人生,这不仅是我收获到的莫大财富,更是我把握住的莫大幸福!胡适先生的名言:“怕什么真理无穷,进一寸有一寸的欢喜。”真理无穷并不可怕,因为我们在每一寸的前进中始终获得欢喜。编程之路并非坦途,我们也并非天赋异禀,然而那个最幸福的人,并非是玩转代码的编程高手,也并非是亿万家资的IT精英,而是那个在流年中始终以欢喜之心书写代码,又通过书写代码恒久再获欢喜之人!常言道:“男怕入错行,女怕嫁错郎”。嫁郎要嫁有情郎——有情饮水饱,无情龙肉都无味!入行也是一样。入了所爱之行,举手投足皆得欢喜;入了所憎之行,坐卧立行尽是苦悲!嫁郎的幸福不在于嫁郎所获得的富贵荣华,其根本在于郎本身。那些通过嫁郎以获取外在利益的女子,她们充其量只是获得了生意上的成功,而根本没有获得婚姻本身的幸福,而这何尝不是一种买椟还珠?同样,那些以工作作为纯粹手段的人,他们也从来没有获得过工作本身的幸福快乐。由此看来,我想恐怕对于绝大多数的程序员而言——你不是真正的快乐!所有程序员恐怕可以粗略的划分为这五种状态:1.不爱,但是迫于生计2.无感,反正亦步亦趋3.热爱,但却身心俱疲4.狂热,打了鸡血一般5.欢喜,毕竟乐在其中你是属于哪一种呢?如果要我来选,我一定会选5,因为唯其如此才能获得程序人生的个中真昧,才能拥有彼此交融的内在完满。而其他的几种状态在不同程度上都是残缺的。也许我们写程序总是不可避免的为了各种外在的目的,但是写程序时的那份小确幸的欢喜,却始终是我们精神飞鸟的栖息地。 正如孔子赞颜回——子曰∶“贤哉回也,一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐 。贤哉回也!”罢笔时风烟俱净,但愿自己刚刚开启的程序人生能够无关风月,寂静欢喜。
问题有误。没有所谓“真正的”程序员一说。再说程序员是个泛泛的称呼,建议改成更有针对性的,比如 “如何成为一名合格的 XXXX 程序员?”。这个题目给人的感觉好像是题主有某种”真正“浪漫情结,建议题主去讨论下面的问题:如何成为一名真正的人? 如何成为一名真正的男人? 如何成为一名真正的女人? 如何成为一名真正的学生?如何成为一名真正的朋友? ...
我觉得大家貌似答偏了,我觉得题主现在的情况是一开始学就遇到困难,入不了门,现在重点是要突破这个入门的难关,如果没入门,很多专业术语都看不懂,理解不了,当然很难看下去了。这里我推荐两个入门视频,郝斌的C语言视频教程,郝斌的数据结构视频教程,虽然题主想学C#,但要做一个程序员,C语言和数据结构的基础还是要有的,有了这些基础后,你再去学java也好,C#也好,C++也好,就会容易上手很多了。
等到你有颈椎病以后你就成为了一名真正的程序猿。(我能说我是认真的么?)
1.知道电脑怎么开机。2.学会一门编程语言,编程语言道理相通,一通则全通,入门推荐学习Js。3.进入It公司工作。4.遵循规范编码(每次看见不规范的代码以及各种奇葩格式的变量命名我都觉得那是坨屎!)。5.懂得抽象。6.懂得复用。7.听话做事,时间充裕以最优方式实现,时间紧张则不顾一切达到目标。8.任务按时或提前完成。9.服从加班,但要有补偿,否则跳槽。10.承认自己的程序有bug。11.不脏,不乱,不臭,不猥琐。
题主你的学习经历和我大学时候很像,计划的学习路线也很相似。你会DW
html/css ,就别浪费,可以以此为基础学习web开发。别去折腾C#了。网页开发用的 .net
和C#其实不是一回事.而且如今微软的那一套搞网页开发已经很out了,你可以去招聘网站看看招.net
C#的有多少,招php
ios 这类的有多少。个人建议你去学php。这种完全针对web开发的语言入门很简单的,尤其是你有html基础,很容易就可以写点儿项目出来,而且找工作实习特别简单,由浅入深比较顺。至于那些什么说看《算法导论》啊,《计算机原理》啊之类的人,让他们一边凉快去吧。
这个问题对我来说是很少见的:没有任何一个答案我点了赞。这些答案中我最满意的是V大的答案,但是答案还没有好到点赞:v大的答案描述的程序猿是优秀的独行侠。但是我并不认为独行侠是真正的程序员中的大多数。但是一个问题是,我觉得我还不算优秀的程序员,这样回答“如何成为一名真正的程序员”是不是有点底气不足?所以这个答案只是我的臆想,各位轻拍。我的一个略微哲学一点的观点是:社会是在进步的,这种进步的一个方面就是社会的组织能力的上升。而组织能力的上升的内涵就是人与人之间合作的全方面深化。以这种观点出发,一个真正的程序员,应当是具有相适应的合作能力——这种合作能力,表现到工作当中其实就是工程能力。工程能力有几种:沟通协调、工作计划、人员组织、流程控制、总结自省、技术实施。===============写到这里突然发现可能写成个大长篇……==================1、沟通协调,对于真正的程序员来说,至少要能和同事顺利的交流——你可以把同级、下级、上级都简单的归类为同事。不要求你像项目经理一样见人说人话见鬼说鬼话,但是至少沟通不要留下什么芥蒂。当然,这个是很难培养的,各位看官只需了解即可。2、工作计划,真正的程序员不单要能安排自己的工作计划,也要能以此为中心了解你和其他人的工作计划有没有冲突。这就要求你在做工作计划的时候和同事沟通良好。事实上,我发现如果能做好这点,很多情况下没有必要熬夜什么的。3、人员组织,作为真正的程序员当他使用别人写的接口出现问题的时候,他至少能够知道去找谁,如果对方拒绝修改,他知道如何利用组织强迫对方修改。恩,反过来,阻止对方强迫自己修改。(这点我有切身体会)4、流程控制,还是调用别人写的接口的时候……你是不是应当偶尔介入下看看人家写了一半的接口有什么问题没有?我觉得真正的程序员应当做到这点的。5、总结自省。吾日三省吾身。其实绝大多数从事编码工作的人这点都做的很好……但是问题是,要是都能做到这点,上述的几个能力早就该具有了啊……6、这个时候出现技术实施是不是有点晚啊?真正的程序员应当在技术方面做到什么?版本控制SVN、CVS、git您得会一样吧?编码规范……你就算直接用eclipse里面的那个自动代码排版我也没有问题啊……?文档编写能力……这个说实话,到现在为止我都写不出自己满意的文档……========================小总结===================================能做到上述能力的人实在是少之又少的……我就觉得Linus大神能做到上述的所有要求……==================留在这里,等待补充================================
多搜索,少提问,特别是社区提问。很低效的。API绝对是基础。 算法会提高你的逼格和局部优化能力,但程序是用来解决问题的。很多算法牛X的人根本不知道他应该优化哪里,真正的问题往往出现在编程语言不够清晰导致的bug中,即使要优化,也要先找准问题点,而且未必用得到算法。要学会优雅的解决问题,减少错误和返工。一次返工代表三次思考,包含了两次编码和一次删除;而一次错误可能导致返工,更糟糕的是你找不到,错误还会扩散。这是很痛苦的,所以一定要把代码做得清晰优雅。所以要学会如何降低耦合,如何重构,如何应对需求变化。
#include&iostream&int main(){
cout && " I'm a coder now! " &&
return 0;}把这段代码打出来然后在Linux下用g++编译下然后运行,恭喜你,你已经成为c++程序员啦!不是在抖机灵,只是觉得程序员不过是能用代码解决问题的人而已,真的没有必要拿算法来吓新人,对初学者来说,多敲代码,在项目中锻炼自己是最有效的办法了。
题主这种阶段我也经历过。现在我还在学习vczh说的皮,然后努力向更深层学习。1.题主看不进去书可以到传智播客上下载一些.net视频看一看,苏坤老师讲得还是不错的。淘宝上有个的教程也可以去买来看一看,30G左右。1.边看视频边自己敲一些代码。脱离视频自己敲一些控制台程序,骑士飞行棋什么的。从网上下载一些源码自己运行,调试,理解代码为什么这些写,为什么那样就会报错。看看数据是怎样走的,之间有什么关系。了解封装,继承,多态。3.差不多就可以去面试了,放低身份,因为你现在还什么都不是,算是个实习生吧。(有朋友可以带进公司是最好的,但要是很好的朋友,能在工作中提供各种帮助。回答你一开始的各种常识性的知识点而不厌烦的。)最好找一些做ERP之类的公司面试,因为这些公司自己比较成熟,有了很好的框架,再开发业务模块也大至相似。从工作中进一步学习。在工作中学习是最快的最有成效的。再后面就跟我一起探索下一步怎样更好学习了。4.对了,英文得同步提高,有道词典充分用起来,查过的词都加入到有道单词本,定期复习。Android平台的百词斩记得每天斩一次。(不开玩笑,英语特别重要,有钱有时间很有必要报个班)以上愚见,希望能帮到你。

我要回帖

更多关于 网络编程怎么学 的文章

 

随机推荐