阅读 11465

一枚19岁程序员的自学之路 | 掘金年度征文

今天的努力只为未来,始终坚信努力与回报成正比🧐

前言

各位掘友们,大家好。我是神奇的程序员,2019年已经接近尾声,很开心,能在掘金上分享自己在2019年的收获,讲一讲自己的经历,聊一聊自己为什么要走编程这条路,分享下自己的学习方法,帮助现处于迷茫中的开发者找到编程的乐趣。

一切的起点

时间回到2015年3月份,我在我们当地的一个学校读初三,当时的我已遭受校园暴力1年,被孤立,被挑衅,精神饱受摧残,而我无计可施。后来虽然父母不同意我的决定,但是在我的纠缠下,最终家里人还是忍痛让我选择放弃中考,休学去了职高。

在职高的那段时间,融入了一个新的环境,没人知道我的过往,便将自己彻底释放开来,交了很多朋友,和他们吃喝玩乐,不无自在。

2016年1月份,因为学校放假早,和两个朋友不想太早回家,选择留在县城里瞎混,在一个商场的餐馆当起了服务员,干了5天,老板让我们去库房搬一些东西过来,东西有点多,很多大件物品,我那两个朋友就不想干了,直接跟老板说我们是服务员,没有义务帮你们干这些事情吧,然后老板说让你们干你们就干,不想干就走人,然后我们脱掉工作服大摇大摆的走了。

当时家里给的生活费也花的差不多了,身上总共剩20多块钱,那两个朋友说,既然都出来了,就不要向家里人在要钱了,自己能解决的事情就自己解决,受他们影响我就没有向家里人要钱,那些钱支撑我们3个人度过了3天时间。那种饥肠辘辘的感觉我现在还记忆犹新,也第一次感受到钱的重要性以及父母挣钱的不容易,最终身无分文撑不住了,选择了回家。

回家后,想了很多,自己不能在浑浑噩噩地在职高瞎混了,这样下去毕业后,啥也不会,等待自己的灭亡,可能为了生存,选择进厂或者去当个服务员,这不是我想要的生活。

在职高我读的计算机专业,当时选择这个专业时,完全是因为电影影响,看到那些黑客,特别佩服他们,就心想:有朝一日我也要像他们那样厉害,可以写软件出来给别人使用,但是在学校,老师没有教任何跟编程有关的东西,就教一些office的基本操作,PhotoShop的使用,flash动画制作,硬件维修,全是自己不感兴趣的东西。

当时就开始百度找编程的相关资料,从哪里开始学,好多内容都指向了C语言,然后就在京东搜了下C语言相关的书籍,买了排名第一的《C语言从入门到精通》,家里没有电脑,就一直看那本书,看了一个寒假,学到for循环那里,看着书中的例子,太烧脑了,完全看不懂,到学校后,就开始折腾,在学校的电脑(win7系统)上,安装书中所说的VC++6.0的软件,找了很多资源,耗时好多天才把软件装上,然后就照着书中的Hello,World示例,开始敲,折腾了1周左右,代码和书上的例子核对了无数遍,一模一样的代码啊,就是跑不起来,最后失去了耐心,不写了,for循环看不懂,后面那些指针更看不懂,最终放弃了,就硬着头皮听学校里安排的那些课程。

