如何成为一个优秀的程序员

中国的信息技术发展迅速,由它所带来的浪潮已经渗入到了人们生活的每一个角落,而程序员们成为了这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。 熟练掌握开发工具 做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中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分开 现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。拥有强烈的好奇心

怎么成为一个优秀的程序员,而不是一个优秀的码农~

包装自己的第一步是提高实力
没有实力的包装那是空中楼阁,只能靠每天日常搞外包的忽悠架构大数据云计算过活,明眼人也能看出来,所以纯属作秀,没有意义。
在某个领域(编译器、虚拟机、开发架构、前端。。。)成为专家(专家的定义嘛,,我的理解是能在简历里写精通)后,包装的实力就算具备了。

包装的第二步是定位
提到美国会有一大堆人跳出来说是人类的希望民主的大救星,提到google就是最纯的技术公司不作恶、软件业的翘楚开发界的标杆、心美人美白莲花。。。哪怕你列举google卖假药、恶意打压yelp、挟持web标准等等等等这些事,他们也会说百度更差(咦这不5角钱常用的语句吗怎么被民主进步人士盗取了?。。。),可我根本没提到百度好吗。。。
这全是包装造成的,所以包装的巨大威力,以此可窥之。

google是搜索引擎,百度难道也说自己是搜索引擎?不,百度说自己是最懂中文的搜索引擎。。。哈哈哈,你别笑,这的确很管用,就像google说自己不作恶是好女孩一样。

程序员的包装定位,无非稀缺和独特这两点。物以稀为贵,稀缺就是要做到不可替代,这很好理解,比如你知道世界第一高峰是珠穆朗玛峰,如果没看过禅师精选集你很难知道第二高峰是乔戈里峰,但文青特别偏好乞力马扎罗山,不爬不跟你结婚,为啥?独特性嘛。。。我不跟你比高,我和你比文化底蕴,于是就赢了。

由于你有实力,所以你应该尽量把自己的实力包装成稀缺属性,你是专家嘛。。然后你实力多,应该把独特的实力包装出来,避免和他人共同曝光,以免被人压在身下。

我说一个我朋友包装自己的故事,他进公司接手了一个项目,已经是被隔壁组开发了3,4个月的一个软件,其实这软件2个月也能做好的,但是隔壁人忙而且也不上心,不熟悉这个技术,加上又不是自己的老板,所以做事拖沓了那么久才做好。他接手后一刻没闲,晚上带回家也做,做到半夜,10天做成,然后整个公司的人都知道他的名字了,他也就立稳脚跟了。
这个包装的主题是,技术实力强,开发速度快。

包装的第三步是推广
推广就是让人知道你做得好,强化你的个人品牌,可以用博客、知乎、mailing-list、github等,通过写文章、参加线下聚会演讲、回答问题、帮助他人等方法。这个用好了是门学问,用不好就是装逼,不展开了。。。
记住不要匿名,匿名你基本啥也得不到

有人明明技术实力强,但是由于没有包装好,或被埋没了才能,或被贴上了各种不应该有的标签,或被人偏见看待。比如 赵劼 的c#和 vczh 的微软标签

有人明明实力一般,但是善于鼓动小白,包装得好,所以有一批忠实粉丝,这种人我都不太敢说名字了,呵呵。。
所以优秀的程序员应该善用包装啊。

我觉得比较有用的进步方式:

1. 学会看代码

大多数程序员都只愿意用自己写的代码,但高手一般可以轻易调用别人写的代码。表面看上去是工作习惯不同, 但实际上是能力上的差别。看代码要比写代码难很多倍。

我建议上班时多给队友们作code review,下班后试着阅读github上的开源代码。

2. 复习

程序员一般都很忙, 手上有永远也做不完的活儿。但在某些公司里, 你只是在反复做同样的事。偶尔放下手上的活儿,留下一部分时间来分析自己的弱点,更改坏习惯,看新书, 或学习新语言。

3. 做个人项目

工作中的编程一般只能让你熟悉一部分技术, 导致漏洞的形成。这就好像你长期一个人在自己后院练习投篮, 但第一次打比赛才(在惨败中)发些原来还需要传球, 防守, 强篮板这些概念。

