首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【编程基础第六讲】需要掌握什么知识才能做项目?

【编程基础第六讲】需要掌握什么知识才能做项目?

作者头像
程序员互动联盟
发布于 2018-03-15 03:36:10
发布于 2018-03-15 03:36:10
8570
举报
存在问题:

什么是做项目?因为大家学习的时候都是有人指导,又书可循,但项目是加上的时间以及一些不确定因数的集合,我们真正做项目要知道些什么呢?

解决方案:

常常有群友问到,如何才算入门?如何才算语言基本过关?什么时候才能开始做项目?总结起来就是做项目之前需要了解和学习哪些知识点。 根据本人的经验,要开始做项目,确实是需要一些基本的知识,否则太吃力,无法正常完成该做的工作。当然项目有简单的,也有复杂的。承担项目的角色不同,要求也不同。比如普通编码人员、模块设计者以及整个软件架构者要求显然不一样。所以只能说对参与项目来说,对不同参与者要不同的要求,今天我就来说说普通编码者,模块设计者和软件架构者所需要的基本知识。注意这里是根据自己的经验在实际工作中需要的情况,而不是面试要求。

普通编码人员要求 他们主要是参与某个项目的具体某个部分,已经有别人设计好的文档,安装文档要求实现就行。对该层次的要求应该算是最低的,普通编码人员需求量相对最大,一般从刚毕业到工作几年的都有。基本上每个从事软件工作的人都是从这里开始的,对该工作的要求基本如下:

1)熟悉语言的大多数常用语法,能排除大部分常见的语法错误,能用编程语言实现常见的功能。 2)熟悉和运用常用的一些数据结构,比如队列,栈,基本链表。 3)知道如何查阅技术资料,与别人沟通技术问题,通过交流能看懂基本的设计文档。

模块设计者要求 他们主要负责完成项目中的某个模块的设计与编码,将设计写成文档供别人使用和参考,对模块内部的各个联系以及模块间联系比较清楚。基本上通过几个月到几年时间的普通编码联系和经验,会逐步过渡到这个层次,该层次要求基本如下:

1)熟悉使用语言的对大多数语法(除非以前一直没有用过),能解决绝大多数的编译错误,常见错误能马上排除,在语言本身编写和编译错误上基本没有问题。 2)能用常用的大部分数据结构去完成工作中的要求,常见的队列、栈、各种链表、树、排序等等没有大的问题。 3)熟悉平台的各种常用的API,熟悉大多数多线程编程、同步、互斥对象的正确应用。 4)具有相当一部分以前的项目编码经验,知道如何查询自己不清楚的问题,对系统有较清楚的了解。 5)对软件调试有相当丰富的经验,对大多数bug问题能快速定位并解决。

软件系统架构者 他们主要负责一个项目的这个软件的架构、模块划分、系统和模块间交互,指导其他人如何实现该系统软件。这个层次的人最少对平台都是非常了解,从事开发过许多项目,有相当丰富的实战经验而不是只懂理论(很多高校计算机老师)。这要求他们至少有一下知识:

1)使用编程解决各种常规功能以不是问题,心中只有某个功能理论上能不能用编程或者软件来实现。同时往往会涉猎其他编程知识,不局限于什么具体某种语言。 2)对常规的数据结构和算法的使用不是问题,只是考虑在特定情况下什么算法是最优的。 3)熟悉平台的绝大多数知识和软件知识,对各种具体的如多线程、网络等相关知识已没有什么感觉,因为这些具体的东西大部分都会,就算不会也很快能看书查资料学会,但他们不一定真要去学,但是他们知道这些东西能干什么,如何用好它们以及考虑那种方法更好。 4)对软件系统各组成部分很了解,对系统优化有相当的见解,很少有编译错误排除不掉的,对bug的定位有很强的思考和实战能力,能想出各种办法来调试各种问题。 5)行业相关知识、编程经验、项目经验都非常丰富,具有很强的协调能力。 6)对项目结果有清晰的思路,能预先判断绝对大多数的项目关键点和瓶颈。 7)他们往往不关心具体模块和编码问题,而是整个系统之间的交互和结构的合理性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档