如何做一名程序员(怎样做好一个程序员)
如何自学成为程序员?
如何学习自学编程的方式最好的莫过于在网络上面查找资源。
目前,网络上电脑资源多不胜数。其中有很多都是基础到精通的视频教程。通过视频讲解。让你明白重点知识。你通过查找一套适合自己的视频。然后看完是基本。
这里推荐几个可以在线学习的好网站:慕课、极客学院、传智播客、如朋网、网易公开课等等做笔记在进行看视频的过程中,一定注意要记笔记。
对视频中重点的部分进行截图,并加以文字解释。就形成了自己的笔记。这些笔记对于你来说很重要。通过记笔记的形式,你就不需要重新观看视频了。只需要复习的时候查看笔记就够了,这样就大大的节约了时间。
下面介绍一个记笔记的好软件:CherryTree多练习代码在视频中讲解的代码,我认为你至少需要自己写三遍以上。在写代码的时候,就用到了上面写的笔记了。通过看笔记截图,即可自己慢慢摸索写出来代码。当然练习到一定程度,就需要你适当的做个项目。巩固自己的知识。
程序员必备技能
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
3、了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课。
网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合。
编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。
在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
怎样做一名高效率程序员?
总结了几条提高效率的要点
第一,要学会时间管理
一天就24小时,总要吃饭睡觉,用于工作的时间总是有限的,如何提高效率就变得十分重要了。
时间管理的关键是要事第一原则。在时间管理矩阵中,按照重要性和紧急性可以把事情分为四类:重要紧急、重要不紧急、不紧急重要、不紧急不重要。大量的时间应该花在那些重要不紧急的事情上,因为只有这样紧急的事情才会不断减少。
第二,要学会授权
学会工作授权不仅仅是leader要做的,普通的一线程序员也要有这个意识,否则会被大量紧急不重要或者不紧急也不重要的事情缠身,效率也不可能高。
很多新当上leader的程序员不敢放手,很多事情压倒自己身上,造成了过重的负担,要知道leader需要在自己的职责范围内提升整体效率,而非忙于处理各种杂事;
对于一线程序员,也会遇到很多的不重要的杂事,比如一会儿产品问你个事情,一会儿项目问你个事情,或者让你参加一些不必要的会议,一定要明确职责范围,该拒绝的拒绝,让他们去找职责范围内的人去处理。
千万不要当老好人,烂好人。
第三,动手前要明确需求和项目细节
程序员作为实现需求的一方,需要在需求方(不管是产品还是运营还是老板)传达需求的时候充分理解需求,遇到需求不明确的一定要让对方先明确了,有了明确的需求文档了再开发。
相信大家都遇到过不靠谱的产品或者运营或者项目经理,如果不在实际开发之前都明确了需求,理顺了,后面再返工的话,这样浪费了很多时间,效率必定低下。
你可以说是因为需求方不靠谱导致的,但是如果程序员本身有这个意识,会避免很多的风险。
另外,在开发过程中遇到了不明确的地方,感觉有风险的地方,要及时跟相关人反馈沟通,不要拖延。
第四,不重复造轮子
不重复造轮子 这个道理程序员应该都懂,为了快速完成需求已有的功能可以拿来封装和复用,不必重新进行开发。
其实真正能够造轮子的人还是少得可怜,能够把成熟的轮子使用的非常熟练并且在这个基础上能够做到精准的定制就非常不错了,毕竟日常工作中还是应用层面居多。
如何成为一个程序员?
如果想做一个程序员,在没有基础的情况下,买书自学是一个办法。但是大多数人会因为没有相关的基础知识,导致看书看得一知半解,因为有不同的语言,不同的开发环境,在你不了解的时候,买的书不一定合适。
比较速成的办法还是去报名一个培训班,系统的学习一下基础知识,然后选择一个发展方向,再具体的针对性的买点书籍来学习。
程序员是一个不停学习的岗位,你需要每天除了工作以外,花一定的时间了解新的技术或正在使用的技术的原理,这样才能一直提高,不然,可能会被淘汰。在你了解代码以后,你还需要了解逻辑,就等于你要熟悉你所从事的这个领域及行业。
注意事项:
不管任何行业和任何工作,概念的理解都是成功的关键。除非你有强大的概念基础,否则就不可能成为一名优秀的程序员。
核心概念的理解有助于你用最佳的方式设计和实施解决方案。如果你觉得你现在还没有好好掌握关于核心计算机科学和编程语言的特定概念,那么现在回过头去重新学习这些基础知识犹未晚矣。
如何成为一名程序员?
首先先选择一门语言现在比较火的是sun公司的java和微软的C#\x0d\x0a友情提示:java移植性很好,这是网络平台所需要的。C#只能运行在微软的平台,有局限性。\x0d\x0a我不排斥其他的计算机语言不过一般只要学懂一门语言后就相当进入程序的天堂,在学其他的语言时候就能简单的多,因为很多软件语言是相同的,学懂一门就能够看懂其他的。\x0d\x0a\x0d\x0a买书,见意买比较薄的书开始学,太厚的书看不完会打击心灵。\x0d\x0a\x0d\x0a需要有耐心,其实是非常有耐心,因为学软件做软件是一辈子的,没有任何一门技术能做到老,必须一路学下去。每当度过一个阶段尽量总结所学过的。\x0d\x0a\x0d\x0a一定要沉得住寂寞,无论是学软件还是做软件。\x0d\x0a\x0d\x0a只要认真学,一般一年自学都可以有所小成,程度还要看个人的领悟。\x0d\x0a做软件是需要注意很多细节,正是这些细节所以让人很头疼,所以需要耐心。\x0d\x0a顺便提一句:学软件就尽量学比较火的,因为市场需要,才会火。\x0d\x0a我不是鄙视某某某语言,而是实话说,毕竟学出来需要应付工作的,如果工作不需要,就算学的很有本事,没人雇也没用,对吧!\x0d\x0a你完全可以去招聘网看看软件这个行业哪些软件需要的人才多。\x0d\x0a别听谁谁谁说哪种语言火,火不火招聘的数量就能说明一切。\x0d\x0a\x0d\x0a一定要对软件充满信心,千万别轻易放弃。相信软件是有“钱”途的。\x0d\x0a\x0d\x0a本人现在也是在自学软件,也有三年的学习。\x0d\x0a以上是我一些经验,如果有需要,可以按右下角Hi我,相互促进。