|
即兴聊天的内容整理的 有不少错字
给新手看的 有偏激的地方 有错误的地方 不合适的地方 新手看到估计有好处
扔这里一份
.说说程序员的几个发现阶段
以及学习的一些重点问题 经验和体会
高手们都说 选择一个职业就是选择一种生活方式
其实很有道理
特别是从事技术工作的人
一般都是需要长期的技术或者经验积累
于是就形成一个认识
就是组建自己的知识体系
善于学习的人 都是有目标的
无论做任何事情都需要目标
包括学习计算机
然后根据目标 来思考2个问题
第一个是
达到这个目标需要什么知识
第2个是
如何学习积累这些知识
然后梦想就是 时间问题了
进入正题
各位都想搞程序开发
我先问问都想 写什么程序?
有没有一个想法
都说 软件工程师
搞驱动程序开发的 和 搞web开发的都是工程师
差的很远哦 具体想做什么呢
也就是方向
不同的目标 需要不同的知识
明白了目标后我们需要做什么呢
就是建立自己的知识体系
知识体系是个什么东西?
大家知道
学成一个东西只是一个结果
能开发一套程序 也是结果
那么支撑这个结果的是什么
就是每个人 自己掌握的知识
基本都是废话
哈哈
但是 有个问题
聪明的人 善于建立自己的知识体系
他们会根据自己的目标主动学习
这个就是我要说的了
我开始讲程序开发
程序开发大体 分几个阶段
学习程序开发都必然经过这些阶段
哪怕他自己不知道
首先 是基础学习
比如你说的你会一些 java
那么首先要做的就是 学习基本的语法
学习c++更需要 练习和入门
这个过程大概是几个月的时间
一般不会超过1年
这个阶段什么都不用懂
只要需要扎实就行了
一定要自己动手写 别只是看
动手能力非常的重要
当你认为自己学的差不多了
会不会有一种茫然的感觉
不知道继续做什么了
基础似乎都会了
但是不知道做什么
那么你进入的第2个阶段
恩 我讲的是道理 各位自己根据自己情况体会
学好基础后
技术语法会了
联系题目做了
涉及最难的估计就是 双重或者多重循环
那么基础阶段过去
别茫然 开始程序开发吧
做些小程序
这个阶段比较有乐趣 可以看到自己的成果
如果遇到不会的 可以回头去将基础学扎实
尽量的开动脑筋 将能做的程序都尝试去做做
看看你的极限是做什么程序
这就是第2个阶段需要做的事情
这个时候很快乐 也很需要时间
后者你遇到了很多问题
或者有了一个很好的想法 但是不知道怎么去做
不知道如何入手 如何开始一个大项目
那么恭喜 第3个阶段来了
基础扎实了 小例子做了很多
尝试开发大型软件 很茫然 也做不到
或者做了很久没能完成
不知道那些大系统是如何开发的
很简单
很容易突破
尽量的尝试去开发你认为很难实现的软件
最好不是几天可以完成的
这个开发计划99%可能是失败的 做不到的
但是没有关系
去做
为什么这样
因为大家要形成体会
当你做了很多失败的尝试
或者很多开发后期都不满意
或者自己设计了一个程序了
完成了
但是后期修改非常麻烦
最后修改到自己不想继续了
这些都很正常
第3个阶段
当你无法继续学习
你需要阅读 工程类的书籍
开始了解程序开发的工程管理
这是进入第3阶段的基础
当你了解到 原来一个程序不是 某一个可以完成的
原来开发程序不是一个人的活
原来需要分工哦
原来是需要 一定科学的安排的
这个时候你需要阅读 工程学的书
要努力的记性大型的 自己不可能完成的任务
练习 对程序总体的一个把握
懂得合理安排自己的程序结构
这个是突破第3阶段的关键
程序开发是个抽象过程
是一个虚拟的 有严格逻辑的抽象过程
一个良好的抽象能力 可以将困难的事情变的非常条理
这就是思维训练的关键
程序员的工作就是将现实问题
抽象起来
然后利用抽象的概念来实现它
这里面有很所的思维和经典算法
应该适当的接触到 面向对象等先进的思维方式
于是你就发现了
原来以前那个庞大的程序工程
那个不可能完成的任务
可以分开了做
可以分成很多的部分 模块 合理安排
你就有了总体的认识
这个时候你会发现
开发任何的程序都不是问题
关键是如何进行总体的把握
也就是如何来做
依照什么次序来做
有了这个认识 喉头
回头来
我们重新拿起来 以前没有完成或者失败的工程
耐心的看一看
想一想
画一画
自己做一个计划
做一个 一个月的开发计划
看看你是否有能力 按照计划完成自己的设想
认真思考
这些都是经验
当然你不用完成这个项目
你只需要 成功的完成一个月的计划
如果你能坚持
相信在 心理上 基础知识上 对程序整体的思考上
一定有一定收获了
那么你进入了第4个阶段
恭喜你
你已经成功入门了
一个入门的程序员 恩可以称呼为程序员了
缺少的就是程序开发的经验
这个时候你遇到了新的挑战
你会发现
你有能力开发一些小程序了
对基础知识已经非常扎实
而且可以独立做计划完成大型项目了
但是 那样做实在很笨 个人的力量有限
似乎想进一步突破是很难的了
那么你应该尝试去 完成你的第一个项目了
找一个工程
合适你的工程
自己能做到的工程
或许不大
工作量在1个月左右
或者半个月也可以
如果你对自己有信心
常识完成他
如果你没做到
那么你需要继续积累
如果你做到了
你会发现
原来程序开发是需要积累的
原来一个人力量那么小
一个的劳动或许才是一个小东西哦
你彻底了解了 程序员的生活方式
你会对自己的程序员生活 有新的感受
如果你是足够聪明的
你发现一个问题
一个项目的成败 往往在自己的是否能做好开发计划
是否能设计好结构
更重要的是 是否能自己做到
有能力的事情 也未必一定能实现
于是这个时候你需要一个词语
生活习惯
一个良好的生活喜欢 思维习惯 生活状态
是进一步提高水平的基础
那么有了这些体会以后你就可能进行突破了
时间积累下
你变的成熟
变的自信 善于掌握自己的开发计划
遇到新的项目 你很善于 做出整体安排和开发计划
好的
那么不要等了 开始你的项目开发吧
可以去找个公司
可以自己去尝试创业
完成你第一个项目开发 并销售出去
当你很用心的工作
接触了很多的人
见到了很多的工程项目
你会发现
自己掌握的计算机语言 有天生的缺陷
比如说 进行数千万亿的高等运算 使用其他语言更好
比如做web开发 是无法用自己的工具做到的
很多问题
你会有个思考
你会问你自己
自己将来从事什么工作
计算机专业 方向是很多的
我是搞程序开发 还是web开发?
我是用c++还是用.net
非常的茫然
你会从掌握一门计算机语言的 高兴中 体会到一些失落
没有关系
这个时候怎么办
很简单
精通自己的这门语言
任何开发工作都需要基础
都需要一定的思维习惯
很多编程上的思想是相通的
本质是一样饿
都是一个抽象过程
你完全可以利用一门工具 来完成学习
这个时候你可以背叛
背叛自己的 一开始学的语言
这个时候你可以调整
调整自己的发展方向
有些人学精通了c 发现自己做web开发会更好
问你自己
找自己的一个方向
你会发现 即使你打算放弃 一开始学的语言
再学习其他语言也很快哦
很多东西自己都能猜测到
你需要做的就是 测试这个新语言的 各个地方细节
比如循环快还是 自定义类型速度快?
比如其他一些新鲜的东西
很好
当你已经决定了自己的发展方向
那么你已经做好了准备了
你需要做的就是完成这个突破
一个什么突破?
一个质的突破
有个前提
这个阶段的需要冷静
你一定要精通自己选择的语言
精通到什么程度
精通到可以用这个语言做它能的大多数事情
一定要精通它
有非常深入的了解
可以阅读别人的文章
一定要这样做
否则以后你会后悔的,我后面会说原因
当你了解了自己这个语言的特点
特点包括长处和短处
或者某个项目的很多部分
使用其他工具开发会更好
比如某个软件运行太慢
你发现用汇编 改几个小地方
就能让软件发生质变
好的 当你精通的一门语言 了解了它的不足
那么防开眼光吧
放开你的视野
开始你的新的 征途
下一个阶段
这个阶段后的你 已经完全了解程序开发
至少有了自己的体会了
而且对自己使用的工具语言非常熟悉
那么忘记它们吧
真的 忘记它们
把自己当作一个新手 开始学习了解其他工具
在你有了自己对程序开发的体会后
去学习其他语言和工具
一个一个来
深入一些
未必非常的精通
但是一定要实际的写写程序
要熟悉这些语言工具的 优点缺点
又是一个漫长的积累过程
你会发现
你情不自禁的 在自己的项目中使用了多种的开发工具
你会发现你对 程序结构的理解有新的认识
你会从 工具的选择中解放出来
认识到语言和工具只是工具而已
那么恭喜你了
你可以被称呼为 工程师
这个阶段的一个标志就是
当你学习了很多语言后 你会对自己使用的拿手的语言 有一个新的认识
你完全可以从 烦琐的程序开发中走出来
进行项目的管理 做构架设计 总体设计
不再是代码工人了
呵呵 我就说到这里吧
后面也没用了
这些都是经验 教朋友我经常说起的
其实可以回到起点
一个核心的东西
知识体系
知识体系的完善是关键
有了新的知识 你才能有做出新决定的前提和资本
所以
无论做什么事情 首先明确目标
然后分析步骤 建立基础 创造条件
然后积累 实现它
这样说吧
一个出色的程序员 他分析解决问题的能力一定很强
体现在做任何事情上
这是程序员的一个标志
呵呵 我去吃饭 以后聊 |
|