踏入编程世界的大门

  • 亲戚的提问

    时间来到2016年7月10号,去亲戚家,被亲戚问到现在在哪里上学,我回答后,亲戚说:这学校可不怎么好,里面全是一些混日子的人,我们隔壁就有个娃也是跟你一个学校,学的也是计算机,现在24岁了,还一事无成,你当初咋不好好中考,上个高中啊。面对他的提问,我笑了下跳过了这个话题。

  • 下定决心找个新环境

    回家后,想到亲戚的那些话,心里越来越不舒服,想找个学校专门教编程的学校,然后就百度搜关键词,联系了排名在前面的某华和某鸟,然后就咨询,然后就跟我爸妈说了我的想法,最后得到了他们的同意。

  • 某华和某鸟之间的选择

    在某华和某鸟宣传讲师鼓动下,最终选择了某华,原因是:某华打电话过来说,他们快截止招生了,就剩最后几个名额了,考虑好的话就赶快来学校报名,时间不等人。

  • 入坑某华

    2016年7月16号,来学校了解情况,被接待老师一番忽悠,最让我信服的一段内容是:第一年教C语言,第二年教Java,第三年学校安排我们去大公司实习,最终交了学费,第二天开始正式上课,老师教我们做一个网页,心想:这学校还不错,一进来就教代码。学了将近半个月时间,用DW画了一个简单的网页出来,当时成就感满满。

    进入8月份,学校安排开始军训,军训结束后,开始正式上课,老师开始讲电脑组装、讲网络,教了2周时间,8月就这样结束了。

    进入9月份,我觉着应该要教C语言了吧,结果确是PhothShop的应用,我看了下课表,PhotoShop要学到放寒假,我才意识到自己被坑了,然后找班主任问下是什么情况,他说学校考虑到大家基础都挺差的,要从基础开始教啊,编程后面会学的。

    当时很郁闷,不能在这里继续浪费时间啊,我就去找前台退学费,然后就去前台了解情况,问学费现在还可以退吗?答案是:入学一个月后,这边已经进入内部系统了,学费退不了。当时很憋屈,一个人想了好久,为什么我这么倒霉,花了家里这么多钱,又不好意思在跟家里说,现在退学,重新找个学校,经过一番心理斗争后,决定国庆回家,跟爸妈商量,让他给我买个笔记本电脑,既然已经入坑了,自己总不能堕落,要对得起父母交的那么多学费。

  • 心里不甘,开始自学

    国庆回家后,没说实情,怕父母担心,就说学校上机时间太少了,想买个电脑,他们一开始不同意,说别人都可以用学校的电脑学,你为啥不行,然后我就委屈的哭了,假期结束,最后走的时候,我妈说:过一阵子给你打钱让你买电脑。

    2016年10月29日,参加成人高考,买的电脑也到了。

    2016年11月3日,经过一番折腾,搞定了运行环境,运行了人生中的第一份代码。

    照着书上的代码敲了几天,强行记忆C语言的HelloWorld的写法结构,至今都没忘记,11月25日成考的考试结果出来了,分数线120分,我以121分的成绩考入西安工业大学😂。

  • 步入正轨,找到适合自己的学习方法

    看书敲代码,这种学习方法持续了一个月时间,对书中所写的一些知识点,一知半解,书中的练习题,做不出来,也没人帮我,意识到这种学习方法不妥,很快就改变思路,我应该找一些视频教程学,然后加所学视频教程的交流群,然后遇到问题还有人求助,可以一起讨论。比我一个人瞎学,乱撞要好上很多倍。

    网上的视频五花八门,最终在网易云课堂找了适合自己的一门视频教程,正式步入正轨,加了交流群,经常在群里求助问题,认识了很多网友,帮助了我很多。这也是一种学习方式,毕竟一个人的力量是有限的,每天都有新手入群,大家聚在一起,就是一个圈子,互帮互助,共同提升,你越优秀你遇到的人也会越优秀。

    这两种学习方法,第一种看书学习看文档学习更偏向于你足够强大了,可以独挡一面,掌握了一门语言等于你掌握了一种学习方法,你此时就可以面向文档编程,从优秀的书中看总结,查漏补缺,达到提升自己的效果。当你初学编程,对一切都不懂,第二种方法更适合你,找对组织,建立自己的圈子。

  • 面临选择

    经过半年时间对C语言的学习,掌握了C语言的基础,整理了一些笔记,写了一些控制台应用程序的demo。

    跟着视频教程,实现了一个Demo版QQ机器人

    掌握C语言的基础后,后续视频教程有两个方向:C++和JAVA,当时不懂这两个语言那个前景好点,就问了当时在群里加的一个网友,学C时求助了他很多问题,他是大三,在学C++,打算考研,他给我的答案是:C++你要学好,数学底子一定要好,C++的面向的岗位大多是游戏引擎开发,对算法要求特别高,要学好它至少要5年时间,才能找到一份满意的工作,JAVA就好很多了,没有指针,前景也好,可以去往web方向发展,也可以开发安卓app,学习的代价也不是很高,1年左右就可以满足工作需求了。

    听了他的答案后,我选择了JAVA。

  • 开始学JAVA 2017年4月开始学Java基础篇,有了C的基础,学JAVA,就感觉是换了一种语法形式而已,埋头苦学2个月,对类,构造函数,封装,继承,多态,接口,反射,线程等有了一定认知。

    2017年6月开始正式接触那个视频教程的第三篇:网站开发,第一次接触html,css,js,写了大半年时间的控制台应用程序,终于可以写带界面的东西了,写了一些简单的demo,当时成就感满满(现在回过头来看,这写的都是些啥😂)

  • 第一根白发

    编程半年,遇到了很多太难以理解的问题,心态很差,经常抓头发,好多次想放弃,都坚持了下来,熬夜找bug,解决问题,调整心态,磨练性子,有了第一根白发😭(白发这种东西,有了第一根,就会有无数根长出来,现在已经有10多根了😖 ),看到这里的开发者,如果学习时间充足,没有太大压力的话,还是少熬夜为好,毕竟身体重要,这里我就是一个反面教材了😜

    花了一个月时间学HTML+CSS+JS,也整理了很多笔记,因为当时那篇教程主要讲的是JAVA技术在web中的应用,前端讲的很粗糙,就JS讲的还详细一点,html和css部分视频中的老师也不强,自然我也是超级差😅。

  • 第一桶金

    当时在群里说到学历相关的话题,我学历差,那个录制教程视频的老师告诉我,如果我想和一本大学的那些毕业生比,就要付出比他们多10倍的努力,至今我也没松懈自己,一直处于学习状态🙂

    2017年9月14日,当时已经学完RESTFul、Struts2、MySQL、Hibernate,可以写简单的增删改查接口了,当时在群里有一个人想做个前端静态网站,在群主的担保下,那个人找我做了,他说了他的需求,然后我答应他10天内完成,收费1200块,我以为很简单,结果做的时候才发现自己的前端水平有多菜,好多效果都实现不了,于是现学现用,一顿瞎摸索,那10天几乎每天都是凌晨2点睡,早上7点起,最终完成了整个静态网页,赚到了人生中的第一桶金😊,为了犒赏自己就花了299买了个机械键盘😀。

  • 开始正式学前端 因为赚到了第一桶金,想深入学前端的兴趣越来越浓,当时的给自己定的目标就是:看到任何一个网站的前端页面,我知道他是怎么布局的,我可以轻松模仿出来,做到99%的相似度。

    本着这目标,2017年10月11日,在网易云课堂筛选出了一篇前端课程,然后就跟着学,埋头苦学一个多月后,对布局有了更深层次的认识,掌握了Jquery的一些常用属性以及操作。

    2017年11月2日,在群里看到他们在讨论linux,说linux系统很流畅,程序员专用系统,然后引起了我的好奇心,于是就开始尝鲜装双系统(Ubuntu16.04+Win10)玩了,折腾了3天,期间因为误操作,导致整个windows崩溃,不过最终还是折腾成功了😉。

  • 模仿京东前端页面

    2017年11月24日,学完了那篇前端教程,脑子里产生了一个想法,我要模仿个京东的前端页面出来,来巩固自己所学的知识。说干就干,埋头苦写了两周时间,最终大功告成,当时代码写的很渣,全是拼音变量命名,大量重复代码,总代码合计9000行。

  • 折腾黑苹果 2018年1月份到5月份一直在写大量demo,巩固自己所学的知识点,为5月份成年后找工作而做准备。

    2018年3月1日,偶然间在Ubuntu交流群里,看他们在讨论普通笔记本上装苹果系统,有一次因为好奇心作祟,想在自己电脑折腾黑苹果了,结果又一次说干就干,网上找资料,折腾了4天,终于装成功了,当时只是为了满足好奇心,想尝试,装上后好多不完美,wifi不能驱动只能插网线或者使用usb共享网络,当时就在上面装了一套JAVA的开发环境,然后尝鲜了一个月,又回归到windows的怀抱了。

