⑴ 怎么学习编程
学编程会有以下逐步学习的过程:
1.熟练掌握java Web程序开发
2.熟练掌握MVC框架的企业级开发
3.熟练掌握数据库面向对象的开发
4.Linux系统原理、常用命令、Shell脚本编程/Unix系统原理
5.熟练掌握软件大型化,切面化,多视图技术。
6.企业级软件标准化作业流程
建议楼主找一家好的电脑培训学校学习,这样才可能比较好的学到你想学的知识。我觉得新华电脑不错,我在里面进行过短期培训。我认为学校最好的地方在于都是从基础开始授课,这样也不用担心自己基础不好而跟不上了。你可以去了解下,希望能帮到你。
⑵ 作为一个合格的程序员需要掌握的知识
1宁专勿多
我认为,在学习技术时,不应该把面铺行太广,不要试图把OS,语言,数据库,设计等都掌握了,一个人的精力是有限的,不可能也没有必要去学习那么多的技术.'这方面想的多了,那方面必竟就想得少了'.另外,技术在某方面是相通的,比如Java和C.所以,我认为,在学习技术时,可以根据自己的情况结合公司以及技术本身(最好选主流技术,而不要先已经过时的.比如,就是公司需要,也最好不要再学VFP)的情况,选取一种或者两种主流技术当作自己学习的核心技术.然后深入进去,在学习的过程中,最好做一些小项目或者向一个技术高手学习.这样是很有必要且很有效的.想必大家都深有体会.这样,用不了三年,你就会成为一种技术领域内的专家.
2选取什么样的技术
技术可以分为两种:一种是一些高深的技术,直到现在也在研究和探索中,或者存在争议.虽然绝对华丽且时髦,却不一定实用.比如:UML.WebService等,到底有多少公司和人能够理解它并完全用于项目中?不得而知.到底哪一种分析设计更适合我们?RUP?我觉得这些都需要时间去验证.而且它本身是否完善也许仍是一个问题.所以,我认为这种技术适合那些对技术有狂热的兴趣,本身又有很高的悟性,且有条件(公司需要学,或者有一些培训机会),则可以去学习这种技术,如果掌握以后,肯定会站在技术的前沿.而个人待遇也会有很大的前进,掌握这种技术对个人能力要求比较高.所以,在选取这样的技术时,要结合自身条件.也就是你能不能学会.
第二种是成熟的技术,大家都在应用,且能够解决公司或者个人所面临的一系列问题.比如:delphi,java,pb,sql server等等,这种技术发展到今天,已经非常成熟和完善,而且学习的资料全面,易于掌握.所以,如果你注重应用的话,可以选取这种技术.就像上面的文章中提到的:"单纯的技术,无论如何先进,如果不能给企业带来好处,都没有任何意义;同样是技术,无论多么原始和落后,如果对企业来说足够用,能带来好处,就应当采用".所以.选择这样的技术在以后的几年里,仍然有很多用武之地.如果能够精通的话,待遇方面也不会低多少.
3从技术转入管理
现在看到很多人在谈论技术人员在超过35以后能不能编程,担心自己过了35就会失业.其实这完全是没有必要的,据我了解,国外超过35的程序员是非常多的.而国内之所以出现程序员很少有超过35的是因为,在国内,程序员这个职业起始于上世纪90年代初,而当时做这个行业的和今天情况一样:大多是刚毕业的学生,他们当时不过20多点,那也是国内第一代程序员,他们到今天为至,也很少有超过35的,而且很多选择了自己做公司,不再亲自写程序.所以,现在国内的程序员很少有超过35的.说了这么多,只是为了说明程序员超过35仍可以写程序,纵然是这样,程序员这工作仍然是脑力劳动中工作量很大的一个职业,所以,大家可以根据情况,从技术转入管理,这样的话,以后的生活会轻松许多.如果选择以后做管理的话,那么现在学习什么就应该重新选择了.
⑶ 程序员提升开发技术需要注意哪些
一、不提升非技术技能
我们认为非技术技能是项目成功的主要因素。这些非技术技能也可以称之为“软技能”,总体上来说,它已经被公司证明为能够驾驭企业和客户之间的长期商业关系,因此也能决定公司的成长发展路径。一些关键的软技能指标包括:
a.纪律——这是最重要的特征之一,缺乏纪律,最终会让这个开发团队在开发能力上“缺乏自信”。解决这一问题的矫正方法就是每天制定详细的to-do清单:兑现你的承诺、完成你开始做的事情、避免多重任务,因为这些往往会让你的生活产生混乱。
b.顾客的声音——不把客户置于决策的核心地位只会跟你们业务的原始目的相冲突。如果客户不高兴,即使你拥有世界上一流的专业知识和资源也不会起什么作用。保持符合客户期望的解决方案、及时交付才能体现出项目的真正价值。
c.沟通——尤其是当客户和供应商并不在同一地点的时候,明确而及时的沟通是填补服务空白的极好措施。主要集中在这三个方面你就能克服问题——进行主题讨论、清晰表达、干脆简洁。
d.了解需求——在整个开发生命周期过程中,决定成功和失败的之间的一个至关重要的区别将会给人留下深刻的印象。通过最初的头脑风暴法了解问题状态,以及后续的交货程序,这其中都要和客户完美配合。只有这样,客户才会赞赏你的工作,给你好评。
二、对编码不理智
古人云:善泅者溺,善骑者堕。但估计绝大多数 的程序员都认为自己的编程技术绝对的牛。而同样真实的是,每一个代码,让不同的程序员去实现的话都会不可避免地发现它所存在的缺陷。所以说,只有通过在一 个项目上的合作,程序员之间必然有的摩擦才能证明谁是最好的。健康的竞争是好事,但它不应该成为一个本来可以成功的项目的负担。
另一个创意阻碍是无法将预定义的模板使用在对你有利的开发项目里。几乎所有的编程语言有一个很好的在线 /内置的代码片段存储库,可以修补代码,防止重新编程。然而,如果因为不理解需求或缺乏接触各种可用库/模板的话,这就意味着程序员最终会无意间将一开始 就创建的代码付之东流。这不仅增加了开发时间,也提高了总体成本。另外一点就是,发布了的代码已经经过了质量检测,所以只有将它用作模板才能发挥它更大的 价值。
三、不一定什么都要被理解
如果你是刚调到这个团队来的编程人员,对于手头的工作并不是很熟悉,那该怎么办?肯定是先看一些前任留下来的工作计划,要是他写的详细倒也没什么,如果写的不详细,估计会让你更加的挠头。
因此,推己及人,在需要交代的工作上,最好是把任务写的尽可能的详细。这么做也是非常现实的原因:能够把编程问题解决掉,最好是保证使用解释性的语言和英语发音来表示变量。一些基本的指针可以让你的程序更容易被理解,包括:
a.把所有参数、引用、方法和变量名称尽可能接近英语表达。保持文件名简短但有助于理解的功能。
b.使用++包装文字是一个好办法,能让代码和注释更加清晰。
c.将编写的程序保持在一个连续的流程上,尤其是在使用OOP基础上的语言:C#、C 和 C++。
d.对于不同的代码块使用不同的描述名称。
四、不使用经过验证的工具和技术
程序员的好坏从他使用的编程工具和调试工具上就能看出。在异常情况的跟踪上,下面就是程序员经常会出现的常见错误。
对一些可能会对其它代码有影响的常见案例进行捕捉,处理这些比较常见的异常情况(而不是特殊的异常)意味着无意中除除掉了会抑制整个程序的残留部分,因此并不会影响他人的代码。
也许程序员可能带有恶意的意图来捕捉所有的异常情况,但即使是捕捉到了也不实施采取措施,这就是常说的“虚假安全阀”,这种异常处理手段是对整个软件的稳定和安全的一种妥协方式。
五、较差的控制版本
在任何涉及多个团队的项目里,当谈到版本控制的时候不去介绍使用最佳实践都是一个十足的罪过。版本控制的目的是确保由一个人执行的编辑或修订不去影响另一个人的工作。
版本控制不仅有助于将由两个或两个以上的程序员的编辑工作合并到一起,还有助于跟踪程序的更改历史。所以说,任何开发团队都应该做一些好的改进措施以确保强大的版本控制,这其中就包括:
为每个解决方案创建一个“逻辑单元”
给解决方案制定描述性的名称
确保你所使用的都是最先进的文件
频繁的向团队分享你所做的各种改变
六、拥有最新信息的个人代表不了团队
这是相对有趣的一点,所有的商业产品都想要以自身的敏捷技术和产品文化来给客户留下深刻的印象,但是现 实中很少有厂商会花时间去磨练他们员工在介绍产品特点上的技能。许多公司只是简单地提供了一些基本的培训,并且抱希望与员工在真实的日常项目里学到更多的 技能。所以部门经理和项目的直接领导可以通过以下两个办法来提高员工的业绩:
一旦有新员工加入,就立刻强制安排他参加专业培训,让他知道他的角色是用来干什么的,尽早产生创造力。例如一个测试人与加入之后,就应该向他介绍编程的理念,之后将培训重点放到测试实践上,而不是继续阐述编程的重要性。
现阶段的技术的进化程度比以往任何时候都要快,,所以要记住,定期培训是必不可少的,这是在给团队创造价值。例如一个Web 设计师需要知道响应式设计,提供给设计师大量的用户日常使用的移动设备的不断扩张的样品,希望他们能获得灵感。
七、不恰当的测试
测试作为整个系统开发生命周期(Systems Development Life Cycle,简称SDLC)的重要一个要素,通常不需要开发团队给出太惊人的结果。但是如果在测试环节没有付出恰当的、相应的努力的话,这是说不过去的。 下面的一些方法或许对你的测试团队有用,至少在你们交付产品的时候能够给用户一个好的交代。
单元测试
实物模型
综合测试
八、注意安全漏洞
有的时候在软件开发过程中,就会遇见如下这样的安全漏洞:
A、不同组件之间意想不到的交互作用:a、输入不正确的验证信息;b、SQL资料隐码攻击;c、跨网站指令码;d、命令植入攻击;e、跨站请求伪造(CSRF);
B、难以实施的资源管理,包括:a、不尊重可用内存缓冲区;b、对外控制;c、使用有潜在危险的功能;
九、和客户交流
最初的合同签订后,开发公司通常会忘记每天与客户进行产品上的信息交互,以至于在交货的时候还需要进行升级。两大关键的交流点可以让你和客户保持更好的、更长的关系:
在客户开问之前,开发方应该和客户进行交流沟通。
和客户保持周期性的交流。
十、避免标准实践面临的迫在眉睫的最后期限
通 常情况下项目都会遇到进度延误的现象。然而,这不是说你有理由去偷工减料或者是在开发或测试阶段耍花招,未经测试的模块绝对是一个隐患,会让你的开发团队 名誉受损的。一个更好的方法来管理延迟是提前告知客户并且积极执行延迟计划。只要延期的理由是有效的,客户应该会理解,也会给你额外的时间来解决这个问 题。
⑷ 程序员应该如何保护自己
Tips:“小鸟云”是深圳前海小鸟云计算有限公司旗下云计算品牌,国内领先的企业级云计算服务商。团队拥有多年行业经验,专注云计算技术研发,面向广大开发者、政企用户、金融机构等,提供基于智能云服务器的全方位云计算解决方案,为用户提供可信赖的企业级公有云服务。
中兴事件让我很为当事人惋惜,最近两年程序员群体被大众注意到,前有 WePhone 开发者被恶毒女诈骗自杀,后有中兴70后程序员被内部宫斗想不开,程序员的弱势在于常年跟机器打交道,以为什么都很机器一样讲道理,低估了人性的复杂与丑陋,加上工作的原因,习惯了遇事自己独立解决,导致遇到事情也不会妥善处理,更不会轻易请人帮忙,往往容易酿成悲剧。
其实这个世界是美好的,我们一生中接触的人,遇到的事情99%都是好的,然而恰恰那1%的坏人坏事被你遇到,如果你没有妥善处理,也许会对你的人生造成毁灭性的打击。所以,今天我想给我的知识星球球友们总结几点经验,希望你们在遇到那1%的时候,可以轻松应对,想着对我的读者也很有用,姑且也更新在公众号上。
1.技术不是全部
这个观点,我曾不止一次普及过,眼里只有技术的程序员,跟读书时候的书呆子没什么区别。程序员们很多都认为只要技术够牛,我就可以凭借技术挣更多的钱,然后就可以过的更好,所以容易往往忽略了其他方面的发展,沟通交流、为人处事都是很重要的,程序员的弱势在于常年跟机器打交道,以为什么都很机器一样讲道理,低估了人性的复杂与丑陋,没有一点防范心理,这些都是很危险的,总之一句话,程序员们大多智商较高,但是情商较缺乏,但是人这一生,情商绝对比智商要更有用的多。
2.培养第二技能
都说程序员是青春饭,被认为中年危机最严重的一个群体,在很多人看来不理解,说人到中年,有车有房,收入也较高,怎么会有那么大的危机呢?然而殊不知,人到中年,收入虽然高了,但是房贷、车贷压力不小,同时还背负着家庭的责任,到处都是花钱的地方,而且经济大环境不好,很担心公司发展遇到困难,自己受到各种影响,跳槽的话虽然不愁找工作,但是这个年纪薪资岗位低了不想迁就,高的话除非管理岗位,否则企业不如找个年轻点的、工资低点的来代替了,种种原因导致中年危机感很重。
我之前就说过,一定要培养第二技能,永远不要把所有赌注都押宝在工作上,年轻的时候趁早培养第二技能,写作、演讲、英语、咨询等等都属于第二技能,根据你的个人兴趣爱好去选择,第二技能会是你的后路,当你到了中年,也许第二技能早就发展的如火如荼,甚至超越你的本职工作,拥有第二技能的人从不会担心危机的到来,奉劝所有程序员们,一定要重视第二技能的培养。
3.永远不要在非正常状态下做任何决定
这次事件很多人都想不通,当事人高学历,经验丰富,被裁了大不了换份工作就是了,何必想不开呢?简直太懦弱了。其实我们不知道当时是在一个什么环境下,我们处在事外当然看得清,但是很多决定其实都是一念之差,就是那么一瞬间没想通,导致冲动做出错误的选择,我们能总结出的经验教训就是:永远不要在非正常状态下做任何决定。
什么叫非正常状态?醉酒、愤怒、极度伤心甚至兴奋、异常喜悦等状态都属于非正常状态,这种情况做出的决定通常都是不客观甚至错误的,另外,做决定的时候多想想身边的家人,考虑的因素全面点,会更能避免一些想不开发生。
4.职场中不要讲感情
我以前也说过,成熟的职场人士是不会讲感情的,不要把公司当做家一样,更不能把公司同事当做家人看待,那些只给你打感情牌,没有任何实质性的表示的公司或者老板,你得小心了。
当然,可以对公司以及同事有感情,但是不可以感情用事,在公司的任何决定,如果你都可以抛开感情,其实都很好处理,但是很多同学想不开,在遇到类似事情的时候,往往会有非常不理智的处理方式。
仅以此事,给我所有的读者普及下,希望不会有下一个悲剧发生,更希望我的读者们都可以做一个不羁的码农!
⑸ IT行业工作一年的程序员该如何提高自己
1.首先告诉你,你工作该换了,也就是说你不应该在外包公司继续工作了。
2.所谓的编程语言都没有什么技术可言,是个人玩上几个月都能滚瓜烂熟,你回头想想你学C#,是不是这么回事?如果是作为一个软件工程师,真正有难度的绝对不是掌握某个语言,而是软件的需求分析和设计,当然数据DBA除外,那个还是需要比较长时间积累的。除外你甚至可以去看看JAVA的书,因为同样是搞WEB开发的,JAVA目前用的比较多一些。
3.看你的样子应该也是本科学历,如果你进了新公司,比较大一点,比如华为,中兴,联创,大唐什么的,你更会发现编程技术远不及对业务技术,而业务技术最终会给你带来高薪,当然,前提是你在那公司较为长久的待下去。
4.在工作中学习,像楼上给你列出来那么多书,看完的时候你的同事都不知道在什么地方高就了,明确你的发展目标,如果你决意要做开发,是电信行业还是金融?那么电信我要进哪个公司?金融我要进哪个公司?记住,编程语言不是关键,你看看JAVA基础去面JAVA的公司也不难,只要你有工作经验,如果你想当DBA那就另外说了。当你明确你的目标后,就可以准备跳槽了,进了新公司在新公司学习你需要的东西就OK了
⑹ 技术已经达到了一定瓶颈,程序员该怎样提升自身的编程
在计算机这个行业技术达到瓶颈。1、选择适合项目的语言,即便是放弃自己熟悉的语言。
2.与他人分享经验.
3、别害怕失败
我过去通常不喜欢分享代码。我讨厌分享代码,我担心别人会因代码编的太烂而批评我。我之所以对自己的编程能力觉得毫无把握,是因为我希望可以做得更好。害怕别人说三道四,这会使我想在一个角落里隐藏起来。
4、对自己要有耐心
我不敢承认这点:我在过了很久后才明白了这个道理。你对自己要有耐心,急于求成可不行,也就会存在这种可能性:自己把自己搞得筋疲力尽、导致倦怠。我不想让你遇到这种情况。
⑺ 程序员如何提高自己的技术水平
学会搜索和浏览技术社区
如何搜索,怎么搜索,基本上做Java程序员的同学都应该很清楚。
要善于潜水和浏览各大技术社区和论坛,开源网站什么的,搜索的时候用“Google”比较靠谱,遇到新的控件的使用,不要网络找使用方法,而是应该首先查“API”文档。遇到问题在“StackoverFlow”应该能找到解决方案。没事的时候,多去开源社区比如“GitHub”上逛逛,遇到好的开源项目不要star了就没事了,看看人家的思路,是怎么写的,要喜欢“刨根问底”。
⑻ 程序员竞争力太大了,怎么样才能提升自己呢
1、程序员要学会主动学习,要不断地更新自己的技能,提高自己的“基线”。
2、程序员程序员要学会自我营销,在业界打造自己的个人品牌,要有品牌意识。
3、程序员要善于对付中断。如果你在跟别人结对编程,或者你用了TDD,那么保存上下文信息就变得非常简单。
4、程序员要重视单元测试。要知道单元测试的重要性,把测试代码和产品代码看的一样重要。
⑼ 面试方法 技术敏感度
这里的玄机很多,可以证明你对问题的刨析深度、可以证明你对岗位的期望和匹配度。当然也可以展现出你的自信和风度。既然有机会沟通而不是结束沟通,抓住机会,但比较忌讳的是问一些个人利益的东西…… 来自职Q用户:j先生
首先第一点 你一定要说有
因为这是检验你有没有认真对待这次面试的最好的方法,如果你认真对待这次面试,你肯定对整个公司背后更深的运作制度,薪酬管理等问题有着极大的兴趣,如果这个时候你说没有,面试官会认为你是在敷衍他,甚至觉得你根本不了解这个公司
如果要问问题,我们应该这么问
问的问题要和谈话内容有关
最好的问题是和你们刚刚所谈的内容有关。这样会让对方觉得你有在认真听。二是你问的问题对方肯定愿意回答,因为是ta先提起的,他会认为你是一个很细心的人,懂得聆听并发现问题。如果实在找不到和刚刚谈话相关的问题,那就问对方能回答你的问题、对方愿意深入回答你的问题、你的问题能帮你更了解这个职位,帮你准备下一轮面试。当然这些都是以你前期对你想要进入的公司的了解为基础。当然计划没有变化快,如果你一时语塞,而恰巧面试官还没有介绍他自己,这个时候你就可以让面试官介绍一下他自己,不要觉得这个问题很白痴,当他介绍自己之后,你就可以围绕着他的履历,提出一些有关公司环境,工作经验的问题,既可以让自己学到东西,还会让对方觉得你很尊重他,是真的很珍惜这个职位。
面试官为hr
如果你的面试官为公司的hr,你可以向他问
请问你们为什么要招这个职位?是因为补缺还是扩张?如果是扩张,你要问通过什么方式扩张,具体往哪方面扩张?
这个问题没有什么雷区,每一个求职者都可以问,因为他真的很平常,从这个问题,也可以了解一下公司未来的规划和发展,对我们进一步了解公司也有帮助。
公司采取了什么样的政策,来保证新员工的成长?
这个问题,他会让hr认为你很有前瞻性,确实是想要进入这个公司工作。同时对于负责帮助领导管理和选拔人才的hr来说,这个问题正是他擅长的领域,他会给你很好的解答,这样不仅解决了自己的疑惑,对新公司的了解又加深了一层。
您当初为什么选择这家公司?工作了一段时间以后,您又是如何评价这家公司的呢?这家公司有什么优点和缺点?
这个问题是完全将面试官放在第一位,会比较受面试官的欢迎,如果他在这个公司待得时间够长,这个问题他绝对会给你很好的解答,说不定会自己的和你探讨一下,获益匪浅。
面试官为你未来的上司或同事
你平常在公司的一天是怎么度过的?
这个问题看似普通确是最不容易出错的,如果面试官是hr也可以问,但是为什么要把这个问题放在“未来的上司和同事”呢?因为这会让你更了解你未来工作的流程和一些与工作有关的相关信息,他们的答案将会是一个很好的尺子,对于将来你想要在工作上做出什么样的成绩有很大的帮助。
你们对新人在试用期期间有什么要求?他在这段时间内应该有什么样的作为?
这个问题,面试官不会在面试的时候告诉你,需要你自己询问,但是这个问题很关键,如果面试官愿意,他会把你在试用期期间要做出什么样的业绩,达到什么样的要求很详细的和你说出,对于将来你怎样转正有很大的帮助,同时也会让面试官认为你是一个很认真的人。
这个职位在贵公司的发展前景是怎么样的?有何种晋升机制?在什么条件下,才能够得到晋升的机会?
这个问题很现实,谁都想晋升,如果你不问,肯定不会有人告诉你这其中的内在关系,而在面试的时候提出正好可以让你对其中的内在机制,有了一个了解,对你接下来衡量是否要真的在 这家公司工作有很大的帮助。
面试官职位很高,尤其是总监级别的(最终面试时)
您觉得这个行业在未来会发生怎么样的变化?如何应对这种变化?
没有规划的公司,不值得留下,尤其是对于大公司来说,既然你已经到了最后,就一定要问问这个问题,因为不懂得战略和谋划的公司,可能这家公司明天就会倒掉。有战略,看得远,才能够走得远。这样的公司才是值得打拼的公司。
与同行业的竞争者相比,贵公司的核心竞争优势在什么地方?
现在社会上竞争如此激烈,普通人之间都充满着竞争,更何况是一家公司,没有竞争优势,说不定半年后倒闭了,那么,你的职业生涯也就结束了。所以这个问题一定要问,这样你才能对公司未来的发展做到心中有数
⑽ 一个程序员该如何提高技术能力,你有什么好的方法吗
补基础,补基础,补基础!比如学Android,先把Java搞得差不多,很多就明白了。在网上搜上一套完整的教学视频,网上教学视频多的是,自己找一套完整的,系统的去学,学完之后,自己要尝试着做一些软件。