我自学入行的前端,已经是一个有五年两家大厂工作经验的老司机了。回顾了一下我的前端自学入坑的经历~希望能帮到初学者,少走弯路。

零、入门

大二的时候断断续续的看了一些网站开发的知识,但是一直学不会,门外徘徊。直到某一天,一个老师找到我帮忙维护一个学院的网站,还说有钱可以拿。虽然心动,然而我啥也不会呀,但是老师告诉我说只需要改改文字和颜色就行,我信了...

从此走上了一条不归路。迫于答应的事情一定要办到,我每天废寝忘食的学习网站开发维护相关的知识。大约经过了半个多月,我觉得自己好像行了。

维护一个网站需要学习:

服务器

就是一台运行在机房有独立公网IP的电脑。现在,个人学习可以对应云服务器,阿里云ECS。

域名

想要通过域名访问服务器,需要添加DNS解析

Web服务

那时服务器是windows系统,用的IIS。现在,主流的就是Linux系统和Nginx了,按照官方文档安装好Nginx,使用默认配置,基本上一个Web服务就跑起来了。作为一个前端,学到这个程度就够用很多年了

一门后端语言

当时的网站是一个学长用asp.net开发的。现在可以选PHP、Python,还可以选Nodejs

数据库

当时用Access。对应到现在,可以从MySQL或者MongoDB开始学习,增删改查学会就够用

网页开发相关

就是HTML、CSS和JavaScript。其中最难的两个点大概就是CSS布局和DOM操作,初期这个是可以从网上CV的

代码管理

这个项目连代码管理工具都没有,直接一个文件夹

服务器和后端的知识,如果只是了解个皮毛的话,并不需要花费多少时间。但这些基础知识意义重大,可以让一个前端开发者清楚的了解到自己在一个项目中到底是在做什么,不至于迷路~

自学方法

  • 看书

  • 搜索引擎

  • 大牛们的技术博客

当时网络上的资源没现在这么多,主要靠看书。去图书馆借了很多相关的技术书,其中大部分书都是又古老又垃圾的,得到一个结论,歪果仁写的技术书普遍比较有货。很多大牛们的技术博客,对我帮助很大。

迫于资源匮乏和缺少指引,当时走了很多弯路。如果到现在,

  • 书籍的话我推荐只需要一本红宝书就够了

  • 网站资源,w3school和MDN Docs这两个也足够了

  • 大致的看一些理论之后,真实的参与到一个已有的项目里去,修改和维护。关于CSS布局和DOM操作,很多难以理解的理论一下就懂了

  • 学再多理论和练习,都不如亲自实现一个具体的项目

大约达到这样一个状态:一般项目的任何需求如果不会实现的都能通过搜索引擎或者翻书来解决,基本就算入门了。如果不追求去大厂做大项目的话,其实学到这就可以开始工作了~

一、关于实习

校招前的暑假里我还去一家小公司实习过两个月,虽然也是做网站开发,每天认真干活,但在那家公司几乎什么都没学到,除了各种API用得更熟练了,技术上零成长。唯一的收获大概就是让我下定决心已定要去一家大公司。当然小公司做的产品也并不简单,同样功能俱全,只不过还是用的比较原始的开发方式~

  • 看来很多开发者工作了几年没有任何成长也是极有可能的。

至此,就可以做一个普通技术团队的主力军了~

二、校招面试的那一个多月

校招的过程基本就是被惨虐的过程,幸运的是我投的公司基本都给了面试机会。好多的概念都是第一次在面试上听说,基本前几次面试都是去听新概念的。

SEO

搜索引擎优化,这个一听就能理解,做过个人网站的都知道。对应到前端开发就是使用一些方法,配合搜索引擎录入网页里的信息。

W3C规范

原来每天看的那些文档和书,它们的祖师爷就是W3C。

闭包

这恐怕JavaScript开发者遇到的第一个没有那么直观就能理解的概念。平时的个人小项目开发里几乎从没用到,也没见过,一直没能理解。只能强行背答案了。

性能优化

性能优化是个什么鬼,能实现功能就不错了。回来上网查了别人总结的资料,发现这么做确实能优化性能,网页更快,这个理解起来就没那么难。一些书上面会有总结,但都不如网络上的八股文来的直接和完整。

深拷贝浅拷贝

可以理解,但一直没找到使用场景。

原型链

