努力做一名专业的程序员

      以前在学校学习的时候,学了那么多的课程,也看了不少的参考书籍,对计算机的体系也有个大致的了解,自认为整个计算机系统就那么回事,感觉什么样的程序,自己都会做出来。怎么地出来就能很快跻身高级职位,指点江山了。现在工作半年了,参考现实,回想当年,不禁觉得汗颜,感觉现实和理想真的是差很多。不过现实也给了我深刻的印象,使得我定下了接下来若干年的事业目标——做一名专业的程序员。

      国内做软件的,人人都很优秀,大家都想做产品,做领导,但是却很少有做技术的。都说做技术的过了30就歇菜了,跟不上技术的发展,不是转管理就是转行。其实,计算机技术的发展是很快。但是快的不是计算机的本质技术,而是快得是若干的库。也就是说,随着时间的推移,许多原先要自己去实现的体系或者功能,现在都被其它人实现好了,拿过来用就是了,所以才会隔三岔五的出现新的软件技术。但是静下心来,就能够发现许多新技术不过是对某些模块的包装和测试,而真正的技术的革新是很少的,同时,真的能够掌握已有的计算机核心技术的人,也不是那么多。再退一步,就是能够合理地把这些模块整合起来做成优秀产品的,相对于庞大的软件行业来说,也是很少的。所以,即使技术上没有创新,一个程序员在相关领域工作10年以上,他对这部分软件的感觉肯定要比绝大多数新入行业的来得深刻。在商业上来说,就是能降低项目的实现风险。

     现在,软件行业中,各种头衔平地而起,软件设计师,软件架构师,系统分析员,软件技术总监等等,各个风光无限,待遇丰厚。所以成了许多人趋之若鹜的目标。其实,真正能够保证软件质量的,不仅要有良好的设计和管理,更应该要有大量专业的软件实现人员——程序员。大概是国人的传统所致,大家都不愿意在底层兢兢业业地做那些实现细节,而希望做那些决策的设计和管理。但是,没有一批专业的程序员,再好的设计和管理,也不能按时地完成软件项目,即使完成了也是一个漏洞百出的半成品。所以,就造成了加班赶进度成了家常便饭。再说,一个软件设计和管理人员如果没有经过专业的程序员的培训与锻炼,谁又能保证他能够出色地完成自己的工作任务呢?

     所以,要想在软件行业做出一番事业和成就,就必须先把自己培养成一名专业的程序员。

     什么样的程序员是专业的程序员?这个问题没有统一的答案,每人都有自己的看法。下面是本人的一点体会:

     1. 要对计算机结构有清晰的认识。无论何种软件,最终都是通过硬件计算设备来实现的,所以,在其之上编写软件要明白硬件结构的信息。至少,程序员要从软件开发的角度去理解硬件结构。大的如硬件的架构,如CPU的设计架构,辅助计算器的架构(如GPU)等。明白哪些计算是硬件是已经提供了的,那就不要用软件去实现它,硬件实现总是要比软件来的快。在这里,了解一下指令会对开发有很大的帮助,尽管高级语言已经为程序员做了很多。

     2.要对使用的编译器要了解。各种各样的语言一般都会有编译器,它把比较容易阅读的,按照一定语法组织成的本文文件,翻译成能够在硬件上执行的代码。同时编译器也会帮程序员合理组织指令的排列。这种帮助在绝大多数的情况下是有利的,但是在极少的情况下也会成为软件bug的根源。如对浮点特性进行不同设置,那么在把整型数地址强转成浮点数地址并赋值的时候,就会出现2种不同的实现:1是把当前的整型数压入到浮点计算器堆栈里面,然后把堆栈弹出到一个浮点变量中去;还有一种是简单地把数据从整型数内存复制到浮点数内存中去。可见了解编译器的特性,不仅能够明白编译器为我们做了什么,怎么做,更能明白为什么这样做。了解编译器并不是会来个编译就行了,那样地话当软件开发人员变多,规模变大之后,会出现很多隐性的错误。同时,了解编译器特性,也能对这种语言的内存模型有个更深入的了解。

      3.要对使用的编程语言熟练掌握。这一点是毫无疑问的,软件开发不可能回退到原来直接与硬件打交道的情况,掌握若干编程语言是成为专业程序员基础。

      4.要对使用的编程语言相关的库充分了解。尽管用基本的编程语言,程序员可以写出任何能够用计算机处理的程序,但是在有限的时间和资金的限制下,还是要利用已有的、经过充分测试地、可以重用的软件模块来进行软件开发。把软件开发的技术重点放到能够体现软件价值的部分上来。可以重用软件模块,不等于程序员就不需要对软件模块置之不理;相反要对软件模块进行合理的分析,总结其优点,缺点,可改经的部分,可借鉴部分。这样才能充分利用已有的部分,创造出高质量,高水平的软件产品来。

      5.要会使用各种开发工具来加快编程的速度和质量。当代软件开发,以不是单凭兴趣和爱好就可以完成的。一个软件开发规模大,时间短,多个程序员协作开发。如果没有一个良好的编程环境来组织和整合各个步骤,那么还没有等软件开发出来,程序员就直接淹没在浩瀚的代码之中了。因此,各种的开发辅助工具,不仅是代码编写的,调试的,检测的,管理的,整合的,还是代码的编译,分布和部署,好的软件开发工具能够加快速度,保证质量。不要认为学工具麻烦,或者是习惯了原有的手工开发的模式了,试试看这些能够帮助开发的工具,肯定能够得到很大的帮助。

      6.要多用软件。不仅对程序员日常开发用的工具要熟悉,对其它领域的软件也要有所了解,要时刻关注软件开发的最新情况。程序员可以不深入新技术,但一定要了解新技术的发展。这样才不会去重复做其它人已经做过的东西(技术验证除外)。看一名程序员是否资深,不仅要看他写过多少软件,更要看他用过多少软件。只有这样,才能从整体去了解软件的本质。

      7.要有良好的设计风格。这里的设计风格包括两个方面,意识代码编写的风格。软件绝大多数工作表现是代码和程序。一个编写的软件代码不仅能够准确保留程序员的意图,还能够为之后的测试,调试和维护带来方便。一些人处于对自己的技术保密态度,故意把代码写的难懂,这是不对的。一般大软件项目中,程序员本人写的代码,一个月之后去看,都要花费不少时间去重新理解,别说之后其它人来维护了。如果代码写的乱,取名晦涩,标记混乱,会给软件开发带来很大阻碍。另一个方面的风格是设计风格。现在各个编程语言社区都有许多经过实践的编程规则和设计风格,遵从这些规定,能给自己的软件开发带来很多好处。以后的风格许多情况可以直接拿来用,出问题了检查也容易。千万不要过于相信自己的能力,设计一套只有自己能用,而且没有经过实践的风格来。

      8.要多与其他程序员交流。程序员绝大多数和计算机打交道,某些程度来说,更愿意与代码和指令交流。但是计算机毕竟是人设计出来的,要用好计算机,最后还是要有人编程才行。编程是很抽象的,也是相当比较难的一门行业,所以许多程序员对自己的技术持绝对保密态度,生怕人家学去了自己的技术。其实这想法是没有道理的。就像上面说的那样,计算机要人去执行。单人的能力有限,多一人就多一种想法,多一种解决之道,这样才能把软件做好,软件也才能尽量少出现问题。在软件开发过程中,所有的目标是为了软件,而不是显示个人能力和保护个人知识。试想,如果一个软件失败了,再好的实现也是徒劳的,因为它带来不了利益,无论是社会利益还是经济利益。同时在这个过程中,保密的人不仅耗费了自己的时间和精力,更耗费了整个团队的时间和精力。想法,如果程序员多多交流,集合众人思维,创造出优秀的软件,那么不仅会给团队带来利益(当然相应程序员自己能力和收益都会得到提高),也能够在交流过程中,彼此之间得到思维的火花,从而提高了整体的水平。那么就会使团队在相关行业中提升一个大的档次,使得团队与个人双丰收。因此,合理的交流是程序员必备的能力,闭门造车的程序员是很容易被淘汰的。再者,当今软件开发难点不仅在于新的技术开发,同时对技术的复杂度的控制也有相同的重要性。所以在复杂度面前,任何技术实现细节都会显得很渺小。而复杂度掌握不是一个人能想出来的,只有通过大量的实践和经验的交流才能体会(也就是说复杂度的掌握是时间越久越有经验)

       以上就是个人对专业程序员要求的几个方面的理解,相信在日后的实践中,会有更多的要求加入其中。

