毕竟是聊聊曾经,放一张大学课堂上灵光一现,手写的一个我曾经一直使用的网名
前言
原文地址:Nealyang/personalBlog
讲真,的确是运气,才有机会进大厂。也没想到,那篇一年半工作经验试水杭州大厂的面经如此受欢迎。后面也有很多朋友在群里问我,你是如何学习的?
此篇为xxx 经验进阿里的终结篇,希望从此以后就翻过了,不再提了。不然总有种炫耀的感觉,倍感压力,汗颜汗颜~
此篇也并非技术软文。大概介绍下我在进阿里之前、工作中都经历和做过了些什么,最后我会分享一下敲开面试之门的那封简历。
关键节点经历交代
经历阶段,我尽量简短。
大学期间
从农村走出来的孩子,从只开开机关机到各种参加比赛,鬼知道我如何了解编程的。
最终我拿过Oracle java 全国青年设计大赛
东北赛区一等奖、蓝桥杯
编程省一、国三等等四五个编程方面的奖项吧。
大四实习期间
我使用 java 编写的坦克大战自定义 hack 版推开的实习公司汉得的门。在移动部,我原以为是用 java,结果是 hybrid App 开发。所以,实习期间,是我开始学习前端的开始。
刚开始的学习过程大家都一样,w3c搞起,最终,我成为了团队里面第一个带新人的,我还带人开发了现在汇联易App 的第一版。90%代码是我一个人写的。也理所应当的拿到了年度最佳新人奖项。这里再次感谢当初给我机会的我的老大,顺哥。
但是说实话,当时的技术,前端基础都掌握的不行、都是在用 ionic、cordova、angular。甚至连 jQuery 都不会。。。
第一份工作
毕业后在北京,第一份工作在环球网,事实证明当初的选择是正确的。
我正式接触前端,从编写页面开始。从刚开始的添加一个 click 事件监听都要百度,到最后半天能产出一张活动页。
后面一周学习 RN ,扛下了独自环球网 App (Android 版)的大旗。再后面调到平台组,开始接触了 react、node。
遇到过一些很多难的项目,也是当时我说的,怎么我一直在坑中。而这最后,都成为了我简历中比较出彩的地方。
阿里
后面决定跳槽,就想择一城。来到杭州,也就是大家看到的一年半前端工作经验试水杭州:我是如何拿下网易、阿里和滴滴 offer 的
关于前端
以下所有言论都是个人观点。如有不妥欢迎指出,一起交流
就前端而言,我个人认为有三个阶段。认知阶段、钻研阶段、掌握阶段
认知阶段
所谓认知阶段,就是开始接触前端,开始学习前端。
学习方法
这个阶段应该算是我在实习的阶段吧。一个从来接触过前端的大学生。简单总结就是各种看书、学习。
- 从最基础的 HTML、css、JavaScript 开始学习。我个人是从 w3c 开始学习的,然后还顺带做了在线的知识掌握测试。
- 每一次的工作都是挑战,每一次挑战都是成长。也是从这个时候,我开始养成了写博客的习惯。
- 遇到任何新的技术,都从官网开始学习。因为这个阶段,官网能帮你解决 99%的问题
- 遇到问题,尽量靠自己,别动不动就在群里提问。甚至,你要主动找问题。偷偷告诉你,我的 qq 群、微信群,都是我在刚学习这类知识的时候创建的,初期我是尽可能的回答群里每一个问题。虽然我是菜鸟,但是我会百度、Google 呀!
截止到 16 年初。这是我在实习阶段整理总结的自己项目中遇到的问题
开源中国 Nealyang 邪气小生
钻研阶段
所谓钻研阶段,就是你基本已经入门前端了,需要找一个方向,去学习,去钻研。比如三大框架是否可以挑选一门入坑。注意是钻研,而不是浅尝辄止。
学习方法
在这个阶段,我依旧会浏览各个官网的信息,同时就我个人而言,当初选择的是 react 技术栈 node ,这也是我最开始创建的两个技术交流群。
当然,工作中,恰巧我也用了一周时间学习 React Native,完成了官方 App 的代码编写。这让我提前对 react 有了一些了解。掌握 react 技术栈对于一个初学者来说挺艰难的。我花了一周,看完了所有教程。然后开始学习 react-router、redux、react-redux、然后也接触到了 webpack,在此之前,我刚学习 gulp(开源中国博客列表可见相关总结)。
我的学习方法比较剑走偏锋。既然看完了知识点,直接开干。
- 大概花了四天时间看了 nodejs 的基础知识,我写了一个 demo:ejs-express-mysql
- webpack 学习完阮一峰的 demo 后我也开始百度、Google,完成一个自己项目的配置:neal-teach-website
- redux 我是通宵学习了一个周末,并且在周一写了一些 demo、写了相关感悟study-redux
- 然后开始将react 技术栈串联起来的时候,发现了 redux-saga 要学习,并且整体项目结构非常的乱。于是乎,我又开源了一个 demo:React-Fullstack-Dianping-Demo ,这是一个朋友分享给我的慕课网教学视频,但是说实话,通篇看完,觉得老师讲解的不是很对口,遂自己写了一个开源出来。
- 通篇学习完后,又写了一个总结性的Demo,也就是 github 上目前个人仓库下最高 star :React-Express-Blog-Demo
以上这些只是我个人学习 react 的时候,并且所有的学习都有相关产出、所有的 demo 都在 github 可见。同时在工作中,也有在使用和学习。
回头看看,我一直在冒充着大神,其实开源出来的时候,自己也在学习,自己也没有完全掌握。因为我感觉如果都是写一些自己会的,那简直是太浪费时间了。
除了 react 以外。在这个阶段,我啃完了所有读了很多 JavaScript 经典书籍、红宝书、犀牛书(看了 60%)、ES6、高性能 js、你不知道的 js 系列、忍者秘籍等等,并且感悟深的都有在各个平台上留下相关笔记。
在这个阶段,你有太多需要学习的了,任何你不知道的,你都应该知道!不要等工作、业务上来给你知识盲区扫描。自己主动找自己的技术方向。有目的、有结果性的学习~
掌握阶段
其实就我个人感觉,我应该属于第二阶段往第三阶段过渡的一个阶段,所以这里不能给出我个人的总结了。说下这个阶段,我自己的个人规划供大家参考吧。
这个阶段的我,已经进入到了自己心仪的公司。并且身边的大牛几乎是每天都能给到自己压力。所以学习。。。依旧是我最为核心的目标。但是同时!业务的理解和掌握,也是我这个阶段要去提升和重视的一点。
这个阶段,我需要做的很多。说一下对自己的期望
工作上
- 带有业务思考的去编写每一行代码。对于代码规范、组件的封装、整体架构的搭建需要进一步的去思考、学习。
- 明白Bu的核心利益是什么,你对Bu 的贡献点、以及如何利用好自己的技术来反哺业务。
- 多从业务上去寻找技术的突破点。从技术的突破点去寻找自己的方向。
- 从前端团队的角度去思考如何解放前端脑动力。时刻保持敏锐的嗅觉去思考团队的开发流程、技术痛点等,并努力寻求解决办法。
学习上
- 学习基于业务。但是依旧要明确自己的未来领域。
- 多做技术分享,多和大牛接触、以提高自己的技术视野和未来前端方向的嗅觉
- 再重温一次前端,多些总结性文章。
- 对于前端领域现有知识,不要求能够面面俱到、但是能够做到提纲挈领
- 保持一颗有空就学习的心
- 提高自己非技术以外的软实力(作图、架构思考、做 PPT 等)
- 个人品牌影响力的打造(不得不说,github 帮我敲开的阿里大门)
总结
总结如上所说,其实我没有走任何捷径。只不过
- 学习东西果断、坚持。并且一定会有产出(博客、github)
- 不怕遇到问题,甚至主动找别人遇到的的问题,然后自己帮忙解答(技术交流群)
- 学习新东西只是浏览一遍官网介绍和 api,然后直接上手写 demo、不会再去查!
- 多浏览技术论坛、博客。你懂得。多和大牛接触,交流(但是注意:没有大牛是闲着的)
- 一定要写!写!写!不要只会看!读!
- 技术不能脱离业务,多去思考业务痛点、团队工作流痛点、技术突破点。
- 提高自己的技术思考能力,不仅仅要学习,更要学会去创新、去思考 why。
最后,我想说,其实我也依旧还有很多需要学习的地方。此篇文章,是对一直以来支持我的哥们一些疑惑的解答。因为我的确给不了最为有效的学习方法和建议,所以只能简述自己的情况提供参考。如若说的不对的地方,还望见谅。
勿忘初心!狂而不傲 peace~