其他 咨询各位前辈一个关于发展方向选择的问题

Awlter1 · 2017年07月28日 · 最后由 Awlter1 回复于 2017年08月04日 · 8810 次阅读

2017.8.4 更新 谢谢各位的解答和帮助,最近也和一些其他行业的过来人聊了一下。最后总结成两个字:别慌。的确,想一想现在也没什么可慌的,谁在转行和面临重大选择的时候能 100% 知道要怎么办,未知的东西总是存在,不能一直享有安全感。

最近“复习”了一下当初我选择 LS 的原因,跟正在学习的朋友们分享。 学习那些不变的东西,而且所有学的语言和工具都是在解决问题,去提高自己用它们解决问题的能力。


我的背景

  • 本科电气工程,毕业两年
  • 想转行程序员,今年 27 岁
  • 之前没有计算机科学的基础知识及编程背景,去年开始,在 launchschool 上学习编程,了解这个平台的人应该知道这个课程很注重基础,我已经学了一年了,终于要开始学 rails
    • 后端基础是 ruby, sinatra, postgresql, 配有大量练习,学了 5 个月
    • 前端基础是 CSS&HTML, javascript, jQuery, 大量练习,学了 5 个月
    • 最近两个月一只用 backbone 整合前端的知识
  • 学习能力一般,需要在 6 个月能辞掉现在的国企工作
  • 每天学习 4 小时以上

问题

因为下一步就可以开始学 ruby on rails,我原来选择这个平台就是为了学 rails 的,但是现在有很多因素让我犹豫该不该继续学下去。

  • rails 的需求在慢慢变小(刚刚那个唱衰 rails 的分析我不知道是不是很有道理,看起来现在好多前端的框架可以代替 rails 后端的处理信息了是吗?),找不到一个好公司怎么办(这里我不是指薪水)
  • 作为一个初学者去做全栈或者后端,是不是需要学习的东西比前端更多,不易于精进
  • 考虑到学习的时间成本,和自己的学习能力,我现在感觉还没有比较熟练的掌握的此前学的前端知识,我把接下来 6 个月的全部精力放在学习前端是不是更有竞争力一些

由于现在不了解真实的就业市场是什么样的,还有辞职的压力,我甚至不知道学好 rails 或作后端以后到底有什么出路;所以还不如花更多时间在前端上把前端的东西学好?

未来六个月压力很大,转行,进入一个我完全不了解的行业,这对我来说是一个很重大的人生转变,我想辞职之后找一个有厉害的同事、氛围比较好的公司去实习,刚开始的薪水多少都无所谓,重要的能成长起来。但是我怕我要是没选择好,连个好公司的实习都找不到。所以现在心里有些笑乱,请各位指点。

劳烦了

标题要空一个格。

可以从兴趣考虑吧。单学前端也是可以的,关键把一门学精通。 要做持久战准备,不是一两年的事情。

chenge 回复

谢谢,改过来了。我感觉兴趣是培养起来的,由于编程对我来说是个崭新的领域,我目前还没有什么偏好。得慢慢来吧。现在不是被兴趣驱使着,更多的是被“恐惧”和“没有兴趣”所驱赶着。

请问,与单学后端比,单学前端真的是更好的选择吗,为什么?还是我应该咬咬牙坚持把 rails 学完,最起码对后端的真实世界有些基本的了解。

倒是不怕持久战,想赶快有能力上战场。特别想辞掉现在的铁饭碗,却又不能。请允许我稍微丧一点吧。

如果有稳定经济收入,可以考虑去培训班体验一下生活,作为自学的辅助手段,但是培训班有很多糟粕的东西,接触这些并不是坏事,通过自学的思考还有在 RubyChina 还有其他的高质量的社区或者专业书籍里获得的知识可以帮你识别这些糟粕,为什么那些事不好的。

Rails 衰不衰无所谓的,国内很缺 合格 的 Ruby 或者 Rails 人才,国内企业找不到合适的 Ruby 人才退而求其他技术方案,造成基于 Ruby 项目减少,这才是造成市场萎缩的原因。

对于 合格 的定义是之前几次关于培训班争论的主要矛盾点,另一方面 Ruby 在校园的推广力度不够,没有新鲜血液供筛选。

5 楼 已删除
jasl 回复

今天那篇唱衰 rails 的文章说的是国外的最大培训网站下架了 rails 的课程不是。所以 rails 真正的走下坡路并不局限于国内,而且文中说 rails 火起来是因为那时候没有什么好的前端方案处理业务逻辑?现在有 ember 或者 react 这些,自然就不火了。上面的我不太懂啊,就是转述一下。