### 回答1: 要成为一名Python程序员,首先你需要学习Python语言编程基础知识。你可以在网上找到很多关于Python的教程,从基本的语法到更高级的知识,比如算法、数据结构、设计模式、网络编程等等。此外,你还应该学习游戏开发相关的知识,比如游戏策划、美术设计等。 ### 回答2: 要成为一名游戏的Python程序员,你需要掌握一些基本的技能和知识,并且有一定的实践经验。以下是几个步骤可以帮助你实现这个目标: 1. 学习Python编程语言:首先,你需要掌握Python编程语言的基础知识,包括变量、数据类型、条件语句、循环等。可以通过在线教程、自学资料或者参加培训课程来学习。 2. 熟悉Python的游戏开发库:Python有一些游戏开发库,如Pygame、Pyglet、Panda3D等,学习和使用这些库能够帮助你开发游戏。阅读相关文档、教程和示例代码,掌握库的基本操作和功能。 3. 实践项目:通过编写小型游戏项目来实践你的编程技能。可以从简单的游戏开始,比如一个迷宫或者打砖块游戏,逐渐增加难度和复杂度。通过实践项目,你可以不断提升自己的编程能力和理解游戏开发的流程。 4. 参与开源项目或团队合作:通过参与开源项目或与其他游戏程序员合作,你可以学习到更多高级概念和工程实践。这样的经验可以提高你的编程技能,同时也可以帮助你建立自己的专业网络。 5. 持续学习和改进:游戏开发是一个不断演进的领域,新技术和工具层出不穷。要成为一名优秀的游戏Python程序员,你需要不断学习和掌握新的技能和知识。阅读相关的书籍、博客、论坛,参加工作坊和培训课程是不断学习和改进的好方法。 总而言之,成为一名游戏的Python程序员需要时间和努力。通过学习Python编程语言、熟悉游戏开发库、实践项目、参与开源项目和不断学习改进,你可以逐步达到这个目标。 ### 回答3: 要成为一名游戏的Python程序员,你需要掌握一定的编程基础和相关的技术知识。下面是一些步骤可以帮助你实现这个目标: 1. 学习Python编程语言:首先,你需要学习Python的基础知识,包括语法、数据类型、函数等。可以通过参加在线课程、阅读相关书籍或观看教学视频来学习。 2. 学习游戏开发基础知识:了解游戏开发的基本概念,例如游戏循环、图形渲染、碰撞检测等。学习游戏设计模式能够帮助你更好地理解游戏的结构和组织。 3. 学习游戏开发框架和工具:掌握一些常用的Python游戏开发框架和工具,例如Pygame、Panda3D等。这些工具可以帮助你更快地构建游戏原型和实现游戏逻辑。 4. 实践项目:开发小型游戏项目是提高编程能力的重要方式。尝试设计和实现自己的游戏项目,通过解决实际问题来熟悉游戏开发流程和常用的编程技巧。 5. 参与开源项目:积极参与开源游戏项目可以提高你的合作能力和代码质量。你可以通过GitHub等平台找到感兴趣的项目,并为其贡献代码。 6. 不断学习和提升:游戏行业发展迅速,不断学习新的技术和工具是必要的。关注最新的游戏开发趋势和技术,参加相关的培训和会议,保持对新知识的求知欲。 总之,成为一名游戏的Python程序员需要一定的时间和努力,但只要坚持学习和实践,你将逐渐掌握必要的技能,并能够参与到有趣的游戏开发项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值