与一位有着成功经验的程序员之间的对话(转)

我想大多数人曾经有过学习没目的,学习很被动的体验
大多数人也曾感到不知所措,所以我们应该多听听过来人的意见
下面的内容是我和一位朋友之间的对话 
由于是转述,所以不方便详细透露他的个人信息,只好简单说说吧:大学本科毕业,毕业之后再靠着坚持不懈的努力进了三菱电子,以下简称T
我就简称W
T:你是?
W:我只是想学习一下你的成功经验 
T:哦,你学的什么
W:JAVA 
T:学了哪些课程?
W:C语言,线性代数,外语,数据结构与算法(下面简称数据结构),专业英语,JAVA, 
T:那么你学的怎么样呢?
W:一般吧,上课虽然听的懂,但感觉很乏味,课程太多,不知道该怎么学,
   所以我就想自学了,但感觉效果也不好啊 
T:恩,我先来讲数据结构吧,因为它很重要,你数据结构的知识如何
W:只能说学过,学的怎样没想过
T:做过书上相关的习题吧?比如冒泡算法 杨辉算法
W:做过啊,你的意思是说要多做题目吧,我知道啊,但还是学不好啊
T:呵呵,其实学好数据结构很简单的
首先,你得明白数据结构有多重要
W:怎么说呢?
T:其实JAVA只是工具而已,算法是关键
编程思想是靠数据结构来建立的
况且JAVA语法其实很快就可以基本学完 但是算法都能透彻 至少4到5个月 
讲点实际的吧,现在数据结构题目常在面试时候出现,所以一定要学好
你要想能够在中大型企业上班就必须精通数据结构,
小型企业你可能通过了面试,
但为了能够有发展空间,所以进中大型企业是每个人的目标
如果你不会数据结构与算法的话你怎么通过面试呢
W:哦,我明白了,那么我该怎么学呢?我确实做了不少练习的啊,却还是不行
T:你已经知道了多写代码很重要,但是你做到以下几点了吗
W:什么
T:1,当你看到类似问题的时候 可以知道选择用哪些算法
2,并且可以比较出 他们的优劣
3,算法在遇到什么样的问题时候用 他们有哪些优势 哪些劣势 比如哪个相对耗费资
4,直接买好书,好的书都会写的详细,比如数据结构JAVA版
W:买书吗?我买了不少书的,但感觉太多书总是在重复一些基础知识
T:呵呵,其实你可以好好利用图书管和书店的资源啊
W:怎么利用?
T: 1,看,可以广泛涉猎和精确的查看,特别是重要的信息
    2,抄,主要抄好的理论知识和海量的编程题,其实在平时练习时也该这样的
