软件开发学习课程和将来工作环境简介.docxVIP

软件开发学习课程和将来工作环境简介.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件开发学习课程和将来工作环境简介

关于学习曲线-计算机课程的先后顺序是怎样的?每门课都讲的什么?计算机的基础学习课程应该是 : 数学基础 : 高等数学,线性代数,概率论语言基础 :C语言数据结构:离散数学,数据结构和算法分析硬件基础:模拟电路,数字电路,计算机组成原理其他专业课:操作系统,数据库原理,编译原理,计算机网络高级语言学习:Java或者Python或者......如果是专业学习,建议从上到下,从左到右依次学习。如果是兴趣学习,可以只学习C语言和数据结构,然后直接进入高级语言学习,你甚至可以直接学习java,连C和数据结构都跳过去。如果你想以后从事开发工作,跳过基础课程会使你非常非常后悔!!!因为你要么回头重新学基础知识,要么只能徘徊在Coder的层次上,永远成为不了一个Programmer或者架构师。这些基础课程将是决定薪水数量级(k,10k,100k.....)的关键因素。如果你不明白我在说什么,或者依然坚信“数组就足够了”这些鬼话。那么我们来谈谈一个简单的小应用。用户有若干粉丝,用户可以发送一些字(最大140字),然后他的粉丝可以看到。很简单吧,对,这就是微博。我们有很多种做法,比如最简单的Coder会这么做:将用户id和发表的内容存到数据库中,(如果聪明点,还会将用户id加个索引)他的粉丝刷新页面的时候我们从数据库获取其关注人的列表,然后对关注人发送的信息按照发布时间排序输出。这么做似乎没什么问题,问题在于有个叫姚晨的家伙有1000多万个粉丝,同时还有百万人在刷新页面!如何解决呢?网上流传了一些新浪微博架构的分享,里面用到了队列(就是那个先进先出的队列!)用来“削峰填谷”,用了memcache来做缓存(一致性Hash来保证可用性)等等,如果没有数据结构基础,恩,你懂的。高等数学,线性代数,概率论:这些课程也许不会在软件开发中经常用到,但是这些是学习算法的基础,不学也行。相当于武术中的静心,调节气息。C语言,很好的入门语言,大学课程本身在于教授语法,以便大家在以后学习数据结构等问题上有个可以沟通的语言基础,和实际开发环境使用差别比较大。武术中的武当长拳。离散数学是数据结构的入门课,学了以后对理解数据结构和算法又很大的帮助,如果没学,也能学习后者,只是会麻烦一些,且会有“无根”的感觉,时间紧张的可以考虑学习数据结构的同时,手头放一本离散数学,结合在一起看。武术中的内功心法,不解释。模拟电路 可以不看,数字电路是计算机组成原理的基础,可以直接学习组成原理,但是有了数字电路基础会方便理解组成原理。计组原理是讲述计算机如何运行指令的课程。相当于解剖学?学了能让你知道如何优化出招,打哪最疼~ ^_^操作系统,数据库原理,编译原理,计算机网络必须看,这几本书并非只是学习相关知识,最重要的看点是:真正的讲述如何用技术解决实际问题的范本,我们平时遇到的很多头疼的问题,其实前辈们都已经遇到过了,而且他们使用的是非常好非常好的思路。比如资源竞争,比如搜索,没错,答案就在这些书。相当于令狐冲的“破剑式”,是实战案例宝典。只学C能成为高手吗?可以,练会了武当长拳至少可以当教练。 ^_^现实中不管愿意不愿意,都或多或少的要和别的课程有交集,至少,C语言的指针,如果你知道计组原理里面讲到有个东西叫地址寄存器的时候...理解起来会方便的多。上面几篇说的都比较务虚,这篇文章我们来聊点实际工作中的场景。这是我毕业前非常想知道,可是又偏偏没有人告诉我的,我相信还没有毕业的同学中,一定也有想了解这方面情况的。当然,我尽量将自己看到的想到的说出来,但是个人的经历实在是有限,难免有所遗漏和错误,权当抛砖引玉,希望能有更多的大神加入讨论,给后来的师弟师妹们一点思路。一个典型的中国式开发团队是怎么样的人员构成呢?程序员在其中的作用又是如何?这里我说说我熟悉的几个场景:企业级开发,科研式开发,互联网企业。企业级开发:这类系统往往是一个企业的重型业务系统,业务涉及财务,结算,生产安排等方面。典型应用是通信企业的OLAP,银行业务系统等。这类系统的一个特点是,参与人员多,业务极为复杂,需求相对比较稳定,安全稳定性要求极高。鉴于此系统的特点,瀑布模型是其首选的开发方式。以某公司的工资系统为例,参与人员一般有项目负责人,需求方,需求分析员,系统分析员,设计人员,开发人员,测试人员和部署人员构成。其最简构成是需求方(财务室或者人力资源)和开发人员。需求方提出需求(每月月初计算所有员工工资并自动发放,然后邮件发送工资单),需求分析员经过和需求方沟通,将需求细化(每自然月1日凌晨0:05进行计算,1:00前完成,具体步骤是从员工管理系统中取出所有员工列表和需要发放的工资数额,依次对每个员工工资扣减社保和个人所得税部分,同时生成工资单,通知银行结算,发送邮件)。系统分析员确定系统规格(系统采用java开发,任

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档