当前位置: 首页 > 编程日记 > 正文

转程序员,都去写一写前端代码吧

转自: http://www.oschina.net/news/36972/programmer-write-frond-end-code

你可以认为我是一个极端的人,就像有许多人专注于自己的领域而不屑于其它“肤浅”的工作范畴一样。比如我见过不少认为做portal没有技术含量的 判定,做工程都是充满苦逼行为的言论,最近则还有那些“大数据”崇拜者的疯狂吐槽……我的极端则有些不同,我的极端在于我认为绝大多数优秀的程序员,都要 尝试多方面的事情。并不只有底层开发或者机器学习充满睿智的挑战,我做了几年网站,很难说这就是我最初的兴趣,虽然也在接触和学习其他的领域,但是依然觉 得,做网站仍旧充满挑战,互联网真是一个奇葩充斥的地方。

前端开发,则是这“多方面的事情”中的一个重要方面。潜心尝试过的人兴许会有这样的体会,这是一片崭新的世界,无论是理念、技巧,都有一种新鲜的感觉。如果你还没有尝试过,相信我,它会丰富你的视野,至少在设计和编码上,你会有崭新的认识。

JavaScript代码是存在诸多天生缺陷的,你可以找得到太多它的替代品和改进品。另一方面,它确实给了程序员很少的限制——如果你写过perl代码,你大概也深有体会,什么样的代码是自由的代码,什么样的代码是充满诗意的代码。 与之相对的大概是语法严格的Java代码,就像老实、规矩的孩子,他不会带给你多少破坏性,但是也没法带给你丰盈的代码美感。但是JavaScript有 N多类库,有足够活跃的语法自由度,有eval和prototype,还有那些动态语言的特性,你可以写出许多飘逸的代码。

另一方面,代码的自由一定带来代码层面规划和解耦的艺术。如果代码还处在漫山遍野全局var和全局function的温饱阶段,那么肯定是无法感受 到这一点的,而且在这个阶段也根本称不上会写JavaScript代码。有许多人说前端开发简单,如果只是把它理解成为“好上手”,或者说alert一个 字符串,改变一个div的颜色,那它还真是太好学了。再加上CSS的方便和简陋性让它连编程语言都算不上,而HTML又是容错性非常强的标记语言,所以你 可以很容易写出能看到效果的界面来。

写一个UI稍微复杂一点的产品代码,就会无比地感受到规划和解耦的力量。无论是HTML、CSS还是JavaScript,变量或者对象都是极易被 污染的,“模块化”显得举足轻重。在Java的世界里,你的武器很少,包、类、加载器又在你无意识的时候把这些繁琐的模块化的工作轻易化简完成了。但是写 前端代码的时候你发现需要自己去考虑了,比如页面的分块布局、CSS的继承树、JavaScript的绑定和匿名函数,还有那么多开源的库来帮助完成模块 化。

前端开发还可以帮助你成为最懂产品UI的程序员。程序员容易陷入使用各种技术去纠结实现的泥潭,但是却忽略了清晰、合理的用户需求。你写的界面,是 要去帮助用户解决问题的,无论是布局设计、配色还是行为回馈,都会始终帮助你专注于用户的实际操作。会写前端代码,可以帮助你容易地和用户沟通,快速地做 出界面原型,这比多少页胶片都强。少招一点美工和UI设计师,试着自己去设计界面,自己去切图和写样式,这些事情并没有那么困难,更何况还有 Bootstrap呢。:)

前端开发的过程中,你还可以感受到最快速的成就感和回馈。只需要一个浏览器,一个代码高亮的文本编辑器,好吧,也许你还需要一点帮助调试的小工具。 这就足够了,不用纠结在编译执行的过程,等待着应用的重启,不住地咒骂环境部署的繁琐。现在,你可以专注到你的代码设计和编写上。

前端开发应当成为工程师工具包中重要的一项工具。中国的程序员普遍“engineering”技巧丰富,学术领域显得差一些,但这并不代表工程技巧 缺乏价值。举例来说,你可以做出任何有意思、有价值的东西,如果你会写前端代码,可以自己做网站,你就可以不需要别人帮助,自己完成整个端到端的过程,不 管它是指你上线一个产品还是展示你的伟大成果。你真的可以独当一面。这也契合我所说的,程序员要做各方面的事情。

最后提醒一句,初涉前端开发,学习的材料很重要。就像VB会害了那些程序员新手一样(而且这一害就会影响很多年),前端的代码实在是太容易写烂掉了,需要筛选。

PS:看一看这个编程语言转换矩阵,就知道JavaScript有多大威力(图片来自微博@程序员的那些事):

程序员,都去写一写前端代码吧

转载于:https://www.cnblogs.com/meetrice/archive/2013/01/22/2871592.html

