文章目录

  • 关于学习方法、动手能力和职业发展
    • 给A同学的话
    • 给B同学的话
    • 给C同学的话
  • 关于软件发布
  • 工程实践的要求
  • 磨刀不误砍柴工:设计先行
  • 软件开发的分工
  • 我是谁


题图来源:https://nerdshizzle.com/product/funny-software-developer-job-description-t-shirt/

开学了,汇总一些我在博客园上给大学同学提的建议,希望能就软件开发的问题,帮到同学们。感谢《构建之法》一书的作者邹欣老师和策划编辑周筠老师搭建了这样一个平台,感谢他们的工作。

关于学习方法、动手能力和职业发展

给A同学的话

同学你好啊,我是一个非科班出身但是自己选择了做计算领域工作的人,我希望能通过我的亲身体会,给你实在的鼓励。

1.关于计算类的工程实践,是有一些方法和技巧的。可能大学老师不一定能用比较好的方式教你。没关系的,可以向工程界朋友请教。咱们有非常开发的计算类互联网资源,可以借助github、stackoverflow这样的平台。具体来说,你提到的对IDE的使用,是一个“无他,唯手熟耳”的过程,建议可以去看IDE的官方手册,以及所用语言的官方平台,当然最好看英文资料啦。也可以看一些视频资料,学习如何使用,多用多练很快就好了。至于其他工程的设计、开发和测试过程,也是需要长期积累,不要担心啊。

2.软件开发,最重要的过程是培养自己的抽象思维,不知道你是否经历过系统的计算思维的课程,如果没有,建议你看看清华大学出版社徐志伟等老师写的《计算机科学导论》这本书,可以参考我的文章 【计算机教育】看《计算机科学导论》,发展计算思维能力 ,看看自己在思维方式上的问题,然后再逐步培养自己的软件需求、设计、开发、测试等能力。请一定记住,软件设计这一步非常重要,后面的编码是基于设计的。

3.关于你提到的想做计算领域测试的问题,非常好,软件测试是软件质量保证中最重要的一个方面,这是非常重要的,目前国内的软件测试和软件质量并不高,你可以在这个领域里好好发展。当然软件测试也需要很强的软件设计和开发能力。

4.欢迎你到github上来看我分享的一些内容,也是bettermorn(更美好的明天的意思),我希望能帮到你。计算领域里有很多很有趣的事情,希望你能享受hard fun,我们一起来探索吧。

给B同学的话

感谢你的真实总结。希望我的以下文字能给你一些帮助。
软件开发中的学习比较复杂,要牢固掌握一些理论和方法论,需要把所学变成自己的知识,所以建议以后学习以后,试着用自己的方式做一个宏观的系统总结。比如对面向对象的学习,可以做以下总结:
面向对象的本质是什么?解决了什么问题?其与面向过程的区别在哪里?面向对象方法的几个特点解决了哪些问题?适用于哪些场景?

具体的一些内容,可以参考我的文章

【实战指导】暑假了,找问题,做作品

https://mp.weixin.qq.com/s/Mi_BtyDrRZzWEnnKu-0-Jg【实战指导】寒假了,找问题,做作品【1】:找问题
【实战指导】寒假了,找问题,做作品【2】:开发和使用模型

【脑洞大开】如何学习新的科学理论和关键技术

欢迎你与我交流。

给C同学的话

谢谢你的真诚而真实的总结。综合你的描述,我觉得可以从以下维度发展自己。
1.关于沟通和协同能力
软件开发是集体项目,非常需要锻炼良好的沟通和协调能力,你已经迈出了很好的一步,继续努力吧。沟通和协同有一些基本方法,可以去寻找相应的资料。简单举例,比如沟通,可以考虑,不同事情沟通的频率、方式等等。
建议可以看看我的文章。
【实战技能】关于程序员的沟通技能

2.学习时如何把握本质
看到你谈到学习面向对象的问题,以后可以尝试,学习后,试着用自己的方式做一个宏观的系统总结。
面向对象的本质是什么?解决了什么问题?其与面向过程的区别在哪里?面向对象方法的几个特点解决了哪些问题?适用于哪些场景?