用来实现继承的,没用过,而且太麻烦,强行背答案。

事件代理

也叫事件委托,是基于事件冒泡和捕获来实现的一种绑定时间的方法。练手项目里都是直接绑定事件的,从没想过要用事件代理,但是这样的概念,听说后也就很快理解了。

盒模型、清除浮动、居中对齐

CSS的问题似乎比较少。

正则表达式

在项目中从未用过,不过看看文档也就知道了。

常用基础知识

数组、字符串的一些常见方法。由于我平时小项目还是写的比较多,这些基本用的很熟练了。

ajax和跨域

无刷新局部更新内容,这个也好理解。

常见算法,时间复杂度

这是大厂必问的,当时把常见的几个排序算法复习了一遍,基本就满足要求了。

实现一个jQuery的$函数

什么?jQuery还能自己写...原来这个也是可以自己去写的,好像也不太难。

还有一道记忆深刻的题,某个产品每天有一个亿的用户访问,服务器扛不住了怎么办?

我...是来面前端的呀!

在校招面试这段时间里主要是对知识体系的补充。了解到一些之前从未关注的概念,然后快速的学习,如果理解不了的就先背答案。有了一定基础后,理解这些概念并不会太难。现在网上会有各种面经和文章,上面的这些概念恐怕已经问不住现在的毕业生了。现在的校招算法问红黑树,手写Promise,竞争是越来越激烈了。

以前问jQuery,现在应该就是问React、Vue框架了。历史在重复。

三、正式工作

正式工作之后,才发现虽然同样是写JavaScript,但是和以前个人操作是完全不一样的。

  • 上班的第一天就深刻理解了从没理解过的闭包,因为项目代码里全是闭包。一是为了限定作用域,二是当做对象来使用。现在有了ES6场景会少很多,最能帮助理解的就是节流函数和防抖函数了

  • 公司有自研的框架,涵盖了jQuery的功能,手写jQuery也能理解了。所以面试造火箭也不是没有道理

  • 代码规范,单引号和双引号,要分号还是不要分号,缩进用4个空格还是2个,团队大了,一起维护项目,这些都是需要约定的

  • 原来在人多的团队,SVN的分支和merge功能是这么用的,真香

  • 前后端分离、CDN,静态资源和动态内容不是放在同一个服务器,为了分流,CDN有好几个域名

  • 自动化的打包工具,代码打包压缩和分割都是自动化的,而这些工具都是团队里的大佬用Nodejs开发的,崇拜

  • 性能监控,1s打开网站、性能优化这些都是有KPI的

  • ajax和前端路由基本把Web应用的体验提升到极致

  • 安全相关,防止XSS攻击,输入和输出的内容都需要经过处理

  • 表单校验,正则表达式都是要根据需求自己实现的,再也没法从网上找到答案直接CV了

大部分知识,如果只是使用的话,其实没有什么学习成本,见过了也就知道了。

接下来就是一段做螺丝钉的经历了。经过了前面的学习和校招的磨砺,道理我都懂,但是真正在一个大项目里做了第一个功能,才发现,原来100行代码真的能引发200个bug...

总结

至此,就是一个专业前端开发团队的新力军了~

从小项目到大项目,流程的要求变高、方案要求变高、代码规范要求变高,性能的要求变高,用户体验的要求变高,需要解决的问题跟着变多,但是Web开发技术的基础并没有变,还是HTML、CSS和JavaScript。

关于本文

作者:Simba同学

https://juejin.cn/post/6953159480087429134

1. JavaScript 重温系列(22篇全)

2. ECMAScript 重温系列(10篇全)

3. JavaScript设计模式 重温系列(9篇全)

4. 正则 / 框架 / 算法等 重温系列(16篇全)

5. Webpack4 入门(上)|| Webpack4 入门(下)

6. MobX 入门(上) ||  MobX 入门(下)

7. 120+篇原创系列汇总

回复“加群”与大佬们一起交流学习~