相关文章:

大数据之公开数据的价值

2019独角兽企业重金招聘Python工程师标准>>> 大数据按照访问权限来划分,可分为私有数据和公开数据。私有数据不是每个人都能够自由访问调用的数据,例如银行交易记录、抵押信息、医疗数据、通讯数据、电商交易数据等等。私有数据因其私有性&am…

UI培训教程分享:Ui设计的细节规范有哪些需要注意?

在职场中,有很多UI设计师是零经验的,都是刚学会技术就来入职的,与经验丰富的其他成员来说,新人一定要提高自己的工作能力,本篇UI培训教程为大家分享的是Ui设计的细节规范有哪些需要注意?希望能给大家在工作中带来帮助…

linux 安装输入法

IBus IBus是一个框架,支持多种输入法 IBus输入法安装和设置 IBus是一个框架,支持多种输入法。安裝IBus框架: 在终端输入: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 启用IBus框架: 在终端输入: im-swi…

记录在Spring-Boot中使用Fegin调用RESTfull的PATCH方法设置

使用了ZooKeeper,设置 spring.cloud.zookeeper.dependency.headers.enabledfalse 参考: https://github.com/spring-cloud/spring-cloud-netflix/issues/2550#issuecomment-353230054 http://blog.csdn.net/menggudaoke/article/details/77884674>如有…

【青少年编程】【四级】词语接龙

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

Python培训教程分享:有哪些值得使用的爬虫开源项目?

相信很多同学在学习Python技术的时候,都有学习到Python爬虫技术,爬虫技术在各大互联网公司都是非常常见的,可以帮助我们获取各种网站的信息,比如微博、B站、知乎等,本篇Python培训教程分享为大家整理了几个Python爬虫项…

apue学习之文件IO第二部分