3,拍,买个数码相机吧,其实用手机也行吧
W:前两个还很不错,但第3个```````有点麻烦啊 
T:题目多时绝对不会感觉决麻烦,我再讲讲外头的工作吧
W:我不太了解,你简单讲讲吧
T:首先讲讲什么是外包以及分类: 

外包第一种:就是外国的公司把程序的框架都做出来 最底层的繁重的敲代码的工作交给我们程序员做,那样的工作 你只要会JAVA语法就成 甚至不用会算法 但是 这样的公司不锻炼人 呆一年和呆十年一样的

外包第二种:一些公司把一些大致的模型都写好拉 你完成下面分支些小的程序 就成 这样的地方  你把数据结构的学好就成  

外包第三种: 公司直接把 客户需求给你 你分析 用什么方法做 有那些算法 然后在转换成程序代码 这样的地方 呆一年 工资至少张三翻 

W:能讲讲数据库吗
T:做好了的程序需要用数据库连接和输导
数据库用数据挖掘的知识 
不过对于初级程序员来说用不到 
你只要把数据库的基本知识掌握了就可以 
数据库不太需要数据结构的知识
但是数据库用SQL语言
而且Oracle , SQL Server . MySQL中MYSQL最简单了,
你先学好其中一种吧,就是它拉
Oracle是负责大的项目   SQL Server是做中形项目的 MySQL是做小项目的
W:听他们说要学操作系统,现在要学吗 
T:有些公司对操作系统有需求 不用XP 却用LINUX 这个就要在工作的时候再补充拉 
W:自学那肯定要买书吧,《THINKING IN JAVA》怎么样啊
T:去书店抄题目非常好,但买书才是根本
《THINKING IN JAVA》是一位大师的作品 ,但对于你来说太难了点
买一本重视基础基础和多本重视实际练习的书吧
其实要是你去书店或图书馆手抄练习题
这样的话题量可以得到保证,不过还是买书的好
通常是越多越好,但别买自己还没学或看不懂的书
W:你一直在讲多做题目,但做来做去也不知道做的题目大致分什么类型
T:哦,题目应该分两种吧
一种是 直接把需求给你 让你做出来
一种是 把需求很模糊的给你 需要你把实际问题分析出来 然后换成代码 这种是很锻炼人的  不过有点难度
    介绍一本好书吧:本书是专门用于JAVA 把面向对象的关系的需求好好理解的书 
是我当年学的时候看的 《Beginning Java Objects中文版》
W:哦,一些好书我也可以看网上的书评吧
   我还想问问数学和外语
 
T:数据结构本身就是离散数学的应用 
你先基本掌握,要重视逻辑思维的锻炼
系统的学应该在就业以后 
    英语好的话会很容易的可看清代码的意思
而且一些公司直接接外国的定单 
所以必须招英语好的 
而且好的工资是一般的程序员的高很多 
英语对程序员 最直接的提高是 
可以直接看英文书籍 
W:应该怎么学啊 
T:最新的技术和著作都是外文的
所以 想了解和学习 最新的技术 不会英语是不行的 
但是只要能看懂就成 
而且目前来说 你还涉及不到 
但是作为交流 英语在IT业也是非常重要的 
英语重要 但只是辅助作用 
你到了一定位置 想继续往高发展 英语是必须的 
但是 和技术方面来说 没有太大的直接冲突 
W:哦 总体来说 英语对于做IT的人来说 很重要
   那么数学呢
T:数学应用最多的是 离散数学 
但是 当你往做整体布局的时候 可能还会牵涉到 线型代数 
但是 现在来说为时过早 
W:也就是说我目前还是把 数据结构学好  就能找到初级程序员的工作拉 
   其它的以后系统学习吧
T:这句话不太队,有点功利性,但是目前是最简单的道路了
W:哦,还有就是数据结构与语言之间有什么关系呢?
T:数据结构是 编程思想 语言只是工具 
首先必须用数据结构建立思路   
然后才能用工具把他完成 
 
一种算法 至少你要作个十道左右的题才成 
但是一般的书籍上有个 3,4道就不错拉 
所以必须到书店多抄习题 
最好是 找那种直接连客户需求的都带了的习题 
就是 所说的应用题 
比如 鸡兔同笼 
另外多思索 
有什么好处 有什么坏处 
每个算法 都必须有这样的一个过程 
这个阶段 必须一点点的来 再慢也不能着急
W:恩,我就是有一点急 
   正在慢慢改
T:这个过程过了 前途就一片光明拉 进步就会有飞跃拉 
有些工是绝对不能省的 
一旦有不会的 可以去找书 现在书写的非常全面 一定能知道到答案
    目前阶段你需要了解的就这么多了
W:太感谢你了!!!希望我能有你那么聪明
T:程序是个积累的过程 
不是光靠聪明的 
W:哦,那么你能总结一下你的诀窍吗 
T:大量的看各种书籍 大量的写代码 就是我成功的秘诀 也是大多数人的秘诀
 而一本书的精髓就几页  我用的办法就是海纳百川 
买相机 借书都是为了这一个目标 在家里看一本书 再努力眼界也是有限 
往往 很多不明白的 在其他书里会非常容易的得到答案 
(其实很多不明白的 多请教人也可以非常容易的得到答案)
   诀窍容易学,但能不能受苦就不好说了
W:7个月便自学成功,你受过不少苦吧
T:仰天作叹气状(呵呵,自己虚构的,你别拿番茄丢我啊)
当时的我是每天上午带着瓶子水和面包去图书馆 书店 
下午或者晚上回来 先敲代码 然后把经验 再记下来  
坚持下来很不容易 
有时候 一打代码 就打一夜 
视力都下降拉 
还要封闭自己很长 一段时间 
既然找到了适合自己的学习路线 
当然要努力拉 
那段时间我几乎与世隔绝 
而且  我工作了以后 也一直保持着这种学习状态 
这是做一个IT人必须具备的素质 
W:再说说一个IT人将来可能的发展吧
T:各个层面都需要人才 做需求分析 
做框架 做销售 做调试 都需要人 都是高薪 金领 
看你自己适合做什么 就朝哪个方向去努力 
但是不管你做什么 技术都是必须要有的 
也许你虽然不太了解 但以后会慢慢熟悉的 
 W:我想我已经明白了不少 
T:我的话只是起到一个借鉴作用,
里面观点可能不够全面
所以多请教一下别人吧,
特别是那些有成功或失败经验的人
在此,我还想对已经工作的同行业朋友们说一句:
      多帮助一下还在学习道路上面奔波的学弟们吧
      你的一句话,一张帖子可能会改变一个人的一生
W:谢谢!
T:今天就聊到这吧
W:呵呵,不好意思,打扰你了,那我先下了,88
T:88

posted @ 2007-09-12 09:36  江湖工夫  阅读(615)  评论(1编辑  收藏  举报