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

存在问题:

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

解决方案:

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

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

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

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

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

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

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

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-11-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

解析微服务架构(一):什么是微服务

解析微服务架构系列文章将分几篇描述微服务的定义、特点、应用场景、企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架...

33840
来自专栏WeTest质量开放平台团队的专栏

建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞

《九州天空城3D》上线至今,长期稳定在APP Store畅销排行的前五,本文将介绍腾讯WeTest手游安全团队在游戏上线前为《九州天空城3D》挖掘安全漏洞的全过...

15130
来自专栏携程技术中心

干货 | 携程新风控数据平台建设

作者简介 刘丹青,携程信息安全部高级开发工程师。2014年加入携程,主要负责验证码、风控数据平台的开发设计工作,提供性能测试与性能优化的相关支持。 前言 近几...

39180
来自专栏DevOps时代的专栏

精选 | DevOps 三十六计之精益敏捷与持续交付

? 前言: “一册在手,DevOps我有”,这就是传说中的《DevOps 三十六计》,相信您读完也意犹未尽,小编就来和您说道说道我注解的《DevOps 三十六...

34590
来自专栏云计算D1net

成长的烦恼 怎么解决云计算风暴?

云计算目前已经开始逐渐的被越来越多的企业用户采用。但是随着越来越多的应用部署在云中,云计算风暴也开始困扰着客户。 云计算风暴有时也被称为“启动风暴”,或VDI启...

43360
来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙|FAT(Fast-AutoTest) ——专业服务于微信H5/小程序UI自动化测试

报名啦!!! ? 零距离对话腾讯测试专家,获取更多测试经验。 TMQ沙龙活动第四十六期 特邀测试开发工程师——郑铮铨分享FAT(Fast-AutoTest) ...

55120
来自专栏达摩兵的技术空间

项目发布验收不严格带来思考

经常会遇到小公司的很多项目在测试环境针对测试数据库 草率的测试完之后就进行上线,然后生产环境暴露出大量问题,而且每个似乎都很严重需要马上纠正的问题。

15910
来自专栏大数据

如何设计企业级大数据分析平台?

传统企业的OLAP几乎都是基于关系型数据库,在面临“大数据”分析瓶颈,甚至实时数据分析的挑战时,在架构上如何应对?本文试拟出几个大数据OLAP平台的设计要点,...

27550
来自专栏开源优测

软件测试基本功之ISO9126质量模型

简介 ISO/IEC 9126 (1991) :软件产品评估—质量特性及其使用指南纲要,就是为支援此种需求而发展出来的。在此标准中,定义了六种质量特性,并且描述...

22570
来自专栏灯塔大数据

干货|非常实用的10款网站数据实时分析工具

网络分析工具可以帮助你收集、预估和分析网站的访问记录,对于网站优化、市场研究来说,是个非常实用的工具。每一个网站开发者和所有者,想知道他的网站的完整的状态和访...

32970

扫码关注云+社区

领取腾讯云代金券