快乐地工作,快乐地生活!
一、三条路线
1.语言(C,JAVA,C++)-》数据结构、算法-》编译
2.汇编语言、接口-》组成原理、体系结构-》OS
3.应用:面向对象-》数据库-》网络。不仅懂操作,更要懂原理
4.概率、统计学,用于评估软件系统性能,瓶颈优化
C/C++的学习历程: 学习语言不是为了成为语言专家,而是希望成为解决问题的专家。
理解C的结构化编程思想-》C++数据私有化-》模板STL , ATL -》泛型开发-》Win32API,MFC-》COM,DCOM跨进程、跨机器通信-》ActiveX,dll
二、什么软件赚钱
1.数据库:根据具体应用需求,二次定制开发,即“企业数据应用定制市场”
2.嵌入式底层
3.网络程序、服务应用:eg java主要做基于网络的跨平台数据应用
一通百通,从自己最熟悉的入手。
合格的程序员,不应该只是程序设计大师,而应该是理解用户需求,简化问题,迅速拿出解决方案的专家。所以,必须在业务领域努力。
做事情要学会计算成本,尤其学习。因为时间成本是没办法回收的。学生时代不为钱,就为明天的增值。
构建自己的核心竞争力 & 不可替代性:到公司里,先勤奋一些,踏踏实实做几个产品和项目,作出成绩,成为boss心目中不可替代的人。
三、IT职业细分
1.研发(软、硬):RD , QA,架构师,项目经理
2.市场:sales,marketing 采集需求,;利用本公司产品或代理的产品,组成解决方案,一体化提供给客户。
3.技术支持
4.管理:职业经理人
《程序员羊皮卷》
四、如何度过研究生生活
职业生涯不是从进入公司时才开始,读书期间聚应对工作有所准备。
项目经验:了解项目的流程,亲自走过一遍,有过思考和总结。
实习:有现金回报,有实际工作(不因工作琐碎而混时间),有导师指点(少犯错,快提高-》尊重,感谢);无亲戚关系。
实习期间,明确自己的能力,知道在公司能从事的工作,完成几项任务,无愧于自己付出的精力。-》获得实际工作经验,提升自己应该锻炼的能力,了解公司对员工的实际要求,掌握公司运行的基本规律。即使工作无足轻重,也要全心全意做到最好,让公司看到我的态度和能力。通过实习了解社会、了解公司、了解自己。
团队合作:许下承诺,感受工作,承担责任。容忍。对看不顺眼的人,取其精华。利益争夺问题。
第一份工作,要找到自己的兴趣所在(研发,测试or系统分析),热情所在,专业所在。选择公司,是否有好的企业文化(是否把人放在管理的第一位),便于养成好的职业习惯和处世态度。能否为今后的简历加分,每天想想,今天所做的工作能不能写到简历中,获得的经验、取得的成绩能不能在本领域有所提高,不要浪费时间和精力。完成从学习者到社会职业人的转变,自力更生,以开放的态度迎接现实(不喜欢的人要保持同事关系),找对方法从小处着手(遵守公司制度,准时提交周报,记录自己的成长、收获和不足)。学历只能代表过去,学习的能力才能代表未来,要向无字书学习(低学历的同事,销售的巧言令色,前台的和颜悦色,尊重经验,尊重阅历)。
成长期要苦干(积累)加巧干(更快地提高),越是压力大,越应该停下来总结自己学习的知识,纠正自己犯过的错误,与同事沟通项目情况,与manager请教开发时遇到的问题。
五、明确自己人生与事业的方向:不知道自己要去哪里,就极有可能走错地方。
1.确定大方向,不受外界干扰。
2.波浪式前进,螺旋式上升:事业低谷时不要回忆自己得意的时候,要向前看走出低谷。高峰时,要多回头看看自己经历的挫折,保持平和的心态
3.正确评估工作和生活的关系:balance
工作是为了让生活更有质量,不要为工作预支健康和生命。
《Java夜未眠》
先深后广的学习方式:学A技术,学到一半,发现需要B技术。找B技术的书,先看B。基础扎实,但偏离主题太多。
向上延伸:面向对象,design pattern,refactoring,软件工程。具有做大项目的能力。
向下深入:内部底层的运作机制,DS,OS,组成,体系结构。
向旁延伸:学习不同应用领域的API,多媒体,数据库,分布式等。
培养职业敏感度:使用软件时,分析软件是如何开发出来的?哪里用到线程?如何进行GUI的layout?事件如何在对象间传递?