现在,成为一个前端要求门槛有点高,不像后端那样你只用熟悉一两个框架就行了,而前端不是,再加上现在前端的变化太快、太多,作为一个刚入行又有想法的前端发现前端的水比较深呀,各位大神有什么好的建议。万望指教!
前端是这样, 后端也是这样子的, 其实学习哪门的语言都一样, 先浅后深的情况, 前端技术是更新比较快, 尤其现在 JavaScript 语言还在变的情况下, 其他的前端也在变, vue, anjular, react 都在变. 后端的语言 比如: php,<江湖里最好的语言> , 入门快, 但是做到最后, 需要学习的东西太多了, 更多的是深度. 程序员到最好其实就是深度和广度的综合. 所以最后的建议就是认准了就做到最好.要想狼叔一样.
祝好!
TS
@anziguoer 沉下心来,把基础的学好确实需要花很多精力,编程思想也不是一会半会就会,基础和思想最重要,需要不停的磨练,向狼叔学习。
- 你说反了,前端的门槛是很低的。
- 前端在技术层面,没有太多的深度。(这里的“前端”范围仅指实现页面效果)
- 前端最大的价值,在于“用户体验”,而这点,不完全是技术层面的事。
- 刚入行嘛,在你觉得自己无所不能之前,就不用多想这些啦。虽然第2点说前端没什么深度,但是还有很多人是够不到这个点的,这也不影响这个职业在市面上的需求。
@yszou 现在已经没有前端了。 几乎都是全栈,我一个前端什么都要做你敢信?
你的“几乎都是全栈”是从哪些公司来说的? 不要自欺欺人了,"全栈"是自我的修养,也有助于提高个人解决问题的能力,但是目前在国内,它对你找工作,或者升工资并没有直接的帮助。
前端的未来就在刷f5
@yszou 我的意思是现在已经很少那种纯切图写交互特效的前端. 基本上现在的前端都开始走向工程化, webpack react 模块化 一套走下来也不容易 .
为什么明明我HTML+CSS+JS这种简单语言就能写出一模一样效果的事 要这么复杂?因为可以方便维护和多人合作.
哪个方向和语言都一样, 入门简单深入难 .
就像很多人都会前端 但能写插件和框架就很少
楼主问这问题是因为他已经觉得前端是纯粹的写页面 ,所以才有瓶颈. 但如果将前端变成工程化 花样就多了 但无非也就朝向,让不会写页面或者水平低的人也能写出华丽界面.
你这个“全栈”的理解,很不“全”嘛,不过这不是重点啦。
但如果将前端变成工程化 花样就多了
变着花样,也是做页面。再怎么制造问题去解决问题,也不能改变这个本质。问题是,你玩得花再多,有人愿意为此付费么?
前端的独特价值在于“用户体验”,当然,到达这个层面之前,把页面做出来就行了。
@yszou 同个页面也是有性能和可维护性 代码可阅读性差距的
按照你这逻辑后台就更简单了还不如前台 增删改查 换着花样玩 还不用考虑浏览器BUG和兼容和各种安卓手机上分辨率的问题
后台除了性能你玩得再多,有人会因此付费么? 用户看得到么?
还有不是我说 不要小看这个做页面 你要不懂点东西不有点经验的话 在构造页面和页面性能方面会和熟手有很大差距
有些人写的代码复制过来照样能用 有些人就一堆BUG 有些人写的页面数据一大就卡得要是 有些人写的就是不卡 有些人代码清晰 别人维护看几眼就行了 有些人看了半天都看不懂 写页面也是有技术积累和技术深度的
大部分有些都能抽象成移动射击计分 为什么还要写这么久? 为什么PUBG比连连看还卡? 其实哪个语言或者任何东西都一样 深度是有的 只是你看不到 就像宅男不会想着去爬山一样,安心的在原地踏步吧.
你对比后端的几个问题,真的是基本的常识唉。
首先,“增删改查 换着花样玩” 这点没错,但是,这仅限于“应用层” 中的一部分,换句话说,这只是整个系统后端中的一部分的一部分。事实上,这部分在实现层面的东西还不如前端有技术含量。前端在技术上,胜过了这一部分中的一部分,这有什么值得说的呢。
后端面对的是整个操作系统,而前端面对的只是浏览器这个相对来说简单得多的环境。从某方面说,正是因为前端的简单才造就了互联网的今天。 退一步讲,哪怕只把后端的概念,限定在 Web ,应用开发,这个单一的领域,并且还假设面对的环境是可以忽略的,在这些前提下,我们说性能。
还有不是我说 不要小看这个做页面 你要不懂点东西不有点经验的话 在构造页面和页面性能方面会和熟手有很大差距
这里我们不纠结你说的“熟手”是什么程度的,也不纠结这里所谓的性能差距到底有多大,我们只说这些问题本身的价值。 为什么相较于后端的性能,前端的性能常常不为人所提及?因为前端的代码是跑在用户的机器上的。 你整个页面加载慢了1秒,影响的是用户体验。后端某个请求响应慢了1秒,即使每秒只有几十个请求,这个影响也是N个数量级的被扩大。直接的后果可能就是服务不可用。
所以,我也一直在说,前端的独特价值是“用户体验”。
后面看你也是在说性能方面的事,好吧,就按我上面的说 1 秒来看吧, talk is cheap , show me the code ,这里前端方面的同学比较多一点。
我自己,除了熟悉 jQuery 和 AngularJS ,对前端性能方面,基本是没什么概念的。
你设计一个场景,我来实现。然后,你再看看找个“熟手”试试,看能不能跟我比出 1 秒的差距来?(然后我们再看看这 1 秒的差距到底有多大影响)
结尾日常强调:我说的是前端独特的价值在于“用户体验”。工程化 我不认为有什么技术深度(做出 webpack 这样的工具是了不起,也有一定深度,但你要说这是前端未来的方向,你自己信就好,我对此也没什么好反驳的)。性能,也许有技术深度,但它没太大的价值(有多少人愿意为此给你付费)。
@yszou https://www.zhihu.com/question/40505685/answer/86898655 你可以看看朱建峰怎么优化页面后提高的性能 和没优化前提高了多少 大公司前端是只要写个页面就完事了? 那人人都可以去当 还有你说后端写不好服务器当掉我是认可的. 但按照你这道理前端写了一堆渣代码先不说页面有可能无响应加载卡和异步读取数据导致的逻辑bug,就说你多个几秒用户都跑光换竞争对手的网站了吧 .谁还管你后端有多优秀. 而且后端服务器,可以用金钱横行增加性能. 但前端想增加性能只能靠优秀的工程师写出优质的代码. 你说哪个难? 我认为后端难.完事. https://www.zhihu.com/question/40149352 https://www.zhihu.com/question/66167982 还有HTML5+CSS3+JS 是三门语言 如果不谈精通 那大多数语言都很简单,半吊子随便搞搞入个门就完事了 但深入呢? 先精通个看起来很简单的css,实现各种效果试试吧.
简单的网页制作谁都会,简单的数据交互大多数人也会 稍微跳出初级层次,就会发现前端编程和后端编程并无本质的区别。 还有一年经验和二年经验的前端写出来的东西差距很大 现在三年的前端应该基本上都能全栈了吧 百度对全栈工程师的定义: 掌握多种技能,并能利用多种技能独立完成产品的人。[1] 也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。
里面的优化手段:
- 优化手段1:合并请求
- 优化手段2:域名拆分
- 优化手段3:开启Gzip
- 优化手段4:开启KeepAlive
- 优化手段5:Minify
能不能给我一点有实际意义的,直观的,能体现你说的“性能”的例子? 你给的这个例子我觉得太没有意思了,能拿这个说,这是前端未来的方向?
但按照你这道理前端写了一堆渣代码先不说页面有可能无响应加载卡和异步读取数据导致的逻辑bug,就说你多个几秒用户都跑光换竞争对手的网站了吧 .谁还管你后端有多优秀.
按照我的道理,一个正常工作的页面也就是“做页面”,做出一个 不可能无响应,加载不卡,没有逻辑bug 的页面,我还真不认为是前端未来的方向。
而且后端服务器,可以用金钱横行增加性能.
没错啊。一方面,你能说出为了达到某种计算能力,需要多少资源配置,要花多少钱,这本来就是本事(能做到这点市价 30K 起吧,觉得我乱说的欢迎投简历 yeshengzou # gmail.com,工作地杭州)。另一方面,在保持性能不变的情况下,你个人的代码能力的影响,就可能直接作用是减少金钱支出,你还不明白为什么后端常提性能?
但前端想增加性能只能靠优秀的工程师写出优质的代码.
我前面已经请你设计场景,来验证你的这个观点了。 在你设计的场景下,我用 jQuery 和 AngularJS 来实现, webpack 合并压缩后,往 CDN 上一扔。我很好奇这中间还有多少性能空间。来试试啊。
https://www.zhihu.com/question/40149352 (纯html5+css能写出什么惊人的效果?) https://www.zhihu.com/question/66167982 (为什么 CSS 这么难学?) 还有HTML5+CSS3+JS 是三门语言 如果不谈精通 那大多数语言都很简单,半吊子随便搞搞入个门就完事了 但深入呢? 先精通个看起来很简单的css,实现各种效果试试吧.
你再次举了非常不恰当的例子。 知乎第二个链接,提问者写得太少而已,至于浏览器兼容性的问题,你要把这点作为一个好前端的标准,我也认(但我自己是不会去做的)。 剩下的也请你试着理解一下,我前面说过的 “再怎么制造问题去解决问题…” 这句话。 知乎第一个链接,和你“精通CSS”的问法,在我看来跟“一行 Python 代码能作什么事”一样,作为爱好者自娱自乐不错,但要说把它们看成是目标,看成前端未来的方向,就是误人子弟了。我 TM 为什么 一定要“纯HTML + CSS”来实现这个效果?就为了浏览器把 js 禁用掉的情况下页面还能正常显示?你自己信吗?
前端编程和后端编程并无本质的区别
是无本质区别啊,都是写代码嘛。关于这点,你想表达的是什么嘛? 退一步,我们再说“编程”本身吧。 前端基本就一种语言, javascript ,它是什么?先天设计不算充分的,动态的,弱类型的,异步的,偏函数式的,面向对象机制不完善的。这些每一点,都只是“编程”的“其中之一”而已,我以此来佐证我前面说过的“前端面对的环境相对是简单的”这一点。 当然,你可以说,作为前端,也可以自己去学其它语言啊(而且还有 typescript, coffeescript)。是,如果想以此来说明“前端环境不简单”,“前端也没那么多局限”,“前端其实技术上的深度跟后端是一样的,只是你个人看不到,不会学”,你自己信就好。
还有一年经验和二年经验的前端写出来的东西差距很大
首先,我们说“未来”,起码讲个 5年,10年吧。
现在三年的前端应该基本上都能全栈了吧
你就自己 YY 吧。(我不认为,也不认可加上个什么“工程化”就是“全栈”了哈)
要说把“全栈”作为前端未来的方向,可行。因为你接触后端以后,就无所谓职业的边界了。 但是目前市面上并没有很多为此付费的企业。啊,碰巧,我们部门目前愿意为此付费,招“全栈”开发,工作地杭州,国内知名大公司。简历请投 yeshengzou # gmail.com (这里“全栈”的意思不一定是要你用 nodejs 写后端哈) 如果我作为一,二轮面试官的话,可能会问这些问题:
前端:
- 左中右三栏布局,用 css 怎么做。
- CSRF 原理及防范。
- 跨域常用办法,局限,原理。
- 全浮动情况下,怎么把容器高度撑起来。
- 双向绑定 你怎么理解的,有哪些实现方法,局限。
- “服务器主动推” 有哪些实现方法,局限。
- HTTP 协议的报文格式,那些头各在什么时候作什么用。
- angularjs 怎么自定义 directive ,它的 ng-show 和 ng-if 有什么区别,什么情况下只能用 ng-if。(如果你熟悉 angularjs)
后端:
- 七层网络模型,是哪些,各层都做什么事,有些什么协议(尽量说,没有的可以跳过)
- 除了 HTTP 还知道哪些应用层协议,如果要写一个服务端,跟 HTTP 比有什么不一样的地方。
- Linux 怎么查看进程状态,怎么查看磁盘状态,怎么查看 IO 状态。
- Linux 的文件类型有哪些,除了普通文件,块设备,字符设备。
- 说说你怎么理解的 UTF-8 和 Unicode 。
- 说说怎么理解 ER 模型的,拿一个博客网站来说, ER 模型怎么处理,又怎么转化成关系数据库的表。
- 关系数据库设计中的范式你知道有什么,它们的意义在哪里,不遵循会有什么问题,一般在什么情况下不遵循。
- nginx 和 nodejs 之间,是通过什么协议通信的(如果你熟悉 nodejs),为什么前端要多加一个 nginx 。
- 域名解析中,常用的记录类型有哪些,比如 A 记录。
- 路由器和交换机有什么区别。
- nodejs 一个进程,一个线程,可以同时处理多个请求嘛,为什么。
很简单吧,欢迎简历 yeshengzou # gmail.com ,工作地杭州。
@yszou 我只能说 你觉得前端简单,可能没写过复杂的网页应用 还有还是那句话 稍微跳出初级层次,就会发现前端编程和后端编程并无本质的区别。
我没说前端简单,我说的是前端技术层面没深度。前端的价值在于用户体验,做好用户体验一点都不简单,但这不是纯技术层面的事。我已经重复这个观点 N 次了。 再者,讨论东西对事不对人,你针对我的观点说事就好了,扯我个人的情况干嘛呢。 你要是觉得“复杂的网页应用”是前端未来的方向,就拿出点实例,说,看,打开这个页面,这个页面老牛B了,市面上 80% 的前端从业者都做不出来。
@yszou
http://www.bootcss.com/p/layoutit/#
http://map.baidu.com/
http://xiuxiu.web.meitu.com/main.html
http://bookcase.chromeexperiments.com/
http://arodic.github.io/p/jellyfish/
http://acko.net/
http://www.effecthub.com/particle2dx
http://grantkot.com/sine.html
http://www.playmapscube.com/
去写 上面最简单的一个boostrap的可视化 简单吧? 写个吧 后端大神
还有一堆 我懒得发了
你能帮我解释下井底之蛙和夜郎自大词的意思么
还有现在稍微有点上进心并且3年以上的前端 应该已经是全栈, 可以独自一个人开发商城网站玩了.
(ps:全村工程师本来就是没什么技术含量的东西 一群人也是强行吹成神,这得多自信)
@yszou 写的不错 不过router和switch这个也属于后端吗?
那是“网络”的常识,一些做“支持”类工作的人都知道,对做“开发”的人来说,更应该理解吧。
去写 上面最简单的一个boostrap的可视化 简单吧? 写个吧 后端大神
那,现丑了? http://v.youku.com/v_show/id_XMzI5OTE2MTkzMg==.html
我觉得我能做出这个,应该算跳出初级层次了吧。 也许,轮到你了?
其它几个,地图的没做过,但是原理就是分了格子填图的,基本功能不难。
图形化的几个,我都做不了,这是领域上的差异,你放几个音乐类的出来,一样的。
以前有 Flash 时, Flash 方案具备一定桌面客户端的能力,图形化方面尤其突出,更是网页游戏方案的代名词。现在 Flash 没有,浏览器自己的 API 并不能填它的位置的,至少目前市场表现上没有,所以,游戏方面的图形化,我不认为是前端的方向。
但是,想到一点,数据可视化方面的图形化,这个肯定是前端的一个方向。楼主可参考。
你能帮我解释下井底之蛙和夜郎自大词的意思么
“还有现在稍微有点上进心并且3年以上的前端 应该已经是全栈, 可以独自一个人开发商城网站玩了."
@yszou ‘觉得’’ 全剧终 你就用你的觉得写个更简单的markdown 还有按照你这逻辑 那后端更简单 更没深入方向 增删改查 全剧终 蒙娜丽莎多简单啊 你看我这不都能画一个点了? 蒙娜丽莎也只是很多个点组成,以此类推我也能画出蒙娜丽莎?还觉得 达芬奇都要从坟墓里爬出来了. 有类输入个color:red 就懂CSS 写个网页 就懂前端 打个console.log(‘1’)就以为自己动js 把球丢入篮框就觉得自己能打NBA类型的人 你是我上面指的这类吧
按照你这道理还写什么vue react JQ不就完事了 我已经列了80%一打开就觉得很难的网站 下一步你是不是又要开始满地打滚继续验证前端简单了? 这样吧 你来当尤雨溪吧 你行么?
还是那句话 稍微跳出初级层次,就会发现前端编程和后端编程并无本质的区别。 牛逼的后端懂前端 牛逼的前端懂后端 引用知乎的一句话 有些工程师永远也成不了设计师。 但有些设计师本身就是工程师。 另外玩前端的玩到最后可能什么都会 但玩后端的说不定写个页面切换都要写半天 但睿智都是那种自以为什么都懂的井底之蛙.
多翻翻 https://cnodejs.org/topic/56ef3edd532839c33a99d00e 这些东西 验证下前端’简单’
我真是觉得因为我是个年轻人 气盛才和你说这么多 要是个老前端 估计就 “你赢了” (智者不会和蠢货争辩)