注:本文采用意译而不是直译web
在我当初刚从事 web 开发的时候,有不少重要的事我并无事先了解。如今看来,个人不少指望都和现实有很大的差距。在这篇文章里,我会告诉你 20 件事情,这些都是在你准备开始或者刚开始 web 开发不久的时候就应该知晓的。这有助于你更好地正视本身的指望,同时少走一些弯路。编程
编程能够随时开始,并不须要学位。在互联网上你能够找到不少资源,尤为是一些基础知识。你彻底能够自学编程,同时求助于互联网。浏览器
刚开始学习 web 开发的你并无足够的知识能够解决当前遇到的问题,这很正常,但并不意味着你不能解决这些问题。学会谷歌是一项重要的技能,能够帮助你节省大量时间。服务器
有太多东西要学了。单看 JavaScript 的流行框架,就有:React,Vue 和 Angular。你没办法学习全部的框架,而且也没有这个必要。你只须要专一于你喜欢的或者公司目前使用的框架便可。框架
不少没有经验的开发者会写一些花里胡哨的代码,以此向其余开发者炫耀本身的编码能力。请务必不要这么作,你应该尽量地保持代码简洁。工具
根据个人经验,开发者对测试工做比较懈怠。大部分的开发者都以为测试环节不是颇有趣。毕竟,你是来制造东西的,不是来破坏东西的。
大部分时候你都会和截止日期作斗争。一旦意识到所剩时间很少,第一件应该放弃的事就是测试。尽管你们都知道这可能会致使很差的结果,但的确是这样作的。布局
软件开发中的时间预估一般都是不许确的。对于一个小小的功能,你会以为一小时内就能搞定,可是当你查看代码后,你会发现:要想实现这个小功能,必须重构大量代码。这样看来,一小时绝对是搞不定了。学习
刚开始从事开发的时候,你想作的只是修复一些东西。只要代码能够运行就够了。对于那些缺少经验的开发者来讲,能够运行的软件和运行良好的软件没有差异。但随着你成长为一名真正意义上的开发者,你将不得不面对之前写的旧代码,而后心想:“这些面条式代码真的是我以前写的吗?”好吧,在这种状况下你只须要作一件事:好好嘲笑一番,而后重构一下这些乱糟糟的代码。测试
调试代码是你的一个主要工做。写出彻底正确的代码是不可能的,尤为是在你经验尚缺的时候。缺少经验的开发者之因此须要花大量时间去调试,是由于他们不知道应该查看哪里,有时候他们甚至不知道应该找什么。最糟糕的是,大部分时候,这些 bug 是你本身形成的。网站
Internet Explorer,又名 Internet Exploder,将会让你由衷厌恶本身书写 的 CSS。即便是最基本的样式,在 IE 浏览器中也会崩掉。不少时候,你都会疑惑为何会存在这么多不一样的浏览器。对于浏览器的兼容问题,大多数公司采起的作法是只支持 IE11 或者更新的版本。
忙活了一天后,开发服务器或者版本控制服务器最后会关闭。若是你不是在本地写的项目,那你就没办法继续手头的工做了。这时候仍是喝杯咖啡休息片刻吧。
同事可能会和你聊聊最新的技术或者工具,虽然你频频点头以表赞同,但事实上你并不理解他说的那些东西。
编程就是知识的应用,没有必要记住全部的东西。你随时能够在网上找到资源,只须要知道去哪里找就能够了。作项目、积累经验,这些东西天然就记住了。
最重要的是,你要有足够的创造力。编程说白了就是解决问题,一样的问题能够用多种方式解决。创造力有助于你更轻松有效地解决问题。
你的大部分时间将花费在阅读上。从各类途径阅读并了解新的技术、最佳实践、工具等,时刻关注业界最新动态。固然,也不要忘了多看书。总而言之,阅读能够扩大你的知识面,作到与时俱进。
尝试让你的网站适配全部的设备是一件很烦人的事。设备和浏览器的种类数不胜数,总会有某一台设备的某一个浏览器没法正常显示你的网站。
调试很耗时间,尤为是在你不知道应该查看哪里、查看什么的时候。了解代码运行机制并掌握调试工具的使用,能够帮你省下大量时间。若是你但愿提升本身的调试能力,你能够了解开发者工具在浏览器中是如何工做的。
当遇到一个没法解决的难题时,你可能会求助于谷歌。大部分时候,你会在诸如 StackOverflow 这样的论坛获得有建设性的解答。但更多时候,只靠复制粘贴这个回答并不能解决你的问题。这时候,你的问题解决能力和创造力就显得尤其重要了。
在开始编程以前,你应该花时间找一款不错的 IDE。免费的也好,收费的也好,好的 IDE 将会让你的代码生活更加愉快。IDE 能够作到语法高亮,也能够展现语法错误。大部分 IDE 还提供了各类定制插件。
若是你以前习惯经过用户图形界面(GUI)工做,那么在刚转为使用终端的时候可能会以为不知所云。终端是一个强大的工具,能够比图形工具更快地完成任务。你应该学会熟练地使用它。
当你想要建立一些功能特性的时候,你应该先查看一下 GitHub 上是否已有相似的轮子存在。针对你想要创造的这个功能,可能早就有流行且稳定的库了。多看看一些文档友好且更新活跃的项目。若是你想要新增或者重写项目的功能,你能够选择建立 PR 或者 fork 项目。