如何正确学习软件工程
友友们,又是一破干货来袭。我觉得我可能会被批斗,但我还是要表达一下自己的观点。
1、前言
之前看到我一朋友用jupyter训练模型。我问他:“你训练完然后呢”。他说:‘‘调参’’。我说你最终的目的是什么呢,他就不说话了。
我想说的是,不管你是练习也好、开发也好,做之前一定是有目的的。没有目的的话那便没有了意义,那就没有做的必要。
2、目的指向
不管做任何行业任何事,最终的目的一定是以人为本,为人民服务,应业务而生。
这里主要我以机器学习为例:不管是深度学习还是机器学习都只是开发的一个功能块而已。或许你的工作只是负责网络搭建、训练模型等,但起码你得知道,你训练完之后会干嘛,做出来最终是个什么玩意儿。就像做事儿你总得先了解业务,一样的道理。
试想一下,如果有一天你和团队做的东西被别人看上了或者投入使用了,有人来问你:你这款软件主要有哪些功能、分为哪些模块、软件设计思想是什么?呵呵,这时候就懵逼了吧,还好意思说这款软件是你做的么?难道你说我不知道,我只是负责其中一部分而已。
我只想说:不要做一个没有思想的码农,最起码要做有思想的程序员。
3、如何做一个好项目
首先,一个好项目一定是融入自己的思想,具备它的意义。需求分析->概要设计->详细设计->代码编写->单元测试->集成测试->环境测试,包括软件架构、软件设计、代码模式都要考虑进去。
有同学说,我是做后端开发、又不是项目经理,又不是测试人员,为啥要做这么多。。我告诉你:大学期间是最宝贵的时候,是学东西最快的时候,是做任何尝试时付出代价最小的时候。你以后工作可以不做测试、项目经理,但相关业务你一定要懂。。我大学的时候喜欢Python和C,当时上java课我就写Python,我同学问我你不学么,我说反正我又不做java,我不学。然而看看我现在还不是学java去了,因为鸿蒙系统哈哈哈,不得不说真的好用,国之骄傲。
有同学做大作业或者综合实训项目只需几天、一周搞定应付老师。如果你大学读完不想干这行,那我不说什么。如果你想,那我请求你千万不要这么做。如果你不想做老师的布置的项目,那你有没有尝试过和老师商量说:老师,我想做我自己的项目。然后给老师讲讲你的项目思想。。如果你说老师肯定不会同意的,那我告诉你:没有古板的软件人。
友友们,可以尝试一下把一个项目从大一或者大二一直做到大四。如果你做到了,那你一定是最厉害的。
4、软件工程如何学习
大学里面学的东西很杂、很多、很浅。java、c、c++、python、javascript等都有学习,还有应用级的机器学习、深度学习、web开发、桌面应用开发、大数据开发、爬虫等。有人说先学啥语言,再学啥语言的,瞎扯。语言之间逻辑都是互通的,只是语言不同而已。而对于程序员来讲,最重要的就是思维和逻辑。所以不管你学什么语言,只要掌握了思维、逻辑,学什么都简单。
建议课堂所讲的,都可以听听,但是一定要知道自己喜欢什么,着重去学习。老师所讲只是入门,更多的是要靠自己不断去学习、积累。在这里推荐大家多使用必应搜索,他对于程序员来讲会比较友好。
另外:一定要好好学数据结构和算法。把基础打好、路才走得远。。而且一定要多刷题,可以在leetcode和我一起刷题啦。每天一题就好。