程序员这口饭-职业规划解决方案(http://www.cnblogs.com/lauyee/archive/2010/06/16/1758983.html)

有时候人经常会遗忘一些事情,过去的,未来的。有时会纠结于理想和现实。有时候是因为忙碌而忘记思考。有时候是因为无奈而选择忍受。

规划自己的职业道路,以及人生道路是,我们已经不必再来讨论他的重要性,只有谨慎对待。规划更要根据个人的理想,从实际出发。那么怎么才算实际呢?所谓的实际应当包含以往的经验、现有掌握的技术、教育背景、现实的工作环境、以及一些其他因素。如:婚姻、年龄、学习能力。花一些时间来思考这些问题,不能总是跟个感觉走,也不能总是太理想主义。

1、经验对一个人来说是绝对重要的,频繁的跳槽无疑是职业生涯的最大忌讳。如果是为了一点点工资而转移阵地那更不值得。所以不管当初是因为兴趣、还是因为无所选择而介入这个行业,这么多年的体会也绝对是一笔财富。如何运用我们的经验以及如何掌握更多才是值得考虑的。

2、衡量一下现有掌握的技术,要不要在学习新的技术。这一点也相当重要,就这个行业来说你不学习就势必落后。但新技术太多了,很多朋友还在感慨XXXX还没用熟,XXXX又出来了。在这一点上,我对新技术的定义是,你未知的技术都是新技术,也许它已经出来好多年了,但他很好用。我们的目的是在于解决问题。所以在学习新技术也就带有了一定的选择性,不能一味的追求,什么东西比较绚,什么东西强,永远从提高生产力和时间成本上考虑。总结这一点就是,要不断的学习,从而增强自己解决问题的能力,这样就永远不会out。(但如果你是绝对新手,还是多学点新技术好)

3、我的学历很低,要去自学考一个证吗?这个可以从成本和收益上考虑。考虑一下你现在的工作一年的收益是多少。如果考到一个证书,一年的机会收入是多少。继续受教育所花费的时间、以及其他成本是多少。还要考虑其他的影响因素。我的建议是,这个证书真正有用,让你能达到一个比别人更高的起点;你的志向中学历有最基本的要求,如果有这两点当中的任一点,你就应该去考取文凭。

4、如果现实的工作环境还不错,那在好不过了。每个人都应该珍惜自己的这份工作,首先是要干好自己本职的工作。希望能根据公司的制度的到晋升。现实当中可能并不会这么尽如人意,好多人努力工作不一定能得到回报。但大多数情况,你的努力领导会看在眼里,你应当在适当的时候向领导提一下。如果你的老板不太抠门,我想10有89还是能成功的。如果实在是不行,也不能怠慢工作,你应该在工作中得到更多的行业应验、提高综合素质。如果你的所做的工作,或者是你自身已经对公司来说具足轻重的时候,我想钱不是问题。

5、还得考虑一些现实的问题,你得花一些时间来找女朋友、陪老婆逛街。还有很多事情需要考虑。

以上是在做职业规划之前需要考虑的一些实际的问题。接下来具体的分析如何实现,在最后你可以根据自身情况给出一套合理的解决方案。以下是一个帮助个人分析发展、学习的导图。其中你看得出有很强个人色彩,很多的地方都只是提到了微软的技术方案,而忽略了其他的,你也可以再此基础上加以补充。

一、在工作中寻求提升

我给出了3类程序员可能发展的方向。其中最强调的就是在工作中得到提升。在工作中提成,一般对程序员说来有2个目标。一个是做架构设计-将来可以做产品的规划,或者项目规划和指导。另一个往管理发展,将来可能涉及的不知是单纯的技术。以下的步骤只是一些常规的做法。

目标 第一步 第二步 第三步 第四步 第五步
架构方向 1、基础必备:至少看过2本语言基础书和一本领域技术书。
2、部分参与项目1-2个。
所需时间:3-12个月
1、行业知识领悟、扩展相关应用知识。
2、完整参与项目1-2个。
3、可以指导新人完成工作。
所需时间:6-12个月
1、深刻理解面对对象知识。熟悉常用架构,对公司采用的架构能提出改善意见。
2、参与需求讨论并能提出简化方案。
3、能为决策提出一些建议。
1、能够对整体需求方案做出精确描述。
2、运用一种架构对项目、产品进行设计。
3、评估项目风险、以及预留方案。
4、实现核心组件、技术难关。
5、行业技术指导。
艺术领域
管理方向 1、学习常用项目管理工具。
2、学会人际交往、协助项目管理。
3、和三教九流交朋友学会喝酒。
1、熟练运用一种项目管理工具。
2、能采用非技术手段实现需求(不用写代码的)
3、了解行业动向。

上表中第一步、第二步是基础阶段,都可以在制定的时间内明确的达到目标。当你进入第三步的时候,应该就有点主要开发人员或管理助理的意思。等到第四步的时候就应该上位,如果一直不上位也很难发展。至于怎么上位,也许还得学习一些其他方面的知识。后两步都跟具体的成长环境和个人领悟相关,更多地是需要你学习本行业的知识,然后运用你所学到的技能将他用软件的形式表述,具体的做法也只有到自己领悟了。到了最后就达到了艺术的领域。我的上图给出的一些知识点,关于企业级应用开发说的比较多一点。这些也最多只能让你达到第3步,如果和你所从事的领域一点不沾边,你需要针对自己所从事的行业,列出能解决自己行业需求的技能,划出主次,针对不同的步骤,找出重点学习的知识点。

和人相处、与人沟通是当中隐含的,但非常重要的一个因素,只有掌握了这一点,才有可能达到艺术的领域。

最后还是强调那句话,能够解决问题才是王道。

二、树立自己的品牌形象

这一点必须是在你经历了一定的磨练之后再能够进展,至少你应该在原先的企业内已经完成了前三步的目标。已经积累了很多的行业经验。

如果你从开始就考虑要自己干,就要从上述表格第一步的时候开始准备。要将自己本身就看做是一个品牌。在和客户、和同行、和老板沟通的时候要处处注意维护你的形象。即使你没有任何产品,你的名字就是最好的产品,把自己推销出去。很多时候客户买你的产品不是因为你们的产品有多么的好,而是认可你的公司,或者是认可你们老板,或者单纯的喜欢你。所以一定要培养自己的行业名气,最重要的是合作机会。说不定就因为某个客户的一个单子,你就起来了。

一旦你树立了自己的形象,你还需要一个属于你自己的团队。得要有一些人愿意跟着你干。你需要一个很强的可以搞业务的伙伴,也后可能你从此再没机会写代码了。有更重要的事情等着你去做。

不能总是在等待时机,永远没有100%的把握!一定要自己为自己创造条件。要闯出自己的事业,就不要彷徨、不要犹豫。

具体的做什么,我觉得行业软件还是最有利可图的。至于开源项目、自己做控件、或者开发个什么小众软件、以及轮子工具,都似乎有些不靠谱,结合自己的经验做跟行业,企业打交道的产品。

三、其他道路

好多人在感慨,程序员路在何方。路永远就在脚下,看我们怎么走。鲁迅说的,踩也要,踩他一条路出来。

当你有了一定的项目经验,并积累了一定数量的代码,不妨可以在网上找找有什么外包项目。但是我个人觉得私活很难做,通常你能够接到手的项目都是一些很小的不够塞牙的项目,即使有大点项目也一定是别人都挑剩下的,有的可能是二手、三手的项目。在这这种项目,你的利润又有多大,多半的利润是被一层层的拨掉了。即使有,你还是否还需要一个小小的团队。另外,你可以上英文网站上看看,很有可能能找见不错的项目。

行业顾问是个不错的营生,在实际中,行业顾问还是兼职的好,因为只有你真正在这个行业里从业,人家觉得你才更可信。一般来说,这需要的不仅仅是行业知识,而且需要你有很好的人缘,不管是从客户方,还是你的委托方。你都是熟人,那就要办事了。有时候委托方需要的不是一个顾问,而是一个和他的客户协调关系的人,而正好你和双方都很熟,那你就不顾而问了。

很多高手都写书,也书不仅能成就自己,而且能帮助他人,是非常好的一件事。对于写书来说,我觉得现在很缺关于行业内解决方案的书。也许是因为业务太过繁杂,没有统一规范吧。新手的书最多,因为需求最大。从一个读者的角度出发,我希望看到这样的书。1、经验类的如:《asp.net 2.0 编程珠玑》、《走出软件作坊》。2、对于某种技术的整体介绍如:《Expert C# 2005 Business Objects中文版》这本就是作者为自己的开源框架CSLA所写的介绍。3、领域领导者的高手书:象Martin_Fowler、Jeffrey_Richter 的书。我不喜欢的书是这样的:1、伪文档书,一般书上千页,就是官方帮助的翻版。2、故弄玄虚:名字挺花,一看才知道都是被人写滥了的东西。3、教课书:这是比喻的说法,意思是作者的口吻太僵硬、学术化,即使作者的水平再高,我希望作者写作的口气能活泼一点,口语话一点。最后说的事,不一定我不喜欢的就赚不了钱。写书也需要名气和口碑,再加上一点宣传,就差不多了。有写书计划可与博客园联系。

路肯定不止这些,这些也只是为你的职业计划所提出的一点点的建议。

FQA:

1、如何成为高手。

答:把手放在头上,你就是高手了。

2、先就业还是先择业。

答:如果你有明确的目标,已经对这个行业有了一定的了解,一定要慎重选择。一定要高起点,一步走错,以后不好回头了。如果你什么都不知道,那随便选择个工作,看看形势吧。

3、我现在从事的工作不是我的兴趣。

答:明确目标,如果你的工作能促进你目标的达成,忘掉你的兴趣吧。(呵呵,我的兴趣是游戏开发,可是我做企业应用的)

4、我想换工作了。

答:1)为钱?