第一份工作

  • 第一次坐飞机

    当时满18岁以后,就开始在西安海投简历,总共到了10个答复,有8家是培训机构(交钱进公司的那种),有2家是拒绝我的(因为年龄问题),后来有个玩的很好的同学看我一直找工作没找到,就过来说他有个亲戚是开公司的,如果我愿意的话,他可以跟他妈妈商量下,然后带我们过去和老板吃个饭,认识下对方,然后我就答应了,跟着一起过去了。

  • 第一个完整的增删改查项目

    见完老板后,他给我们写了一个财务管理系统的文档,给我们一个月时间,完成他给的文档,如果我们做出来的东西他满意,就同意我们去他公司实习,我那个同学对web不感兴趣,他的兴趣是开发安卓app,所以那个财务管理系统,从数据库表的设计、登录注册、增删改查接口的实现、前端页面的实现,全部由我一人完成,埋头苦干一个月,最终完美的实现了他给的文档,得到了老板的认可,让我过去做前端。😋

  • 入职

    离开西安,到了湖北这家公司,开发团队有12个人,后台技术栈是.net,公司就1个前端,年龄都在30岁以上,个个都是大牛,技术和业务能力都是数一数二的。

    刚到公司,带我的那个前端小姐姐,跟我大概说了下公司的开发情况:公司有自己的产品,包含了微信小程序、网站、app,有时候还会接一些外包项目,我们平常开发小程序会多一点。然后她就问我有没有写过微信小程序,我说没有,我之前一直是写pc网站的,其他的没接触过,然后她说没关系,小程序也不难,随后她把小程序的官方文档抛给了我,你看下这个文档,给你一周时间,下周就要给你安排任务了。

    看了下小程序的文档,得出的结论:这不就是把html的标签名字改了下而已嘛,然后看着小程序的官方文档,然后写一些demo,一周后,她给了我一个psd图让我写,2天内写好,第二天的时候,她问我写的咋样了,我说写的差不多了,她看了下我写的,然后说写到这里就行了,这个只是让你练习用的,公司有个新的小程序要做,我这边忙不过来,就交给你来做了,期限是半个月。

    因为那个小程序页面简单,就8个,我提前完成了任务,7月27日时,公司开年会,讲到了我写的小程序,当时真的是成就感满满🥰

    后面就是处理一些bug,做一些外包小程序,接触真正的业务开发,与后台对接,听他们探讨业务,针对复杂业务数据库表的设计和业务梳理,才发现自己的那点后台知识啥也算不上,就够自己业余玩了。最终确定了方向,决定往前端方向发展🙂,然后就用业余时间学习Vue全家桶

  • 辞职

    2019年清明节前两周,公司接了一个酒馆的小程序开发,酒馆那边出价10w+,需求确认后,到小程序开发、测试、上线总共时间只有12天,周六周天不休息,早上8:30上班,每晚加班到10点多,项目上线前一天,有一堆bug还没搞定,那晚搞到凌晨3点,公司桌子趴着睡了,早上7点40起来,洗了个脸,然后回来继续改bug,调试小程序,一直弄到下午2点多,没啥问题了,才给我们提前下班让我们走。

    在这家公司我是实习,一直单休,1.5k的工资,每个月的后半个月必定加班,而且我是无偿加班,没有调休,没有工资。在加上清明节前,因为项目太赶,造成的身心疲惫,考虑再三后,决定辞职。

    2019年4月17日,离开了这家公司,回西安调整了大半个月。最后产生了一个大胆的想法,去广州闯一闯😂。然后就买了5月10日晚上的特价机票来了广州。

