ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

我的编程能力从什么时候开始突飞猛进

2020-12-03 12:02:03  阅读:172  来源: 互联网

标签:比赛 编程 自己 ACM 能力 https 实习 突飞猛进


对这个问题感兴趣的同学,主要分两种。

第一种是对编程有着无限兴趣的,想要在编程之路上精进专研的人。这些人学习编程,是出于自己自己的兴趣,而这种兴趣,几乎从很早的时候就耳濡目染,被培养起来了。

第二种,或是因为生活所迫,或是阴差阳错,走上编程道路的人,他们学编程,真的只是为了挣口饭吃。

我属于后者,可以说,是从一个不得不学习编程的人,吃过很多苦,最终,有了一丢丢收获。

这个回答戳到自己心上了,码的字有点多,如果你和我一样,最开始学习编程,只是为了谋生,痛苦而挣扎,那或许,我的经历值得你看下去。

1.窘况

上大学前,我没有接触过电脑,高考志愿是写在纸上,让同学帮忙填到系统。
初入大学,误打误撞从数学系转到了计算机系,第一节计算机课程上,当同学们都在嚼里啪啦的敲字时,我却还在奇怪这机器怎么显示屏不亮,是不是除了啥问题。

为啥,因为我连电脑开机键是哪个都不知道。什么,你说你不信,是的,我现在也不信,没办法,就是这么苦涩。

笨归笨,上进的心思还是有的,学校里的各种知识讲座,不管能不能听懂,都会去凑凑热闹。有一次去了ACM讲座,被学长们的激情所打动,一激动就报名参加了学校的ACM社团,然后,噩梦和惊喜,同时开始了。

ACM,名为国际大学生程序设计竞赛,学校里参加这个社团的,基本都是从高中甚至初中就玩程序竞赛的「老同志」,很多都是在省级甚至国家级赛事上拿过奖的。我一个编程基础为О的小白,厚着脸皮每天和他们一起训练,精神的痛苦远远超过了肉体的折磨。

要知道,每天在一个团体里出现,但是没人会注意到自己,任何有意思的话题,永远都没法插上嘴,是一件非常打击自信心和尊严的事情。

你会问我,编程能力差可以努力呀,可以学呀,是呀,我也很努力,我也很痛苦,可这知识不进脑子呀。

最终参加ACM的成绩很差,第一年在学长的带领下拿了个铜牌,第二年自己参加,什么牌也没捞上。

做过ACM比赛的通知,都清楚,铜牌是不好意思说出口的成绩,相当于安慰奖吧。我自己都想不通,每一个假期,都能看到自己在机房的身影,取得的成绩,真的对不起自己投入的时间。

直到很久之后,我才开始释怀,因为我发现,有时候努力的成果是在当下能够看到的,而另外—些时候,可能在稍远的未来,才能开花结果。

尽管第二年还没取得什么成绩之后,我就放弃ACM了,但不得不承认,经过了一年多的练习,我已经基本上拥有了扎实的数据结构算法功底,对程序效率的敏锐程度,也比没有接受过专门训练的同学要好。

另外,我自己都没有意识到,这一两年的ACM酱油之旅,竟然成了我和计算机领域竞赛的相爱相杀的起点,那时候的我,从没意识到,几年后自己能够在另外一个竞赛赛道上,取得不错的成绩。

大学时光的中后期,基本是在刷绩点+保研面试+实习工作中度过的,有点焦虑,有点充实。

第一次实习是以失败告终的,但是保研结束后的大三暑假,一身轻松,于是联系上了一家创业公司实习,做的PHP开发。

去了之后,发现同时入职的还有本校的另外一个小伙伴,是个技术极客,编程能力强悍。

由于之前没有接触过中大型项目的开发,编程思维还是处于面向过程,对于面向对象的开发方式很不熟练,另外各种框架、组件十分生疏。

我还记得入职一个月后的一天,Leader和我说,我这一个与千的活,他可能花个半小时就干完了,我知道,他说的不是玩笑话,我的玻璃心,在那一瞬,碎的稀里哗啦。

第二天,我逃避了,找了个理由离开了公司,那一刻,我觉得心底里有个声音对自己说:你真的不适合学技术,可以去试试运营呀、销售呀,之前很多兼职中,你不是做的很出色吗。

如果不是因为侥幸保研成功,继续在计算机的道路上折腾,或许,我现在是一位出色的金牌销售呢,我时常这么想。

2.转机

