当前位置: 首页 > news >正文

从文科生到前端专家 - 在转行时我想过的问题

▐  在学习编程之前

在高中时,因为学不会物理和化学,我选择了文科,这也意味着计算机专业类对我关上了大门,不过在当时我也没有想到自己在未来会喜欢上写代码并以此为生。

现在回想起来,与编程有关的只有两件事情。

一是在繁忙的高中生活中,我一直订阅着《电脑报》,并通过它了解互联网的时事。二是当时的文科数学需要解一种流程图题,也是我最喜欢的题型,现在看来与代码流程其实是无异的。

流程图题

  从 C 语言开始

升学后,我就读的是人力资源管理专业。2017年初,大一上学期的期末考试刚结束,距离回家尚有一段时间,因为闲着无聊便上网络学起了翁恺老师的《C 语言基础》课程,随后就被带入到了计算机编程的坑中,至今尚未脱坑并越陷越深。

记得当时的我,在 2017 年寒假一个月的时间内。开始了每天听课,思考。然后把代码输进手机慢慢运行的过程(那时候还没有笔记本电脑)。当时最开心的就是图片的这一段代码,一次性编译运行通过。

  从“年轻工程师”到阿里前端技术专家

往后的半年中,编程的学习也并没有像想象中的那样顺利。学习进度停滞不前。我还清楚的记得当时的自己:“会用20门语言输出Hello World!”,“别人一周就能上手的 BootStrap 我学了四个月” 等诸如此类的事情。

偶然的一个契机,我找到了愿意带我写代码的同学,并磕磕绊绊的完成了第一次 Ajax 操作。那之后的我仿佛开窍了一般,编程世界的大门,终于向我敞开,任我探索和遨游。

直到有一天,我遇到了瓶颈。

2018 年的前端,技术日新月异,当时的我颇有一些手足无措,总觉得时间不够用。于是在参加当年的 JSConf 时,遇见了当时前端圈的名人贺师俊(Hax),于是便壮着胆上去交流了一番。

对话的内容我只记得个大概,在交流结束时我向贺老致谢,他回复我说:“学东西不要有那么强的功利心,而且对于我来说,能帮你们这些年轻的工程师就非常好了。”

在那时候我发现,对编程的兴趣已经托着我从学生过渡到大家眼里“年轻的工程师”了。时间一晃眼已经过去了 5 年,当年的学生,也从“年轻的工程师”蜕变成了阿里的前端技术专家,身份在变、环境在变、技术在变,只有对代码的兴趣没有改变。

  从 Node.js 使用者到 Node.js Collaborator

由兴趣驱动的源动力,往往是纯粹且不掺杂利益的,而在软件世界中,兴趣驱动与开源精神是高度契合的。

在 2020 年冬季到来的时候,我遇到了新的瓶颈,想学习更多 Node.js 的知识却不知从何下手。

这一次我的选择是参与 Node.js 开源社区的协作。我开始阅读 Node.js 的源码,解决 Github 上的 Issue 等。在事后提名 Node.js Core Collaborator 时,我统计了一下,两个月的时间内我一共提出了 50+ 的 Pull Request。

现在回头来看,这些与实际工作“无关的兴趣”,最终支撑着我走的更远,现在的我在 Node.js 架构团队,全职负责着 Node.js 的工作,个人的眼界也开拓了许多。

转行的那些问题

转行并非是一帆风顺的。在这个过程中,最常见的问题莫过于如下:

  1. 非科班的同学,能学会计算机吗?

  2. 计算机专业学了 4 年,你自学的能跟得上吗?

  3. 出来后能找到工作吗?

  4. 转行的过程中需要做什么呢

  5. ……

这些问题从我学习编程时,就一直萦绕在耳旁,时至今日依然会有同学找我聊天,然后再问出上述的问题。也是借着此机会,我写一下我的想法。

  非科班能学的会计算机 / 自学能跟得上吗?

答案是肯定的:“可以的,没问题的”。

说起来,我从未纠结过自己非科班的出身。在学习编程的伊始,我就想清楚了,如果想要成为一名优秀的程序员,科班 / 非科班的身份根本就无关紧要,真正的关键在于个人的学习效率与投入的时间。

而在大学中,我投入了大量的时间,平均每天编程 6h,这样的生活一直持续到毕业。而在毕业时,我已经完成了大约十几个项目,写过十几万行代码,也有一个十几万字的博客。

博客统计

大学时写的一个项目

Commit 记录

换言之,我也认为,如果一名非科班的同学,学过计算机的课程,写过很多行代码,也可以顺利的完成项目,那么他就是程序员。

  出来后能找到工作吗

答案也是肯定的:“可以的,没问题的”。

计算机编程就业环境还是很好的,并不会卡死专业,而是通过过往的经历 + 笔试/面试来决定是否录用你。所以不用太担心这方面的问题。

