第一篇:如何成为一名程序员
苦逼中的战斗鸡:如何成为一名程序员
下面要说的是我在成为一名程序员的道路上做的几件事情。写在这里除了要让自己铭记在心外,我还希望它能对别人有些用处。1.建立一个博客
这是我后来才认识到的事,其实应该很早就去做。如果你是跟我类似的情况,你应该尽早开通一个博客——尽管还不知道该写什么。注册一个域名,买一个 空间。你会惊奇的发现有很多可写的东西。你可以记录下你成为一名程序员的过程,或写一下你感兴趣的技术方面的东西。我一直以为没什么好写的,可当真正思考 这些问题时,却发现有很多值得写的。最重要的事情是开始去做。2.开发一些东西
开发什么并不重要。选一种编程语言,任何一种都行,开始干。你不必去花大量的时间来决定应该使用什么语言。直接开始学一种语言,事实上最重要的是学习编程语言的基础知识,而不是劳神费力的去选择一种“最好的编程语言”。我选择的是PHP。因为它是一种被广泛使用的语言,在网上有大量的学习范例,我已经通过搭建一个WordPress网站而熟练的掌握了它。没有丝毫的遗憾。它使我学到了很多 基础知识。我还学习了其它语言吗?当然,我后来涉猎了很多脚本语言,我要在下一个项目上试试Ruby。编程语言不断的在变化,不要只盯着一个不放。3.注册你的GitHub帐户
我已经在Bitbucket上有了一个代码库。我最初选择注册Bitbucket是因为它能提供5个免费的私有库。后来我决定在GitHub上注册。事实上,我丝毫没有拖延,看看我的成果吧。4.向开源项目捐赠代码
我早该如此做了。我起初低估了做这种事情的重要性,说老实话,我现在仍需要进一步重视。向开源项目捐赠代码,这是一种很好的学习别人如何编程的方法,并且能把自己的代码公开。我今晚的就要去列一个准备去参与的开源项目的清单。5.热心参与
这也是我需要改进的方面。我应该到stackoverflow网站上去回答更多的问题,在一些博客,科技网站上分享自己的东西。去那些网站,让大家看到你。不在网上露面,就相当于待在屋里不出门却想找一份做巴黎导游的工作。重复做第2,4和5点 其它一些事情
很明显,每一个有志向的程序员都应该每天阅读Hacker News和其它开发/科技/编程类的博客文章。
我打听到了不少的技术讨论会。这周末我准备去参加一个。我会把那里的情况写出来。我在这里并没有提读书。我喜欢阅读,但我们没有买任何的关于web开发的书籍。这是我个人的做法。我相信很多人都会建议首先买一本书看看。
找一些能和你讨论你的web开发/技术/编程想法的人和群体。如果我做了更多的第5项,我可能找到了更多的这样的人。
好了,这就是我要说的。这些就是在过去的一年里我成为一个程序员的成长之路上做到事情。如果有人觉得在这个清单里我还应该加入什么,请给我留言。我永远都希望听到新的观点。
第二篇:教你如何成为一名Java初级程序员
目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员。本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享。
个人认为想成为一个合格的JAVA初级程序员应该具备如下知识:
一、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;什么是抽象类,什么是接口。了解了概念后,您还需要这些概念是如何体现的,如类和对象有什么区别?类是如何封装的?
二、JAVA语法:如果您已经有了开发经验,恭喜您,您学习JAVA语法来将比较容易。如果您有C++等面向对象语言的开发经验,您只需简单的翻看一下介绍JAVA的相关书籍就可以了。如果您是新手,没有关系,您下些工夫,好好研究一本JAVA初级教程之类的书就可以了。
学习了JAVA语法,加上面向对象的知识,只有您用心,您就可以写出来比较好的JAVA代码了。如果您再抽出时间熟悉一下JAVA编程规范,您代码的水平就应该不俗了。
三、JSP和HTML:在我国的绝大多数公司,做JAVA程序员都少不了和JSP以及HTML打交道。因此,想成为JAVA程序员就不可避免的要熟悉JSP和HTML,您最好能知道JSP的几个内置对象,如Session,Request,Reponse,以及常用的JSP标签,如include,userBean等。尽管一些工具会帮您生成HTML代码,但您还是要熟悉比如title,,等。如果您再熟悉一下JS和CSS就更好了,那会使您制作的页面更友好。
四、WebServer:熟悉了以上三种,可以肯定的说您已经可以制作出来JSP页面了,您也可以在您的页面里使用自己开发的JAVA类(JAVABEAN)了,但您的页面总要跑起来才能看到您要的效果,这就要求您必须熟悉一种WebServer,比如:TOMCAT,RESIN等。您要熟悉如何发布您的应用,如何利用WebServer的数据库资源等。
五、开发工具:大家都知道,开发工具可以帮助您更好更快地开发,因此熟悉几种开发工具很有必要。目前JAVA的开发工具比较流行的有JBuilder,IDEA,Eclipse,HTML的开发工具有Dreamweaver等。
六、熟悉一种框架:熟悉一种框架其实是成为JAVA程序员的一种可选知识,但目前开发B/S结构的应用的开发小组,都差不多会采用一种框架来构建自己的应用系统。框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本。目前比较流行的框架有Struts和WAF等。
第三篇:如何成为一名优秀的程序员
如何成为一名优秀的程序员?
一位仁兄说的“程序员写的程序不是算法+语法,而是要能够满足用户需求的工具”我非常赞同,要想达到用户需求就必须从各个方面来考虑如业务、人机交互、效率等方面,而不只是一个语言(语法)的问题,语言(语法)只是工具,只知语法不知其他那就真是编程机器了!编程机器在印度高中生经过几个月培训,按照严谨的软工方法,加上较高的管理,就可以胜任了!大家相信吗,我是相信的!谈到这里我就不禁说到了国内教育界最近在探讨的问题“计算机科系的毕业生特别是本科大专生到底出来干啥、如何适应社会要求,大家也看到了很多计科系大学生说精通N种语言,熟悉N种工具,不知道学校里的其他知识到那里去了,甘愿做编程机器,浪费了人民的纳税,干高中生能干的事,比较可惜吧!在国内现在就是这样了,看过一则帖子:清华的计科系毕业生在建筑院里搞开发还不如建筑专业的毕业生。说着说着就岔道了,国内的软件开发业到底是需要那些人:如果仅仅是编码机器,那我估计中国硅谷还是做梦去吧!
社会似乎也需要编码机器,翻翻招聘广告,做应用开发的都要求精通某某语言,熟悉某某工具,很少需要懂管理懂软工的人。以我个人一点偏激的想法,民族软件产业要腾飞,更需要的是能管理使用编码机器的人,即管理人员、国内软件产业编码机器已经很多了。希望不要惹怒了那些编程高手!system develop与Application develop在国内到底哪个能养活你,能赚钱,诸位仁兄想必也知道,况且俺也没发现几家水平高的公司招这方面的人,毕竟OS,DB MS,COMPILER都被国外做了、另外也别跟我谈LINUX,毕竟还是少数烧钱的人做的事情,我先喂饱肚皮再说。我手下的很多搞4GL语言的程序员都想转行学VC等所谓的更低级的语言,我总是说在XX城市,先用4GL工具生存,以后再学习VC吧!,说的简单一点先解决肚子问题。如何判断自己是否是编程机器?
1、面对需求不考虑用户,只是考虑用那些程序技术展示自己的语言语法技巧.2、学习了N种语言.3、从来不学习或实践软工.4、语法语言水平在众人中遥遥领先、特别是一些稀奇古怪的语法 凭着兴趣和创造力去干,却重复繁琐的劳动。做着没有意义-唯一意义是赚钱,而且真是出了半斤力,拿不足八两。终日劳累,却不能学自己想学的。最终结果是跟不上社会科技的发展,人已衰老。悲哀!!
开发软件的关键是要有想法,一个好的想法比什么都重要。尤其是有关 网络方面的就更是如此。入门还可以,但是要继续深入了解可能要难点。未必吧 偶觉得大学里的高数 数理方法之类的, 如果你不是做研究的话, 应该是很少能 用到的 不过如果说到离散之类的, 倒还是时不时的能有点用现在的程序员比起十年前是不是要花更多的时间来 查帮助呢。系统越来越大,手册越来越厚,软件开发的 周期是不是越来越多的淹没在查帮助之中了呢。
实际上一个程序员最终的技术需要和实际相结合。真正在编写程序到达一定时候,语言的使用并不是最大的障碍,对整个项目的把握、软件工程的把握、数据库的设计以及执行效果的分析等等才是需要进一步考虑的东东!否则,为何大多数公司到要求有编程经验了!这些不是程序员必须学的。但数据结构,编译原理,操作系统原理等是必须要学好的,英文的多看,不懂计算机英语可不行。其实我不是什么中专生,而是我读的中学和一个私人办的电脑学校联合开的电脑专业(并不是我中考考的差,而是这个学校太贪钱了,才被录取到这里,恼火,我们班里中考成绩从两百多到四百多的都有,我就是四百多分(重理轻文的结果,要不然...),当时读书的时候,我是班是的高手(其实只是比其它同学懂而已),大家叫我dos,因为当时学的都是dos的内容, 毕业后还没有对编程很感兴趣,只想找一个电脑的工作就可以了,哪怕是打字的,可是看报纸,去人才中心,看到都是要大学的,为此感到很失望.也对电脑失去了兴趣.后来学校打电话到我家,说厦门
厦华公司要招工,要不要去,我很快就答应了,因为当时没工作,天天呆在家里.后来打工的时候,天天象一个机械人一样,重复着同一道工序,因此经常在深夜的时候,思索着自己的未来,由此重新生起了对电脑的感情,因此经常买电脑杂志和报纸看(可以堆成一座山了).由于离我住的地方不远处,有一个电脑培训的,所以经常到那里上机,而在学校里学过的软件也只有FOXBASE和WPS,其它的不值一提,所以上机经常用foxbase,直到这时候,才对编程产生了浓厚的兴趣,一年后,自已买了一台电脑,开始认真学习编程.由于我是属于职业中专的,因此经常想,就算学得再好也没有用,所以想考程序员,而考程序员要懂得c语言,所以就学习turbo c,学完了,学数据结构,同时看'C高级实用程序设计',澳门回归和2000年的两个晚上,我都是在编程中度过的.由于我这个人对书很感兴趣,经常在星期六,星期七去书店,而在书店里,也是看编程方面的书,而看到的编程书籍大部份都是windows方面的,为此也经常思索着学dos编程到底有没有用.后来,春节放假(要2月13日上班)回老家,天天去新华书店(正月初一也去),看到也都是windows编程方面的书多得像狗屎一样,所以就下决心学windows编程,因此正月初四(快餐店还没有开张)就去厦门了,很快买了delphi的书和d版delphi5,疯狂地学习(到目前为止,买了8本delphi的书,因为国人的写的书实在太烂),而由于遇到不懂的又不知道怎么办,为此想到了网络,但在外打工不可能上网(上网吧太贵),所以就辞职了(4月21日),现在,程序员考试快到了,是报还是不报一直犹豫不觉,困此才有此问题.打工的岁夜,我永远不会忘记,因为付出太多了,也失去了太多(坏了两个光驱,瘦了几斤),直到现在,脑海里还不时浮现起那几个无眠的夜晚.忠心感谢大家.我不认为编码的人就是机器, 而系统分析就不是机器, 其实系统分析员就是销售的机器, 所有职员有是老板的机器.它们之间这是不同工种吧了, 当然对系统分析要求要高一些, 薪水也高一些, 但更让人佩服的是销售, 是他们驱动了整个的运作.我也是个中专生, 还是学机械的(后来自学了计算机), 我非常了解在传统的制造业是如何的规范, 设计人员设计图纸, 然后经审核, 再到车间试样, 再根据情况, 修改图纸, 如此反复几次后才能一个产品定型,而在软件界, 就没那么好了, 领导会说, 这个你做, 那个他做, 也没有经过很细的分析(国内很多都是这样), 在我们这里也没有系统分析员, 每个人都是设计员, 也是编程员, 虽然这样对个人来说, 能学到很多东西, 但不利于项目.我国的软件过程水平,确实令人担忧, 目前为止只是, 几个人十几个人的小软件, 还没有能拿得手的大型软件.至于中专生编程问题, 我认为只要入了这个行, 就不会比本科生差, 因为对他来说没有优越的学历条件, 那么只好埋头苦学, 但这正好适应当前计算机软件迅速发展的今天, 学历只能代表过去和基础, 更需要的是有能力的人, 解决问题的人, 实干的人.对我来说确实有时有点自卑, 没有上过高中和大学(由于那个年代, 我只知道能为父母减少一点负担就行了), 所有我一直在努力的学习(corba, uml, java, 软件过程等), 目前为止我并没有觉的我的构架能力和编码水平比他们差, 只是觉得E语言实在太差.过计算机本科又如何?我有几个同学到银行去搞业务了,有同学任教,有同学收税去了......60多个人真正现在搞计算机的还就只有几个人,再看看当时这些计算机本科生的毕业设计,//faint有的人到最后连vb都搞不定,但他们什么编译原理啦什么组成原理啦什么软件工程啦学的(应该是考试的分数)真还不错,至少我感觉有些概念比我清楚(上课没听?)所以我觉的中专生并不比一般大学生差(当然有些重点学校除外//hehe),有时中专生有更大的压力逼迫自己去学习,学历不是重要的,关键是一个人的素质.我们不能将目标定位在做程序员或编码员(Coder)上光会写代码有什么用?那叫“编码员”,在国外是属于体力劳动的,不像国内,会写程序的就叫高科技。重要的是分析问题、解决问题和规划的能力,系统分析,系统设计及项目规划才是正途。这就需要学习所谓的基础课程了,如:软件工程、离散数学、数据结构等等。
从vb到现在开始学vc后,一个人捣鼓了几天也没有什么新发现。跟本不知道VC的编程思想是什么,请大虾们告诉我,它和VB的差别真是太大了。VC的博大在于MFC的操纵,它是Win32API的封装.思想在于怎样了解MFC的内幕,它的运行机制.差别也大,差别也不大!这要看你对API的理解了,虽然VC++的可视化没有VB的好,但是不是绝对没有的,其对而且对话框的编辑是跟VB一样的,不过不是像VB那样放在第一个界面罢了,VC++的博大精深是VB难以望其项背的!:)而且VC++是完全面向对象的编程工具,而VB是不够完全的面向对象编程工具,VC++是完全编译语言,VB是本地编译语言,不够完全,VC++效率高,封装性好,继承性高,VB效率相对低了很多,但界面友好,二者只能取其一,或者使用VC++,VB辅助(因为VB开发快),当然Delphi,BCB也是不错的选择。
程序员不应依赖开发工具,程序员更应该拥有的是一种思维、一种精神、一种观念。就像
Richard.M.Stallman一样,有自己的精神,为自由软件而奋斗。就像求伯君,为民族软件的振兴而奋斗。这才是真正的程序员。
应该说,他们更注重的不是技术,而是软件的思维,软件的灵魂!我刚学VC的时候,还没有上网.身边也没有一个可以问的朋友,所以大部份都是自己啃的.那种感觉真是很痛苦.现在在网上就不同了,可以得到太多的资料了,而且还可以得到在线帮助.但这些都不是学习的关键.相信各位也知道VC的难度,并不是那么容易上手的,所以要想学会,学好VC,靠外力是不可能的.主要得靠自己.自己要有一份难得的毅力,对编程的狂热也可以在一定程序上起到帮助.我就是这样的.起初,没有人帮我,我学习VC是三天打鱼两天晒网,学习进度很慢,幸好对编程的执著,使得自己坚持下来了.如果你从来就没有接触过编程,那你学习VC的速度可能会比学过面向过程编程的人要慢一些,因为你要去理解命令及语句的含义.但只要你努力,并且可以得到别人的帮助,我相信在半年内会对VC有一定的认识.请学赤面向过程编程的朋友也不要笑,因为面向过程与面向对象实在是区别太大了.就拿封装一词来说吧.当初我是左想右想才想通的.所以不要自己学过编程,就会在学习VC的通道上比别人轻松.现在有一种现状应该让我们注意.我发现有很大一部份初学者觉得VC是一种语言,C++又是另一各语言.我在和一些初学者的交谈当中,查觉到了这一点.有的初学者竟然还认为我学VC为什么就一定要学C++?我想这个问题是我们大家都没有注意到的一个问题.就是向初学者讲述C++对VC学习的重要性.我这有个例子,跟大家讲一下.我有个同学,他接触编程比我要早,在我还在为VC中“::”符号怎么标记的时候,他已经在学习C了.后来,我对VC稍有理解的时候,他也发觉C的跟不上时代的脚步了.我便提议他从C++语言学起,可他认为自己有C的学习功底,根本就用不着再去学习C++.可在学习VC的当中,遇到的困难真是数不胜数.最近,他还是去买了一本学习C++的书.从头再来学习C++.我希望通过这个例子,能让广大的初学者知道,C++对VC学习的重要性。
学习VC必须有狂热的编程热情,否则是很难坚持下来的,我周围就有几个这样的人,他们比我先学VC近半年,但现在仍然学不会,而我现在虽说不是很厉害,但基本的应用程序是不在话下,我就是天天看书,上机实践,几乎所有的时间都泡在里面,有时连吃饭都在想,为什么,因为我确实想啃下这块硬骨头,我不想半途而废,我觉得学习VC不仅仅是学到了更多的东西,最主要的是培养了我们自己一种坚持克服困难的毅力。
对于VC,我有几点经验:
1。技术为本,语言为次.2。MFC的单个类有用,DOC/VIEW要小心。
3。OOP要小心,使用不当反而造成大量的工作和糟糕的代码。
4。如果可能,考虑选择使用Delphi(CBuilder+VCL)。
5。到了一定程度,一定要学COM。
要学VC,必须有对C++深刻的理解,对WINDOWS运行机制的深刻理解。尤其想成为VC高手。举例,对于虚函数,不仅要知道有这么一个东东,更要知道它的内存镜像。这样才能对VC中很多的东西举一反三,事半功倍。本人学习VC近2年,但自觉第一年由于心情浮躁,把VC的书翻了一遍又一遍,却每次都只看了一点就无法再深入。直到毕业前夕,痛定思痛,克服浮躁,认认真真的从最基本的开始学,把每一点都搞的水落石出,经过三个月的刻苦,终于大成。直到现在,半月搞定COM/DCOM,都托当日刻苦之福,因此劝告想学VC的朋友,一定要顶住开始的艰难岁月。成功属于刻苦者。
每个人都有自己的学习方法,也许这种方法对我来说有用,但不见 得就对所有的人有用.所以,请不要盲目的跟着别人的学习方法学习,要思考属于自己的学习方法.但我还是会向大家说出我自己认为比较好的一种方法.学习编程其实与学习其它东西一样,要想掌握它,就要实践,实践,再实践.当你学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法.这个实践不是照著书上的例子做一遍,而是根据自己的能力,给自己出题,然后去完成它.只有这样,你才能发现自己的不足,同时又增加了自己的编程经验.但要成为合格的程序员,光会写代码是远远不够的,更重要的是思考.谋定而后动,是 不变的真理.在我的理解,VC只是一个编程工具,就如BC、BCB、Delphi 一样,其实对于编程最根本的就是三个方面,语言、开发包、操作系统API,他们三个方面应该说是相对比较独立的。
VC是MS开发的,所以针对的是windows api,你可以不会C++,也可以在VC下用C写出很优秀的程序,当然如果你比较熟练C++,并且熟悉开发包MFC的话,工作可能要轻松不少。所以在我看来,学习的过程可以是这样的:
1、先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;
2、在基本上掌握了语法之后,开始接触简单的系统API,学习Windows的编程原理和机制;
3、在可以编写简单的菜单程序,可以简单地在WM_PAINT下操作 GDI函数后,开始学习MFC,可以从Step tourist学起,看MFC的源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。在学习的过程中为了给自己增加点挑战,尽量不要使用resource edit,试着自己编码实现控件的创建,消息的响应。再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。究竟我们要的是结果!良好的分析问题高效清晰地肢解问题的能力才是我们真正要不断学习的吧?和学习其他知识一样,重要的是获得提出问题,分析问题,解决问题的能力,不是为编程而学习,你具有什么样的思想,就会写出什么样的程序。学一门语言,不能仅仅是语言,要注重语言背后的思想方法,看他是如何来解决某一问题的,为什么要这样去做,他总是要符合客观事实的,就像人说的话一样,存在某种逻辑,数据的组织,信息的传递,靠你自己的头脑去建立,然后看C++中有什么可以帮你的,该怎么样用他来表达自己的想法。只要你认真实践,努力去做,寻求乐趣,就会达到目标。我虽然 真正认真学习编程的时间不长,但现在我是认真的,就有了以上的体会。
学习VC++有相当的内容要学,而最后的深度则看个人的悟性与勤奋了。
1)掌握最新标准的C++。(2个月)
如果曾经在大学里自以为学过C/C++,还对
dynamic_cast/static_cast/template/try/catch/throw/stl/...感到陌生,那你该Refresh一下新的ANSI C++标准了。----此与VC++无甚关联,g++/bcb均有所支持。
2)学习SDK编程;:-O(6个月)痛苦是暂时的,必要的,坚持就是胜利!建议用Lccwin32/Masm32/Tasm
编写小而精的工具软件; “Windows Programming Guide.”“Advanced Windows programming ”
3)研究MFC源代码。(6个月)
不要被一大堆的宏所蒙蔽,just track and dig into it!在知道MFC如何扩展,包装SDK之后,自可功力渐进,不被其MFC系统框架所困绕。“MFC Internals”
4)研究OLE/COM技术。
COM/ActiveX技术是MS的核心技术,只有彻底洞察其理论精髓才可以体会现在的操作系统的技术趋势,以不变应万变。
“Inside Ole 2”
***几点建议***:
1)Delphi/BCB/VB可以很快构筑界面,但对于想真正学习、理解系统不是一个好的平台,但如果有时间读一读VCL的源码,看看Borland是如何封装系统的,也可借鉴不少。
2)学习ASM对理解C++有很大益处。Soft-ICE也是和VC++结合在一起的好工具;
3)语言本身是皮毛,算法是筋骨;无论高级语言如何发展,在理解操作系统的基础上不断自我创新的能力是源源不断的;如果精髓一旦了然于胸,选择何种开发工具都可以驾御,一见如故了。
每个人学习的过程都会不同吧,我在98从TC转向VC时,对Windows的消息机制一点概念也没有,对着个MFC不知所措,几个月下来一点进展也没有。我于是暂时转向win32位编程。整整一年时间吧,我就是与API打交道,连编辑菜单条对话框等资源文件时也用Uedit32手工编写,为的是希望能对编译器的全过程有个感性的了解。之后我再转向MFC时,果然发现两者是相通的,虽然有一定的区加,不过有了win32位编程的基础再看MFC 时会发现它比win32位编程要方便了太多。现在市面上的VC书很多,不过大多是入门书。我以为要精通VC(只是以为,本人自已距精通还远的很)应该多看多写程序,看书只能是入门,会用了而已。我不赞成滥用ActiveX,一来我以为它的性能很成问题,真是又大又慢又不稳定(可能是我有点偏激了吧),二来用了它您的程序今后就要被别人牵着鼻子走了。有次我用了个控件,程序都写了大半了,它给我来个继续使用请支付333美元,我两个多月的工钱,烦不烦人?现在我尽可能用别人写的类源代码(我已收集各类代码3-400MB了),一样用起来方便,还能边用边学,必要时还能自已改造。
我以为在现代的网络时代,资料到处都有,无论什么先进的技术,今天我不会我只要查到资料,快的学上几天慢的一两个月我也能学会,现在已没有写不出的程序了,写不出是因为你没有耐心写完它。我以为现在的程序员不一定要多么聪明,而更需要他有完成枯燥项目的耐心,找BUG的细心,对于金钱的平常心(不要为了早日拿到钱而赶进度),最后最重要是有顾全大局,团队协作的精神。最后,王靖朋友的经历与我实在是有点相似,算是同病相伶吧,真心祝您早日实现自已的人生目标!学习VC是一项费时费力的艰苦学习过程。为了真正用好VC,你 不得不先从OOP开始学起,也许浏览一本纯理论的书要更有意思。你将从另外的角度考察OO思想。接下来学习C++,学习WindowsAPI 学习MFC,剖析MFC,扩充MFC,创造自己的类库(不要企图写一个 和MFC同重量级的类库)。如果能够精通Microsoft C编译器的各种 参数,你就可以开始研究微软C/C++语言编译器的进化历史(结合 各种背景知识)。掌握了编程的思想,征服VC只是时间问题。
学习VC是接受微软技术体系的过程。所需要学习的不仅仅是C++,MFC。需要学习所有微软的技术,包括Windows编程,Win32系统(实际上 Win32系统实现了很多我们在屏幕上能看到的东西,最起码NT的内核 并不大),COM(深入研究它,理解对象是如何跨越进程边界的,最终 能够自如地在Exe中实现自己定义的接口才算到家了。不过这多少有些 不太必要。),DCOM,ctiveX,Windows DNA...如果你想成为
大拿,学吧,没完没了。最起码,使用VC,你甚至于可以开发自己的操作系统(当然与MFC没有一点关系)。
第四篇:如何成为一名优秀的Java程序员
www.xiexiebang.com
如何成为一名优秀的Java程序员
为什么越来越多的90后偏爱互联网行业呢?他们的择业观与80后有哪些区别呢?
在公司内部,90后更偏爱自由开放的企业文化。从调查结果来看,有73%的受访者赞同“开放自由、相对宽松”是最理想的企业文化,仅有13%的受访者可以接受“严格守序、集体高于个人的传统企业文化”。在追求自由的风格影响下,大部分90后都明确表示反感办公室八卦和职场潜规则。
每一代人都有自己的择业观——70后追求稳定“铁饭碗”;80后奉行实用主义,看重职业发展;而90后爱高薪更爱自由。波士顿咨询公司的最新分析报告显示,2014年互联网行业在中国直接创造了170万个就业机会。随着行业的进一步发展,预计2020年有望直接为约350万人带来就业机会。短短几年间,蓬勃发展的互联网公司已经成为深受90后青睐的就业选择。很多90后之所以热衷在互联网企业就业,与行业广阔的发展空间、人性化的管理风格以及诱人的薪酬福利有着密切关系。
四川是旅游的天堂,无法拒绝她火辣辣的美食,无法拒绝她惊艳的自然风光,更无法拒绝她的古蜀文化。中国作为全球首屈一指的大国,IT培训缺口日益增大。从国家到地方,政府纷纷鼓励年轻人学习一技之长改变命运,成为很多人的首选。那么,2017IT培训前景如何?是不是真如传言中所说的高薪职业永不失业呢?
不要被小编的慷慨陈词所打动了,和你们说好做彼此的天使,所以今天不选择套路你们。好了,言归正传,来看看小编送上的IT培训福利是否能打动你吧~今天小编想给大家扒一扒大家感兴趣的IT培训!
www.xiexiebang.com
我们认为想要成为一个合格的Java程序员,必须需要牢固的基础,这样在未来接触新的知识的时候,才能快速吸收,基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么作为一个合格的Java软件工程师需要怎样的素质?
一,良好的编程能力。编程能力直接决定了项目开发的效率。这要求软件工程师至少精通一门编程语言,熟悉它的基本语法、技术特点和API(应用程序接口)。
二,自觉的规范意识和团队精神。随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。一般来讲,软件企业中的程序员可以分为两种,一种是“游击队员”,他们可能对编程工具很熟,能力很强,编写的程序简洁高效,却缺乏规范和合作的观念;另一种程序员个人能力不一定很强,但程序较为规范,合作意识良好。第二种人更适合现代软件企业发展的潮流。对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良好的规范意识和团队精神。
三,认识和运用数据库的能力。信息以数据为中心,因此与数据库的交互是必不可少的,了解数据库的操作和编程是软件工程师需要具备的基本素质之一。四,较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的新动向、阅读技术文章离不开英文,与编程高手交流、发布帮助请求同样也离不开英文。作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。
www.xiexiebang.com
五,具有软件工程的概念。基础软件工程师从事的工作相对于系统分析师和高级程序员要单纯一些,但是他们仍然是整个软件工程中重要的一环,他们同样需要具有软件工程的概念:从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作。与信息技术领域先进的基础理论教育相比,我国高校软件人才培养模式在实践技能的培养、IT编程前沿技术的获取与沟通、具有国际水平和标准的软件项目开发等方面的培养存在极大不足。为解决这一问题,有必要在高校推出“软件教育产品”的人才培养模式。“软件教育产品”是一种培养中、高级软件人才的教育产品化解决方案,其根本目的可以归结为--培养掌握IT技术发展方向、熟悉国际开发准则和标准,并且具有丰富项目管理经验的高级软件项目管理人员。“软件教育产品”包含了教学方案的设计、课程选取与设置、教材的引进与二次开发、教学管理流程的监控、教学实践环节的落实等等。
国信安IT培训基地专注java培训、php培训、UI设计培训、软件测试培训、大数据培训、web前端培训等培训课程。你们准备好怎么学习IT技术了吗?来参加国信安IT培训课程,你的选择不会有错!
第五篇:如何做好一名程序员
如何做好一名合格的程序员
一、90%的编程工作来自内部软件
(90% of programming jobs are in creating Line of Business software)计算机专业的学生,可能有一种印象,觉得大部分程序员,都在编写公开出售的软件或者通用软件。
这种看法是不对的。大部分程序员,实际上编写的是不公开的企业内部软件,比如追踪费用的软件、优化装运成本的软件、帮助记账的软件、设计新部件的软件、计算保单价格的软件、识别恶意订单的软件等等。
各种各样的商业公司,开发内部软件,解决它们自己的问题。市场上对程序员的大部分需求来源于此,只有极少数程序员直接编写面向外部顾客的软件。内部软件的开发,通常非常乏味,令人厌倦。因为它们的技术复杂性低、技术决策非常保守、预算很少、缺乏长远考虑。但是,世界上大部分编程工作都是这种。
二、别人雇你的目的,是让你创造利润,不是让你编程
(Engineers are hired to create business value, not to program things)商业公司最关心的(或者说唯一在乎的)事情,就是增加收入、降低成本。因此,它们实际上需要的不是程序员,而是能够帮助它们增加收入、降低成本的人。
开发优美的软件,解决技术难题,编写没有 bug 的代码,这些都不是商业公司的目的。它们雇佣你,是为了让你帮它们完成某个可以增加收入、降低成本的项目,而不是因为你是 geek。
你个人对于公司的唯一价值,就在于你能多大程度上为它们增加收入、降低成本。
三、不要自称为程序员
(Don't call yourself a programmer)
很多公司的经理不懂计算机,在他们心目中,“程序员”就是一群高成本的劳动力,只会在一台复杂的机器上干一些难懂的事情。
如果你自称为“程序员”,当公司需要压缩成本的时候,某些经理首先就会想到解雇你。有一家公司叫 Salesforce,口号是“没有软件”,意思就是如果经理们购买了他们的服务,就不再需要别的软件管理销售业务了,也就是说,不再需要自己雇佣程序员了。
正确的做法是,你应该把自己描述成与增加收入、降低成本有关系的人,比如“xx 产品的开发者”或“改进者”。有一个 Google Adsense 程序员的自我介绍,是这样写的:“Google 公司97%的收入,与我的代码有关。”
四、不要限定自己
(You are not defined by your chosen software stack)
年轻学生经常会问,应该选择哪种语言或平台?学会 Java,是不是比学会.NET 容易找工作?
过分强调某一种语言或平台,都是不必要的。如果你把自己限定为 Java 程序员或.NET 程序员,你就已经输了,因为首先你不应该自称为程序员(理由见上一点),其次这种限定使得你自动被排除在世界上大多数编程工作之外。现实生活中,学会一种新语言,只需要几个星期,然后再过半年到一年,你
就会变成老手。那时,根本没人在乎你以前用什么语言。
天才程序员是很少的,可是需要天才程序员的工作机会却很多很多,大多数场合都是需求远远大于供给。这意味着,即使你不是天才程序员,只要你是一个优秀工程师,那些招聘公司也会立刻录用你,因为它们知道招聘到天才程序员的机会微乎其微。(重复一遍,所谓“优秀工程师”,就是你的履历上有一连串增加收入、降低成本的记录。)
某些公司的人事部门,会根据某个关键词(比如 Java 或.NET)过滤简历。虽然这样的公司根本不值得去,但是如果你真的想过这一关,也很容易:投入几个晚上和周末,在你当前的项目中设法用到这个关键词,然后再把它写进简历就行了。
五、如何提高求职时的谈判能力?
(How do I become better at negotiation?)
(1)记住你不是在求职,不是在展示编程技巧,而是在推销某种商业需求(增加收入或降低成本)的解决方案。
(2)面试时,要有自信,要平等的对话。你要的是一个互利的录用合同,不要每次对方提出要求,你都说 Yes。
(3)雇主可能会问“你的上一份工资是多少”,他们其实在说“给我一个理由,压低你的报酬”。你要想好如何适当地回答这个问题。
(4)要还价。这里不仅仅指钱,还指其它你关心的方面。如果你无法要求更高的薪水,那就试着要求更多的假期。
(5)在对方决定录用你以后,才开始讨论薪水。因为那时,他们已经在你身上,投入了大量的时间和金钱,产生了一定的成本,此时他们可能觉得一些小问题已经不值得再纠缠了,比如每年的工资增加几千元。
六、创业公司是否适合应届毕业生?
(Are startups great for your career as a fresh graduate?)
如果你一毕业就加入创业公司,最可能的结果是,接下来几年你都工作得非常辛苦,然后公司悲惨地失败了,你失业了,不得不又去另一家创业公司工作。如果你真的想去创业公司,应该首先找一家大公司干上两年,攒一点钱,积累一些经验,然后精心挑选后再去创业公司。
在创业公司工作,一般情况下,你遇到的都是创业者。他们大多数人没有能力在两年后雇佣你;而在大公司工作,你遇到的都是其他大公司的人,他们中很多人将来有能力雇用你或者帮你介绍工作。
七、在创业公司工作是否值得推荐?
(So would you recommend working at a startup?)
选择创业公司,就是选择一条职业道路,而不是选择一种生活方式。可惜很多人把这两者颠倒了,他们推荐创业公司,实际上是在推荐一种你感兴趣的生活方式。
如果你确实喜欢这种生活方式,老实说,你在大公司里也可以得到它们。在许许多多大公司里,你都有机会钻研最新的技术,而且还能5点半准时回家照顾孩子。
八、沟通技能是最重要的职业技能
(Your most important professional skill is communication)
前面说过,工程师被雇佣,不是因为会编程,而是因为能够创造商业价值。所以,你让人们相信你能创造价值,这是帮助你找到工作的最重要的能力。这种
能力与你真的能创造多少价值,实际上联系不是很紧密。
我认识的一些最优秀的程序员,往往拙于表达。因此,别人不是不想与他们一起工作,就是低估了他们的价值。相反地,如果你看上去很会编程,并且很善于表达,别人就会真的这样看待你