【总结】1227- 干货!学会这几条经验对前端入门事半功倍相关推荐

  1. androidstudio学习总结_Android 开发工程师自述:2年的开发,我总结了7条经验

    全文共3547字,预计学习时长11分钟 "纸上得来终觉浅,绝知此事要躬行." "没有调查就没有发言权." "实践出真知." 古今中外,无数名 ...

  2. 使用XFLOW从入门到高级的20+条经验

    附赠仿真学习包,包含结构.流体.电磁.热仿真等多学科视频教程,点击领取: ​​​​​​仿真秀粉丝专属礼包 一.XFlow格子尺寸选择 很多同学对XFlow格子划分应该用什么样的尺寸比较头疼,尤其是XF ...

  3. 干货分享 | TOP3团队参赛经验:知识与实践融合,在试错中成长

    导读 在短视频如此迅猛发展背后,侵权问题却也愈发严重,由于互联网信息的开放与共享特性,数字产品很容易进行复制.传播.篡改,一些不法分子利用如今越来越简易的视频编辑软件,把原视频篡改后变为一个新视频发布 ...

  4. 10年开发,10条经验:怎样成为一名成功的开源开发者?

    作者 | 席时鉴 大江东去浪淘尽. Linus Torvalds创立的Linux无疑是开源史上最成功的例子之一.从1991年的一个个人项目开始,直到发展为现今的Linux帝国,Linus一直作为一名开 ...

  5. 提升代码内外部质量的22条经验

    2019独角兽企业重金招聘Python工程师标准>>> 本文主要关注代码的内部和外部质量,编程的价值观,代码质量的评估标准,整洁代码的匠艺以及如何维护已有的代码. 外部质量:用户所能 ...

  6. unity3d做会减少的血条_2019-2020年Unity3D——人物主角的血条-经验的显示.doc

    Unity3D--人物主角的血条 经验的显示 今天说一下人物主角的血量和经验还有人物等级金币的显示.? ? ???//主角刚出现的时候现有血量? ? public static int blood = ...

  7. 【转】从3个科技公司里学到的57条经验

    好文,这种文章就该收藏加转载! =============================================== 外刊IT评论网站上曾发表博文<从3个科技公司里学到的57条经验&g ...

  8. 我早年在Google学到的10条经验

     Matt Cutts:我早年在Google学到的10条经验 摘要:High Scalability创始人Todd Hoff与Google公司资深工程师.知名博主Matt Cutts深入探讨了在谷 ...

  9. 从3个科技公司里学到的57条经验(转)

    从3个科技公司里学到的57条经验(转) 外刊IT评论网站上曾发表博文<从3个科技公司里学到的57条经验>,此文是<57-things-ive-learned-founding-3-t ...

最新文章

  1. 机械转电子工程嵌入式方向靠谱吗?怎么上手学习?
  2. java返回值变为文件_Java 文件操作-File
  3. MinHook - 最小化的 x86/x64 API 钩子库
  4. 数据链路层差错控制——奇偶校验码、循环冗余码和汉明码(海明码)
  5. ASP.NET Core 生成验证码
  6. SpringMVC 、Struts的区别
  7. 【转载】dotnet 线程同步
  8. 生产环境CPU过高问题定位
  9. PHP 5 echo 和 print 语句
  10. 苹果5完美越狱_Checkra1n 越狱常见问题汇总
  11. 基于javaweb的晚会抽奖系统(java+jdbc+servlet+ajax+mysql)
  12. 如何对萤石云视频解码
  13. c# 使用正则表达式 提取章节小说正文全本篇
  14. sata硬盘系统迁移到nvme协议固态硬盘后开机蓝屏 蓝屏代码inaccessible_boot_device无限重启问题解决
  15. CVE-2020-25540:ThinkAdmin未授权列目录/任意文件读取漏洞复现
  16. 【数据统计】— 峰度、偏度、点估计、区间估计、矩估计、最小二乘估计
  17. POJ 3384 Feng Shui
  18. SCT2450,SCT2450Q,降压DCDC
  19. 对立统一(哲学与分析学)
  20. json单对象、多对象拼接方式

热门文章

  1. html ol li 数字点去掉,HTML 去除 li 前面的小黑点及 ul、li 部分属性介绍
  2. Activity生命周期及启动模式详解
  3. 新年找工作的注意啦:一般通用面试内容 收藏
  4. 从绿叶中窜出来的一朵朵红花
  5. 建议收藏|一文纵览主流 NFT 市场平台版税、服务费设计
  6. mysql空间函数汇总
  7. 张高兴的 .NET IoT 入门指南:(八)基于 GPS 的 NTP 时间同步服务器
  8. python学习 【序列】【列表】(day1)
  9. 全球区块链(智媒链)技术交流暨中国社区成立大会圆满结束
  10. SpringBoot - @Conditional