Facebook喜欢雇佣所谓的 “full stack programmer”,就是一个人从设计,到交互,到html, css,javascript, server,sql, 架构,和数据统计都能做。成为full stack programmer最好的方式就是不断做个人项目。

4. 问答网站

问问题和回答问题都是很好的学习方式。 有的时候写出一个好问题, 比写出解答次问题所需要的代码还难。写问题可以帮你整理自己的思维逻辑。你可以试着每周在http://stackoverflow.com上问一个好问题或写一个好答案。

5. 加入一个好团队

最好的进步方式就是跟比自己强的人一起做事。高手都愿意聚在一起,所以很多会选择去优秀的早期创业公司。我在硅谷和创新工场创业时遇到了很多神人, 跟他们学了不少东西。

#18898945637# 怎样才能做一个优秀的程序员 - ******
#卓常# 基本同意"迷糊"同学的,本人也在搞C++开发. 感觉有几点还是比较重要的: 1.书写的规范,命名的规范 这点我感觉非常重要.我想,其实好多人都没有写注释的习惯的,就算有,随着熟练程度的提高,注释也会自然变少.时间一长,难免会想不...

#18898945637# 如何成为一名出色的程序员 - ******
#卓常# 程序员可以分为很多种,像Unix程序员、Windows程序员,或是C++程序员、Delphi程序员,等等.今天我想谈的是Web程序员,一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西. 也许有些朋友会说,我知道Asp、Jsp...

#18898945637# 怎么样才能做好一个优秀的程序员? - ******
#卓常# 要成为一个优秀程序员要具备10品质: 1. 热爱编程2. 完成事情3. 持续重构代码4. 使用设计模式5. 编写测试6. 善用现有代码7. 专注可用性8. 编写可维护的代码9. 能用任何语言编程10. 知晓基本的计算机科学.对这10品质的具体解析可以到希赛网上找到,你可以搜“希赛软考学院”--“程序员”板块就可以找到

#18898945637# 怎样成为一名优秀程序员? - ******
#卓常# 先做人,后做事.做好本职工作,就是优秀员工.程序员同样如此.

#18898945637# 如何成为一个真正的程序员? - ******
#卓常# 应该对你有帮助的!学好基本开发语言,C,C++,JAVA,或者C#,然后认真学数据结构,一定要认真,然后一定要学软件工程, 接下来,就是不断的做项目,花时间不断的写代码,提高自己的经验.

#18898945637# 怎样才能做一个合格的程序员? - ******
#卓常# 1,先学习语言本身,那就边看边把程序抄到电脑上运行,不要希望每次都抄的很正确,要注意在错误中慢慢体会语言本身为什么要这样规定,慢慢理解语言. 2,等学好了java语言本身,就要学习学习java的文件输出输入流,集合类,图形界面...

#18898945637# 如何成为一名合格的程序员? ******
#卓常# 一、需求理解能力 在开发过程中,要在需求细节不明的情况下,有责任设法搞清楚,积极学习编程思想和方法,并在设计、编码工作中自觉应用,对有一些复杂程度的设计,主动申请设计审查.并能在开发用户界面之前,尽可能使用界面原型方...

#18898945637# 怎么样才能成为一名优秀的程序员?? ******
#卓常# 深入学习C语言,掌握几个高级语言,这是基础.最重要的是学习优秀的算法.打个比方,语言是招式,算法是内功,只有内外兼修才能成为高手.当然最最重要的是刻苦加耐心,多动手,勤思考.

#18898945637# 怎样才能成为一名优秀的程序员? ******
#卓常# 1. 时刻提醒自己:学习 学习某件事的第一步是承认你不知道.这听起来很正常,但经验丰富的程序员还记得要真正让自己承认这一点需要花多长时间.很多计算机科学专...

