0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一位程序员的五年工作感悟

工程师人生 来源:工程师吴畏 2018-12-20 14:30 次阅读

前言,

一晃,做了五年多的程序员了,感觉自己应该是程序员大军中比较典型的一个,班科生毕业,直接加入了软件开发的行列,先是小公司,然后大公司,走了一条典型的程序员的路线。

虽然我不是大牛,但是感觉在我这样普通程序员身上所能得出的一些结论可能更加适合广大的程序员兄弟们,让我们在程序开发的路上,共勉。

话说,五年前,我是一只小小鸟,一头扎进了dot Net开发的丛林,没能变成猎手,却险些变成了猎枪下的亡魂。..

回首往事,曾经有过太多的经验和教训,现总结如下:

一、要想飞的更高,我需要一双有力的翅膀。..

一双有力的翅膀,是飞行的最基本的支撑和前提。

那什么是程序开发的最基本的支撑呢,个人感觉是构建一个完整的关于开发的知识体系和程序员应该具备的最基本能力。

1. 知识体系

知识体系无非就是支撑你软件开发的那些最基本知识,也可以说是技术的路线图。

例如你可以参考园子里的大牛Anytao的路线图,应该会有一些体会。

清楚自己的知识体系的好处是可以时刻提醒自己在哪些方向上有所欠缺,在哪些方向上有相应的优势,并且更容易对自己的技能有个良好的把握。

关于这方面的东西就不多说了,下面说几个构建知识体系时的个人心得。

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的熟练度和技巧了。

2. 程序员的基本能力

什么是程序员应该具备的基本能力呢,下面是我的总结:(这个问题肯定每个人都有自己的看法,下面只是我个人的总结)

编程语言的掌握能力

一个良好的程序员肯定要熟悉一种或几种编程语言,同时对各种主流编程语言有一定的了解。

操作文本的能力

最基本的能力之一。

操纵shell的能力

这是证明你是一个程序员而不是一个普通人的最简单办法了,你看过一般电脑的操纵者会玩shell吗?

更何况shell在某些场景下能给我们巨大的帮助。

操纵IDE的能力

IDE类似于战士手里的枪,玩不好枪你当什么战士?

单元测试的能力

太多的程序员不在乎单元测试了,要知道这是证明你的工作成果是正确的唯一方式,我想,有这一条就足够说明单元测试的重要性了。

文档的能力

有人很不在乎这个,其实,想说的是,有很多时候文档是体现你价值的最重要的工具。不理解?想想你的项目经理们是不是都能做出非常漂亮的ppt,你就知道差距了。还不明白,文档可是交付物之一,也就是产品中的一部分,想想你买个漂亮的家用电器,却又一个非常丑陋的包装的情景,你就应该明白了。

二、要想飞的更远,我需要混入一个团队。..

大雁是我知道迁徙类中飞的最牛b的鸟类了,因为它们总是能在天空中排成美丽的S形,美丽的B形。..:) 我相信在这样的团队中,你只要混进去,也就可以很容易的排成那些美丽的形状。

其实这里的团队不是通俗意义上的团队,而是圈子的概念,程序员也有程序员的圈子,积极的融入这些圈子,总会有一些好处。

举个例子,在去年,我想换工作的时候,就得到了园子里面”Nick Wang“和“Lbq”的极大帮助,其实我和他们素未相识,但是不得不说程序员真的是很热心,很纯洁的一帮人,有这样的一帮人作为同职业者,对于我们每个人来说,都是一种幸运。

人都是群居动物,社交对于每个人都非常的重要,ok,下面说说我对圈子的一些小看法。

1.在广义的圈子里

所谓的广义的圈子,指的是相对而言一个比较大的范围,可以是网络,或者一个邮件group。

有一个很重要的事情就是在这样的一个圈子里,不要做一个只得到不分享的人。

如果你只获取不分享至少有两个坏处,

第一 就是你不能收获最大,这点我深有感触,我加入博客园是05年,貌似属于比较早的了,可是最开始的时候感觉自己很是幼稚,不敢分享自己的观点和体会,于是直到07年我才敢发自己的第一篇随笔,如果早早分享的话,我想我会有更大的提高。

第二 对于任意一个组织,当获取超过分享的时候,这个组织也将会走向灭亡了。

2.在狭义的圈子里

这个很简单,就是你工作的城市,你工作的公司,如果你想在一个城市里面混,程序员的圈子说大很大,说小其实也很小,如何让这个圈子里的人认可你的能力,是很重要的。

记得有个前同事问我说他将来会不会失业,我当时就告诉他,以他的能力,他不可能失业,但是以他的人际圈子,他很有可能混不“上”去,因为他的圈子太窄了,如果不能在现在的公司得到认可,他很可能连去其它公司展示自己能力的机会都没有。..

是不是很现实,但是社会往往就是这样现实,想想吧,如果你想去某个公司,里面有个了解你能力的人,赏识你能力的人对你会有怎样的帮助。

三、我该朝哪个方向飞,当我们面对选择。..

