cnzdgs,你好。
一阵子不来csdn了,年前年后一般都比较忙,可我一直记得你,你曾经帮助我解决过不少问题,对你的技术水平,我很赞!加上你的热心,连续蝉联MVP也是完全够格的了,说实在的,我也想有一天可以达到你这种修为,所以今天向你提了这么个非技术问题。希望新的一年里,自己能继续进步,也藉此祝愿csdn的各位道友,事业更加有成……
-----------------------------------
我和很多人一样,半路出家从事软件开发,03年10月份,到现在,也5个多年头了,之前自己是个编程爱好者,仅仅是爱好而已,只懂得些VB和C,一开始从事的也是C的开发,对日外包项目,坦白说没学到什么,加上自己对日语一无所知,干不到一年就走人了,而这段时间里,对我最有影响力的是一篇文章,这篇文章我已经找不到了,是一个同学发给我看的,大致讲述了一个软件开发者如何从菜鸟逐渐进化为高手的过程,从最简单的C,到OOP,到开始了解系统API,到运用MFC快速开发,再到系统内核,到更底层的汇编……等,这也成为了我后来的努力方向,其中的曲折,就不是三言两语能尽的了,过程是比较艰难的,比如上司不管上班看报聊天的人,却极其在意我自学C++……当然了,当时我很单纯,不懂得将心比心去“体恤”上司的胸怀。我运气并不好,整个过程靠的基本都是自己的自学,遇到了些难题就不知道如何解决。04年的时候出现稍微的转机,我换了份工作,开始用回自己熟悉的中英文环境,和强大的IDE工具——VC++6.0,其实真正的工作,应该是从那个时候算起的,可能水平比较低,那时候进步算是很快的,也成功地完成了一些项目,但后来就出事了,公司在后期的很长一段时间里没有什么项目,我的水平也有些停滞不前了,自学了些东西,比如COM组件开发什么的,但现在回想都水过鸭背,不能成为自己得心应手的技术。06年时候换了份工作,其实有些迫不得已的了,但这次竟然是一次很失败的跳槽,反正就是去了不该去的地方,我完成了一个项目之后,就开始被idel,这个项目是用VC开发一些文件分析方面的应用,还包括了一些系统信息提取,加解密之类,我完成得应该还是不错的,他们的要求我基本都实现了。之后都是零零星星的散活了,考虑自学些东西,又举步艰难,缺乏师傅啊,虽然我知道自己或多或少还是有些进步,但总觉得距离高手的目标差太远了。我最后是被炒的,呵呵……倒不是我犯了什么错,而是公司不再需要我了,裁掉。之后就到了现在的公司,已经快两年了,这也是我到目前为止,呆得最长时间的地方。主要是为公司的仪器产品做一些相关配套的程序,用VC++,技术上没有什么可圈可点的东西,有时轻松有时忙,工作有就这样,干起来觉得很累,但回头一看,仿佛自己又什么都没干,也许是我对自己要求太高,不容许自己的产品看起来有半点瑕疵,但这又是很不现实的,写小的东西还行,整个程序就那么几个按钮,但代码量一大,再加上一些外部数据源不在自己的掌控范围之内,那存在bug简直就是理所当然一定的,这样我就容易疲倦了,确实啊,如果项目比较大,要完成代码比较多,就要花费很多的时间,时间跨度一大,写了后面的代码就忘了前面的代码,加上一些原先设计上的疏漏导致后面工作越来越困难,就容易心情烦躁,最后做出来的东西跟原先的设计就可能相去甚远了。前阵子我想写个sql语句,突然连insert怎么用都想不起来,这可是我以前用oracle做开发的时候用得炉火纯青的东西,说实在,我很吃惊,自己忘得这么彻底,后来翻看了以前的笔记才想起一些来。工作的事情,还是要继续,但自己也得有些想法,人总是不能一直满足于现状,要有所追求,所以我也很希望有人能指点指点,就想到你了,如果你想说:“你为什么还希望继续做技术?”是啊,我有些高薪的朋友也在说,他们甚至很排斥技术类工作了,他们都上到了所谓“管理层”,可以对技术略知一二即可,但我觉得管理不是每个人都能做的,更重要的是我喜欢搞些创作,有时候觉得学学技术,编编程序也是很自得其乐的,所以打算继续提高自己,继续下去,相信也会别有洞天的。而你的个人简介中描述的内容,也正是我的目标,所以特意来向你请教了。在此,先谢谢你的耐心。
一阵子不来csdn了,年前年后一般都比较忙,可我一直记得你,你曾经帮助我解决过不少问题,对你的技术水平,我很赞!加上你的热心,连续蝉联MVP也是完全够格的了,说实在的,我也想有一天可以达到你这种修为,所以今天向你提了这么个非技术问题。希望新的一年里,自己能继续进步,也藉此祝愿csdn的各位道友,事业更加有成……
-----------------------------------
我和很多人一样,半路出家从事软件开发,03年10月份,到现在,也5个多年头了,之前自己是个编程爱好者,仅仅是爱好而已,只懂得些VB和C,一开始从事的也是C的开发,对日外包项目,坦白说没学到什么,加上自己对日语一无所知,干不到一年就走人了,而这段时间里,对我最有影响力的是一篇文章,这篇文章我已经找不到了,是一个同学发给我看的,大致讲述了一个软件开发者如何从菜鸟逐渐进化为高手的过程,从最简单的C,到OOP,到开始了解系统API,到运用MFC快速开发,再到系统内核,到更底层的汇编……等,这也成为了我后来的努力方向,其中的曲折,就不是三言两语能尽的了,过程是比较艰难的,比如上司不管上班看报聊天的人,却极其在意我自学C++……当然了,当时我很单纯,不懂得将心比心去“体恤”上司的胸怀。我运气并不好,整个过程靠的基本都是自己的自学,遇到了些难题就不知道如何解决。04年的时候出现稍微的转机,我换了份工作,开始用回自己熟悉的中英文环境,和强大的IDE工具——VC++6.0,其实真正的工作,应该是从那个时候算起的,可能水平比较低,那时候进步算是很快的,也成功地完成了一些项目,但后来就出事了,公司在后期的很长一段时间里没有什么项目,我的水平也有些停滞不前了,自学了些东西,比如COM组件开发什么的,但现在回想都水过鸭背,不能成为自己得心应手的技术。06年时候换了份工作,其实有些迫不得已的了,但这次竟然是一次很失败的跳槽,反正就是去了不该去的地方,我完成了一个项目之后,就开始被idel,这个项目是用VC开发一些文件分析方面的应用,还包括了一些系统信息提取,加解密之类,我完成得应该还是不错的,他们的要求我基本都实现了。之后都是零零星星的散活了,考虑自学些东西,又举步艰难,缺乏师傅啊,虽然我知道自己或多或少还是有些进步,但总觉得距离高手的目标差太远了。我最后是被炒的,呵呵……倒不是我犯了什么错,而是公司不再需要我了,裁掉。之后就到了现在的公司,已经快两年了,这也是我到目前为止,呆得最长时间的地方。主要是为公司的仪器产品做一些相关配套的程序,用VC++,技术上没有什么可圈可点的东西,有时轻松有时忙,工作有就这样,干起来觉得很累,但回头一看,仿佛自己又什么都没干,也许是我对自己要求太高,不容许自己的产品看起来有半点瑕疵,但这又是很不现实的,写小的东西还行,整个程序就那么几个按钮,但代码量一大,再加上一些外部数据源不在自己的掌控范围之内,那存在bug简直就是理所当然一定的,这样我就容易疲倦了,确实啊,如果项目比较大,要完成代码比较多,就要花费很多的时间,时间跨度一大,写了后面的代码就忘了前面的代码,加上一些原先设计上的疏漏导致后面工作越来越困难,就容易心情烦躁,最后做出来的东西跟原先的设计就可能相去甚远了。前阵子我想写个sql语句,突然连insert怎么用都想不起来,这可是我以前用oracle做开发的时候用得炉火纯青的东西,说实在,我很吃惊,自己忘得这么彻底,后来翻看了以前的笔记才想起一些来。工作的事情,还是要继续,但自己也得有些想法,人总是不能一直满足于现状,要有所追求,所以我也很希望有人能指点指点,就想到你了,如果你想说:“你为什么还希望继续做技术?”是啊,我有些高薪的朋友也在说,他们甚至很排斥技术类工作了,他们都上到了所谓“管理层”,可以对技术略知一二即可,但我觉得管理不是每个人都能做的,更重要的是我喜欢搞些创作,有时候觉得学学技术,编编程序也是很自得其乐的,所以打算继续提高自己,继续下去,相信也会别有洞天的。而你的个人简介中描述的内容,也正是我的目标,所以特意来向你请教了。在此,先谢谢你的耐心。
对于编程方面,我觉得最重要的是培养自己的各项基本能力,例如设计、编码、调试、分析、优化、维护、查阅资料等。这些都是程序员不断重复做的工作,直接影响工作效率,也代表个人能力。这些方面在于平时的锻炼积累,不受个人“天分”的制约,只要多投入精力就会有成效,当然,前提是要先掌握好各种基础知识。另外还要注意多给自己一些锻炼的机会,遇到力所能及的问题应尽量自己解决,实在没办法时再请教他人。这些方面应尽早培养,因为它可以给自己赢得更多学习和锻炼的时间。此外,学习和了解多方面的知识也是很有必要的,不需要样样都学,但对于常见的技术和新的技术、概念多少也要了解一点,不断吸取新的知识,否则迟早会被淘汰。
最后再提一点,像CSDN这样的技术论坛是很好的学习的地方,无论是发帖、回帖还是看帖,都会有所收获,有空可以常来看看。顺便提一句,非技术帖就不用给这么高分了,人人有分就好。
这里你能见到很多奇怪的问题,多接触下,多想.提高比一个人闷着头提高更容易.
非技术帖就不用给这么高分了,人人有分就好。哈哈,沾光了
我觉得把就是不断地看书加上实践,我在看windows核心编程 + windows高级编程指南,然后发现对windows很多东西还不了解。
如果你想提高设计能力,还是多看看设计模式和uml设计使用的书籍吧,一定会有收获的。
在开始学习编程之前,当然是要先会操作电脑;
首先学习一种编程语言,个人觉得C语言是最佳选择;
编程语言入门后,做一些简单的练习,加深对编程的理解;
编程语言掌握之后,学习常见算法和数据结构,并应用所学设计一些简单的程序(例如小游戏),使自己更进一步了解编程,顺便培养创造力;
然后学习计算机原理和汇编语言,最好是学x86系列CPU,在此之前可能需要学逻辑代数和数字电子;
此后在编程的同时考虑程序优化,从计算机原理角度来思考问题,练习看反汇编代码,调试过程中结合反汇编分析问题;
再学习一些面向对象的编程语言,例如C++等;
之后的学习与具体应用领域有关,如果做Windows程序:
先了解Windows编程的各种基础,例如常用的API、窗口/常用控件及消息机制、进程/线程及地址空间、输入/输出的方法、动态库、组件等;
后面主要是靠大量写代码实践和阅读文章,不断积累和深入,同时学习其它方面的技术,主要的学习途径是自己分析研究、查MSDN等技术文档、网络搜索、向别人询问;
闲暇的时候,可以想一想自己要学些什么,然后在网上搜索相关资料,如果没有目标,可以到论坛看帖,遇到感兴趣的再去学。