Fw: [心得] 机械转软件工程师经验分享

楼主: wulouise (在线上!=在电脑前)   2021-01-21 20:48:11
※ [本文转录自 Tech_Job 看板 #1W2NU1DM ]
作者: wulouise (在线上!=在电脑前) 看板: Tech_Job
标题: [心得] 机械转软件工程师经验分享
时间: Thu Jan 21 20:45:46 2021
# 前言
想分享一下当初从进公司几乎不会写程式
到现在负责做软件的porting to Linux的经历
如果你想转软件工程师,最好先进到愿意让你写程式的公司
但是这不一定办得到,我底下分享一些自己做的功课
不想看心得可以直接跳到 # 自修建议
转这边是希望如果有什么地方写错
或大家觉得有更好方式,可以提出来讨论
# 个人背景
台大机械学士
硕士非CS EE ME
高中只摸过一下用C写的C++
大学只学过很废的VB忘记是不是.net
# 现职
工具机产业,领域特殊,大多使用C#与C++
对网络front end, backend不了解
工作大概就是UI跟算法处理
# 当软件工程师的心理准备
不是学会写程式,找到薪水不错的工作就结束了
学会之后仍然需要补充新的知识
想办法write better code,并理解没有best code
因为要写软件很简单,软件要会动也很简单
难的其实是写出来的东西有人愿意用
软件不是单纯写程式,而是写出客户要的东西
不论code再干净,东西不是客户想要的,就是浪费时间
(如果可以)花上一两天只是写prototype,确认是客户要的东西最好
over design跟premature optimization都要尽量避免
事前的沟通很重要,所以沟通(通灵)其实是很重要的一环
但不是所有公司都有办法让工程师沟通
不过以上都要痛过才知道,没痛过的人请跳过
# 通灵
当客户提出莫名其妙的要求时,猜得到他想要什么比较重要
啊对,通灵不是免费,应该要能反映在你的薪水上
或是找一家愿意付钱通灵的公司
# 自修建议
- Google能力
不知道怎么建议,但是如果你发现自己不太会google,练不起来
那真的不建议转软件工程师
- OS > memory multi-thread
可以参考清大周志远,目的就是还债
作业没做没关系,至少观念要听得懂
- Design Pattern
虽然一开始看不知道在干嘛,但是把前几个先看过
配上实际例子你会比较有感觉
最好是自己的烂code一直refactor,配上下面的TDD
推荐看head first design patterns,他的实例很多
- TDD
很重要,先有unit tests再写程式可以减少很多regression问题
不过没痛过的人不知道,可以先跳过
- Algorithm
这个非CS EE可能都没有从头练过,如果没有强烈要求可以慢慢来
我是工作有遇到的至少会弄熟,或是觉得做法有点烂再去查
当然纯软免不了刷刷leet code, 不过不是很建议从leet code开始
没写过的人挫折感其实很重,不过懂多了也会影响程式架构能力
- System Design
SOFT_JOB版应该很多人推荐过,这边就不多写
以上都念过之后,对软件工作会有新感觉
至少我觉得比之前懵懵懂懂的时候了解更多了,查资料也更准
- 英文 & 通灵
当你有一点程式基础后,下班有空可以逛逛stackoverflow
选一个你熟悉的语言开始回答新手问题,他可以锻炼两件事情
- 你如何理解不懂的人问的奇怪问题
- 有条理的整理你的回答
不过我累积一千多分之后就有点腻了...偶尔自己查到的问题再回而已
另一个方式是订阅一些有兴趣领域的英文digest,不一定要是程式
像是我会去NSwitch的reddit上去逛逛
# 书籍推荐
C++:
懂一点C++后,建议看Scott Meyers的Effective C++, 虽然写的时间很早
而且C++ standard都到20了,还是有很多值得一看的部分
其他书单很多,我贴个SO就好
https://stackoverflow.com/a/388282/4123703
C#: Head first, C#
Code:
Clean Code
Clean Architecture
The clean coder
中文: 无瑕的程式码 番外篇:专业程式设计师的生存之道)
这本书很薄,但是我看了很有感触,有做专案的人建议一看
作者: x246libra (楓)   2021-01-21 20:49:00
糟糕 开头看到台大机械硕 就想 END文章 XD
作者: purefalse (粹)   2021-01-21 20:54:00
我也是。
作者: aidansky0989 (alta)   2021-01-21 21:12:00
不错啊这些都搞懂已经算不错的工程师
作者: a3236852 (serena)   2021-01-21 21:36:00
糟糕 同一楼
楼主: wulouise (在线上!=在电脑前)   2021-01-21 21:37:00
我是学士机械不是机械硕耶xd
作者: NTU100 (YUY)   2021-01-21 22:00:00
只要是好学校都机会比较大!
作者: worcdlo (worcdlo)   2021-01-21 22:26:00
写的很好啊,身为转职者推
作者: sugarcanetea (蔗香红茶)   2021-01-22 00:17:00
已收藏 想私信原po公司
作者: drajan (EasoN)   2021-01-22 00:35:00
这是台大又不是stanford 看到学校就想end是?
作者: DrTech (竹科管理处网军研发人员)   2021-01-22 00:44:00
机械做软件工程师一直很多吧。
作者: littlebau (小宝)   2021-01-22 00:54:00
这种程度已经是很好的软件工程师了,如果能够在烂一点的天分或者经历,比较有激励的作用比方私立机械系,加上自己几乎不大会写程式,找到的公司也很普通之类的
作者: ntuvic (victory11)   2021-01-22 08:20:00
转职第一份薪资谈多少呢?
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2021-01-22 08:38:00
台大学士学习能力就已经赢过很多人了吧
作者: OrzOGC (洞八达人.拖哨天王)   2021-01-22 09:50:00
能转成功的就算文组也大多是前段学校的,又有过人的毅力
作者: pornstar (迪克)   2021-01-22 10:05:00
Stanford校园很多走在路上傻笑流口水滴在地下自己滑倒的智缺低能傻屌,台大素质好多了。
作者: leolarrel (真.粽子无双)   2021-01-22 10:18:00
现在写软件真的简单到一堆转职的都能胜任,跟机车行差不多了
作者: summerleaves (内湖全联先生)   2021-01-22 11:27:00
同1F 台大机械学士 这能力应该前3%了
作者: KaoZen (高兴)   2021-01-22 12:23:00
个案 没参考价值 结束
作者: snow0112 (小雪)   2021-01-22 12:42:00
推!好强!楼上,分享的内容真的很实在很具体,参考价值很高。你画地自限就会觉得全世界都是个案吧?
作者: kuochuwon (黑轮桑~ YO)   2021-01-22 13:39:00
推推,同样非本科系转职,目前是卡在想从现职换到更高薪的公司,有很多面试机会但都无声卡...很难知道自己问题出在哪...
作者: DCTmaybe (竹竹人)   2021-01-22 17:15:00
没事啦,我考不上台大还是可以写code阿,不敢讲薪水而已
作者: Morphee (千磨万击还坚劲)   2021-01-22 20:47:00
楼楼上不然cv我看看
作者: saladim (杀拉顶)   2021-01-22 20:53:00
很多人都嘛差一个机会 会的也是一样 还不是拿到到机会
楼主: wulouise (在线上!=在电脑前)   2021-01-22 21:43:00
有面试机会但是无声卡的话..最好找人聊,可能理解错误
作者: viper9709 (阿达)   2021-01-23 00:09:00
推一楼XD
作者: doranako (真爱无限)   2021-01-23 12:46:00
书单都给你,靠自己
作者: maxsho (沉默的熊)   2021-01-23 12:54:00
通常有面试但是结果是无声卡大部分都是卡在要求薪资超过公司愿意给的或是年纪有些大了
作者: MOONY135 (谈无欲)   2021-01-23 19:19:00
觉得年纪大了不想录用,还找来面试浪费自己的时间。微妙的思考方式
作者: loadingN (sarsaparilla)   2021-01-23 20:17:00
有时候也会去一些没意愿报到的公司面试啊 想说会不会挖到宝 但现实通常就是不会 公司方大概也是如此
作者: taipoo (要成功要积极)   2021-01-24 02:26:00
推分享
作者: j055116   2021-01-30 11:22:00
感谢分享 获益良多
作者: xiao2chen (台大小陈)   2021-02-06 08:20:00
clean code 赞

Links booklink

Contact Us: admin [ a t ] ucptt.com