※ 引述《csjs87 (思念的季节)》之铭言:
: 各位年薪三百万的大神们好,小弟不才又上来请益了。一年前为了选择资策会的课程在版上发了问,有幸获得许多人的回复。
: 从资策会毕业、顺利找到工作也一阵子了,现在月薪37k,主要是协助开发后端。但我碰到一些对于自己不足的地方,想再次请教各位。
: 一、
: 因为公司没有一套完整的教育训练或是架构的教学,所以即使我有尝试在我负责做的小工具、api中尽量使用"我认为的oop观念"、"solid的开发原则"。但还是不晓得是否正确,同事们大多也都很资浅,加上没有太多时间帮我看(专案忙)。我要怎么检视自己的code是良好、容易维护的呢?
不知道你用什么语言,我假设是业界常看到的那几款好了。
在本地端架一套 sonarqube 起来,把自己的 code 扫一遍,
你就会知道那些 code 写得不好了。
我现在有在公司内部架一套,用来避免自己一时恍神写出烂 code。
中高阶的程式架构 design pattern, SOLID 等,碰过的专案越多再搭配书来看才会比较有感觉,
初期没概念很正常。
新手我推荐 Clean Code / Clean Architecture 系列,写的浅显易懂。
英文听力还 ok 的话,可以去 youtube 搜寻 "robert c. martin" 或 "martin fowler"
这两位大师在讲解程式架构概念非常有一手,可以把复杂的概念讲的很简单。
单配英文字幕看不会太难懂。
: 二、
: 偶尔会看版上或是104征才需要什么样的能力,为将来不管跳槽或是谈薪水更有筹码。我印象中常看到的有云端架设相关(aws、azure)、程式设计上(单元测试、graph api)、其他(CI/CD、Docker容器、TDD)。虽然都有查过也大致知道是什么,但也仅此而已,更不晓得知识还很浅薄的我有没有误会什么。
个人强烈建议先投资测试,从最简单的 unit test 开始。
xUnit Test Patterns: Refactoring Test Code 这本书就很不错。
没有测试保护你要去搞 CI/CD 只是把有问题的 code 上到 prod 的流程自动化而已。
当你跑过几轮 code 从开发到测试到上到 pro 环境的流程后,
可以看一下这本书: Continuous Delivery。
: 三、
: 最后是一些比较底层的资料结构、计算机概论这类都几乎是0知识。虽然计概有自己看台大开放课程的计算机概论,是多少有学到一些,但又好像不是我现在急迫必要的知识。听说资工有本圣经恐龙本,看过目录发现,很多都是我常常看到的陌生词汇。I/O、thread、Process等等,我觉得好像不看懂这些我就很难更精进。
: 其实我本身不是“非常”热爱写程式的人,我会在写code的时候为解出bug感到开心,也会边骑车边想程式的事,看到好像很神奇的新技术新闻也会很兴奋,也想做side project,想使用新知识。但到了休假日,也很少真的着手进行。
: 总之我现在稍微有点迷惘,对于程式这条路我觉得我才刚起步,也不想离开。但学海无涯,光上面就太多东西要学。
: 根据我自己的感觉,只知道自己暂时还不太想钻研前端。而对于我上面提到的各种知识,能怎么安排、规划比较好?谢谢大家。
这是长期投资,短期内很难看到成效,但请持之以恒地继续钻研,
有一天你会发现扎实的基础可以让你更快的定位系统异常或效能问题。
OS 恐龙本 / Fundamentals of Database Systems
这两本我都很推荐想走后端的工程师看。
: