作为一名前端开发工程师,你发现了哪些入行以前错误的认知?
我是直接上手开干,没有预先铺垫,所以入行前没认知。
回忆一下,感触最深的应该是技术不难,难的是积累经验,还有对业务的理解。
技术不用刻意学,粗略看过资料后,多去看别人的好成果,琢磨着给鼓捣出来,这样的学习是最扎实的。根本不用记概念,还不会忘。
所以在实战中别慌,努力钻,多问多学多练,自然就把手艺拿到手里了。
积累经验后,对业务理解,能更好的抓准目标,找到最合适的解决办法,而非最好的。
小公司为了节约人力成本,不会有专门做前端的,有的需要设计师会写静态的html,然后我以前就以为做前端必须要有美术功底,而且那时候后端的人喜欢叫这类人“美工”。
后来才知道稍微大一点的公司职责都分得很清,前端工程师只负责开发,最多就自己切一下图而已,对美术功底没有太大的要求,主要还是实现业务逻辑。
才转前端的时候,我还纠结过我自己的美术功底为负的问题,后来才发现自己没见识。。。
调试能力
入行前对软件开发的认识是很片面的,比如说在学校的实训项目里面。是不会有测试人员给你提BUG,不会有千奇百怪的业务需求。我印象最深刻的是,当如潮水一般的BUG涌过来的时候,内心是慌的。也是从那个时候,深刻认识到程序员一生的敌人是 BUG,而武器是调试。对调试程序能力的忽略,应该是一个入行前没有仔细研究的方面。
软件工程
上学的时候,并不觉得软件工程有啥用。觉得就是一堆规范,入行后才深刻理解,复杂系统的开发,如果没有工程学的理论是很可怕的。这时回头再读《人月神话》、《人件》这样的书就很有体悟。
算法和数据结构
入行后当遇到复杂业务开发时,如果,没有这门基本功就无法驾驭。
1、写代码就一定需要牛逼的数学知识。
智商正常就行。
2、实现牛逼。
真正精髓在设计。
3、网卡一定是爸妈在看电影(2m adsl)。
这个服务器这么破还做nm的网站。
4、机器一定是权威的,我只能接受。
写这个业务的程序员在这个世界上不应该作为人类存在(拉出去砍死这个nc)。
以为不用跟人打交道,只用玩技术。
后来发现理解人到底想要什么花了一半的时间
以前一直以为前端杂而不深,要会HTML,CSS,Javascript,然后各种框架各种库,各种平台小程序,后端Node.js,从网页(Angular, React, Vue)到手机(RN, Weex, flutter)到桌面端(NW, Electron)真的什么都要学。
后来我发现前端同样很深,webpack工程化(软件打包构建原理),小程序通用框架(AST, 编译原理),理解跨端开发更是要精通多种语言,数据可视化你以为就是做几个图表那样么,所有图表,地图,大屏,AR等等也都属于数据可视化。
学无止境呀……