目录
学习基础知识、专业知识和领域知识
工作检查单
软件开发过程中的一些习惯
英语是软件开发的一种语言
图片来源:https://www.dreamstime.com/illustration/novice.html
软件开发小白,如何不断学习和发展自己?经过一段时间的观察,我总结了以下一个学习和工作清单,希望能帮到大家。
软件开发需要学习基础知识、专业知识和领域知识,如果掌握了以不变应万变的方法,是可以不用担心掉头发这件事情的。
1.很认真,但是学习效果却不是很好,可以参考使用费曼学习法和康奈尔笔记法提高学习质量。
https://bbs.csdn.net/topics/601213730
快速学习新理论和技术的方法:费曼学习法 和 记录、简化、复述、思考和复习:康奈尔笔记法
2.如何选择好的书籍?欢迎查看这里的内容
【好书推荐】给大一到研一的同学们
【好书集锦】推荐计算工作者读读
相比看视频,笔者也喜欢看书学习新理论和技术,因为Musk鼓励大家看书自学
#Musk鼓励大家自学 钱颖一:通过阅读书籍,就能成为高科技领域的专家,就这样?
马斯克:是的。我可能把自己说得像个机器人。其实看书的速度要比听课快。看可以比听快得多,所以看书学东西要快得多。来源钱颖一对话马斯克:SpaceX的来龙去脉(视频+全文)
3.不知道如何学习一个新领域的专业知识?
可参考这里的一些信息。
【脑洞大开】如何学习行业领域知识
经常根据下图总结自己的知识体系,并试着查漏补缺吧。
从小白到专家,需要掌握以下的专业知识。
图片来源:CC2020 ACM/IEEE 计算课程体系规范2020 中文版
专家和优秀工程师的认知技能主要体现在分析、评估乃至创建能力。掌握软件开发中各个环节的框架、平台、架构以及硬件系统的基本原理,而不是简单地填空和搬砖,可以走得更远。
图片来源:CC2020 ACM/IEEE 计算课程体系规范2020 中文版
举例来说,如何选择一个合适的开发工具?就需要分析和评估能力,这个过程包括检查和分解信息,做出一些推理,判断信息的有效性和材料的质量。参考以下文献,可以理解为何IDEA取代了Eclipse成为大家喜欢的IDE。
1.是否使用特定的工具?高效率和有效地实现软件开发需要选择和使用最合适的计算机硬件、软件工具、技术和流程(这里统称为工具)
阶段 | 工具和技术 |
分析 | 层次分析法、需求分析法、面向对象分析方法、结构化分析方法、SWOT等 |
设计 | 面向对象的设计方法、结构化设计方法、UML图、设计模式等 |
开发 | IDE、编码规范、防御式编程、单元测试、代码复杂度分析工具、重构等 |
部署和维护 | 脚本、因果分析法与鱼骨图、系统分析法、风险分析方法等 |
笔者因为工作关系,已经看到很多没有使用面向对象特性的又臭又长的代码,总是会很感叹,为什么不用面向对象这么接近人类自然思维的方法呢?
可以听听这里的内容
面向对象程序开发的优点_计算机原理的7个理念_免费在线阅读收听下载 - 喜马拉雅
培养面向对象思考的好习惯_计算机原理的7个理念_免费在线阅读收听下载 - 喜马拉雅
面向对象的设计过程_计算机原理的7个理念_免费在线阅读收听下载 - 喜马拉雅
包装对象_计算机原理的7个理念_免费在线阅读收听下载 - 喜马拉雅
设计模式与面向对象开发的问题_计算机原理的7个理念_免费在线阅读收听下载 - 喜马拉雅
2.如何用合适的图表工具记录工作成果?可以听听下面的音频,解释了为什么只使用思维导图会欠缺系统分析能力
只会用思维导图会欠缺系统分析能力_趣谈计算领域的学习和发展_免费在线阅读收听下载 - 喜马拉雅
1.在学习新的框架,或者利用新的框架开发新功能的时候,用了太多的时间去调试和测试,而不是在认真学习和阅读程序代码后一次性写出正确的代码?
2.要查找资料的时候,用了太多的滑动,而不是搜索关键词功能?
3.在安装开发环境及相关工具时,是否不太认真或者不太重视?
4.在设计和开发的时候,没有质量意识,等着QA提出来?
可以参考这些内容 【实战技能】如何安装软件运行环境?
希望你能提高工作效率和工作质量 介绍了学习新理论和关键技术的方法,完成一件新任务的方法以及团队协作的方法。
是否不愿意看软件相关的英语官方网站?相比系统而全面的官方网站英文文档,更喜欢看碎片化的中文文档?
如果真的热爱软件开发,学习和应用英语促进软件开发,并用软件为世界和人类进步做些贡献应该不是一件难事。
图片来源:https://www.quotemaster.org/Expert
愿大家技艺精湛,早日成为优秀的工匠!
希望我的文字能帮助大家,欢迎留言交流。