一直想这样一个东西,正好今天看到一位兄弟谈到加班的问题,有了灵感,希望能够对准备刚走入此行以及即将走入此行的朋友有所帮助。
一、要有职业规划
一定要有自己的规划,但是大部分人都是普通人,一般很难做成长远的规划,如果你能做很长远的规划,请略过此文。
我认为三年规划是比较合理的,在这三年里面确定自己的发展方向、从事的行业、积累技术为主。这个时候选择工作,千万不要太看重收入,但是还是要养活自己的。以下方面可以衡量。
1、选择公司
一般建议不要选择很小的公司,特别是几个人的公司。这里并不是歧视小公司,是因为很多小公司就算让你加班也学不到东西。因为他们做的就是技术含量比较低的产品,老板永远是催你赶紧做完,而不管如何做好。这种情况你就算加班加点的工作,技术提升还是有限。当然有的小公司是非常锻炼人的,成长也会非常快;如果你不会识别,最好不去。
2、选择行业
软件这个东西其实没有什么价值,他必须依附于一个行业, 为这个行业创造价值来提现自己的价值。你可以选择一个行业,逐渐成为一个跨行业的专家。比如制造业信息化、电子商务、行业ERP、电信、石油行业等等。一旦成为行业专家,收入一般相当客观,并且比较稳定,基本会慢慢脱离技术研发。
这种情况最好选择做产品的公司。
3、精通某个领域
如果想做偏重技术方面,那么尽量在某个方面特别精通。比如我就侧重与Web前台、DirectX、P2P 等等。
4、跳槽
尽量不要跳槽。但是现在大家工作真的很难找,往往毕业时候不能找到一个理想的环境。如果公司真的非常不地道,可以跳槽一次,但是一定要选好要去的公司。千万不要为钱去跳槽。
二、提高技术水平
一定要学习,如果你想速度快一点,那就只能多花时间。不要说没有时间,只要你想,时间一定会想办法腾出来的。有一些方法是可以提高效率的。
有了网络以后,很多人在网上下载视频,逛各种技术论坛,这种方式学习效率不高。因为有太多的东西你不懂,不太清楚。园子里面有很多热心的大拿写的各种技术连载很不错,一般都是比较新的技术。这个时候多读基础的书籍,千万不要买什么多少天速成、还有什么项目案例、还有照抄 MSDN 的书籍。
基础的东西学起来很难,但是对以后作用会非常大。我认为要掌握的:
1、网络知识
懂得网络的组建,网络互联、路由器等等方面的知识,能够深入的了解网络协议最好,绝对作用很大。我认为一定要深入了解 HTTP 协议,能够帮助你深入了解Asp.Net 。
2、 编程的基础知识。
不要指望一下子能够把面向对象能够搞的很清楚。我认为刚开始能够把面向过程搞好,也就是写好一个个函数(方法) 。很多人拿着面向对象的语言当过程语言一样用,一个方法写一大堆。写程序的时候,能够多想着提高代码的复用程度。
3、 深入了解多问原理
学习 Asp.Net 的时候,尽量深入去了解 ASP.Net 的整个机制。页面执行过程、WebForm 的事件机制、 IIS 如何执行页面、为什么需要缓存、缓存如何工作、安全性是如何实现的等等,相反掌握控件使用是很容易的事情。多去了解这些问题,当程序中出现问题的时候,能够很快定位问题。我面试的时候,一般都问这些基础问题,很少碰到能够回答比较好的。
有时候我们认为这个人水平不错,往往比较我们觉得很麻烦的问题,他一下就搞定了,而不一定是他做东西多么快。
4、多写项目、阅读优秀代码
有时候公司的项目可能不能让你技术有多大提升。你可以用业余时间,持续改进一个项目,最好不要动不动就来一个新的东西。另外微软现在很多项目都开源了,多阅读,甚至可以自己扩展、重写一般,收获一定很多。
5、不要自满
搞技术的人很容易看不起别人。技术永无止境,当你带有偏见的时候,就无法吸收别人的观点。本人入行时候搞C++,现在依然觉掌握皮毛(当然是因为能力有限)。
6、还没想到:(
欢迎大家拍砖,补充;对我人身攻击也行,只要不攻击我的长辈。