来到广州这座城市

  • 开始面试

    在来广州前,在boss直聘上约了3家面试,当时以为面试很简单,就问几个简单的问题应该就OK了,结果前两家,一上来就问Vue的双向绑定原理,问我Vuex的生命周期,问的我一脸懵逼,我对Vue的使用还只是停留在会用的阶段,没刷过面经。

    第三家公司是个大公司,在GitHub上有笔试,在西安时做了那个笔试,然后给他们组件提pr,有电话面试,加了那个部门老大的微信,最终约我过去面试,面试过程中,面试我的那个人,问了我一些git方面的知识,和ES6的知识点,我完全不懂,面试进行不下去了,他进去和他们老大说了下我的情况,然后他出来后说,你的基础有点差,如果招你进来,我们培养你的时间可能会太长,然后他把我送上了电梯,最后临走时跟我说,你可以在准备准备,刷点面经,你现在的水平在广州找个小一点的公司,能力还是足够的,然后我下楼后,还是不太甘心,就给他们老大(BOSS直聘上加的微信)发微信说,我再准备两周,两周后,我在来面试一次可以吗?然后他回复我说好的,反正你准备好。

  • 孤注一掷

    临走时,我带着他们的笔试题,然后围绕笔试题上内容,开始百度搜,在群里求助别人,得到解决方案,然后恶补ES6的知识点,用Vue CLI搭建了一个网站,用上了ES6的知识点和笔试题上的内容,耗费了两周时间。

    当我在联系他时,他告诉我他们团队已经招到合适的人了,暂时不招人了,当时我直接愣住了,怎么能这样,之前群里的朋友也有劝过我,不要在一棵树上吊死,多面试几家,给自己争取几条出路,结果我没听他们的,在一棵树上吊死了。

  • 上门面试

    在boss直聘上,投了很多简历,都没人理我,最终决定,根据boss直聘上的公司地点,将其整理一下,然后把距离比较近的公司,整理到一起,然后直接上门说:我是来面试的,大概整理了20多家公司吧,一天面3到4家左右,有几家被直接拒绝说:需要先在boss直聘投简历,我们筛选通过了,才约你来面试的,其他几家技术面都过了,死在了hr那一关(学历问题,毕业证没拿到手)。

  • 面试通过

    6月5日,经过前面20多家的面试,积累了足够的经验,最终面试通过,进入了现在的公司,这家公司是做学校网站的,技术栈相对来说比较古老,但是有双休,不会经常加班,可以有足够的业余时间来提升自己,然后就选择了这家公司。

    入职后,这家公司后台是Java,前端技术栈JQuery和原生js,公司内部,封装了一套基于jsp的一个前端框架,有一堆基于jsp的自定义标签。

    这些对我来说算是吃老本吧,因为对公司用对技术栈已经特别熟悉了,很快在这家公司站稳了脚跟,组长遇到一些他解决不了的问题时,求助我几次,我入职公司两个月后,组长辞职了,可能是找到更好的了吧。