#18898945637# 成为一个优秀的程序员要做到哪些? - ******
#卓常# 1、精通编程2、勤于测试3、吃苦耐劳(加班、熬夜等等)

  • 学编程:从新手到专家的成长之路
  • 答:对于编程新手来说,学习编程是一场漫长而充满挑战的旅程。本文将从理论学习、实战演练和思维锻炼三个方面,为大家介绍如何从新手到专家,成为一名优秀的程序员。深入阅读,奠定基础对于编程新手来说,理论学习是不可或缺的一步。通过广泛阅读,深入了解算法的奥秘和计算机科学的基本原理,为后续学习打下坚实基础。从书籍、...

  • 如何成为一名合格的程序员
  • 答:如何成为一名合格的程序员 分享 复制链接http://zhidao.baidu.com/question/1186300631532963899 新浪微博 微信扫一扫 举报 1个回答 #热议# 空调使用不当可能引发哪些疾病?依依测评机器 今天06:07 · 超过24用户采纳过TA的回答 知道答主 回答量:1019 采纳率:100% 帮助的人:1.2万 我也去答题访问个人页 ...

  • 编程新手?看这里!
  • 答:计算机编程是一项高技能的工作,对于新手来说,如何快速入门,成为一名优秀的程序员呢?本文将从英语基础、选对编程语言、数学基础三个方面,为大家提供一些实用的建议。计算机英语计算机英语主要围绕计算机专业词汇展开,虽然有些词汇较生涩,但自学大学英语,轻松get!️选对编程语言入门编程语言首选流行度高的那几十种...

  • 如何在家自学编程,成为一名优秀的程序员?
  • 答:在家自学编程,成为卓越程序员的路径探索</ 想要在家中自我提升,成为编程界的佼佼者,首要任务是找准方向。首先,明确你的目标:你是偏向于前端的界面设计,还是后端的逻辑构建?或是探索数据领域的深度挖掘?前端开发,如同搭建用户界面的艺术家,HTML、CSS和JavaScript是基础,热门框架Vue和Node.js则助...

  • 如何靠自学提升自己的编程能力?
  • 答:如果你想要成为一名优秀的程序员,学习算法和数据结构是非常重要的。个人经验:通过自学提升自己的编程能力需要付出大量的时间和精力,还需要具备自律和耐心。但是,成为一名出色的程序员可以为自己创造更多的机会和发展空间,也可以为社会创造更多的价值和贡献。因此,我们需要不断学习和实践,追求卓越,成为一名优秀的编程高手。

  • 如何才能够成为一个合格的程序员呢?
  • 答:随着计算机行业的发展,市场上程序员的数量越来越大,很多人开始转行学习软件开发,这就导致程序员开始分为三六九等。怎么才能成为优秀的程序员呢?程序员不仅需要掌握开发技能,职业素养也是非常关键的。那么作为程序员需要具备哪些素质呢?下面小编为大家具体介绍。一、团队精神和协助能力 协助是一个团队...

  • 如何成为一名优秀的软件工程师
  • 答:优秀的软件工程师深知没有完美的设计、服务和工具,他们还深刻理解可选方案以及实际状况的约束并能做出适当的权衡。一般的软件工程师只是盲目地使用当前比较流行的服务、设计和工具,而不做更深一步的理解和研究。5、团队精神 团队精神和协作能力是程序员应该具备的最基本素质,优秀的软件工程师所写的代码...

  • 你觉得如何才能成为一名不可替代的程序员?
  • 答:必须要长时间的坚持学习,以及长时间的坚持努力工作,比如可以经常性的去阅读相关的书籍和经常的去找一些学习的资料来去进行学习,当然也可以将自己写的程序进行分享,重要的是一定要选择长期的坚持下去,只有长时间的坚持才有可能让自己变得更优秀。1、长时间的坚持学习想要成为一名优秀的程序员,那么就必须...

  • 如何成为一名优秀的程序员
  • 答:优秀的程序员不仅需要具备扎实的编码能力,还需要具备项目开发经验、良好的沟通与表达能力、创造力、自学能力、思维能力和逻辑判断能力等多方面的素质。本文将从这些方面为大家详细介绍如何成为一名优秀的程序员。‍优秀的编码能力优秀的编码能力是成为一名优秀程序员的基础,需要建立在大学四年乃至更久的时间的必然...

  • 一名优秀的程序员必备的素质
  • 答:就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。5:复用性,模块化思维能力 经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,...

    为传递更多家电数码信息,若有事情请联系
    数码大全网