Skip to content

四火的唠叨

一个纯正程序员的啰嗦

Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接
Menu

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

Posted on 01/19/201306/23/2019 by 四火

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

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

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

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

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

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

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

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

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

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

matrix

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

×Scan to share with WeChat

你可能也喜欢看:

  1. Bootstrap: New Net-volution
  2. HTTP 劫持
  3. 由后端来类比前端设计的思考
  4. 前端解耦的一个最简单示例
  5. 几道容易出错的 JavaScript 题目

15 thoughts on “程序员,都去写一写前端代码吧”

  1. Ruvell says:
    03/18/2015 at 3:43 PM

    I actually found this more entritaening than James Joyce.

    Reply
  2. coding云 says:
    08/29/2014 at 3:02 PM

    少招一点美工和 UI 设计师,试着自己去设计界面,自己去切图和写样式,这些事情并没有那么困难,更何况还有 Bootstrap 呢。从端到端的开发一个项目。
    非常赞同,目前我的网站就是 这样做的

    Reply
  3. Anonymous says:
    06/06/2013 at 9:49 AM

    大部分的观点都同意,只要是程序员就该多学学其他领域的知识,精了一门语言,学习其他语言会简单的多~但是这句话,我却很不赞同,“ 少招一点美工和 UI 设计师,试着自己去设计界面,自己去切图和写样式,这些事情并没有那么困难,更何况还有 Bootstrap 呢。”, 可以自己去学切页面和写样式,但是自己去搞设计的适用场景有多大呢?专业的设计师没有几年的磨练根本不可能成就。还有 Bootstrap,它有它的适用场 景,但不是万能的,甚至它只满足了一小撮人的需求。真正的互联网是离不开任何一个岗位的:开发,前端,设计,产品,交互等等,只有这样的团队才能搞出伟大 的产品,而不是自己玩玩而已~~

    Reply
  4. Heroic says:
    04/04/2013 at 3:10 PM

    认同的不是一点点

    Reply
  5. Anonymous says:
    01/31/2013 at 1:07 PM

    JS…, 刚开始学习, 你或许会和我一样恶心的要死, 但慢慢的你会发现它的神奇之处.
    对前端与后台的交互能有更清楚的了解, 比如 RESTful

    Reply
  6. lk says:
    01/29/2013 at 10:46 AM

    初涉前端开发,学习的材料很重要, 不知作者有没有可以推荐的经典教材?我是刚刚接触前端的新手。

    Reply
    1. 四火 says:
      01/29/2013 at 1:12 PM

      w3cschool

      Reply
      1. 燕子 says:
        01/31/2013 at 2:53 PM

        对于进阶学习有没有一些不错网站或都书?
        能否推荐一下呢?在此谢过博主…
         

        Reply
        1. 四火 says:
          01/31/2013 at 3:58 PM

          有一本书叫《悟透 JavaScript》,还有一本《Web 前端开发修炼之道》

          Reply
    2. wfy says:
      05/16/2013 at 5:40 PM

      codecademy

      Reply
  7. 晴刃 says:
    01/26/2013 at 6:24 PM

    正在学习前端相关的知识..HTML 基础开始.. 看到这篇文章学习了~

    Reply
  8. peter says:
    01/25/2013 at 10:19 AM

    大家现在一提到云计算,海量数据分析就膜拜大神之类的。看到做 web 前端开发就觉得很逊。。。无语 ing

    Reply
  9. 甄码农 says:
    01/23/2013 at 9:53 AM

    前端做好了也不容易,前端代码的需求量更大一些,需要经常的变动。而后端会相对稳定一些吧。

    Reply
  10. 张永吉 says:
    01/22/2013 at 10:31 AM

    经常看您的文章,学到了很多,很受益,不介意在博客上推荐您的文章吧,表明出处的。加油!

    Reply
  11. yutiansanshou says:
    01/19/2013 at 8:57 AM

    虽然现在的工作主要是集中在服务器端开发,但是回想刚刚进入公司的时候正值新产品原型开发阶段,需要把美工的设计图转化成 html 静态页面(当然包括 CSS 和 Js 了)。其实后来发现不仅 JS 是面向对象,其实 CSS 也是类似(多用组合、少用继承),里面的门门道道太多了。我想说的是这段前端开发的经历确实对我后来转到服务器端开发以及规划和设计产品都是非常的非常有帮助!最后说到产品设计,程序员设计出的产品与美工的思路真的不大一样,当然不可否认从审美以及配色的角度看程序员确实要比美工差一些(但是这是可以补的),但是如果从如何设计出符合用户期望的产品来说,美工差的就不是一点半点了

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