当上前端开发组组长

很快3个月过去了,我的毕业证下来了,也到了我转正的时间,经理把我叫到办公室,跟我说上个组长离职了,我是目前前端组里能力最强的人,让我来做这个组长,我毫不犹豫的接了下来了。

当这个组长的原因:公司日常开发用到的知识点就那么多,基本上就是复制粘贴搬砖的活,一直做下去得不到什么提升,自己也会麻木。

组长的职责就是:面试新人进来,然后招进来,把新人带会,可以上手公司的项目开发,平常遇到一些新需求,和组员搞不定的事情,我来弄。从每天的任务量上来说,还凑活,不是很累。

未来计划

如今快2020年了,即将20岁。2019年利用业余时间学习了:

  • Flutter的基本语法,整理了相关笔记,写了一些demo
  • 手动用webpack构建Vue项目,体验了webpack的配置流程
  • 写了一个vue项目,围绕这个项目出发,写了几篇实用性的文章
  • 学习了SpringBoot,可以用它顺利集成其他框架为我所用,上手开发。

2020年的规划:

  • 写一个flutter项目
  • 研究算法
  • 研究Vue源码
  • 在掘金继续分享干货文章
  • 掘金等级升至LV5😎(目前写文章1个月,合计8篇文章,等级LV2)

写在最后

希望各位点进来的开发者们,可以从中学到一些知识,可以适配并运用我的学习方法,能在迷茫中找到方向,那这篇文章就是有意义的😋

掘金年度征文 | 2019 与我的技术之路 征文活动正在进行中......

文章分类
阅读
文章标签