作为程序员,我将如何教育自己的孩子
人们都说,程序员的特性是闷骚、单身、宅。甚至有码农、程序猿等戏称。我们不拒绝,因为这是大家给予的Title,我们受宠若惊!
今天我想说的是,并不是每一个程序员都是死宅,并不是每一个程序员都闷骚,并不是每一个程序员都自己撸。我们不紧有着和其他职业人一样的生活,我们同样也有和其他职业人一样和睦的家庭。
当我们写下第一行“hello world”时候,就表示我们拜入师门。 我们有自己的祖师爷,是一个女性,她的名字是 Ada lovelace。 为什么我们第一行代码要用“hello world”,我不得而之。就像每一个门派的心法入门口诀一样,靠每个人自己领悟。 从今天的互联网发展来看,hello world就是在告诉新弟子,这是一个与世界接轨的行业,如果你固步自封,闭门造车,查资料不FQ。那么,你将无法与师兄弟们并驾齐驱,你将是那个死在沙滩上的前浪。
现在,我的孩子两岁了,他除了会吃喝拉撒以外。还会用padFQ看youtube上的视频,能够唱一些中英文歌曲,能够说一些中英文广告词。当然,一开始不是这样的,但是我没有刻意去教,而是从他喜欢的东西上来引导。
他很喜欢用ipad看视频,在他8个月的时候,他会用iphone看自己的照片和视频。随着年龄的增加,他慢慢学会走路,学会说话,有了自己的逻辑。有一天回家,我发现他在玩我ipad上的游戏,我以为是我妈帮他开的。后来才知道,是他自己玩的,我妈也不会用ipad。
渐渐的他迷上了优酷,喜欢小苹果,江南style。优酷上有许多广告,他也偶尔会蹦几句广告词出来。
有的朋友建议我禁止他玩ipad,说应该教他一些东西。我想,是应该教他,教他什么呢。数学运算就算了,特长培养也算了。那些看似高大上的东西,无非就是为了满足大人们的虚荣心。所以我想,从他的兴趣出发,他自己学会的东西,才是他最开心的。
我卸载了他的优酷和其他一些国产视频软件,下载了YouTube,设置为了美国IP,并把他喜欢看的加入到了收藏。这样一来,他想看自己喜欢的东西的时候,非常好找,当他想看其他东西的时候,都是英文的。对于他来说,接受一个东西用英文来描述和用中文来描述,成本是一样的。比如目前来说他知道红色是red,绿色是green,蓝色是blue,苹果是apple等。但是他知道篮球是皮球,鸭子是鸭鸭,猫是猫咪,狗狗叫汪汪。在他的世界里,他只需要一个名词而已。不需要知道中英文的对应关系。
但是youtube需要vpn才能够看,所以每次我都先帮他把vpn连好再出门。只是ios的vpn偶尔会断掉。就在使用youtube两天后,我发现他自己知道如果连不上了,就打开setting面板,点一下vpn的连结。
有时候,我会坐在他旁边用笔记本写一些测试性的代码。那天,正当我打算看几个webgl的示例的时候,他突然扔掉手中的平板跑过来看我的屏幕,叫着blue blue blue。当时我运行的是一个普通的phong着色shader。显示的是蓝色。我顺带问,what color do u want else? 他就说red red red,yellow yellow什么的。 我按照他的指示,改了shader代码,当他看到画面出现了他要的颜色的时候,就高兴地鼓掌。
我不希望他做程序员,因为程序员确实少了很多陪伴父母,陪伴老婆,陪伴孩子的时间。 但是我又希望他喜欢程序员这个职业,他的喜欢,表明了他对我的肯定和认可。
截止到今天凌晨,互联网上已经有大概 6 亿 8 千万张网页,而且依然在迅速增加。今天就来严肃地展开一下网页工程师的话题吧,关于他们的工作,关于他们的职业;关于 HTML,关于 Python;关于浏览器,关于这个世界。
周围有一些朋友的孩子也快要诞生了,将来可以考虑做个网页工程师呢~
每天的我们,在 (还算) 安静的办公室里,面对着电脑屏幕,忍受着窗外的喧嚣,随手点开浏览器,输入一段 URL,敲下回车键。有没有这样的体验,网站瞬间被打开了,高质量的内容,干净的布局和优秀的设计让你过目难忘。感到吃惊是吧?这一切都归功于一类人,网页工程师,所谓的 Web Developers 们,他们不仅负责网站的搭建和网页的编码,还负责各种测试分析,以及一切和网站相关的维护。
如今网页的重要性毋庸置疑,在商业上,好的网站已经是企业保持竞争力的重要环节。伴随着网页开发技术的日新月异,优秀的网站层出不穷,网页工程师对于自己的工作已经不能有半点马虎,成为一个好的网页工程师也没有任何的捷径。
但问题就来了,正在频繁迭代产品的苦逼创业者们,应该寻找怎样的网页工程师呢?想成为网页工程师却只是刚刚试水 HTML 和 JavaScript 或者刚刚开始了解 Python 和 Ruby 的童鞋,又应该如何规划自己的技术之路呢?
登录过智联前程大街猎聘周伯通拉勾等等网站,浏览过各类工程师在线课程,接触过网页工程师相关的招聘和应聘的,应该不难发现一个趋势,就是这群人被集中分成了三大类:前端工程师,后端工程师,全栈工程师。
前端工程师 Front-End Developer
和用户发生交互的那一部分叫做网页的前端,说白了它就是你在浏览网页时可以看到的所有东西,字体、颜色、导航栏、下拉菜单、滚动的图片,等等等等,这一切都是由 HTML + CSS + JavaScript 拼装而成,在浏览器的渲染下变得井井有条,很神奇的!
首先来了解一下相关技能和工具。
前端工程师主要负责网站面向用户部分的代码,以及用户体验相关的架构。一个前端工程师必须熟练地掌握三门基本的语言:HTML,CSS 和 JavaScript。除此之外,前端工程师还应该熟悉一些样式框架比如 Bootstrap 和 Foundation,和逻辑框架比如 Backbone,AngularJS 和 EmberJS,这些框架确保了网页在不同平台上的质量和稳定性。最后还应该能够熟练的使用一些基本的工具库比如 jQuery 和 SASS/LESS,这些能让开发更加高效,代码更加优质。
另外,很多招聘文案中都会要求求职者有 Ajax 的开发经验。Ajax 技术使用 JavaScript 默默地和服务器通信来动态加载网页内容,以实现无缝的浏览体验。虽然这不是所有网站都必须的,但这也可以算是前端工程师的基本功之一,毕竟 Ajax 技术如今也越来越多地被应用到了网页中。
有了前面说的这些技能,前端工程师就可以很好的和设计师合作,和用户体验分析师合作,把草图和原型开发成成品。牛逼的前端工程师还能精确的发现用户体验相关的问题,给出建议和解决方案,用代码来增强设计。一个好的前端工程师还应该能够和业务人员流利的沟通,明白他们的目的,理解他们的需求,了解市场上的机会,并且顺利地执行。
总之在后端工程师造好屋子以后,前端工程师主要负责房屋的内饰。至于房屋的类型和品位,这就取决于房屋的主人了。相比于后端,前端工程师一般来说更加满足于自己的成果,毕竟这是一份技术和创意相结合的工作。经验丰富的前端工程师不仅是一个技术人员,不仅是一个 Geek,因为他不仅实现了用户可以看到一切和可以交互的一切,还致力于给用户留下过目不忘的印象,所以他也是一个视觉达人。
那我们看到的网页是怎么来的呢?
再补充一下这个很多人都关心的话题吧,在网页开发过程中,设计师绘制 Logo 和图像,摄影师拍摄照片,文案编写文字,最后由前端工程师把它们组装在一起,用网页向我们阐释所有内容,用网页向我们提供独一无二的体验,把我们在网站上看到的所有内容变成可能。
后端工程师 Back-End Developer
新的问题来了,网页上的数据存在哪里?API 又是什么?
就像一间没有造好的屋子,光有室内装饰还是远远不够的。于是我们还需要后端工程师。网页的后端包括服务器,应用程序,以及数据库。这些组件相互作用,使用 API 和前端通信,确保了网页前端的存在。后端工程师的主要工作就是搭建和维护这些组件。
还是先来看看相关技能和工具。
相比于前端开发,后端开发的技术和工具比较多元。为了实现服务器、应用程序和数据库三者之间的通信,后端工程师通常使用 Python,Ruby,PHP,Java,.Net 等语言来编写应用程序,用 MySQL,Oracle,MongoDB 来查找、存储和修改数据,然后把它们部署到服务器上来为前端代码提供支持。在实际工作中,后端工程师至少需要掌握一个开发框架,比如 PHP 的 Zend 和 Symfony,或者 Python 的 Django;还需要能够熟练使用版本控制工具,比如 Git 和 SVN;以及了解 Linux 开发环境。这些看起来比前端开发枯燥多了!
后端工程师需要使用这些框架和工具来为网站编写优质的代码,有可读性,可移植性,有完备的文档。然而和前端工程师一样,在开始埋头编码以前,后端工程师需要和业务人员充分沟通来理解他们的感性目标,将其转换为技术需求,提出具有可行性的有效方案,来搭建技术架构。
优秀的后端工程师同样热爱自己的工作,沉浸在后端的他们从来不觉得无聊,反而乐在其中。他们喜欢玩弄数据,编写出有用的 API,按照不同的权限分配给网页前端、移动应用和其他系统,让前端工程师可以安心的沉浸在交互和布局中。通俗易懂的高质量的 API 受人尊敬,这就是后端工程师的价值所在。
我们怎样才能感受到后台的存在?
点击 http://qidlove.com 打开婚礼邀请函。此时 八音盒 的服务器会把信息发送到你的手机或电脑中,然后变成你所看到的内容。这就是后台工程师所做的事情。如果你向下滚动屏幕到最后,留下自己的姓名和祝福,点击发送,别人就可以看到你的留言,下一次你再打开这个网页,留言也不会消失,这些都多亏了后端工程师啊!
全栈工程师 Full-Stack Developer
说到这里,首先要明确一点,前端开发和后端开发并不是黑与白的区别,前端工程师和后端工程师之间也没有恐怖分子和反恐精英这样子的暧昧关系。在目前的经济形势下,在这个资源紧缺的市场环境中,前端工程师往往需要学习(至少了解)一些后端开发的技能,反之亦然。产品开发有很多通用的规则,跨越了前后端的界限,于是我们开始寻找一种通才。
它的由来?
全栈工程师自然很早就存在,但是 “全栈工程师” 的叫法诞生于 Facebook 的开发部门。四年前,有一类特别的人群被挖掘出来,他们的工作内容涉及到了技术架构(技术栈)中的每一个环节,包括前端和后端,他们可以和后端工程师一样在服务器端玩弄应用程序和数据,也可以使用前端语言控制页面内容和调节用户体验,他们能够提供一套完整的系统。
总之,全栈工程师是网页开发的全能战士。
感觉很酷是吧?成为一个全栈工程师,同时精通前端和后端开发,无形之中给自己的职业生涯创造了很多机会。不过也别高兴得太早,就和烹饪一样,有人更擅长热菜,有人更擅长甜点,精通两者需要时间和经验。妈妈的手艺可不是一日炼成的,更不是简简单单的按照食谱来做就行(事实上很多工程师依然在这样错误的做着)。一个好的全栈工程师和一个好的大厨一样,需要有自己的内涵,需要有所有的烹饪原料,需要掌握所有的方法,才能奉献上一顿完美的晚餐。
全栈工程师需要掌握的技能相对复杂,甚至有些主观,因为这不仅仅只是技能相关的需求,而且随着时间的推移,人们对于他们的要求也在一点点变化。除了要根据不同项目掌握前端和后端开发的相应技能外,全栈工程师还需要充分理解网页正常运行的每一个环节,不仅包括合理的服务器配置,规范的 API 结构,还要通晓 JavaScript 的哲学,以及 CSS 背后的设计情怀。
举个栗子,现阶段一个典型全栈工程师的装备,HTML5/CSS3 + Scala + MongoDB + 云服务 + JavaScript
有了知识和技术,就还差经验了,这也是最后一道门槛,全栈工程师尤其需要能够在一个项目面前,快速地定义前端开发和后端开发的职责,分析各种解决方案的优势和劣势,最终选择最合理的执行方式。
老问题,作为用户如何感知网站背后的全栈工程师?
这个我真的说不出来了,自己去感受吧,页面加载需要多久,内容布局是否专业,交互体验是否自然,等等等等。
最后说一句:
不要迷恋全栈工程师,任何时间,任何场合,都有一个 “大而全” 和 “小而精” 的选择,好的网站从来都不是一个人的功劳,不要忽略了设计师、摄影师、文案、产品经理、客户经理、销售、客服、用户、以及其他所有直接参与和间接参与到网页制作中的人们。识别优秀的工程师也并不一定只是技术层面的事情,无论是前端、后端还是全栈,工程师的自我修养还需要包括对细节的关注,自主学习的速度,解决问题的效率以及良好的沟通能力。
如果你是个网页工程师,那么恭喜你,你现在最不需要担心的就是找到一份称心的工作。事实上接下来五到十年是网页工程师最好混的时期了,HTML5 终于定稿,五花八门的屏幕的出现,跨平台应用的需求越来越高,微信至少还火热着,加油啊!!!