我没法建议。

2)离家远:

想好是不是要回家的,还是决定在这个城市发展。早点决定。

3)我现在的公司没发展:

小公司也是很有发展前途的,你能很快的进入更高一级目标。

4)公司环境不好,人都很垃圾:

先学好跟人相处吧,那的人都差不多。

5)得罪了老板、老板对我有成见:

这混不下去了,早点撤。

6)领导水平一般,我学不了东西:

自己学了,不要老乞求别人帮你。

7)其他原因:

辞吧,你去意已决。

5、C# or Java

答:C#.

6、要学Silverlight /HTML5吗

答:这个现在火,你工作要是能用到,就学吧。如果你靠这个找工作,也学吧。

7、英语?

答:这个永远放到第一。

8、怎样推销自己。

答:学会喝酒,加入微软社区精英计划。

9、黑客、破解有搞头吗?

答:有、耐得住寂寞再说。

10、经常看博客能增长知识吗?

答:悄悄告诉你,经常看博客是浪费时间,读好的书和实践才是王道。博客是扩展你的知识面,一般时效性比较高,如果没有相应的书,可以从博客中找到一些资料,如果想系统的学习一门技术,还是找本好书吧。

11、我技术水平高工资低。

答:逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!

12、要学的东西太多了,不知道从何开始。

