热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我的前端入门经历

前言大致想来,接触前端已有两年左右的时间,也曾迷茫过,所幸坚持了下来,也终于入门了。两年来看过不少书,接触过不少新技术,随着知识边界的不断扩展,也越来越感觉到自己的不足,还有更多的知识点需要掌握。

前言

大致想来,接触前端已有两年左右的时间,也曾迷茫过,所幸坚持了下来,也终于入门了。两年来看过不少书,接触过不少新技术,随着知识边界的不断扩展,也越来越感觉到自己的不足,还有更多的知识点需要掌握。平时,有不少人问我怎么学习前端的,一般我是不回复这类问题,不是不愿意,而是回答不了。因为自己也才刚入门,没有什么能力指导别人,还有就是不同的人有不同的知识储备和编程基础,总的来说就是各有各的情况,我的学习方法或许只适合我本人。这篇文章并不是为了指引其他小伙伴入门,仅仅是一个个人的阶段性回顾。

初始接触

最初接触前端还是本科时候,是大二还是大三业已忘记,学了一些HTML/CSS,并没有深入了解,毕竟年轻嘛!不知道学什么,什么又都想了解一点。只是感觉,自己可以用程序写出来一张页面是很酷的事情,做页面远比写C++代码有趣多了。硕士阶段,一个项目需要一个完整登陆模块,那个网站是ASP.NET做的,为此就学习了两个月左右的ASP,做了一个完整的登陆注册模块,算是对web开发有了一个粗浅的认识。一位师兄是前端方向的,导师也让跟着他学点东西,看他拿到了网易的offer,就感觉到前端还是很有前途的,就转向了前端。当时也没想着毕业后从事前端工作,仅仅是为了学点东西而已,对于未来择业还是偏向于事业单位或研究所。没想到接触的越多,了解的越多,越就喜欢从事这个行业。

知识储备

本人接触或学习一门知识或者技术,一般先把背景知识了解后,知道其应用场景及意义后才会进行系统学习,学习前端知识也是这样。先去w3school学习了前端包括的几大核心知识HTML/CSS/Javascript,当然也把网站上所有的知识点都浏览了一遍,包括PHP、XML等等。对web开发有了一个大概认知之后,就开始系统的学习前端知识。

在学习基础的知识的过程中,并没有忘记拓展自己的知识边界,也看了不少其他相关书籍。下面是一些书籍列表:

  • 《Javascript基础教程》
  • 《Javascript基础与实例教程》
  • 《Head First HTML与CSS》
  • 《HTM5与CSS3权威指南》
  • 《响应式Web设计 :HTML5和CSS3实战》
  • 《网页设计与配色经典案例解析》
  • 《超人气网站是这样建成的》
  • 《网站设计解构 :有效的交互设计框架和模式》
  • 《Web 2.0界面设计模式》
  • 《CSS创意课 :全球优秀交互页面设计》
  • 《响应式Web图形设计》
  • 《Sass与Compass实战》

在学习的过程中,为了练习网站布局,大致重构了HTML5中国、京东等网站的网页。

在掌握了一定的前端基本知识后,感觉Javascript是前端里面最核心的一部分,就把学习重心放在了Javascript上,看了下列书籍:

  • 《Javascript高级程序设计》
  • 《Javascript启示录》
  • 《高性能Javascript》

高级程序设计本书无疑是一本经典之作,讲解的非常全面、细致,但个人感觉并不适合初学者,因为里面有不少知识点并不是初学者可以深刻理解的。同一句话的含义对于资深程序猿和菜鸟程序猿是不同的,高级程序设计本书适合有一定基础的人阅读,最好读多遍,这样才能深刻理解Javascript语言本质。

对高质量代码的不懈追求是一个优秀工程师必备的素质,要想写出高质量的代码就需要对web性能优化相关知识有一定的了解,我就阅读了以下书目:

  • 《高性能网站建设进阶指南 :Web开发者性能优化最佳实践》
  • 《Javascript设计模式》
  • 《编写可维护的Javascript》
  • 《Javascript函数式编程》
  • 《WEB性能权威指南》
  • 《WebKit核心技术揭秘》
  • 《Web前端黑客技术揭秘》

很多招聘前端工程师的职位要求往往都会对后端知识储备有所要求,LAMP是很多公司的后台技术选型搭配,就学习了最好的语言--PHP,看了:

  • 《PHP与MySql程序设计》

代码是写出来的,只有多写代码,才能养成良好的编程习惯,写出高质量、可维护的代码,在储备知识的过程中不要忘记动手实践,只有在不断的实践才能不断的提高自己的编程水平。

项目实践

对于大部分在校学生来说,并没有多少好的项目让你去做,没有项目做也就不能积累项目经验。不少人做的第一个项目就是自己的个人博客,我也不例外。下面就是关于这个个人博客的一些经验:

这是一个闲来无事练手之作,也是对自己长时间学习前端知识的一个检验。从需求的分析、页面的设计,再到概要设计及编程实现,以及上线和测试,一个完整的流程走下来,对软件开发有了更深刻的认识,收获了很多。由后台管理系统和用户浏览页面两个部分构成。下面就详细的叙述一下这个博客所用到的一些编程语言和框架类库及收获。   

  • 前端实现

Javascript/HTML/CSS毫无疑问是必不可少的,在写Javascript代码时用的jQuery库,它是轻量级的js库,兼容CSS3和各种浏览器,jQuery使用户能更方便地处理HTML、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery给开发者提供了很大的便利,当然如果写的是一个复杂的应用或者调用很频繁的程序,最好还是用原生的JS写,毕竟最高效的还是原生的。推特的开源框架 BootStrap是一款很流行的前端框架,Bootstrap 让前端开发更快速、简单,本博客也使用了它。为对HTML进行更新时简化代码,提高代码利用率,还使用百度前端团队开发JS模板引擎。为了使博客的界面更加的漂亮,为博客注入一丝活力,也使用了粒子跟随插件。为了更好的管理博客,使用Datatables插件,以及一个所见即所得的基于BootStrap的富文本编辑器。

  • 后端实现

关于后端,本来准备学一点Node.js,把博客放在我们实验室自己的服务器上,但一想离开后就不容易维护了,就选择了PHP和MYSQL,这样方便在新浪SAE上发布。以前也看过一些PHP的教程,但没怎么使用过,很快也就把知识还给作者了。所以为了搭建后台,就选择了一款轻量级的框架-CodeIgniter。简单易学,很快就可以上手,对于新浪SAE上也有专门的优化。CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。这个框架很容易上手,想自己做一些网站的小伙伴可以学习一下,在学习之前最好对PHP和MYSQL有一些了解,从w3school可以了解一些基础知识。磨刀不误砍柴工,对基础知识有一定的了解之后,可以快捷高效的使用CodeIgniter框架,也可以避免一些低级错误。新浪SAE上的MYSQL版本较低,你在本地上创建的数据库可能不可以直接导入到SAE平台数据库中,这时候你就得自己动手从新创建了。 

还做一些其他的项目练手,比如老年卫视,钟表式日历插件,故事续写网站等。

新技术

一入前端深似海,有太多的知识需要学习,也有不少的新技术、新概念不断涌现。学习或者了解过less/sass、angular、node、react、grunt等,但于学生的我来说缺少一些应用场景,也仅仅停留在学过而已,只对其概念有所了解。

个人感觉对于新技术不要盲目,打好基础才是王道,无论是什么样的技术只有结合具体项目才有用武之地,不能人云亦云,一拥而上。我们要随着项目实践不断拓展自己的知识边界,而不是闭门造车。


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
author-avatar
mobiledu2502924027
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有