我不明白的是,既然 ruby 和 rails 真在国内这么缺,为什么没有很多人去学习,包括大学生,来满足供求。包括培训班也都是 java 的更多嘛。缺合格的人才,让自己变合格不就行了吗?难道学 ruby 比学 java 更难变的合格吗?感觉不太合理。哪个环节出现问题了呢?到底是人的原因还是语言还是需求的原因?

我在海南,应该不可能有 rails 的培训班了😅去年差点去了北京,但是学费太贵了,而且得脱产。

最近在看王垠的博客,成熟的程序员们能快速掌握一门新语言的特性,感觉好厉害。我知道我最终是要掌握几门语言的,但是目前来说,我怕我没有那么强的知识迁移能力。工作之后我还要补数据结构和算法的知识,这个 launchschool 上有,也是吸引我的地方。编程是一辈子的事情,我已经做好准备,但我真的怕前几年的脆弱期出现大方向上的选择问题

5 楼怎么删了呢。。我感觉我现在就是编程界小学生水平啊,只能做那么简单的东西,怎么找实习啊。我觉得我现在最缺的就是对这个行业的基本了解,导致我没法做选择。所以来问问大家

Awlter1 回复

我没说 Rails 培训班,初学其实用啥入门都还好,只要还是业内主流的技术就好了。

Rails 不火的根本原因跟前端没关系,曾经 Rails 和其他语言的同类技术比,是代差,当年的 Ruby 解释器比现在要慢的多而且有很多致命的缺陷,这些都不能阻止一些人使用 Rails。现在传统 Web 场景这块的需求已经挖掘的相当透彻了,Rails 在这方面该做的都差不多了。同理,其他语言的相关技术也已经充分借鉴了 Rails 的优点,迎头赶上,甚至超越。那自然 Rails 的光环就越来越暗淡,Node 崛起确实也分流走了很多人(毕竟你写 Web,就不能不写前端吧。。。后端多少种技术,前端就一个 JS 啊,现在有人告诉前端,你们能写后端啦。。。想想多少人被后端了...),导致 Rails 市场萎缩是可以理解的。

另一个因素是 Web 的需求变化,重前端的后果就是后端需要做的事情变少(主要是在视图渲染上),Rails 丰富的前端机制就用不上了,同时框架本身包含了这部分逻辑,要裁剪还是需要一些功力的,不裁剪会浪费资源(性能)。另一个就是 HTTP/2 带来的实时的场景,这个 Ruby 目前没有太大作为(Rack 对 HTTP/2 支持的不够,MRI 的 GIL)

所以另一种解释不是 Rails 不行了,而是,成熟了。从成本考量,已经在用 Ruby 的系统,不会轻易切换到新的技术上,Rails 总会有需求,而且看论坛的招聘贴,前段时间技术交流少的时候,列表几乎被招聘刷屏,这并不像是萎缩,而是供小于求。

Awlter1 回复

每个人的情况不一样,我自己的例子可能不适合你,虽然我跟你也有差不多相似的经历。

做选择这个事,我个人觉得,很难做到最优选择,所以我建议去找实习,只有了解了这个行业,才能做适合自己的选择。其实找实习的过程,就是你认识和改造自己的过程。别人的建议可以参照,但是那是别人的人生经验。最后要说一句装逼的话了,Talk is cheap, show me the code.

如果你觉得你的代码写的不好,那就就继续写,多看看书,多刷刷 Leetcode, 各种 Ruby 在线解题的网站刷起来。

springwq 回复

我知道大家走过的路都不太一样,但我想听听大家的经历和建议。27 岁转行,LS 的学长的经历,这样的相似性我就更想参考一下了。不过最后做决定肯定是自己嘛

Awlter1 回复

哈哈。我建议你可以考虑转行,我也是差不多 28 岁转行程序员,编程几乎 0 基础(大学学了点 C),业余时间自学了两年,期间在 LauchSchool 学了一年多。

另外,最好找到工作后再辞职,经济实力雄厚的另当别论了。

以前没有成熟的方案的年代,人们不是推这个就是那个语言,当解决方案已经遍地、市场已经洗牌了之后,人们开始寻求更好的解决方案,然后新的解决方案有新的市场,然后继续洗牌,最后剩下的就那么几家。

上次我发的关于 TM(TextMate)是不是已经淘汰的相关讨论,其实也就是这样,自从 Jetbrains 以后、机器性能提升了好几遍之后,谁还会因为担心卡啦、慢啦去用 没有任何社区模块支持的 barebone 文本编辑器?

5 年以前还可以说用 Notepad++ 写代码,因为当初人类对编辑器的意识没有那么丰富。