答:针对目标,划一条主线上面是必须要掌握的知识和工作中最需要的知识,先学。然后向两边扩充。

评论绿色通道:

转自博客园好文---关于程序员今后的道路规划,借鉴并勉励一下相关推荐

  1. Common Lisp语言快速入门 - Henry Read - 博客园 好文

    Common Lisp语言快速入门 - Henry Read - 博客园 好文 Common Lisp语言快速入门 - Henry Read - 博客园 posted on 2013-10-03 14 ...

  2. 个人博客系统的设计与实现_一款小而美的博客系统,专为程序员设计

    简介 Solo 是一款小而美的开源博客系统,专为程序员设计.Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动. 项目地址 https://github.com/b ...

  3. 博客园好文,转载作者:欢跳的心写的一篇关于《window 删除文件提示指定的文件名无效或太长 - 欢跳的心 - 博客园》

    window 删除文件提示指定的文件名无效或太长 方法0: 使用 chkdsk 磁盘修复工具 1.单击"开始",点击"运行",输入cmd并回车打开命令提示符窗口 ...

  4. 同样的文章2个网站2种待遇,2个眼光,博客园是逼我走、程序员网站是请我过去,这就是人才在不同公司的待遇一样的道理

    昨天晚上很热血的写了两篇文章,结果一个被博客园强制撤下首页. 今天被CSDN网站发布到首页,为我免费做广告,http://www.csdn.net/, 同时给我上了2个首页. C# ASP.NET 开 ...

  5. 沪江日语电台和听歌学日语节目走进博客园咯~

    [hjp3]hjptype=song&player=5&file=http://podcast.hjbbs.com/podcast/20080722/20080722125051219 ...

  6. 【搬家啦】全部博客已搬家至博客园2019年06月20日

    所有博客已搬迁至博客园,以后也会在博客园更文,正好趁此机会重新整理排版: 园子虽然UI不特别好看,但是干净淳朴. https://www.cnblogs.com/the-fool/

  7. 博客园与啊里云的故障假设:高需与低配(补充了降频论)

    背景:  博客园自从上了啊里云,故障频繁,使得大伙每星期都在看故障报告,对503不知不觉也建立直了深厚的友谊. 故障从硬盘IO到SLB到应用级别的,各自怀疑,各自检测,都各自坚持没问题,但情况是问题依 ...

  8. 各家博客比较——CSDN、博客园、简书、知乎专栏、Github Page、个人建站

    有一种论调是程序员都应该写一些博客.那么作为转行的小白当然是按照前辈们的尊尊教诲来实行.那么就有会疑问,写博客到底有什么用处.哪些人需要写博客呢? 写博客到底有什么作用?我们从三个角度看待问题,博主. ...

  9. 简洁文艺风博客园CSS定制——圆角蓝文艺字体

    简洁文艺风博客园CSS定制--圆角蓝文艺字体 今天入驻博客园,自己做了下页面的CSS 瞬间变得舒服多了 哈哈 直接上代码 1 /* Minification failed. Returning unm ...

  10. 博客园在微信内置浏览器打开时添加微信赞赏码功能

    我的博客开通了赞赏,看右侧悬浮[打赏],很容易弄,文末有链接. 另外,在微信中打开时,博客正文底部增加微信赞赏码,在微信内置浏览器打开时,长按图片识别,直接可以赞赏. 这本人自己摸索的,未参考任何博文 ...

最新文章

  1. 【2020 Fall】哥伦比亚大学最新《机器学习》课程
  2. ignite windows无法访问linux ignite集群_Linux常见命令
  3. ORA-01555 snapshot too old
  4. Linux服务器集群系统(三)--转
  5. 使用docker安装的mysql如何让其他机器访问
  6. 单片机全局有必要封装_MCU-C程序基本编程规范(转)
  7. centos7/rhel7安装较高版本ruby2.2/2.3/2.4+
  8. 最后的人 - 主机程序员十年的分享
  9. 利用K8S技术栈打造个人私有云(连载之:初章)
  10. ping命令将结果输出到文本
  11. 嵌入式开发|STM32工程中添加Bootloader实现串口程序下载
  12. python结巴分词代码_结巴分词Python代码
  13. 广义pareto分布_帕累托分布
  14. linux中tftp怎么配置文件,linux的tftp命令参数及用法详解
  15. 服务器创建文件失败是什么意思,网站提示无法创建文件错误解决详情(图文)...
  16. numeric_limits<T>::max(),min()及lowest()
  17. 使用Xtext/Xtend 实现域专用语言DSL(2)
  18. arm64 ext指令图解
  19. 【渝粤教育】广东开放大学 数据库应用 形成性考核 (26)
  20. 安卓集成云闪付,以及So库冲突多moudle项目解决办法

热门文章

  1. 近几年微软笔试题汇总分类解析
  2. 微软在线笔试题2015
  3. 汇编语言和本地代码及通过编译器输出汇编语言的源代码
  4. 【sketchup 2021】草图大师的场景优化工具2【草图大师动态组件的详细使用说明和各个函数说明】【重要】
  5. webqq机器人php,一步一步来做WebQQ机器人-(一)(验证码)
  6. 如何保护自己的机器不受“网络执法官”盗用IP地址及密码
  7. IM直播聊天--西瓜视频
  8. AEAI CRM 客户关系管理系统项目介绍
  9. 北京内推 | 启元世界招聘虚拟人算法工程师/实习生
  10. SuperScan扫描工具(或Nmap)的使用