这个问题我之前在知乎也回答过,所以就不再重写啦,可以看下面的截图。

  转行的同学要如何学习呢

这可以说是社区每天都能遇见的问题了。但授人以鱼不如授人以渔,我说一下我自学新领域所使用的方法。

方法很简单:上知乎,搜索 XX 入门(如计算机入门,前端入门),就会出现一大堆提问,你需要的只是耐心读完其中高赞的一些回答,并归纳总结分析,大概心里就有数了。随后选择其中你觉得靠谱的高赞回答去学习即可。

许多提问的高赞回答其实都回答的很详细也很好,认准教程后跟着学习即可,学习的过程中你又会遇到新的问题,这个时候继续再搜索即可。

这个方法很管用,时至今日,我在学习产品、设计、演讲、游戏等新领域时都是这样做的,在尝试和摸索的过程中,你的自学能力也会得到提升。

  • 我的自学方式

我在刚学习前端时,幸运的在知乎上看到了大漠关于前端自学的回答。

后面我还经历了这样的一过程,我思考过三类问题,并且将他们列在一起:
1.哪些知识点懂了?
2.哪些知识似懂非懂?
3.哪些知识不懂?
接下来有了这样的三份清单之后,就能非常清楚自己知道自己,然后先解决第二个清单中的list,再解决第三个清单中的list。
最后建议,学习这个过程是不断渐进的,整个过程把握:多看、多想、多问和多做。这也是我自己的四多原则。如果你时间允许,多写写东西,总结自己的知识。现多看看规范。

后面也针对自己的情况,画了一张思维导图,把似懂非懂的知识点列了出来。

后面在寒假里针对这些问题重点攻关,并写成总结的技术文章。

2018 年的文章

目前来看,找到自己“似懂非懂”的知识,学习,总结,分享是一个非常有效的学习方式,有兴趣的同学也可以参考试试。

我也一直坚持,学习方案的重点在于学习效果,而不是方案有多复杂和多详尽,适合自己就好。

  转行的过程中需要做什么呢

这里我的建议是:

  1. 多做项目

  2. 多写总结

  3. 多打基础

首先我建议多做项目,比起打下“扎实的基础”,对于转行的同学,培养起对编程的兴趣是更重要的。不同于科班良好的学习氛围与节奏,自学往往对自制力的要求更高,这时候培养起对计算机的兴趣,能让自己继续学习写代码才是更重要的。

其次我建议多写总结,总结是一个非常高效的学习过程,如果你要把一件事情给讲清楚,那么首先一定要弄懂这个知识。自学计算机的过程中,多总结不仅可以查漏补缺,也可以让自己在回顾的时候多一份积累的感觉。

最终则是建议多打基础,转行计算机的同学,计算机底层原理,算法等知识接触较少,但这些却实打实的是基础,可以帮助你未来少踩很多坑的知识,因此在学习之余也可以多关注计算机基础知识(至于怎么学习,可以参考上面的回答)。

回头看转行

时光荏苒,回头看已经写了快 7 年代码了。

回头再看自己的转行经历,与其说是文科生转行学了计算机,倒不如说是自己发现了对计算机的兴趣,并持续投入至今。

最后免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 在这里插入图片描述在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 在这里插入图片描述

五、Python练习题

检查学习结果。 在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

相关文章:

  • 报告解读下载 | 12月《中国数据库行业分析报告》发布,精彩抢先看
  • web前端-javascript-初识 RegExp 正则表达式(说明,创建的语法,正则的test方法,邮箱正则)
  • Python通过Spleeter实现音唱人声(歌声)伴奏分离
  • 绿色高效办公,华为云桌面不可或缺
  • 检测未定义的对象属性
  • 上次面试跪在了Redis上,刷完腾讯云大神亲码的“redis深度笔记”,终面进腾讯
  • 攻防世界-宜兴网信办-inget
  • 解决电脑C盘空间不足,发现微信和qq文件占用了大量内存
  • 青少年等级考试【Python通关干货】(一级)
  • android 9.0屏蔽短信功能(短信发送开关)
  • 【数据结构进阶】红黑树【TreeMap TreeSet底层就是红黑树】
  • 并发编程学习(四):wait()、nitify()
  • React基础知识(事件处理、受控组件与非受控组件、高阶函数、组件的生命周期)(三)
  • 制作嵌入式根文件系统
  • js获取某一时间到现在的总时间以及svg图标统一管理方法的封装
  • 编程艺术之变成原则
  • 高品质蓝牙耳机排行榜,值得入手的四款蓝牙耳机分享
  • 车载以太网 - 初识DoIP - 01
  • Java -- OSS对象存储服务(Object Storage Service,简称 OSS)文件服务器
  • 【云原生 | 48】Etcd集群管理