不是还有一篇帖子嘲讽 如何退出 VIM?

我觉得前端在某些功能取代后端去完成,是更自然的事情,因为有些功能本来就应该前端完成,只是当年 ECMAScript 没那么强,但是随着 The Art of ECMAScript(这个词汇来自于 TypeScript 的视频)发展,后端有些功能真的就应该客户端来做,比如界面谁来确定的,肯定是客户端。

从很早以前,本来就应该是前端去确定界面的逻辑、功能,只是上个 Web 2.0 时代 JS 没那么强,人们更喜欢动态用后台提供的数据(HTML 形式)去构建界面。

就简单来说,10 年以前我上初中刚开始学网页制作喜欢用 document.getElementById(),有且只能通过 ID 筛选,虽然不同浏览器加入了自己的特性,但是在别的浏览器不兼容,就算你开发出一套库也要时间,总之就是生产力还上不去。

现在随便 querySelector $() 一大堆。。。我就不举例了。。。

我以前写过一篇文章,很多程序员是怎么来到这个行业的,很多都是为了淘金,淘完了转身就走了。

所以,如果你是打算淘金的话,建议你不要学习钱景不好确定的 Ruby 和 Rails。

在上一个年代(世纪),那时候很火的就是汽车维修技术啦、厨艺啦,但是坚持到最后的人有几个?

千万不要学半路就走人,不然你就不学,因为你没有诚意走完这条路,或者说你只是因为羡慕别人从这条路终点摘个果所以你去摘而已。

腹黑地讲:

如果已经深入泥潭的,发现走不回来的,我还是劝你别回来了,因为你还不如继续深陷下去,还能作为肥料养沃泥土,或许你还能成为个准专业人物,不然你要起身的话动作幅度太大,力气也要很大,而且上了岸你还要重走很多本来想走的路。。。而且或许你已经跟不上了。。。

也许。。。

这就是所谓“脱坑”的定义了,也难怪他们用一句“进坑容易脱坑难”把它说这么难。。。

如果你只是看到一些爱装逼的“自称”或者被人“冠以”大神的所谓某某某。。。

请务必正确选择自己的道路,不要被各种雕虫小技吸引,不要被某些“大哥大姐”拉拢,更不要随便叫别人师傅,除非你真百分百确认、永不后悔地打算一直走下去。

因为:

花花世界无奇不有,首先请了解你自己现在该做什么,然后请做你自己的事情,请务正业!(不要别人干什么你又羡慕什么又去干什么,别到时候一事无成一无所得)

我觉得你有两个问题,一个是目标大小,一个是目标太大。

目标太小是,“就是为了学 rails 的”。不管 @knwang 办 launchschool 的目的是不是这个,但我觉得你个人不能把这个当做目标,而应该是”学编程“、“学后端或前端开发“、”成为软件工程师“这类大一点的目标,而 Rails 只是通向这个目标一种途径,或者说能帮你找到工作的途径。人人都可能很快学会 Rails,但真正能够做实际项目、解决实际问题、抗住流量、做优化等等才是你应该想办法去掌握的。

目标太大是,你涉猎太广了。”全栈“工程师并不是那么容易做的,真正好的全栈工程师我很少见到。而且你也觉察到学很多东西比较吃力,特别是你还没有编程基础。我觉得你应该通过 launchschool 的课程快速找到自己想要专注的事情,然后钻研地越来越深入。如果你喜欢做用户交互方面的、喜欢调整各种页面,那你可能适合做前端;你如果更喜欢和数据打交道、喜欢研究底层网络、操作系统等等,那你可能更适合做后端。如果你都不喜欢,或者不能坚持下来,那你可能不适合做这一行。

另外,关于 Rails/Ruby 的问题,我个人观点是,学习一下还行,但你如果想用来做比较大项目的话,那千万别用。但是考虑到你的情况,如果你想做后端,最好还是坚持以 Ruby/Rails 为途径,更深入学习后端开发,然后找个不错的公司做做实际项目。等你已经比较熟悉了,再看看其他语言。等你能认识到 Ruby/Rails 的不足,知道怎么去解决,但知道有些很难解决的时候,你应该已经是个不错的后端工程师了。如果你想学前端,那就丢掉 Ruby/Rails 吧,这不是前端范畴的,你应该去看看 JS/React 等等,但前端也有很多工程上的问题,性能的问题要去解决。

至于公司的话,如果你愿意来上海,可以考虑我们公司,虽然比不过很多大公司,但起码有真实用户的线上流量和很多实际问题,而且 Ruby 还是在整个服务中发挥了很重要的作用,应该可以帮助你成为一个不错的后端工程师,而不仅仅是 Rails 工程师。 https://www.liulishuo.com/job-detail.html?id=4&entity=3