如果说学计算机的过程中,有什么时候是我一直做对的,那就是长期坚持和不断尝试。经过一次次磨炼之后,终于迎来了一次对我来说很不多的经历开端。
大四在做完毕设之后,已经是五月中旬了,离九月份研究生开学还有一点时间,刚好可以做一份实习。于是在实习僧上寻找实习机会,很幸运的,拿到了一家从百度出来的创业公司的

Offer,方向是做机器学习自然语言理解领域的。

当时很穷,这家公司给出的日薪是300,每天还有30的饭补,说实话非常开心,还记得从公司结束面试出来的第一时间就是掏出手机给女朋友报喜。那时候未谙世事的自己,能够因为一小点事情欣喜若狂,因为一小点事情沮丧懊恼。
我未曾想到,这家公司,给我的生活带来的改变,有如此之多,直到现在,虽然已经离开两年多的时间了,但我们之间的故事和记忆,我想我会记上一辈子了。
在这个公司里,我从最开始的小白,一点一点逐渐的对NLP领域有了一定的掌握,非常感谢当时带我的师傅。

他是从百度出来的一位技术大牛,严谨的代码风格,清晰的编程逻辑,让当时的我受益匪浅。后来的实习经历让我们明白,不是每一次都有机会遇见这样棒的 Leader的。

开始对于NLP的了解是一穷二白的,那就从最简单的文本数据处理开始,学习基础的NLP知识。

还记得当时做的第一个项目是实现并优化检索问答服务,中间遇到了不少坑。没办法只能一点点的熬过来,最终项目成功上线,也赢得了客户的赞赏。

在这家公司实习期间,公司成功的进行了两轮融资,金额过亿。我获得了一次季度优秀员工以及一次优秀员工提名,可以说为公司做出了一些贡献。

后来又面试了滴滴、百度以及头条的核心算法部门,都通过了面试,最终去了头条的人工智能实验室实习。
选择头条的原因是头条的发展前景很好,年轻人也很多,在一起工作很开心。再后来,又去了微信。也许有的人会疑惑,为什么要跳来跳去呢,待在一家不好吗?
这可能和每个人的选择有关,在职场里,需要注意的一条是不要频繁跳槽,不然会给面试官留下不好的印象。但这条金科玉律有个小前提,是对正式工作的人而言的。

实习一般四五个月就已经算不短的时间了。还有着一个隐形福利,社会对学生很包容,使得我们有机会在短时间内快速体验不同量级、不同理念公司之间的文化碰撞。

我可以在两年之内快速体验到创业公司的快速崛起,小巨头的工作热情,还有大巨头的核心部门的闪光时刻。全职工作的人有这样的机会吗?
当然不太可能了,除非愿意给自己打上一个频繁跳槽、不靠谱的标签。当有这样的机会时,要好好把握,多了解未来要去打拼的世界,不至于毕业找工作吃亏入坑。

就这样,陆陆续续辗转几个公司,认识了很多技术大牛,有一些长进,更多的是感到自身的不足,不论是技术层面,还是认知层面的。最重要的一条认知是,厉害的人永远非常多,不要和目前实力远超自己的对手比较,那样除了能够打击自己,没有其他用处。

3。爬坡

实习了大半年之后,对理论知识和实践应用有了一定的掌握之后,通过同学了解到国内外的数据科学竞赛正在兴起,查看一些比赛平台之后,发现有一些任务在工作中遇到过,就抱着在实践中学习交流的心态,参与其中,对于比赛的结果,既没有底,也没有期待。

很庆幸自己做出这个尝试,因为在真正的参与比赛之后,每一次提交结果之后,看到排行榜上的名词变动,是非常紧张刺激的事情,很容易激发竞争意识,于是更为精细的处理分析数据,对采用的算法模型进行修改,使其更适应于当前任务。

我参加比赛的时间跨度其实并不长,前后一年的时间,最开始参加的是中国计算机协会联合BDCl举办的CCF-BDCI2017系列比赛,在其中的一个赛道上,很幸运的取得了第三名,这对初次参赛是来说,还是挺不错的,我们队伍拿到了一万元的奖金。

第二个比赛,是参加了京东举办的对话比赛,这次我承担了队长的角色,邀请了一批小伙伴,一起攻克难关。我记得中秋节三天,还在办公室优化模型,提交结果,一刻都没有休息。最终取得了亚军的成绩,与第一名失之交臂,亚军的奖金是十万元。

第三个比赛,参加了Al Challenger比赛,也是选择文本NLP相关的赛道,同样的很是拼命,中间通宵了两个夜晚,很幸运,最后拿到了第一名的成绩,奖金是四十万。