3.如何总结软件开发过程的经验和教训
建议思考下:
软件开发是个完整的过程,从问题分析到设计、到开发、到测试,每一个环节都很重要,每一个环节除了良好的思考方法也需要应用工具。问题分析和设计是开发的关键和基础,再小的项目也需要这个过程,以后可以注意在这个环节多花些时间,“磨刀不误砍柴工”。当然开发过程中写好代码,是需要代码量熟悉开发工具,熟悉语言的使用情况的。

关于软件发布

请问,如何区分新功能和新特性(function and feature)?建议说明两者差别,这样用户可以理解版本发布的内容(release notes)
另外建议用行业通用的版本说明,可以参考这里。

major.minor.maintenance.build

major是最大的版本编号,minor为其次,maintenance为维护版本号,某些软件可能再细分作build,为更小的版本编号。例如:1.0.0.1

major:主要版本号
minor:次要版本号
maintenance:维护版本号(仅限bug修复)
build:非发布版本号,内部版本号(或源控制版本号),通常自动增加

可参考链接 Firefox Release Notes/

谢谢回复。我前面指出这些问题是为了提醒同学,做工程要求准确、清晰和完备。
请注意下次发布的时候,写清楚相关内容。
另外,关于发布内容条目,可以参考github的种类

工程实践的要求

解释下,课程提出的要求并不是职业标准,而是工程实践必须要达到的目标。另外说一下,根据美国K-12科学教育框架和计算机科学框架,很多地方米国的中小学科学和工程实践要求确实比我们大学的要求还要高一些。可参考A Framework for K-12 Science Education和 K-12
Computer Science Framework

加油吧,同学们,计算科学和技术发展的黄金时代,需要你们的贡献。

磨刀不误砍柴工:设计先行

友情提醒同学,要做好软件开发,重要的环节在于设计,敲代码是开发实现,如果在设计环节上多花些时间,也许到开发实现就没有那么难。至于要提高开发的效率,“无他,唯手熟尔”。熟悉语言语法,熟悉开发工具,多练练就没问题了,毕竟,现在软件开发的条件,比以前好很多啦。
继续努力吧!学会熟练使用开发工具,多花些时间做设计。

软件开发的分工

问题:
在真正的软件项目开发中,前后端对接具体是怎么做的呢?有没有一个规范的流程去确保前后端连接的正确性?或者有没有专门的组内几个成员来负责对接这部分呢?

我的建议:

虽然业界很多公司提出了前后端分离的方法来做一定分工,但是作为业界人士,我更建议基于功能模块分工,每个人完成相应功能的前后端以及数据库设计,而不是前后端分离,因为从某种角度来说,前后端分离并不能提高工作效率反而恰恰相反。

另外,友情建议,不要太强调前后端,作为一个软件开发者,一定要有能力做一个完整的系统,即使前端、后端和数据库有不同的擅长点和不同的偏好。

我是谁

科技工作者,独立顾问,“以我之爱心,以我之专业,以我之真实,助您成就有趣的事业”。曾在HP和盛大遇见良师益友,有幸获HP CIO奖。作为HP 资深技术专家和内部技术讲师,也有幸在HP硅谷和休斯敦工作。积极地参与学术社会活动,是中国人工智能学会高级会员,美国计算机学会 ACM 高级会员,ACM SIGCSE 美国计算机学会计算机教育研究中国分会理事,中国计算机学会CCF走进高校讲者。我也牵头了一个开发者社区DevHub。擅长将新兴计算科技的理论和关键技术应用于各种服务,成功为数十个创业创新企业落地数据分析和人工智能产品设计和解决方案,行业涉及教育、医疗养老、工业制造、证券、新兴商业服务、信息产业、文化创意等。喜欢有感而书,在国内外会议及杂志发表人工智能及计算类教育及技术类中英文论文多篇。

