1. 关于前端转 Node 不知道大家有什么看法
Node目前来看,主要意义还是给前端做技术加成。单纯比后端的话,Node无论从技术水准,还是市场需求角度考虑,其实都不算太好的选择。
如果以其他后端技术为主(如JSP,ASP.NET等),并同时掌握Node的话,绝对可以起到加成作用。但如果仅仅掌握Node,而并不掌握其他后端技术的话,会发现很难找到工作。
这里顺便提一下Python。Node在市场上的情况和Python非常相似。。但无论Node还是Python,在培训机构以及网络论坛上都非常火爆。但无论就业市场,还是网络招聘,岗位却都少得可怜。这就造成了一个非常尴尬的局面。学习热度和市场热度存在强烈反差,培训机构与用人单位看待Node和Python的态度,截然相反。
为什么会这样?其实主要原因并不复杂,因为是动态语言。尤其JS,是标准弱类型,Python虽然有强类型的底层原理,但实际代码上的表现却与弱类型一模一样。扯底层原理没什么意义,Python的代码看起来,就是弱类型。。。。。而用人单位,基本都是以强类型静态语言为主。
为何如此?两个原因。。。。1,性能问题 2,可维护性
先说性能问题,就要先来分析下Node的技术面:
首先Javascript的性能,本身非常弱,非常弱,非常弱(重要的事情说三遍)。。。。但为何Node的IO却很快?
由于异步IO特性,所以Node虽然披着Javascript的马甲,但其实具体的IO工作,是由C语言实现的。什么是IO?就是读写文件。。。落实到工作中,其实就是操作数据库。。。
实现原理其实就是,当接受到IO请求的时候,JS就立刻唤醒C语言,之后C语言会开启一个新的线程,去执行具体IO任务,主线程并不会阻塞,所以JS依然继续向下运行,遇到新的请求,就再次唤醒C语言.........如此反复。
也许这么讲,并不足以说明什么。。。因为无论是狗厉害,还是主人厉害,能满足需求不就可以了吗?问题就在于,或许无法满足需求。。
这里可以做一个比喻,Node就像是《射雕英雄传》或《神雕侠侣》里面的傻姑。傻姑的武功不高,还是个脑残,按说根本没什么可怕之处。但无论全真七子还是裘千仞,甚至是欧阳锋,亦或是金轮法王。只要看到傻姑来了,却都不敢有丝毫懈怠。原因很简单,因为黄药师一定就在附近。但是有一次,遇到李莫愁,傻姑却被打成了半死。。。为什么?因为黄药师没来。。。
那么黄药师什么情况下会来?是遇到IO请求的时候,才会来。而进行逻辑运算的时候,则必须由傻姑独立应对。这就很尴尬了。。。
一般的公司网站,连访问量都不高,又怎么会有大量IO?访问量够高的一定是大型门户网站了,门户网站又怎么可能不涉及大量逻辑运算?这岂不是很矛盾吗?
如果你一直关注新技术的话,可能听说过近些年有一个叫.Net Core的新技术,跟Node相比,它一点都不火,也没什么培训机构教这个。但它在企业眼中却超火。。比如微信支付就是用.Net Core做的。VScode这个编辑器,就是专门为它准备的。。
放心,我在这里提.Net Core并不是帮它打广告,而是因为它跟Node的原理是一模一样的。唯一的区别,就是把JS换成了C#,如果Node是傻姑的话,那.Net Core就是黄蓉。。它俩的相同点,就是会把IO的工作交给C语言。。遇到大量逻辑运算的话,则自己搞定,C#依然不弱,而JS就直接跪了。。。所以同样的工作原理,同样的异步IO,一个还没火,立刻就被全套引入了腾讯的生产流程。。。一个已经火了很多年,却找不到招聘岗位。。。
这里除了性能之外,又会牵扯出第二个问题,强类型静态VS弱类型动态。。。。
Node真正靠谱的开发流程,是引入Typescript。理由也很简单,因为Typescript具有强类型静态特性。强类型静态就像汽车,而弱类型动态就像自行车。
汽车启动慢,操作复杂,必须遵守各种规则,还常常堵车。自行车学习简单,骑上就走,根本不用担心堵车。如果去菜市场买菜,初学者当然是觉得自行车舒服啊。如果不出远门,永远不会理解汽车好在哪?问题就在于,不实际参加工作,只是看教程的话,永远不需要编写大型逻辑,永远不出远门,就会永远认为汽车不如自行车。。。这就是为什么初学者都喜欢弱类型动态语言的原因。
真正关键的在于,可维护性。。。。比如你的项目创建了200个类,之后用这200个类,new出了1000个对象,一共写了10万行代码。。。。过了一个月,需要再次修改这个项目。你能分得清,每个对象是对应哪个类吗?去试着写个工作级别的程序吧,如果写过你就自然懂,否则说再多,也是多余的。。
简单概括一下吧。。。。Node需要搭配其他后端解决方案,SSH也好,ASP.NET也罢。因为没有什么项目,是只需要IO,而不需要逻辑处理的。。。。
还有,建议使用TypeScript,否则光靠ES6或者ES7的语法,你是写不出企业级项目的。。。即便是用了Typescript,你也照样需要搭配其他后端解决方案,因为编译完成之后,依然会变成JS。逻辑处理依然弱到爆。。。
其实说到底,Node主要还是个加成作用,傻姑单枪匹马闯江湖,会死的很快。。。
2. 走前端好还是走后端好
前后端薪资示例图:
职友集后端薪资
对于新手来说,前端可视化比较强,做的一些网页比较直观,比较容易上手,不过代码量比较大一些;相比而言,后端代码量比前端少,但比较抽象,需要编程者具有比较好的编程基础、代码审查能力和较强的思维逻辑能力,宏观把握自己的项目,才能实现最终的成品安全可靠能够满足公司的需要。
相对来说前端比后端更加容易入门和上手,学习资源会更多一点,理解难度小一点。
3. 前端适合女生学习吗
如今Web前端行业是一门吃香的技术,更多的人选择了Web前端开发工程师的职业。想要掌握Web前端技术的内容,能够达到企业的就业要求,需要付出更多的时间及努力。只要真正不断提升自身的技能,才能走更远。
如果你想要快速学习Web前端技术,专业全面的学习方式比较好,一般费用在2W左右,4-6个月左右。专业学习适合零基础的小白迅速成长,学习曲线先快后慢,也适合有一定基础的学员进阶学习,巩固知识的基础上,稳步进步突破职业瓶颈。
4. 对web前端开发的认识和理解,这个要怎么回答
WEB前端是由网页设计与制作发展而来的,随着工作的细化,需要有人完成美工图到网页的制作,从而出现了WEB前端开发这个词。WEB前端开发主要是使用HTML、CSS、JavaScript技术,将美工提供的美工图转化为网页。同时,需要顾及SEO以及后台的数据。WEB前端,相当于是一个连接美工、后台以及用户的中间平台。
5. web前端就业前景怎么样
在互联网行业,前端有WEB前端、HTML前端等,随着互联网技术发展,就业方向也有很多。web前端的就业方向有web架构师、web前端工程师、HTML前端开发工程师、网页设计师等等,前端的应用非常广泛。
放在网页中,它是网页UI交互;
-放在移动端,它是webApp;
-放在服务端,它是nodeJs;
-放在React,它是桌面应用;
-放在Ruff,它是嵌入式开发;
-放在webGL,它可以搞canvas类游戏;
HTML前端开发
与Web前端开发不同的是,使用HTML5不仅仅可以开发前端,还有网页游戏,手机APP,使用浏览器进行3D渲染等一系列建立在HTML5标准与搭载其标准浏览器上的开发,而未来可能会有更多的功能分支并入HTML5标准。web前端工程师
这个方向是目前从事Web前端开发的主要就业方向
Web架构师
薪资普遍比较高,技术要求高,掌握多种技能,包括:后端技术、DBA、Platform等等,甚至包括网站优化SEO技术。
数据方向
数据研发这个是在Web开发的基础上用数据附能,懂可视化的一定是有前端能力的,懂hadoop的一定java玩的溜,属于Web开发的拓展方向。
大前端方向
比如阿里,在大量实践rn和weex;由于公司内部安卓/ios式微,一定程度上,前端把ios和安卓收编了,统称大前端(还有node)。
图形学方向
前端自然是与图形学有千丝万缕的联系,除了上面提到了可视化,还有相关3d引擎的开发工作。做这一行要求也非常高了,图形学相关的算法,3d引擎的开发,这都需要图形学相关知识。
6. Web前端开发工程师有前景吗
web前端开发的发展前景很不错,学web前端开发推荐去千锋教育,千锋利用自身资源加强整合多个专业渠道和多种就业模式,为学员提供一站式就业服务,帮助学员提前一步实现高效就业。
Web前端开发需求稳定,前景可观。
1.Web前端开发市场火爆,经久不衰,人才需求量始终巨大,机会始终稳定。
2.Web前端开发薪酬变化呈上涨趋势,且本身也会随着开发经验提升而提升,前景光明。
3.Web前端开发有多个发展方向,就业方向广,岗位选择多,有更多的可能性。
4.Web前端开发未来发展前途好。随着5G时代的到来,在移动互联网领域将会出现新的开发场景,新的开发需求会给Web前端开发注入新的活力。
7. 论前端程序员, 是否可以创业
或许有的人看到这个标题的时候,会以为我是一个标题党。但是事实不是这样的。如今是一个“大众创新,万众创业”的新环境和新机遇。有太多的人都往创业这样的一条道路上不断的摸索,不断地前进的~~~
回过头来讲,作为一名程序员,一名前端工作者,我们又该以什么样的姿态去面对这样的一个话题呢。其退一步来说,借用别人的话说,只要您有想法,只要您够胆识,只要您有资源,只要您有钱~那您就可以大胆去吧~
有心的人会发现,其实创业不仅仅口头上的说的那么简单。刚才说了四个“只要”,那我想最关键的一点应该是后面那点吧。当然这也是我个人的一点看法。如果说您项目够好,还有造血的能力,那我想着也是可以的。项目本身的好坏,取决于这个决策人的想法和方向。如果方向和策略错误了,那可能导致满盘皆输。就以乐视为例。结果我想显而易见吧。不一定说贾总是错误的。但是只能说机遇和时间不对吧。(纯属个人看法)
那反过来讲,作为一名前端工作人员,是否复合创业呢。我想结果已经很明显了。答案是肯定的。要相信网络李彦宏和腾讯马化腾,他们都是作为技术出身的。那对技术出身的人员来说,本身有一个弱点,就是对于市场运营不够清晰。这点说重要也蛮重要的。所以这时候就牵扯到另外一个方面了。创业,不是一个人说了算。创业也是需要一个team来合作实现的。那作为技术出身的人来说,可能在运营和市场方面相对叫薄弱。那这个时候,就要找一些志同道合的小伙伴,一起为一件事,一起拼命的干下去。不留遗憾的干下去。这样的一个形式,我想至少是对的。
所以,我们现在就可以分析了,对于创业,我们应该做些什么。本身作为技术出身的人员,可能在技术领域相对出类拔萃的,但是在这个行业中,我们应该不断去结实各个领域的小伙伴,通过工作中认识和结交一些小伙伴。这些人员对于我们来说,都是一个资源。所谓潜在资源。对于后期,说定都可以用上哦。那结交伙伴是一个关键点。接着就是要对自己要做的领域熟悉,如果是不熟悉的领域,那切记不可盲目的实行,因为在创业的道路上再去摸索行业领域,那结果是惨败的。所以对于自己所要做的领域和赛道一定要够清晰,也要知道自己要做的是什么,为什么这么做,这样做的好处。这样做我们能到什么等等这些问题,我们都要去考虑。具备了以上的,我想是可以进行小尝试了。当然,我说的,只是一些很普通的点,而且也只是简单的几个点,远远还不够的。不够对于想创业,有着创业梦想的人,我希望大家可以先冷静思考自己,是否能达到这个“资格”。资格指的是“经验”+“资金”+“资历”等等。
最后我卖个关子,为下次要说的做个预告吧。
8. 你对前端职业发展有何看法
我对前端职业发展的看法如下:
目前,在很多公司,前端只是一个页面制作,他们负责把psd稿转为html文件,然后交给后台工程师套页面。如果还有哪个老板在这样组织他的队伍,那我想他正在做的产品一定不是什么好产品。这种做法,无视人的本性,把人的机器用。我相信任何一个前端都可以承担的更多,发挥更大的价值,他们需要的只是上级的肯定与信任。只要一个人真正热爱前端,我愿意给他机会让他承担的更多。可惜我不是老板。
比较理想的情况。前端的输入依然是psd稿,当然如果产品和设计能力不够,还可能需要前端参与交互设计。输出则是一个可以工作的模块或页面。前端直接从服务器模板(php,jsp)开始工作,前后端同学在开始工作前定好页面内应该种的变量以及ajax通信的接口,随后独立开发,最后连调测试。这种开发方式前端可以根据接口和数据结构来来设计页面的html结构和css结构,把冗余工作降到最低。同时也会让前端发挥更大的主观能动性,让枯燥的工作变的有趣。同时后台工程师,也可以更加关注底层算法与数据存储于通信的逻辑。
近十年,不断发生的一件事情就是,越来越多的软件开始在浏览器里运行。随着google和火狐的webos的发展,甚至在不久的将来,浏览器的api,会替代操作系统的 sdk 成为软件开发标准。随着html5的发展,浏览器里运行的早已不是简单的页面,而是复杂的web应用。前端工程师也早已不是页面制作,而是web应用工程师。
当然,也有一个让我比较担忧的问题,未来究竟是web时代还是app时代?如果是app时代,前端技术的价值可能会降低(虽然也可以使用前端技术开发app,但各方面都要比原生应用差很多)。我想,关于这个问题,也许就像“天下大事,合久必分,分久必合”一样。web与app会长期共存,此消彼长,互相促进。如果精力够,我还是建议前端工程师去学习下app开发。有一技傍身总是好的。
9. 为什么很多技术人员都觉得前端很简单
大多数前端工程师的知识和技能主要来自分散的学习和工作实践。在这种情况下,一旦学习方向偏离,可能导致基础薄弱,认识不清,难以建立完整的知识体系。而且,如果公司的业务简单,那么在实践中形成技术积累就更加困难。以上两个方面导致了其自身技术的停滞,目前处于初级阶段。
前端技术是纯逻辑的。你只要找出算法就行了。后端技术更加工程化。与前端技术不同,它具有很强的理论性,对每个问题都有明确的答案。对于同一问题,后端技术通常有多种解决方案和算法。可能没有统一的答案,甚至算法和术语的名称也不统一。一些后端还涉及计算机组成原理的知识。考虑CPU、寄存器、内存和指令集似乎要复杂得多。虽然它更复杂,但我不认为这意味着后端更难,它只是意味着有更多的知识点。但是,当你熟悉这些知识时,通常并不难。
10. 针对前端开发的一些看法
1、基础技能:html、css、JavaScript
2、CSS预处理:less、sass ...
3、针对DOM操作:jQuery
4、MVC框架:vue、react、angular ...
5、混合式开发:微信小程序、mui、uni-app、react native、ionic、Flutter ...
6、针对多终端开发:Taro ...
7:h5 游戏开发:白鹭引擎、unity ...
8:...
1、做好知识点分类(包括框架,基础知识,还有一些问题的解决方案等)
2、持续的维护(重要)
1、建议放弃收藏式记录(一些时候,收藏起来的知识点或文章解决方案等就相当于买了书丢进柜子里了,没有去做整理和学习,而且遇到问题时也比较难找起来)
2、每日通过工作,文章、各种自媒体等获取的知识,最好及时记录在笔记里,然后定期维护到思维导图里
针对学习方法每个人肯定也各有不同,但不管怎么说学习提升是一个漫长持续且枯燥的过程,希望大家和我共勉吧