(转)毕业生如何学好软件设计与开发技术

觉得这里的很多问题也是我需要思考的。。。

 

 

早两个星期一位网友发了邮件给我,问我如何成为优秀的软件架构设计人才。其实我觉得要成为优秀的软件架构人才是一个漫长的过程,对于这个问题,我不敢妄加揣摩,因为这也是我的人生目标,我也正在为实现这样的理想而奋斗。

    我给这位网友做了答复,为了能帮到(希望能够帮到)更多的朋友,我把邮件原文和我的回复粘贴于此,希望大家能够在这里得到自己想要的东西。

问题:

您好 ,

我在网上看到您关于 DDD 的文章 , 感觉不错 . 有些问题想向您请教 .

我是一个刚毕业的本科生 , 有比较多的学习经验 ( 实践经验比较少 ).

想成为一个合格的软件架构师 ( 不是忽悠人的那种 ), 我想向您了解一下 ,

需要哪些路要走 , 哪些书要看 , 哪些问题要思考 , 哪些东西要实践 ??

 

答复:

您好!

 

如果你的理论知识比较扎实的话,我想,你已经符合最基本的要求了。实践是很重要的,但理论决不能忽视,因为实践是离散的,没有理论基础,你的知识体系就比较紊乱,无法成系统。

 

实践必不可少。如果你诚心是想在软件开发上做出成绩,那么就不要有急功近利的思想,不要指望通过半个月、一个月的“打造”,就能设计开发出真正优秀的应用系统。目前市面上的 IDE ,包括 Visual Studio Delphi 等让编程看上去真的很简单,基本上拖拖拽拽一个程序就完成了,但这仅仅是个表象,因为这种模式很大程度上违背了软件工程思想,软件工程与技术远比这些要复杂得多。

 

说的具体一点,就拿如何学习 C# 来说,我建议分三步走:

1、   基本语法的使用,程序基本结构(顺序、循环、分支)。这个步骤除了熟悉顺序程序设计之外,还需要了解 C# 语言语法上的新特性以及一些基本概念,比如 foreach 循环、值类型、引用类型、委托、特性等。这些内容在传统的开发语言例如 C VB6 等中是没有的

 

2、   开始面向对象的学习。比如为什么要面向对象、有什么好处?在 C# 中,封装、继承、多态有哪些具体表现和特点。在这个阶段,你需要非常清楚地理解面向对象的各个方面,比如 internal protected 修饰符与 protected 修饰符有什么区别?为什么会有这样的差别?什么是接口?接口与抽象类有何区别?为什么 C# 只能继承于一个类,却可以实现多个接口?接口的显式实现与隐式实现又是什么?等等。如果这些内容你不能脱口而出,那么你将很难顺利通过第三步

 

3、   设 计模式、体系结构模式与系统架构。这一步是个长期积累的过程,模式是经验的总结,而不是从书本上能够学习到的,你可能会说,现在不是有很多详细介绍模式方 面的书么?这没错,但是书中不会教你,在你的应用系统中,哪些模式可以引用,在引用的时候需要注意什么这些问题。这个阶段的知识可以从书本了解,但更重要 的就是实践。模式基于面向对象,因此,如果你第二步不扎实,那么这一步你会遇到很多困难。据我观察,目前绝大部分人都死在这一步,实在是坚持不下去了

 

关于实践,我建议你可以自己先做一些简单的系统,比如,我就从现在开始设计一个学籍管理系统,或者图书馆管理系统,业务需求可以自己划定。那么其中有很多事情要做,业务分析、建模、仓储的实现、服务的定位、 UI 设计等等。等你做完后,或许你做的东西会有很多问题,比如不利于将来扩展,抑或效率存在问题等,但这都不要紧,此时你要分析总结,这样做到底好不好?好在哪里?不好的话又如何解决?

 

软件工程很复杂,也很难,最后还有最重要的一点,就看你是不是个有心人了。

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值