我上大学的时候,也纠结过学 C++ 好还是 Java 好的问题。新手总会问的问题:这个语言有前途吗?这个框架市场在萎缩吗?

后来发现这纯粹是杞人忧天,哪怕是最小众的 Ruby,从业人员也有几万到几十万,多你一个不多,少你一个不少。市场需求在减少是 HR 考虑的事,对你个人而言,关键看长期职业潜力,而不是市场要招多少人。

你的待遇是你的能力决定的,不是语言的热门程度决定的。Java 从业人员数百万,不会因为这个市场大热,Java 程序员工资就高多少。

tony612 回复

谢谢前辈的指点。既然您艾特了我的老师,我可能要多说几句,LS 很棒的,所有的助教和老师都很耐心,code review 也很及时,其实 LS 现在真的像一个学校一样,及其注重基础能力,mastery-based learning,告诉你底层的东西,框架是怎么来的,学那些经典的、不容易淘汰的东西,还有好多好多。。。后面的框架 rails 算作是选修吧。我在 LS 学了一年还像现在这样迷茫和不自信可能是因为我不是一个好学生。

我觉得我这个帖子并不和 LS 的理念冲突吧,总要面临选择什么的不是吗?我要是一个刚毕业的大学生肯定不会考虑那么多不是吗?我不得不考虑各种成本。我觉得我这个帖子应该不是一个简单的语言选择的帖子吧。

如果你都不喜欢,或者不能坚持下来,那你可能不适合做这一行。

其实关键就是这句话,喜不喜欢是要培养的,坚持不坚持下来是讲策略的,我现在就是在想办法让自己喜欢上一个方向,并想办法坚持下来。我就是想听听大家的想法然后做个选择和规划。我把我的背景、学过的东西贴出来也是希望大家能考虑到。

其实就是还没找到想要专注的方向。与其说不知道学什么语言,还不如说我现在不知道该怎么办。这是不是很严重,但是我必须得诚实的面对自己,然后找问题。

我对现在的真实市场环境真的不了解,您最后的意思是给我一个面试或实习的机会吗?流利说应该是个很好的公司吧!这样的大公司一般对我这种情况的实习生有什么要求吗?我得找时间把 ls 的后端基础课复习一下。。

springwq 回复

现在 LS 前后端基础课的内容巨多,学起来特别踏实,但是我总是学了后面的,就把前面的忘了,没有有计划的周期性复习,这可能是我的问题,战线太长了。但是以前做的练习多,捡起来也快吧。

我是真的不想现在就放弃,真的是期待了一年的 rails,但是我就是怕到时候会有三个因素影响到自己

  • 结课后对 rails 掌握很一般
  • 学完之后,需求小,找不到好公司实习
  • 我要想学其他的框架的话,从 rails 的知识迁移率会不会比较低

所以我现在就纠结到底要不要继续,如果继续了,前端的知识就没精力精进、趁热打铁了。

其实我挺不喜欢这样的纠结的状态的。我估计聊完这波我会滚回去继续学 rails,然后复习以前的东西,找个后端的实习。前端也行。。我也不知道。。。。

我回忆了下,我好像也是 27 岁转的行。😀

sefier 回复

我知道你的意思,LS 上也是这个理念,但是现在特殊时期嘛。不知道你能不能感受到😅

mingyuan0715 回复

27 岁看来很特殊啊。转行成功了吧,刚开始几年很苦吧。

jasl 回复

那我学 rails 是不是要学好多“没有用”的东西,但是能对后端发展有个比较好的理解?就像学历史一样。

我一直在刷那些招聘帖啊,感觉稍微知名点的公司都马上招满了啊。。

Awlter1 回复

嗯,我也跟 Kevin 有过几面之缘,很靠谱,也知道一些 launchschool 不错的学生,觉得 launchschool 已经是同类中很不错的了。真的是那句话,“修行靠个人”,你个人一定要找准目标和方向。

不知道的话就去了解就好了啊,比如考虑一个实际的后端问题和前端问题,解决完之后看你更喜欢哪个。我印象中 launchschool 的课程应该是一些实际项目吧,这样就很好啊,只是你需要的是更多深度,而不是很多重复的劳动。也可以和 Kevin 聊聊看,我相信他应该会给你很多不错的建议的。

我们招人有自己的要求,你如果感兴趣的话,可以邮件聊一下。

Awlter1 回复

你提到的“没有用的东西”其实还是主流。