学习apue课程已经有一个多月了,有很多知识点需要自己去总结: 下面是主要的几个函数的介绍: 1-stat()函数是获得文件的主要信息。在linux当中主要以一个结构体来保存文件的信息,其中每一个字段都代表着文件的一个信息量: struct stat {dev_t st_dev; …

LSGO软件技术团队招新

团队招新 LSGO软件技术团队(Dreamtech算法组)成立于2010年09月,团队主要从事地理信息系统、管理信息系统、计算机视觉等领域的应用开发,团队同时具有培养学生的重要职能,毕业学生分布在IBM、百度、阿里、腾讯、京东、…

java一个月日历

项目需要,获取当天之后的30天,并提示星期几(周几),写了一个工具类 /** 计算日期时间author shijing2015年8月10日下午2:16:09param date 传入的需要计算的日期param timeWay 计算方式(年、月、周、日&#…

UI培训分享:学UI设计需要知道哪些事情?

很多同学都想要学习UI设计技术,因为UI设计行业的发展前景非常不错,通过成为一名合格的UI设计师能够够更好的进入到互联网行业,那么学UI设计需要知道哪些事情呢?先来看看下面的详细介绍。 UI培训分享:学UI设计需要知道哪些事情? …

Web开发的那点事--数据持久层常用功能

CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) 数据持久层--4类功能 1.增加 增加一条记录-实体(有关联,没有关联) 2.修改 修改一个字段 修改多个字段 修改哪一列或哪些列:wher…

Dotfuscator代码混淆工具的使用

关于Dotfuscator,VS自带了一个社区版的源代码保护工具,不过它只有基本的混淆命名的功能。专业版功能很多,可以混淆流程,密字符串,加入水印,程序签名等。 工具/原料 Dotfuscator Professional Edition 4.9方…

【青少年编程(第24周)】Python-Turtle组队学习结营!

2021年08月01日(周日)晚20:00我们在青少年编程竞赛交流群开展了第二十四次直播活动。我们直播活动的主要内容如下: 首先,我们奖励了上周测试超过60分的小朋友。 其次,讲解了上次测试中小朋友们做错的题目。 最后&…

参加完Python培训后有哪些就业方向

很多学习Python技术的同学都是为了后面能够找到一个好的工作,对于大家来说了解了Python的就业方向,后面就可以根据自己的能力来选择对应的工作岗位了,那么下面小编就为大家详细的介绍一下参加完Python培训后有哪些就业方向? 参加完Python培训…

June:Datawhale开源学习小程序升级啦!

1. 开源学习小程序的使用 我们通过七个视频来介绍如何使用Datawhale开源学习小程序。 第一个视频:完善个人信息报名 组队学习报名前,请大家完善个人信息的填写,便于结课后证书发放。 切换到组队学习页面,进入当前营期&#xf…

mybatis-错误记录java.lang.ExceptionInInitializerError

今天刚学习mybatis,遇到了一个错误,纠结了半天的时间,所以将发现的问题和解决得方法写一下。 错误信息如下: java.lang.ExceptionInInitializerErrorat com.ibatis.po.TestSysArea.testInsert(TestSysArea.java:31)at sun.reflect…

解决ScrollView嵌套ListView高度的问题

2019独角兽企业重金招聘Python工程师标准>>> public static void setListViewHeight(ListView listView) {ListAdapter listAdapter listView.getAdapter();int totalHeight 0;for (int i 0; i < listAdapter.getCount(); i) {View listItem listAdapter.get…

UI培训教程分享:UI设计如何确定设计风格

在UI设计工作岗位中&#xff0c;进行设计工作的时候&#xff0c;UI设计师门需要对整体的设计要素进行把控&#xff0c;这样才能设计出优秀的设计作品&#xff0c;本期小编为大家介绍的UI培训教程就是关于UI设计如何确定设计风格&#xff0c;希望以下内容能够给大家带来帮助。 U…

32位汇编寄存器及汇编指令

32位CPU所含有的寄存器有&#xff1a; 4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器数据寄存器主要用来保存操作数和运算结果等…

RPC-client异步收发核心细节?

通过上篇文章的介绍&#xff0c;知道了要实施微服务&#xff0c;首先要搞定RPC框架&#xff0c;RPC框架分为客户端部分与服务端部分。 RPC-client的部分又分为&#xff1a; &#xff08;1&#xff09;序列化反序列化的部分&#xff08;上图中的1、4&#xff09; &#xff08;2&…

【青少年编程】【三级】病毒传染模拟程序

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

UI培训分享:UI设计行业常见术语有哪些?

学会UI设计之后&#xff0c;大家后面就要进入到真正的UI设计行业了&#xff0c;那么关于UI设计行业的常见术语大家也要做一些了解&#xff0c;尤其是新人&#xff0c;这对后面的工作会很多有帮助&#xff0c;本期UI培训教程就给大家介绍一下UI设计行业常见术语有哪些? UI培训分…

面试常用SQL整理

我们都知道面试的时候通常都会考数据库部分的知识&#xff0c;所以在此整理了下我们常用的面试中常用的一些查询语句SQL&#xff0c;本人测试数据库为SQL Server2008 首先在数据库中建立一个测试库&#xff0c;此处用DavidTest代替 数据表与相应测试数据 USE [DavidTest] GO /*…

【青少年编程(第25周)】隔离终于解除了!

2021年08月08日&#xff08;周日&#xff09;晚20:00我们在青少年编程竞赛交流群开展了第二十五次直播活动。我们直播活动的主要内容如下&#xff1a; 首先&#xff0c;我们奖励了上周测试超过60分的小朋友。 其次&#xff0c;我们鼓励刚刚加入学习的小朋友参加8月14日开营的&…

JetBrains大力推广Kotlin为哪般?

在之前一篇备受关注的文章“Kotlin与Java之争”中&#xff0c;Vasiliy Zukanov讲述了发生在Kotlin与Java之间的一场没有硝烟的战争&#xff0c;并认为企业从Java转向Kotlin可能需要付出更大的代价。最近&#xff0c;Vasiliy继续发文&#xff0c;对JetBrains大力推广Kotlin背后的…

哪些人适合参加Python培训班?

哪些人适合参加Python培训班?确实&#xff0c;不是所有人都适合参加Python培训班的&#xff0c;有一定基础的同学会选择自学&#xff0c;零基础的同学比较适合参加Python培训班&#xff0c;来看看下面的具体介绍。 哪些人适合参加Python培训班? 1、学生/零基础学员:如果你自制…

关于jsp页面中的pageEncoding和contentType以及html中的meta标签中字符集的设置(转)...

转载&#xff1a;《关于JSP页面中的pageEncoding和contentType两种属性的区别》 pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”&#xff0c;第一阶段会用pageEncoding&#xff0c;第二阶段会用utf-8至utf-…

JNI调用实例

1. 环境 Windows7-64Bit VS2010-32Bit JDK1.8-64Bit 2. 步骤 2.1 创建NativePrint类 public class NativePrint {public native void nativePrint(); } 其中包含一个native方法&#xff0c;这个native方法是通过C实现的&#xff0c;C的实现代码最终是生成dll文件&#xff0c;然…

【青少年编程】【三级】加法出题机

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

Python培训教程分享:Python异常机制

​ 在学习Python技术的时候&#xff0c;我们经常会遇到一些异常&#xff0c;例如导致程序在运行过程中出现的中断或退出&#xff0c;我们都称之为异常&#xff0c;大多数的异常都不会被程序处理&#xff0c;而是以错误信息的形式展现出来。本期Python培训教程就算教大家关于Pyt…