如何从一个菜鸟,变成本身理想中的程序员

程序员的思考

前言

从年初的寒冬,到如今的立秋,耗时近6个多月,我终于找到了一份心仪的工做,或者说,我终于找到了工做。工做年薪翻了一倍还要多很多(我的起点过低了~)。 也有将近一个多月没有写博客了,这里就把本身这段时间的感悟以及如何去学习的,与你们分享一下,可能掺杂了不少我的感想,因此废话可能会有些多,望你们见谅!!!程序员

下面分几个阶段来描述一下笔者的心理历程经历

第一阶段 自我认识、危机感来袭

笔者16年毕业,毕业后便入坑,第一家公司iOS开发也就我一人,彻底靠自学(我的感受啥都没学到,成天上班就是网上找资料状态),终于成功的在16年11月份倒闭了,而后我就失业了。面试

历时几个月笔者都没有找到工做,而后本身就买了本《Object-C高级编程》来学习,当时看这本书,实际上是至关于天书同样,看不懂,但仍是强迫本身看了。算法

终于在17年的2月份找到了一家公司,也是一家小公司。过后才知道本身被面上的缘由是由于面试的时候,还在看上面说的那本书,而后面试官感受笔者学习的态度能够,因此就打算让我尝试一下,有些尴尬。 不过也没有让公司失望,安全的度过了实习期,而且一直就任到如今,公司也快速的发展了起来,很为公司感受到开心。编程

在18年年中,笔者开始接触了Flutter,那个时候的Flutter并无如今这样火,自学了一段时间,感受本身的理解仍是仅仅存在简单的使用层面,并无大佬们说的那种语言都是相通的感受。仿佛意识到了,我连本身赖以生存的语言都没有学会,就想着扩展本身的知识层面,因而自嘲了本身一段时间。设计模式

上面事件以后,也是笔者学习的开始吧,后来,我停下了任何娱乐,好比小说、游戏和锻炼,开始自我认识,实际上指的是iOS开发本身所拥有的技能的梳理,大体是这样的:安全

  • 简单UI界面没问题
  • 对于什么设计模式,彻底不懂,甚至单例我都没有搞清楚怎么用的
  • 底层,我靠,底层怎么实现的我怎么知道?
  • 数据结构、算法?我作移动端的要知道这些东西干吗?

好吧,笔者不想描述的更清晰了,相信就单纯的上面几条,相信你们应该都知道,菜到什么程度。数据结构

此时,甚至一段时间,笔者都很是的迷茫,感受到了深深的危机,我该怎么办,我能作什么?那段时间,一直在问本身这些问题。多线程

第二阶段 学习

通过一段时间调整后,放弃了Flutter,拿起了大学的数据结构的课本,开始认识啥是链表、哈希表等一些简单的数据结构,此时的学习也就是简单的知道这玩意究竟是啥,由于iOS的封装,平常开发根本用不到这些东西,可是你们都说这个基础,因此笔者就开始学这些。oop

与此同时,笔者也购买了《Effective Objective-C 2.0》学习,这些书籍也是大佬们在网上极力推荐的,因此我就买。post

当认识了简单的数据结构以及读完上面那本书以后,就有点自我感受良好的感受,而后就在我老婆面前show一下个人成果(我老婆也是程序员,后台,比我优秀),而后她就问了我一些关于简单数据结构的实现方法,以及一些简单的底层问题。 啊~,被虐的体无完肤,甚至感受到了羞愧。由于不懂,没法组织语言描述出来,她还问我,可否用OC去实现一个简单的链表和hash表,啪啪啪,脸很疼。

男人能够认怂,可是在本身女人面前认怂,是绝对不可能的。在这种羞愧感之下,我认真的去了解链表、hash表以及简单的二叉树。同时用OC语言去实现它,其实关于hash表的实现,笔者也以博客的形式分享给你们了笔记-数据结构之 Hash(OC的粗略实现)

了解相关的数据结构以后,我就带着个人理解,去看我上面所提到的两本书,关于数据结构,在iOS中的利用,也已博客的形式分享给你们了笔记-集合NSSet、字典NSDictionary的底层实现原理。 固然这些都是浅显的了解,不过正是由于这些简单的了解,激发了我对底层方面研究的兴趣。

这个阶段的学习,持续了近半年的时间,工做中要求作视频相关的播放,而后我一人“独挽狂澜”的接下了这个模块的任务(实际上也就是利用第三方库ZFPlayer去作视频的播放),而后本身利用空余时间去研究数据结构,感受学到了不少。因而又出现了自我膨胀的感受,因此就牛逼哄哄的出去找工做,恰好处于18年年末,行情仍是能够的。

第三阶段 谷底,完全的谷底

18年年末的时候,出去面了一家公司,属于小公司,须要作视频相关的App。先给我来了一个简单的电话面试,问了工做中作了些什么,以及遇到了什么样的困难,而后怎么解决掉的,正常回答以后,电话面试过了。