希望我能帮助你:关于软件开发的建议相关推荐

  1. 程序人生:32条软件开发的建议和教训,值得读一读!

    1.有时候写垃圾代码也没关系.不是所有软件的组成部分都是生来平等的. 2.你不需要通过学习一门新的语言来学习新的东西,同样的事情不同的编程语言都可以做到,应该注重深度而不是广度. 3.编写抛弃型代码以 ...

  2. 豆瓣9.1分:软件开发的201个原则

    给中国软件工程师的寄语 (节选) 致我的兄弟姐妹们: 和你们一样,我的职业生涯始于软件工程师,那是1975年,将近半个世纪之前.我认为我们在时间和国家方面的差异相当微不足道.所以,我像和我的朋友.我的 ...

  3. 软件开发部门的建议或意见应该怎么写

    软件开发部门建议或意见应该写成正式的文书格式,并应包含以下内容: 背景信息:阐述建议或意见的原因和背景. 建议或意见的内容:清楚.简明地表达建议或意见的具体内容. 建议或意见的理由:解释为什么提出这个 ...

  4. 关于在线课程及软件开发学习--给真正希望学习的朋友

    前一段,在线授课因故中断,有不少同学一直在等待重新开课,我在也告诉了一些同学,去看视频,视频的内容和上课讲的是一样,中间只缺少一节,不是很关键的内容,自己看书能够给补上,我讲课的精华部分都有.希望想学 ...

  5. 本文写给广大正在做软件开发的、曾经做过软件开发的以及即将做软件开发的女同胞们。同时也希望男同胞们能够给女同胞多一些理解和包容,多一些关心和帮助,让女同胞能在软件开发的路上走的更远一点,走的更好一

    本文写给广大正在做软件开发的.曾经做过软件开发的以及即将做软件开发的女同胞们.同时也希望男同胞们能够给女同胞多一些理解和包容,多一些关心和帮助,让女同胞能在软件开发的路上走的更远一点,走的更好一些.  ...

  6. 每个程序员必看:如何在40岁后继续做软件开发?

    导读: 这是一个 42 岁的开发者所写经验分享文章.并且列出一些他 18 年多身为软件开发者的经验谈.许多部分看完后都会希望自己当时就能够了解,所以很推荐不论是新手或是老手都要好好阅读这一篇文章. 故 ...

  7. 软件开发面试_如何为成功的软件开发工作面试做准备

    软件开发面试 Job interviews are stressful for many people. Besides the pressure of getting hired, you have ...

  8. 软件开发 自由职业_自由职业? 这里有7个可以出售软件开发服务的地方

    软件开发 自由职业 Web developers need clients. This is true whether you are a full-time freelancer or you fr ...

  9. 软件开发向大数据开发过渡_如果您是过渡到数据科学的开发人员,那么这里是您的最佳资源...

    软件开发向大数据开发过渡 by Cecelia Shao 邵Ce It seems like everyone wants to be a data scientist these days - fr ...

  10. 银行软件开发实习生_如何找到学生的软件开发人员实习生

    银行软件开发实习生 by Grazietta Hof 由Grazietta Hof 如何找到学生的软件开发人员实习生 (How to find a Software Developer Interns ...

最新文章

  1. 【重大更新】DevExpress v17.1新版亮点(ASP.NET篇)
  2. Android NDK 环境搭建
  3. IIS -2147467259 (0x80004005)
  4. 传输层两大协议:TCP与UDP详解(两者的联系与区别)
  5. Flask开发VIP版HttpServer #华为云·寻找黑马程序员#
  6. Html中的area元素的属性应用范例
  7. 苹果笔记本调整 pycharm 字体大小的地方
  8. java long_Java long数据类型
  9. 机器学习基石1 学习笔记
  10. android pt分区,[玩机技巧之Android篇]系统分区之System、Data、cache 来自 淡影寒...
  11. 如何将图片批量转换成PDF
  12. C语言异或运算逆运算,异或的逆运算
  13. 昆仑ONLINE外挂脚本--基于Seraph
  14. Problem F: 求三角形面积-gyy
  15. Python:根据itchat编了一个3岁智商的机器人
  16. JS与jQuery获取任意事件的子元素下标(获取当前类数组的某一子元素下标)
  17. Microsoft Visual Studio 2010 Service Pack 1 离线下载版
  18. -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME e
  19. word设置每页50行
  20. 用户故事与敏捷方法—课后习题解析

热门文章

  1. Windows 键盘按键 测试
  2. 怎样预防电脑辐射脱发
  3. MySQL relay_log_recovery源码分析
  4. (详细步骤)申请twitter api
  5. 一个好中医就是一座全科医院
  6. python 已知平行四边形三个点,求第四个点
  7. epicor数据表增加字段
  8. Excel批量生成条形码
  9. scratch编程三级--小猫和笔合作画正方形
  10. 三年级计算机之父童年教学设计,三年级语文计算机之父的童年故事课文教学设计...