这个跟其他领域是一样的,你要做程序员,至少要能熟练编写代码并排除故障吧?
编程能力,一方面来自于对基础知识的学习。给你一个可选字符串集合,和一个输入错了的字符串,你如何筛选出用户可能想输入的字符串?这种问题你想解决,你就得学习最小编辑距离的相关知识,这个逃不了的。
另一方面,编程经验的积累也很重要,这个就需要你平时多积累。让你写个登录框,如何完成各种规则的校验(有同步的,有异步的),如何让你的登录框可以从外部配置各种校验规则?这种问题你编程经验多了,脑子里自然就会有个概念。
bugfix能力主要来自于三方面:
第一,你得有编程经验、debug经验,对于常见问题有经验的程序员猜也猜个八九不离十。
第二,你得理解程序的运作机制,背课文没用,你在console里打开vue源代码,从哪里打断点看什么变量的值,有助于你判断问题原因?你得理解vue的机制才能做到。
第三,你得有逻辑思维,初中物理的控制变量法学会没有?有些人面对稳定复现的bug一筹莫展,连基本的“注释掉一半代码”都想不到,这就是逻辑思维有缺陷。
以上这些,培训班普遍都不太重视,培训期间代码量偏少,练习项目过分单一,导致毕业生缺乏编程基础和bugfix能力。
第二,工具选择和工具使用能力。
有npm这个大宝藏,其实大部分底层功能都不用我们自己开发,现成工具有的是。但前提是你得知道自己的目标是什么,找到那个合适的工具,并且看懂工具怎么用,最后引入项目并把项目跑通。
有些人,首先就卡在不知道自己的目标是什么。面对一个功能需求,不知道如何做技术分解,不知道如何定义问题。npm和github检索先不说,百度搜索你得会用吧,问题的关键词你得能想出几个吧?
还有些人,英语糟糕透顶,连npm包的readme都看不懂,你跟他说就用这个包,他也不知道该怎么用。有问题你让他去看看issue,他连issue这个单词是啥意思都不知道。
另外还有些人,就像当年用windows你让他改一下注册表他永远不会改的那种人一样,一个包引入项目,别人摆弄摆弄就能通,他怎么摆弄都不通,构建失败都解决不了。具体原因也不知道是啥,可能就是不太会用电脑吧。
以上这些,培训班一般也不会教,至少不是重点。像英语这种需要积累的能力,培训班更不会涉及。
第三,把一个程序“从头到尾写完”的能力。
这里我就得说说自学的好处了。一般来说,为了学编程,大家总要写一些项目作为练习。自学的好处就在于,一个靠谱的自学者,他写的项目往往是自己琢磨出来的。这有助于锻炼一个核心能力——就是在你写程序之前,你先得想明白你到底要写个什么程序,这就是所谓的“从头”。
很多时候领导给我们提需求,不是简单地说给你个需求清单,你把里面的需求点都给你实现掉,而是说,他有个模模糊糊的想法,你去调研一下,给个方案出来,写个原型做个POC;或者他看到一个问题,比如网站加载太慢,让你去解决一下。遇到这种场景,你就得从头开始琢磨,把问题定义清楚,目标树立好,并分解为几个维度,各个维度给出解决方案,然后一个一个实现掉。
到这儿还没完,领导的想法实现了吗?问题解决了吗?如何证明?如何量化?你的程序能发布了吗?单测覆盖率合格吗?文档写了吗?别人能用吗?……这些就是所谓的“到尾”。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
opics/618191877)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!