那一年之后,由于写论文、找工作各种琐事,基本没有参与任何比赛了。当短暂的一年数据竞赛生涯,极大的锻炼了我的编程能力,主要体现在,正对特定目标快速实现和迭代优化。

现在国内外的数据竞赛平台还是有很多,很多国内巨头每年都会举办规模浩大、奖金丰厚的赛事,这里给出一些常见的赛事和平台:

1、最推荐的两个主流平台

Kaggle: https://www.kaggle.com天池: https://tianchi.aliyun.com/home

2、国内其他主要平台

DataCastle: http://www.pkbigdata.comDatafountain: https://www.datafountain.cnBiendata: https://www.biendata.comKesci: https://www.kesci.com
FlyAl: https://www.flyai.com

除了这些平台,每年可能还会新冒出来一些平台,竞争力比较小,这就需要大家自己多留意各路消息了。

当然,除了编程能力的提升,还认识了很多朋友,因为不少互联网员工也来参加比赛,基本年龄比我大几岁,所以认识了一些前辈,后来成为了常约饭的好朋友,天南海北,基本涵盖了互联网的大小公司,对于增长见识非常有用。

4.近况

看到这里,你会觉得,我已经精通编程了,各种任务游刃有余了。其实,说实话,编程硬实力,虽然不能说菜,但还是普通。

有心人会留意到,无论实习还是比赛,我的技术栈是围绕着算法来走的,导致我的纯开发技能欠缺不少。这着实很让我头疼,尤其是我今年毕业入职之后。
正式工作了,虽然是算法工程师,但也会经常接到开发量不小的活,刚开始我很不适应,因为之前做算法主要是Python技能栈点的比较多,对Java和后端开发框架用的比较少,任务需要就直接切换过来了。

然后,之前做算法开发,更多的是追求指标的效果,在比赛中尤其是如此,但到了公司,开始考虑到性能开销、投入产出比等各种因素,复杂度上升不少。

有一段时间,活非常赶,我又是新手,导致任务的进度卡在我这里,压力是非常大的,朋友吃饭时见到我,都会察觉我脸色的异样,会关切的问我发生了什么事。
没到这个时候,我还是会想,如果写程序让自己这么痛苦的话,我为什么要一条路走到黑?产品经理或者其他的岗位也许对我来说更为合适呢,毕竟我是一个善于总结和沟通的人。

后来,逐渐熬过来了,我之所以没有转行,一方面是遇到的问题还没到无法解决的地步;另外一方面,再和一切其他岗位的前辈交流过,才发现每一行都有相应的痛处。譬如说,产品经理经常会为项目各方面的进度折腾的焦头烂额,毕竟写代码的是程序员。这一点来说,作为程序晨更好把控—此

就这样,打算在程序员的道路上继续走下去,那相应的技术书籍,就得花功夫啃起来。于是买了很多书,早饭或者午饭后的半小时,就会拎起技术书来翻翻,别小看这一个小时,我已经利用这时间翻完了之前很抗拒的基本大块头,虽说做不到细嚼慢咽,但对于查漏补缺、在脑海中建立完整的知识体系很有帮助。

人往往高估自己短期的成长,而低估长期的变化。现在遇到一些暂时无法解决的困难,心理还是会觉得有些难过甚至绝望,对自己很容易产生自我怀疑。但转念一想,比起数年前刚上大学时,那个连电脑开机键都不知道的懵懂男孩,我掌握的专业技能知识,何止是翻番。

难过的时候,积极一点看问题,往前看,找出自己这几年的进步;往后看,期待此后数年的成长。这样—想,日子或许活好过不少。

回到最开始的问题,我的编程能力从什么时候开始突飞猛进?

答:没有任何时候一下子,就突飞猛进了,而是一次次的挫败、失望甚至打算放弃之后,无论是为生活所迫,还是不甘心,继续坚持下来了,开始新的学习和尝试,都会有一点点的进步。这个世界有一个很美妙的东西叫复利,它不是金融的专有词,学习的复利,更值得被我们这些普通人拥有。

以上,与君共勉,不限于编程,在学习的道路上,我们从未突飞猛进,我们正在突飞猛进,只要我们一直在前进,这两者就不会矛盾。

如需要跟多资料请点击下方图片⬇(扫码加好友→备注66,不备注拒绝添加哦)
image

标签:比赛,编程,自己,ACM,能力,https,实习,突飞猛进
来源: https://www.cnblogs.com/lezijie/p/14078763.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有