关于程序员的那些事——一个五年程序员的总结
一晃,做了五年多的程序员了,感觉自己应该是程序员大军中比较典型的一个,班科生毕业,直接加入了软件开发的行列,先是小公司,然后大公司,走了一条典型的程序员的路线。
虽然我不是大牛,但是感觉在我这样普通程序员身上所能得出的一些结论可能更加适合广大的程序员兄弟们,让我们在程序开发的路上,共勉。
话说,五年前,我是一只小小鸟,一头扎进了dot Net开发的丛林,没能变成猎手,却险些变成了猎枪下的亡魂…
回首往事,曾经有过太多的经验和教训,现总结如下:
一、要想飞的更高,我需要一双有力的翅膀…
一双有力的翅膀,是飞行的最基本的支撑和前提。
那什么是程序开发的最基本的支撑呢,个人感觉是构建一个完整的关于开发的知识体系和程序员应该具备的最基本能力。
1. 知识体系
知识体系无非就是支撑你软件开发的那些最基本知识,也可以说是技术的路线图。
例如你可以参考园子里的大牛Anytao的路线图,应该会有一些体会。
清楚自己的知识体系的好处是可以时刻提醒自己在哪些方向上有所欠缺,在哪些方向上有相应的优势,并且更容易对自己的技能有个良好的把握。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
关于这方面的东西就不多说了,下面说几个构建知识体系时的个人心得。
1.分清楚知识的核心和扩展
每项知识都有其核心价值与相应的扩展体系。
核心价值决定了技术的应用方向,而扩展体系决定了技术的外在表现。个人的意见是抓核心,适当的放弃某些扩展,比如asp.net你更应该了解页面周期而不是某些控件的具体使用。
了解了核心价值有助于我们对某样技术有深刻的理解。
拿语言举例,如果将语言分为命令式和函数式,那么我们就应该知道命令式语言的核心本质就是通过操作指令去改变内存中的数据,而函数式语言的核心就是通过不断的函数求值以得到结果。
明确了这些核心对于我们对语言的了解有显著的作用,我们也就明白了为什么汇编语言的指令一般都是 "mov ax,1"这样的语句。
BTW:对于一个dot net程序员而言,如果不理解framework,不了解framework的构成,不了解一些基本的概念,比如”CLR,CTS,GAC“之类的东西,很难想象这样的人会是一个成功的dot net程序员。
记得有一次和一个同事聊天,我说如果没看过《Microsoft .NET框架程序设计》这本书,我就不确定你对于dot net能有深入的了解。
其实我的本意是想说,《Microsoft .NET框架程序设计》这本书,会在某种程度上极大的帮助你构建dot net framework的知识体系,这本书好就好在不是讲c#或者vb这些语言,而是讲framework这个框架。当然,不看这本书你也能打造一个良好的framework的知识体系,只是相对来说要麻烦一些,没有这本书这样的系统。
2.通过内联和外延梳理自己的知识体系
技术与技术之间都有着相应的联系,通过互相对比我们能够清晰的加深对技术的理解。
比如WPF和HTML都是通过markup的方式构建界面,再比如WebService和Remoting都是通信方式,只是具体的方式和信道不同。
再比如Flex和SilverLight的区别和差异。
甚至你可以通过对比Java和C#两种语言来看语言设计上的一些异同,比如java为什么默认的就是虚函数,而C#默认的不是,通过这些对比,你更容易发现这两种语言设计时的思路。
3.审慎的对待IT技术的走向和潮流
软件开发是个不断更新的职业,其新技术更新之快远超传统行业,也经常看到很多人抱怨技术更新过快没有时间学习之类的,其实在我个人看来,新技术的到来远没有那么可怕。
当你有完整的技术体系,明确其中各种技术的联系,你会发现你对于新技术会有更明确的定位与预判。
举个例子,微软出了个新技术WPF,那么,它是干什么用的呢,一种通过标签描述windows界面的表示技术,这时你自然就会想起Windows Client,想起HTML,在比较它们之间的异同,你就会很清晰的明确WPF这种技术所适用的场合和大概的优缺点,那么到了这个时候你会发现,你缺少的就完全是对于WPF的熟练度和技巧了。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
2. 程序员的基本能力
什么是程序员应该具备的基本能力呢,下面是我的总结:(这个问题肯定每个人都有自己的看法,下面只是我个人的总结)
对编程语言的掌握能力
一个良好的程序员肯定要熟悉一种或几种编程语言,同时对各种主流编程语言有一定的了解。
操作文本的能力
最基本的能力之一。
操纵shell的能力
这是证明你是一个程序员而不是一个普通人的最简单办法了,你看过一般电脑的操纵者会玩shell吗?
更何况shell在某些场景下能给我们巨大的帮助。
操纵IDE的能力
IDE类似于战士手里的枪,玩不好枪你当什么战士?
单元测试的能力
太多的程序员不在乎单元测试了,要知道这是证明你的工作成果是正确的唯一方式,我想,有这一条就足够说明单元测试的重要性了。
文档的能力
有人很不在乎这个,其实,想说的是,有很多时候文档是体现你价值的最重要的工具。不理解?想想你的项目经理们是不是都能做出非常漂亮的ppt,你就知道差距了。还不明白,文档可是交付物之一,也就是产品中的一部分,想想你买个漂亮的家用电器,却又一个非常丑陋的包装的情景,你就应该明白了。
二、要想飞的更远,我需要混入一个团队…
大雁是我知道迁徙类中飞的最牛b的鸟类了,因为它们总是能在天空中排成美丽的S形,美丽的B形…
关于程序员的那些事——一个五年程序员的总结相关推荐
- 一个五年程序员的学习状态
分享我的书架:一个五年程序员的学习状态.收集的图书以及我的学习观 如何被推荐? 去年写了一篇文章<一个工作3~4年程序员的年度学习计划>,里面列出了一些计划阅读的书目.一年过去了,进度很一 ...
- 微信小程序+PHP 从零写一个微信小程序
微信小程序是越来越火,参与其中的开发者也越来越多,但是很多朋友都是只懂小程序前端开发,或者是只懂 PHP 开发,本 Chat 就是想让这部分人能够自己一个人把前后端串起来,做一个专属自己的微信小程序. ...
- IDEA如何执行一个包内的程序时不报另一个包内程序的错误 IDEA如何只编译运行一个包内的程序
有时候想编译运行一个包内的程序时会报错同一个项目下的另一个包内程序的错误,如何跳过有错误不想执行的包内的程序,只执行想执行包内的程序呢 首先右键想跳过执行的包 选择 Mark Directory as ...
- java程序员年度总结_一个五年Java程序员的年终总结,献给还在迷茫中的你
我越来越担心我作为一个Java程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打了五年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过 ...
- 一个五年程序员的年终总结
我越来越担心我作为一个C++程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打了五年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程 ...
- 从高考到程序员---一个五年程序员的回忆及建议
(本文参加CSDN的"从高考到程序员"征文活动,谢谢!) 每年的六月初,有关高考的信息就会见诸于报纸.网络等,让我这位多年之前参加高考的.已工作多年的人不由得也回忆起了自己高考时的 ...
- 小程序video至于底部_一个18岁程序员的自学成长旅程 | 掘金年度征文
大家好,我是Q1,00后,上星期(12.17)才满的18岁,但年龄并不能证明什么, 2019已经接近尾声了,这次主要想分享下我的编程旅途,还有学习方法以及收获, 感谢平台给了我这次机会. 起点 起点从 ...
- python国际象棋ai程序_用Python编写一个国际象棋AI程序
最近我用Python做了一个国际象棋程序并把代码发布在Github上了.这个代码不到1000行,大概20%用来实现AI.在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来. ...
- python国际象棋ai程序_用 Python 编写一个国际象棋 AI 程序
最近我用Python做了一个国际象棋程序并把代码发布在Github上了.这个代码不到1000行,大概20%用来实现AI.在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来. ...
最新文章
- OpenAI开放GPT-3微调功能,一行命令就能实现!正确率最高提升4倍
- haar 人脸检测跟踪源码整理
- centos6.4下LVS+keepalived的高可用(LVS/DR模式)
- 【组合数学】生成函数 ( 求和性质 )
- C++技能的4种方法
- 【CodeForces - 608D】Zuma(区间dp)
- 正确率能很好的评估分类算法吗_机器学习算法:分类知识超全总结!
- OpenModelica 在特定目录下生成仿真结果文件
- Eclipse-project 重命名问题(如何彻底修改Eclipse工程名),4种解法
- 【安全测试】AppScan:下载与安装
- web前端编程实现福彩投注站彩票投注助手
- 爆款公众号:如何打造爆款公众号文章?公众号文章如何突破10w+?
- java中的private访问控制
- 爬虫(二) 豆瓣音乐评论爬虫 文末附完整代码
- Mac Redis开机自启动
- LeetCode 热题100答案
- 详细设计说明书(转载)
- 乳腺癌(Breast cancer)数据集———Breakhis分享
- 支持向量机SVM极简手推
- Spring框架基础概念(面试概念解答)