对技术迷茫过?动摇过?很正常,每个人都有过这样的困惑,审慎的对待自己的性格、能力,并作出合理的选择是我们这代人需要面对的问题之一,我们没有可以参考的目标(对于软件行业而言,在国内从无到有也才那么10几年时间,自然没有什么参考对象),也不像我们的父辈一样无法选择,展现在我们面前的是一条更加宽广的路,也是一条充满了荆棘的路,所以,选择也就更加的重要了。

我不知道别人是如何选择的,说下自己的心路历程吧,在04年的时候我做出了第一次选择,

一,选择.net,其实当时的原因很简单,只是因为看“Microsoft .NET框架程序设计”时的一句话,微软为未来的10年准备了Dot Net,你呢?当时被这句话深深的打动,于是毅然决然的选择了.net。

二,没有选择日本外包,而是选择了当时在大连还是才起步的欧美外包,选择的理由也很简单,英语永远比日语说的人多,在外包一个这样语言至上的行业里,学习英语远比日语来的划算。

到现在,虽然没有证明当年的选择是正确的,但是既然是自己选择的,那么就想一直坚持走下去。

第二次选择是在08年,从一个小企业到了一个大企业,虽然对当时的团队也很是不舍,但是我却知道,按照自己的性格,既然不能走向管理,那么只能走向一个大的团队,这样才能保证自己的职业生涯更稳固。

如今,即将面临第三次选择,一个正规化、专业化的开发团队,这样才能让自己在职业的道路上走的更远。

最后想说的是,人生,无时无刻不在选择着,其实选择不重要,重要的是做出选择之后按照自己的选择并坚持走下去。

四、一些额外的东西

1外语能力

作为程序员,没有出色的英语永远是二流的角色,没办法,人就要适应环境,而最先进的代表生产力的东西貌似现在很多都是E文的,既然没的选择,那就学呗。

2管理能力

在程序员中,感觉想走管理路线的人应该占大部分,那么储备一点管理的知识吧,机会永远垂青那些有准备的人。

还想说句话,其实不是每个人都适合管理的角色,自己也曾经参与过一定的管理工作,但是感觉性格上很不适应,于是放弃,依然选择在技术上起伏,某些时候放弃更重要。

3突出重围

不想泯然众人,不想永远做人后之人?看看xiaotie的这篇文章《突出重围》,个人感觉很精彩。

最后,

程序员不过是三百六十行中的一行罢了(算不算在三百六十行中我还不知道),无非就是一种职业,它不比其它职业来的高贵,也不比其它职业来的低贱,无非是你获取报酬用来支持你生活的一种方式。

如果你真心的热爱这个行业,那么就持之以恒的在程序开发这条路上走下去吧,其实无论你选择了哪个行业,只要坚定不移的走下去,总会找到属于自己的那片天空!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    949

    浏览量

    29759
收藏 人收藏

    评论

    相关推荐

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 101次阅读

    届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,
    的头像 发表于 10-25 15:42 154次阅读

    京东上万程序员都AI用它!

    对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,不但减少人工接入、提高工作效率,更为企业抵御内外部各种攻击构建起道坚固的安全屏障,确保业务的连续性和稳定性。 JoyCoder是京东云自主研发的
    的头像 发表于 07-17 16:29 220次阅读
    京东上万<b class='flag-5'>程序员</b>都AI用它!

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    助力程序员告别困扰已久的梦魇-Bug

    程序员的噩梦是什么?不用怀疑,就是让你加班到崩溃的Bug!下面是经过业界大佬们“长期加班”积累的小妙招,助力你离早下班又进步~、定位Bug范围及性质要有效解决问题,首先要缩小范围,集中关注最近
    的头像 发表于 07-02 08:10 265次阅读
    助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug

    寻找一位编程

    寻找一位编程。请法邮件 j_helmut@163.com
    发表于 04-02 13:34

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 385次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    GitHub Copilot:你的代码超级助手!程序员的最强福音

    今天小启给大家安利款令人兴奋的AI工具——GitHubCopilot。它无疑是程序员们的最强福音!无论你是新手还是经验丰富的开发者,GitHubCopilot都将成为你的代码超级助手。想象
    的头像 发表于 03-05 08:04 1087次阅读
    GitHub Copilot:你的代码超级助手!<b class='flag-5'>程序员</b>的最强福音

    感觉我国的程序员前景片灰暗,是这样吗?

    程序员也分为好几等,在现在看来大部分的Android、Java、前端等等开发。已经看不到希望了,很多人都在边缘挣扎;刚看到一位Android开发者,过完回公司就通知被裁;可见每年都会有很多互联网
    发表于 02-20 20:52

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 774次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    诚邀报名 | GPT驱动的新程序员时代,开发者如何编程?

    2023开放原子开发者大会 . OPENATOM DEVELOPERS CONFERENCE GPT驱动的新程序员时代 我们该如何编程 2023.12.17 生成式AI正以旋风般的速度重塑我们的工作
    的头像 发表于 12-11 22:20 511次阅读