作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。
转载请注明出处。
原文:https://www.jianshu.com/p/a3d47eebd3b5
《Web探索之旅》全系列
内容简介
- 前言
- 什么是 Web 程序员?
- 如何成为 Web 程序员?
- 成为优秀 Web 程序员的秘诀
- 总结
1. 前言
大家好,经过上一课 Web探索之旅 | 第三部分第三课:协议,我们结束了第三部分。终于来到了【Web探索之旅】的最后一部分。
我们的第二和第三部分都略有难度,不过第四部分和第一部分一样,会比较轻松愉快。
这一课我们来聊一聊 Web 程序员,Web 的文化,如何成为一名优秀的 Web 程序员。
或许看完这部分,你会跃跃欲试,想要成为一名 Web 程序员也不一定。毕竟现在 Web 程序员还是比较吃香的。
2. 什么是 Web 程序员?
很多公司都有 Web 程序员,负责不同的部分,每个公司的 Web 程序员所做的工作可能大相径庭。要给出一个统一定义比较难。
不过,一般来说,我们可以将 Web 程序员(这些 Web 程序员都有一个共同的目的:维持公司的网站运行良好)分为几大类:
FrontEnd
Frontend 表示“前端”。一般我们所说的 Web Frontend 就是指“Web 前端程序员”。主要负责网站的外观,也就是“颜值”担当。一般精通 HTML,CSS 和 JavaScript 等客户端语言。
BackEnd
BackEnd 表示“后端”。一般我们所说的 Web Backend 就是指“Web 后端程序员”。与 Web 前端程序员配合,主要负责网站服务器端的编写和维护,也就是“功能”担当。一般精通 PHP,Java,Python,Ruby,C#,或 Go 等服务器端语言。
QA Manager
QA 是 Quality Assurance(质量保证。Quality 表示“质量”,Assurance 表示“保证”)的缩写。manager 表示“主管”。所以 QA Manager 就是我们平时所说的“质量主管”,他可以充当客户的角色,来使用网站。负责网站的正确运行,对网站的质量进行监控,如果有什么问题或有什么需要的新功能,会通知 Frontend,Backend 或 System Administrator 来处理。可以想象是一个医生,确诊网站的“疾病”,对网站的健康负责。
System Administrator
System 表示“系统”,Administrator 表示“管理员”。所以 System Administrator(简称 SA)就是我们平时所说的“系统管理员”。他就好像一个很厉害的老工程师傅,可以想象提着一个工具箱,到机房里去修修弄弄(当然其实并不见得是这样)。他保证 Web 的服务器可以正常运作,负责一些硬件的维修和管理,使网络畅通无阻,而且一般的 SA 都熟悉 Linux 技术,至少会用 Linux 命令行吧。
Full Stack
Full 表示“全部,完全的”,Stack 表示“栈”。所以 Full Stack 就是我们平时所说的“全栈程序员”或“全栈工程师”。他就好像一个“全能骑士”或者身怀绝技的“日本武士”,可以做以上四个职位的所有任务。当然,要成为全栈工程师是很辛苦的,因为什么都要会。少年,珍爱生命,还是“悠着点”吧~
Web 程序员的特质
每个 Web 程序员的性格,习惯和爱好都各不相同。不过我们可以试着概括一些 Web 程序员的共同特质,或者说那些驱使他们选择去这个公司而不是那个公司的因素。
喜欢解决复杂又新颖的问题:喜欢解难题并不稀奇,很多人都喜欢挑战自我,但是 Web 程序员还喜欢解决新颖的问题。如果一个难题很老套又很陈旧,那他们可能提不起太大兴趣。他们希望构建和维护的网站是新潮的,与众不同。不喜欢用别人用烂了的模版、样式。
不喜欢被约束,喜欢合理利用时间,不喜欢没效率的工作方式。如果看过《社交网络》这部电影,那你会注意到 Facebook 公司内部的工作环境是非常舒适,轻松,和谐美好的。诸多 Web 程序员吃住在一起,就像一个大家庭。而大家也许也知道 Google(谷歌)的工作环境也是很不错的,不是那种高压紧张的工作氛围,而是给你自己最有效安排工作的机会。
3. 如何成为 Web 程序员?
要成为 Web 程序员其实不难,这一节想要告诉大家的是:你也可以成为一个非常厉害的 Web 程序员。
听到这话,也许你会说“哪里哪里,我肯定不行的。这么多编程语言,这么多协议等,好复杂的。好的 Web 程序员不是我想做,想做就能做...”
但其实真的没有那么复杂。
你可以按照以下顺序:
学完这个 Web 课程(幸好我们已经完成了)。
学习 HTML5 和 CSS3 :这两门客户端的语言可以让你自己写一个网站,从零开始。
学习一门服务器编程语言:Java,PHP,Python,Ruby,Go,等。随你自己的意思选择其中一个来入门,选择你最喜欢的,用起来最顺手的,社区支持更好的。这些服务器端的语言可以帮我们产生 HTML 的网页。所以这也是先学习 HTML 的原因。
学习 JavaScript:虽然一般来说 JS 是客户端的语言,但是借助 Node.js 也可以实现服务器端编程的。而且 JS 可以使我们的网页变得动态起来,具有交互性。
学习 Linux 命令行:可以了解 SA(System Administrator,系统管理员)是如何使服务器正常工作的,如何与服务器交互。因为大多数服务器都使用 Linux 或者 Unix 系统。
还有几点,是在编程语言之外的,也很重要:
紧跟技术潮流:每天去 CSDN 等全国数一数二的大型编程社区,看看首页的新兴 Web 技术专题。如果不使用最新最好的技术,而死守一些老掉牙的技术,任你编程水平再高,也是没用的。
练习:经常编程。
热爱 Web 编程:如果你尝试了 Web 编程之后,发现自己不适合这门职业,或者这不是你兴趣所在,那么可以换个职业。不过,也有很多人是慢慢喜欢上 Web 编程的。所以不妨试试。
4. 成为优秀 Web 程序员的秘诀
要成为优秀的 Web 程序员没有那么容易,需要岁月的沉淀。但是也没有那么难,因为随着时间的推移,你自然就越来越厉害了。
但是心态一定要摆对,不必一上来就学习所有知识点,所有编程语言。一步一个脚印,把自己位置放对了。要成为优秀 Web 程序员,我觉得可以照以下几点来实行:
认识到你可以在任何年纪(只要不是老的不能打字)开始做 Web 编程,也不需要太在意你以前学过什么:有的人认为只有智商很高才能做程序员,错了,很多程序员智商并不高(比如我,哈哈哈)。有的人认为一定要很年轻就开始学习编程,才能成为优秀的程序员。错了,现在网上那么多好的教材,只要你愿意,有什么学不会呀。
认识到你最大的敌人是自己:我们常常抱怨说自己不可能做到这样那样,但其实是我们不够努力。Web 开发有那么难吗?我觉得真的不难,至少比嵌入式或人工智能简单。
用新技术,新理念装备自己:编程技术日新月异,Web 技术的演进更是快得超乎想象。保持一个不断学习,不断充电的好习惯,你会比别人走得更远。可能别人用老技术花很多时间做出来一个很慢的东西,你用最新技术分分钟搞定,而且运行还比他的快,人艰不拆啊。
学习英语:我一直觉得要成为程序员,英语不是必须的。但要成为优秀的程序员,英语真的大有裨益。看看网上优秀的论坛,教程,技术社区都是英语的,而且很多技术的文档和 API 没有中文版,即使有中文版,翻译的水准也是层次不齐,万一翻得不准确呢,那不是毁一生么。英语并没有那么难,比编程入门简单多了吧,就是反复,坚持。先把语法巩固了(好比英语这座大厦的钢筋混凝土底座),再丰富单词,增加阅读量,听力练习,分分钟(每天花少许时间)搞定英语。
使用一些好的工具:例如调试的好工具 Firebug(Firefox 浏览器的一个插件),Chrome 浏览器自带的开发者工具(更多工具 -> 开发者工具)。会让你事半功倍。
学会搜索:检索资料是一种能力,需要慢慢培养。其实 90% 的 Web 错误或难题,都可以通过百度或 Google(当然了,Google 比百度好很多)找到解决方法。因为通常我们的网页是会显示详细的错误信息的(对了,这些错误信息很多都是英语的形式,所以学好英语很关键,可以看我的这篇文章:对于程序员, 为什么英语比数学更重要? 如何学习 ),你只要把错误信息那句话输入到搜索栏,搜索一下,网上一般会有很多人已经遇到过这个问题了,分分钟解决。我一直觉得,搜索引擎是很好的老师,可以帮我解决大部分问题,根本不需要去 QQ 群,微信群,论坛,社区花时间问别人(这样效率不高),搜索引擎就是自己的老师。
5. 总结
Web 编程有很多种语言,但是我们不需要全部学习。只要学习其中的几样就够了。
Web 程序员可以是各个年龄段,只要你不是年幼得读不懂文字或者年老得文字读不懂你,就可以来学 Web 编程。
我们大可以尝试着来学习 Web 开发技术,一开始不需要太深入,如果你觉得这不是你想要的,大可以改行。“没什么大不了。你想改,就改吧,没有人会知道...”
实践很重要,把自己投入到 Web 开发中去,每天学习,每天进步一点点。
这个系列课程终于完结了!
大家辛苦了,一起加油吧!
其他系列教程和更多有趣的文章,请关注我的公众号查看~
我是 谢恩铭,公众号「程序员联盟」(微信号:coderhub)运营者,慕课网精英讲师 Oscar 老师,终生学习者。
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「向着标杆直跑」