而后去他们公司面试,去了以后发现是一个项目负责人面我,并且这个是新项目,以前的那个电话面试个人人是兼职的,如今没时间兼职了,因此须要找一个iOS开发,要求就是有视频相关的经验,而后我就把个人经验分享了一下,固然存在了一些吹逼。而后就拿到了一个17k的offer。😁😁😁

恩,确实,拿到这个以后,彻底膨胀到了极点,由于这个薪资比我当时的工资高的太多。可是由于某些缘由,我拒绝了,由于当时某些缘由,不能换工做,并且我感受我能拿到更好的offer。

度过春节,来到金三银四,我投了不少家大厂,好比B站、携程、听喜马拉雅等等。当时简历写的也确实漂亮,都成功的拿到了面试邀请,当时开心的很。

恩,后面在面试的过程当中,没有一家的面试时间超过半小时,也没有一家给我二面的。怀疑人生,完全的懵逼了。

其实一面都很是的简单,简单的罗列几点:

  • block本质
  • ARC内存管理的原则
  • 多线程之间的通信
  • runtime、runLoop的理解和使用
  • 常见三方库的源码等等

说实在的,一面的这些东西,真的很是基础,然而笔者当时仅仅停留在听过,网上看过相关的博客,当真正须要我用本身的语言去描述的话,那就是漏洞百出。

后面不用说太多,笔者深深的陷入了怀疑自个人状态,想过转行,想过就呆在如今的公司挺好,后期甚至对面试产生了一种抗拒,惧怕面试。

第四阶段 再次学习

在一段时间的缓冲以后,我选择了再次学习,学习初期,比较盲目,只是经过网上资料、书籍来自学,收获很低。

下面的描述,绝对不是广告,确实是我的的学习之路。

在一次偶然的机会,观看了逻辑教育的公开课的视频,先是看了Cooci老师的公开课,后面又看了CC老师关于图片渲染的公开课,后面几天就一直跟着这个学,可是公开课,能学到的东西确实少,就下定决心报了一个VIP的课程。

贵,当时确实感受好贵,一个课程都要7K+,当时犹豫了几天,后面在自我安慰的状态下,报名了进行了系统的学习。直播课时间是每周的1、3、五晚上8点开始。 说上课时间,为了更好的表达我本身的学习时间安排。

  • 周1、3、五晚上上直播课,每晚基本上10点后结束,上完课,我就复习总结,本身写笔记,能忙到凌晨1~2点钟
  • 天天的上下班的路上,就看直播课的视频,反复学习
  • 周2、4、六晚上没有课,那我就总结笔记,写博客,有疑问的直接问上课老师或者和同窗交流,真的是一点不肯意耽误时间。
  • 周末时间,公司是大小周,小周的话,我就全天学习,去消化一周所学的知识,大周的话,我会留出半天时间陪老婆,实在忙不过来的时候,我会两天都处在学习阶段。

其实这么的努力学习不为别的,就为了那昂贵的学费,就为了可以多学点知识。

就这样的持续学习,一直到如今,其实直播课,课堂上能学到的东西有限,毕竟你们的接受能力不同,笔者就是属于理解能力比较差的,须要用更多的时间去总结,而后使用。

再艰难的过程,简单的文字可以轻描淡写的描述过去,其中的经历体验只有本身知道。当本身沉下去,去学习的时候,须要的就是坚持,坚持,再坚持。当你感受时间不够用,或者感受放松都是在浪费时间的时候,我感受,你离成功不远了。

第五阶段 再次出发

就在2周前,我再次出发,投简历,反应很快,两天时间,安排了5家公司的面试。但是内心仍然对面试有内心阴影,就把最想去的公司安排了最后。

此次面试前,没有看任何相关的面试题,由于本身一直处于学习的过程,感受面试题对个人帮助不是很大,或者也算是一种自信吧。

黑暗以后,黎明终会到来,结果也让笔者本身满意,面试了5家,也成功的拿到了5个offer,最终选择了本身最心仪的一家公司。拿到了20k+,16薪的工做。

面试中,也有一次面了5轮的,也有视频面试的,总之面试很累,还有一家8年的老开发一块儿交流技术,他们给了笔者不少宝贵的建议,以及学习的方向,非常感谢他们。

学习的方式不少,对于笔者这种自学能力不能太好的,或者说没有学习方法的人来讲,付费学习,也是一种捷径。

这个过程,笔者抛去了以往容易自我膨胀的心态,让本身时刻处于一种不知足的紧张感,时时刻刻处于学习的状态。

以上就是笔者近一年的历程,感受本身成功的度过了菜鸟的阶段,如今已工做了3年,争取在第5年的时候,上升一个更高的层次,但愿你们也在这里对我进行监督。

也但愿这篇文章能给学途比较迷茫的小伙伴带来一点点坚持下去的动力,要相信,熬过了最难的时间,美好便会降临。

后面又是一个新的开始,仍然须要沉下心来,去学习,去沉淀。

相关文章
相关标签/搜索