❶ 成为一名程序员的优缺点
一个好的程序员,通常有这些优点:
1对技术充满激情
2将编程作为一种爱好
3聪明、健谈、兴趣广泛
4乐于助人(在力所能及的领域内)
缺点就是:
1坚持认为某种技术最好,如果让他用他认为不好的技术他会非常别扭
2容易进入亚健康状态,鼠标手、颈椎病等。
3往往因为对程序过于痴狂而演变为黑客
4通常只和IT圈内的人交流,交友范围较窄。
❷ 为什么很多程序员都说自己没空谈恋爱
做程序员可能更偏重稳定一些,也就是说有对象的会安安心心的谈,不去撩别人,也不会去搞事情,毕竟工作都那么忙,真的是只求能安安稳稳的。没对象的呢,估计也不太愿意或者是懒得去发展女朋友,连个人时间都不确保,也不敢保证有了女朋友能有时间去好好培养这段感情。程序员和正常人没什么区别,只是程序员群体太皮了,然后被大家放大化,都说程序员经常加班,但是我做了程序员3年几乎很少加班,可能是我能力强吧,程序员作为高收入职业这一点绝对是毋庸置疑的。高强度的工作换来的是比大部分职业都要可观的收入。但同时,长时间的工作也导致大部分的程序员没有时间对自己的资金进行充分的消费。
❸ 程序员要具备什么技能
一名合格的程序员需要掌握哪些技能呢?
熟练掌握开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVA One很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。
对操作系统有一定的了解
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。
懂得网络协议TCP/IP
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEB Services存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。
不要将软件工程与CMM分开
现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。
拥有强烈的好奇心
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
❹ 程序员是不是大多数都比较木讷呢.不爱说话
大多数?这不知道。但我遇到过一个程序员情商特高,聊天是风趣中不失儒雅,成熟中不失童真……就由于这,曾让我一度认为程序员都是开朗阳光善言词之人。
❺ 程序员为什么大多不善言辞
因为和计算机“对话”(编程)多了,和真正的人类沟通,就凸显出来不同。
不同一:开始谈话
程序员每次和计算机对话,都是有目的性的,比如要解决某个需求很明确的问题。
范围也很明确,比如处理某个数据库表。
不同五:宅文化横行
程序员往往比较宅,比较喜欢静。这样才容易集中精力思考问题。
看起来话就少。呆萌。
❻ 程序员的前途
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。
作一个真正合格的程序员,应该具有的素质。
1:团队精神和协作能力
团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
2:文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
5:模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:
1、 需求分析能力
2、 整体框架能力
3、 流程处理能力
4、 模块分解能力
5、 整体项目评估能力
6、 团队组织管理能力
1,激情。
我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。
2,自学好学
编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。
3,聪明
聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。
4,隐性的经验
—好的程序员通。常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。
5,技术多样性
由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。
6,资格证书
资格证书并不是识别真正程序员的方法,MCSE、SCJP、说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。
原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。
总结而言,优秀的程序员通常有一下特点:
n 对技术充满激情;
n 将编程作为一种爱好
n 如果你允许会滔滔不绝地跟你谈论技术
n 有过个人的开发经历(与4意思相同)
n 坚持认为某种技术最好
n 如果让他用他认为不好的技术他会非常别扭
n 聪明、健谈、兴趣广泛
n 在大学和工作前就开始接触程序
❼ 为什么说千万不要和程序员谈恋爱呢
和程序员谈恋爱会非常的累,在这场感情里付出的时间和精力也很多。但换回来的永远都不是幸福的生活,完全是一种冷冰冰的状态。
一、以工作为主
程序员的职责就是以工作为主,对于自己的恋爱总是顺其自然发展。因为程序员不懂得情趣,在他们的生活里工作往往大于一切,甚至在自己工作的时候绝对不允许别人打扰自己。
和程序员谈恋爱除非是一个坚强的人,这样才能接受程序员的爱情,也会让两个人的爱情顺其自然发展。如果没有这样的本事要远离程序员,远离这样的爱情。
❽ 程序员都是什么性格
作为一个程序员,结合我自身的情况,我觉得主要有两点:
一、程序员来源
很多程序员都是技术宅,记得在我大一的时候,我们专业做自我介绍,一半以上的人都说是因为爱玩游戏或者爱捣鼓计算机才选择的计算机专业。所以成为宅男聚集地,相对来说在言谈方面就要弱一些。而且本身编程不需要太强的交流能力,所以引出第二点。
二、程序员本身的工作环境和要求
这一点是最重要的一点,程序员工作的内容大多数是跟需求和代码打交道。做项目的都还好,能有机会跟客户讨论需求或者扯扯皮,做产品的或者做框架的与外界交流的机会就更少。在大的公司中,各个部门分工明确,每个人只需要专注于一点即可,所以他们的工作环境也比较单一,不像销售那种每天会面对新的客户。因为没得到有效的锻炼,或是外向的人没有地方施展性格,故越来越不善言谈。
当然以上所说并不能代表所有的情况,程序员中也有很活泼健谈的。当程序员项目经验积累较多,往项目经理或者领导方向发展时,交际能力也会有所提升的。
❾ 为什么大家都会感觉,程序员男生不会谈恋爱
如果自己沉默寡言的,对人就像对机器似的,时不时也想给你来个编码,按照他的思路走,这种找女朋友就有难度了。
因为程序员本来作息时间不规律,陪伴女朋友的时间就不多,你再搞得一点情趣都没有的,就是高薪也不会有女孩子喜欢你,而是女孩子的妈妈们可能会喜欢,觉得程序员工资高,加上工作环境的闭塞,外遇的可能性会很小。
所以现在女孩找男朋友,不光看薪资,还要看性格,能不能有共同语言,不是按流程走就行的。
工作状态和生活状态要有区别,这才能融于生活中,找到喜欢你的职业,喜欢你的女朋友。
❿ 程序员的工作和生活都是非常枯燥的,跟程序员交往会不会显得很乏味
程序员的工作和生活都是觉得非常的枯燥,想要和程序员交往的时候肯定会觉得有些乏味,彼此选择在一起交往的时候都是看到了对方的闪光点。虽然说生活会觉得有些乏味,但是也正是因为两个人性格有些互补,所以并不会觉得和程序员交往有些枯燥。在性格搭配上大多数都是呈现了互补的,如果程序员的生活较为枯燥,自己可以选择活泼一些,能够丰富对方的生活。
程序员也可以表现的十分浪漫,毕竟经常和电脑打交道,也可以查看到网上新鲜事件。所以在看到别人家的男朋友给女朋友制造惊喜的时候,程序员也可以通过电脑的方式给对方制作一个有爱意的程序,或者是独自研究出一款软件。能让彼此两个人共同使用,也能见证彼此爱情的发展,在谈恋爱的时候,生活也是需要仪式感的。