订阅·联系

四火,啰嗦的程序员一枚,现居西雅图

Amazon Google Groovy Hadoop Haskell Java JavaScript LeetCode Oracle Spark 互联网 亚马逊 前端 华为 历史 同步 团队 图解笔记 基础设施 工作 工作流 工具 工程师 应用系统 异步 微博 思考 技术 数据库 曼联 测试 生活 眼界 程序员 管理 系统设计 缓存 编程范型 美股 英语 西雅图 设计 问题 面向对象 面试

分类

  • Algorithm and Data Structure (30)
  • Concurrency and Asynchronization (6)
  • System Architecture and Design (43)
  • Distributed System (18)
  • Tools Frameworks and Libs (13)
  • Storage and Data Access (8)
  • Front-end Development (33)
  • Programming Languages and Paradigms (55)
  • Testing and Quality Assurance (4)
  • Network and Communication (6)
  • Authentication and Authorization (6)
  • Automation and Operation Excellence (13)
  • Machine Learning and Artificial Intelligence (6)
  • Product Design (7)
  • Hiring and Interviews (14)
  • Project and Team Management (14)
  • Engineering Culture (17)
  • Critical Thinking (25)
  • Career Growth (57)
  • Life Experience and Thoughts (45)

推荐文章

  • 聊一聊分布式系统中的时间
  • 谈谈分布式锁
  • 常见分布式系统设计图解(汇总)
  • 系统设计中的快速估算技巧
  • 从链表存在环的问题说起
  • 技术面试中,什么样的问题才是好问题?
  • 从物理时钟到逻辑时钟
  • 近期面试观摩的一些思考
  • RSA 背后的算法
  • 谈谈 Ops(汇总 + 最终篇):工具和实践
  • 不要让业务牵着鼻子走
  • 倔强的程序员
  • 谈谈微信的信息流
  • 评审的艺术——谈谈现实中的代码评审
  • Blog 安全问题小记
  • 求第 K 个数的问题
  • 一些前端框架的比较(下)——Ember.js 和 React
  • 一些前端框架的比较(上)——GWT、AngularJS 和 Backbone.js
  • 工作流系统的设计
  • Spark 的性能调优
  • “残酷” 的事实
  • 七年工作,几个故事
  • 从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
  • 一道随机数题目的求解
  • 层次
  • Dynamo 的实现技术和去中心化
  • 也谈谈全栈工程师
  • 多重继承的演变
  • 编程范型:工具的选择
  • GWT 初体验
  • java.util.concurrent 并发包诸类概览
  • 从 DCL 的对象安全发布谈起
  • 不同团队的困惑
  • 不适合 Hadoop 解决的问题
  • 留心那些潜在的系统设计问题
  • 再谈大楼扔鸡蛋的问题
  • 几种华丽无比的开发方式
  • 我眼中的工程师文化
  • 观点的碰撞
  • 谈谈盗版软件问题
  • 对几个软件开发传统观点的质疑和反驳
  • MVC 框架的映射和解耦
  • 编程的未来
  • DAO 的演进
  • 致那些自嘲码农的苦逼程序员
  • Java 多线程发展简史
  • 珍爱生命,远离微博
  • 网站性能优化的三重境界
  • OSCache 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • Ticket: TRANSACTION 1.922915 BTC. Go to withdrawal >> https://yandex.com/poll/enter/BXidu5Ewa8hnAFoFznqSi9?hs=20bd550f65c6e03103876b28cabc4da6& on 倔强的程序员
  • panshenlian.com on 初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow
  • panzhixiang on 关于近期求职的近况和思考
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme