(转)毕业生如何学好软件设计与开发技术
2009-09-11 15:33
239 查看
觉得这里的很多问题也是我需要思考的。。。
早两个星期一位网友发了邮件给我,问我如何成为优秀的软件架构设计人才。其实我觉得要成为优秀的软件架构人才是一个漫长的过程,对于这个问题,我不敢妄加揣摩,因为这也是我的人生目标,我也正在为实现这样的理想而奋斗。
我给这位网友做了答复,为了能帮到(希望能够帮到)更多的朋友,我把邮件原文和我的回复粘贴于此,希望大家能够在这里得到自己想要的东西。
早两个星期一位网友发了邮件给我,问我如何成为优秀的软件架构设计人才。其实我觉得要成为优秀的软件架构人才是一个漫长的过程,对于这个问题,我不敢妄加揣摩,因为这也是我的人生目标,我也正在为实现这样的理想而奋斗。
我给这位网友做了答复,为了能帮到(希望能够帮到)更多的朋友,我把邮件原文和我的回复粘贴于此,希望大家能够在这里得到自己想要的东西。
问题: 您好 , 我在网上看到您关于 DDD 的文章 , 感觉不错 . 有些问题想向您请教 . 我是一个刚毕业的本科生 , 有比较多的学习经验 ( 实践经验比较少 ). 想成为一个合格的软件架构师 ( 不是忽悠人的那种 ), 我想向您了解一下 , 需要哪些路要走 , 哪些书要看 , 哪些问题要思考 , 哪些东西要实践 ?? 答复: 您好! 如果你的理论知识比较扎实的话,我想,你已经符合最基本的要求了。实践是很重要的,但理论决不能忽视,因为实践是离散的,没有理论基础,你的知识体系就比较紊乱,无法成系统。 实践必不可少。如果你诚心是想在软件开发上做出成绩,那么就不要有急功近利的思想,不要指望通过半个月、一个月的“打造”,就能设计开发出真正优秀的应用系统。目前市面上的 IDE ,包括 Visual Studio , Delphi 等让编程看上去真的很简单,基本上拖拖拽拽一个程序就完成了,但这仅仅是个表象,因为这种模式很大程度上违背了软件工程思想,软件工程与技术远比这些要复杂得多。 说的具体一点,就拿如何学习 C# 来说,我建议分三步走: 1、 基本语法的使用,程序基本结构(顺序、循环、分支)。这个步骤除了熟悉顺序程序设计之外,还需要了解 C# 语言语法上的新特性以及一些基本概念,比如 foreach 循环、值类型、引用类型、委托、特性等。这些内容在传统的开发语言例如 C 、 VB6 等中是没有的 2、 开始面向对象的学习。比如为什么要面向对象、有什么好处?在 C# 中,封装、继承、多态有哪些具体表现和特点。在这个阶段,你需要非常清楚地理解面向对象的各个方面,比如 internal protected 修饰符与 protected 修饰符有什么区别?为什么会有这样的差别?什么是接口?接口与抽象类有何区别?为什么 C# 只能继承于一个类,却可以实现多个接口?接口的显式实现与隐式实现又是什么?等等。如果这些内容你不能脱口而出,那么你将很难顺利通过第三步 3、 设 计模式、体系结构模式与系统架构。这一步是个长期积累的过程,模式是经验的总结,而不是从书本上能够学习到的,你可能会说,现在不是有很多详细介绍模式方 面的书么?这没错,但是书中不会教你,在你的应用系统中,哪些模式可以引用,在引用的时候需要注意什么这些问题。这个阶段的知识可以从书本了解,但更重要 的就是实践。模式基于面向对象,因此,如果你第二步不扎实,那么这一步你会遇到很多困难。据我观察,目前绝大部分人都死在这一步,实在是坚持不下去了 关于实践,我建议你可以自己先做一些简单的系统,比如,我就从现在开始设计一个学籍管理系统,或者图书馆管理系统,业务需求可以自己划定。那么其中有很多事情要做,业务分析、建模、仓储的实现、服务的定位、 UI 设计等等。等你做完后,或许你做的东西会有很多问题,比如不利于将来扩展,抑或效率存在问题等,但这都不要紧,此时你要分析总结,这样做到底好不好?好在哪里?不好的话又如何解决? 软件工程很复杂,也很难,最后还有最重要的一点,就看你是不是个有心人了。 |
相关文章推荐
- 毕业生如何学好软件设计与开发技术
- 如何学好一门开发技术
- 如何使用Ajax技术开发Web应用程序(2)
- 极客技术专题【002期】:开发小技巧 - 如何使用jQuery来处理图片坏链?
- 在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?
- Unity中国技术总监刘钢:如何优化基于Unity开发的3D移动游戏
- 如何成为优秀的技术开发人员?
- 极速赛车平台出租【技术干货】如何进行低功耗设计和开发
- 区块链技术开发 区块链如何做到“脱虚向实”转变
- 区块链开发专题(P2P技术如何验证消息)
- 如何才能学好一门技术!
- 不懂编码技术,如何开发企业、个人app客户端?
- 如何集成NUI控件实现快速开发 技术解决方案
- 如何使用Ajax技术开发Web应用程序(2)
- 和初学者谈谈如何学好单片机编程技术
- 如何开发优秀的HTML5游戏?-迪斯尼《寻找奥兹之路》游戏技术详解(一)
- 技术大牛告诉你,如何系统有效的学习软件开发?
- 技术开发者如何看实时Web App开发框架?
- 技术人口述:我是如何从Java转型区块链开发的?
- 如何学好iphone游戏开发