前后端分离首先只是趋势,也不是所有的场景都适合前后端分离,前端工程化还远没有后端成熟(换句话其实整个后端这几年也没有什么特别新的思想引入了,不是不思进取,而是现有阶段问题解决的差不多了)

Awlter1 回复

你先需要有一门手艺,比如“会 Rails”,当你会用,能用它工作后,下一阶段是,“这个领域有哪些问题?“等你对这个问题有见解后,语言框架对你来讲就都只是工具了。

Awlter1 回复

你的这样纠结,我也能理解,我当时也差不多这种状态。所以,我说的你现在想的有点多,应该多做,多写代码。试想,每天为了完成一个 Feature, 修复一个 Bug 而绞尽脑汁,还会有时间去考虑这些吗?所以赶快动起手来。

结课后对 rails 掌握很一般

LanchSchool 的 Rails 的难度和深度都不低,多思考和多练习,应该能很好的入门。另外市面上也有各种 Rails 的基础教程啊,可以跟着练习。RailsTutorial 和 Agile Web Development with Rails

学完之后,需求小,找不到好公司实习

这个要看你在哪个城市了,北京 上海 深圳的话,需求还是有的,只要基础好,找到一份工作应该不难。另外也不要盯着哪些高大上的公司,只要适合自己的,能提高自己的工作机会都可以去尝试。不过 Ruby 确实小众了些,但是一般用 Rails 的公司都是比较 Cool 的公司,有的公司全部远程工作。

我要想学其他的框架的话,从 rails 的知识迁移率会不会比较低

据了解,好多别的框架都是抄的 Rails。

趋势难以逆转,自己多些独立的思考 😌

看了你的 github,好多 Python 项目,再加上本科电气工程的话,数学基础应该还是有一点的,要不尝试一下转转 AI?人工智能机会多,无责任瞎评。。。

PS:27 了,赶快找个妹子结婚生孩子。。。

一般我不知道该怎么决定问题的时候,会不断问自己一个问题,对我来说什么比较重要?一直不停地问,直到触及到比较简单的元问题上。这样虽然做出的决定未必是最好的,但是每一个决定做下来以后可以让自己安心得去做事,不再因为纠结而浪费时间。

对你来说重要的是:

我自己喜欢 --> 选择你最喜欢的这门技术,一直做下去。

收入高 --> 统计一下各初级岗位的工资,评估一下自己 Get 到最高薪资的岗位。

有技术氛围,能够提高 --> 只要自己能够找到的初级岗位都去找,选择一家自己认为项目和团队靠谱的公司。

只选择那个对自己最重要的选项,接受那个选项带来的其他负面问题,不追求完美。这样就能快速做出决定,把能量都用在具体的事务上面去。

jasl 回复

ruby 在校园鄙视链的底端坐的很稳😂

monkeygq 回复

可以理解,得呼吁有能力进入校园的公司多多宣传

jasl 回复

ruby 是什么啊?脚本语言。rails 能干嘛啊?web 开发。其实想想被鄙视也没毛病。。。

monkeygq 回复

很正常,Rails 很多优点我也是工作多年才有体会,我只能用我的朋友圈告诉同学们其实 Ruby 还是挺不错的...

jasl 回复

学校里面的项目很少有用 ruby 的,招 ruby 的公司在校园普遍也没什么吸引力,很僵硬。能否加大佬微信,感受一下朋友圈的鼓励~

monkeygq 回复

我的朋友圈都是晒吃喝四处玩。。。

jasl 回复

我可以理解为 各种 ruby 大老们在晒吃喝玩乐么 😂

pathbox 回复

体验世界也是一种修行呀!

jasl 回复

这说的对

妹妹你大胆的往前走

不要被那些唱衰 rails 的吓到吧,我做了两年的 rails 了(今年 24),可以很负责的告诉你,如果业务逻辑很复杂,没有哪个框架能比 ROR 更快的搭建出来

jasl 回复

谢谢您,明白了,我还是有些急躁,准备回去把 rails 学好。

springwq 回复

谢谢,的确是想的太多,自我怀疑之后就开始怀疑周围的一切。先把 rails 学好吧,一步一步来。

ericguo 回复

嗯。。能有个好妹子是终极目标。。

adamshen 回复

您说的对,我的确应该好好问问自己内心什么是我觉得更重要的。但在此之前总要有一定的输入来支撑我的分析,现在我对这个行业了解的太少了。学好 rails 后找个工作作为起点,以后一步一分析吧。

Awlter1 关闭了讨论。 08月04日 14:05
Awlter1 重新开启了讨论。 08月04日 14:05
Awlter1 关闭了讨论。 09月13日 19:28
需要 登录 后方可回复, 如果你还没有账号请 注册新账号