【纪念自己的第100篇blog】回顾自己三年coding experience的点点滴滴~

写在前面的话

不知不觉,在CSDN上坚持写博客已经一年的时间了,马上就要发布自己的第100篇博客了。虽然现在手里待发布的草稿还有很多,但是博主还是一个非常有仪式感的小朋友,希望在第100篇博客留下一些自己对这几年编程的感悟、心酸历程、挖的坑、填坑之路等等。一路走来,到现在也算是能带团队开发个小项目。虽然团队人不多,项目不大,跟各路大神相比还差之甚远,但是也算是从一个编程小白慢慢成长起来了吧。同时,这篇博客也是一个写给自己未来的信,希望等自己写第500、1000篇博客时,回想起曾经稚嫩的自己,心存感慨,感悟成长~开始,先附上自己的个人主页吧(大佬勿喷,求鼓励!)

在这里插入图片描述

初识编程

  • 最开始接触编程其实是从一些科幻电影或者纪录片,看到一些黑客或者程序员在电脑键盘上一顿敲敲打打,摧毁了敌军的基地或者拯救了世界(手动滑稽。。。),当时就觉得会编程的人很diao,以后希望也能成为这样的人,但是高考稀里糊涂的听了父母的建议,选择了一个万金油的专业,四年下来,自己专业更多的是研究单片机、控制理论,毕业设计也是利用单片机做了一个与智能控制相关的小东西,还有幸拿了一个优秀。然鹅关于单片机的理论知识,老师教的主要是汇编、也教了一些C语言,本科毕业之后,发现自己只会写一些最简单的代码比如循环或者条件判断,再没有别的了。可能也是学校老师不太重视吧,周围同学也没有主动学习编程的,更多的还是自己没有意识到编程的重要性,所以整个大学四年,留给我对coding的最初印象就是int、float、string、if、while、for、function,再无其他。

受到打击

  • 凭借着自己在本科时期的优秀的绩点,再加上自己的那份努力和执着,本科毕业后顺利考入一志愿某东北末流985高校控制专业,也有幸加入了该校最diao的国重实验室。刚进实验室的我,和自己本科一年级刚入学时一样,有着满腔的热情,渴望干一番大事业。但是当导师问我编程经历的时候,我却支支吾吾的说不出来,基本的科研工具matlab都不会用,用导师话讲,就是完全的编程小白,第一年也没交代特别的项目工作(因为交代了也不会做),整个研一除了上课也没干别的,恍恍惚惚,当时真的受到了很大的打击,发现自己什么都不会,甚至有点轻微的抑郁,感觉自己很没用。
  • 有趣的是,研一刚入学的时候,以为自己会了循环和判断,自己C语言就已经学的很明白了,于是开始接触C++,Qt。学着学着发现自己真的是井底之蛙,指针、面向对象、STL等等越学越多,学了半年,自己还停留在黑色的框框(后来知道叫控制台)编程,而且被指针折磨的不成样子,感觉这个并不是我喜欢的编程语言,渐渐失去了兴趣,最终选择放弃。由于导师的项目用到了嵌入式控制器,所以还需要学习一些Linux,shell编程相关的知识,这时候才知道,原来这个世界上PC端不光有windows操作系统,还有Linux操作系统(Ubuntu、Mac、红帽)等等。

从头开始

  • 经历了上学期的打击,也跟师兄师姐交流了一番,突然醒悟,总是这么的自卑、一味地抱怨自己、自暴自弃并无卵用,反而让别人瞧不起你。与其抱怨不如选择重头开始,也明白一个道理,就是不要抱有侥幸心理,自己曾经欠下的东西未来一定是要偿还的。于是研一下学期开始重整旗鼓,选择接手了刚刚毕业的师姐的基于某工业背景的远程监控系统,该系统采用前后端分离的BS架构开发方式(HTML+SSH),看到花花绿绿制作精美的网页,觉得很有意思,于是开始接触Java后端和前端基础。接手了师姐项目,学了半年的Java,从最最基础的面向对象编程、servlet、jsp、XML、jdbc、dbutils,同时学习了MySQL数据库增删改查的基本操作,再到后端框架的学习,虽然学的云里雾里,但是发现再也不用指针了,而且实际动手实现了几个小页面,并实现了前后端的联动,这时候才真的有了那么点的信心。其实现在看来,当时学的东西真的是过于基础,而且很多东西现在都已经不再使用或者已经用框架封装好了,但是对于一个编程小白来说,这些足以给当时的我莫大的信心。
  • 接着,导师让把现在做的东西再做一个安卓版的,用到了Android Studio开发工具,学习了基本的Android 编程(Fragment+Webview),虽然中间大大小小的坑也遇到了一些,但是多亏了同专业的大佬和度娘,最后项目也得以顺利完成,老师也奖励了我一个平板(当然我只有使用权,毕业后就上交实验室了,而且让我把新做的项目部署到上面,以后实验室有人参观时给客人演示用。。。)。

改来改去

  • 其实那时候的我,虽然前后端都在做,但是只是自己孤军奋战,并不知道目前主流的开发方式,包括主流前后端框架等,代码管理工具更是一无所知。在学习了半年的SSH框架(2018年上半年学的),有一天一个博士师兄走到我面前,看我编的代码,问我怎么用这么古老的框架,我说这是上届师姐传给我的啊(2015级师姐,后来才知道师姐也是接手她师姐的项目。。。)。看到师兄很无奈的眼神,我就知道,我又学偏了。。。师兄跟我讲,现在公司大部分用的是SSM框架、比较大的公司用SpringBoot,同时前端用Vue的脚手架,实现前后端分离的开发模式。于是研一快结束的时候,虽然已经能照着视频搭出来SSH基本框架,但最终还是放弃了,开始转手学习SSM框架。至于前端框架,当时已经懵逼,以至于直到毕业只知道有这么个框架,但是我还是用的HTML+CSS+javaScript(jQuery)做的毕业设计,以至于代码的鲁棒性不忍直视。
  • 学了一段时间SSM,一个是因为每天上课的原因、一个是因为项目的原因,导致自己SSM框架学了一个Mybatis就放弃了(其实最重要的还是编程难度问题,感觉需要配置的东西太多,已经记不下来了。。。),开始转学前端。
  • 从后端Java工程师跨到前端工程师,其实最最一开始感觉一下子放松了好多,给我的一大错觉就是前端比后端简单,而且学了一个礼拜,就能自己写一个百度首页,太神奇了,接着开始一步步学习HTML(5)、CSS(3)、JavaScript,顺带学习了JQuery、Bootstrap,JavaScript高级编程(原型、原型链、闭包等),学着学着感觉前端越学越多,而且发现自己同实验室的同学已经开始熟练的使用Vue做项目,又开始自卑了起来。直到有一天接到了百度前端岗的电话面试,问了一些现在看来很基础的前端基本知识,但是还是答得吭哧瘪肚的,于是再一次选择了放弃。
  • 我也不知道我这帮狐朋狗友是对我好还是坑我(手动滑稽。。。),说读个研究生不能还找软件开发工作啊,于是又忽悠我搞起了算法,开始学习python。学了大半年,突然发现python真是万能语言,竟然比JavaScript还牛逼(咳咳,不要跟我说PHP才是最牛逼的语言,Python No.1!),又能做Web后端,又能写算法,又能实现GUI编程,而且包的扩展及其丰富,语言简洁性令我从C++、Java转行过来的人大吃一惊。用网上的话讲,除了不能帮你生孩子,剩下的什么都能帮你干(好像matlab也是这么说的。。。),于是给自己未来的定位就是努力专注于学习Python,不再换了!
  • 其实语言学多了,难免会混乱,但是语言又是相通的,学过了C++面向对象再跳到Java面向对象,就不那么生疏,再到Python面向对象,这时候对很多基础的概念比如封装、继承、多态又有了新的认识,学起来也没有一开始那么复杂,就这样,我的毕业设计最终采用了三大技术(HTML+CSS+javaScript(jQuery))+Python(Flask)架构开发,最终顺利毕业。

第一次项目开发

  • 研二那年,实验室准备围绕我研究的工业背景,结合5G、物联网、云计算、大数据、边缘计算等先进技术开发一套半实物仿真实验系统,实现全流程仿真,初步选择的软件架构方案也是采用网页前后端的开发方式,这样可以很容易的实现远程访问。导师也了解了一下我目前的编程水平,一是以我现在的水平很难开发出一套符合要求的仿真软件,二是工程项目量巨大一个人一年的时间内很难完成,三是导师也希望找懂软件的人带一带我,让我对软件开发流程有更加深入的了解,对以后找工作能有所帮助。最后,导师帮我找到了软件学院的几个兄弟们带着我共同完成这个项目。
  • 跟着软件几个兄弟们认认真真的按照企业级软件开发模式进行项目开发,也第一次知道项目开始之前需要先写文档、设计数据库表结构,技术选型等等,也第一次知道了代码管理工具Git和GitHub。跟着专业的软件开发人员学习确实学到了好多新的技术知识,规范了代码开发流程,也学习了好多计算机网络、操作系统、数据结构的知识,这段时间感觉自己编程水平真的是突飞猛进。其实在实际项目开发过程中,我更多是充当一个项目经理的角色,隔三差五跟导师碰一下,修改产品需求。然后将前端页面都设计好,告诉软件兄弟们这块我想达到一个什么效果,同时也承担了一部分软件开发的工作。就这样,经过一年的时间,我们完成了系统一部分的开发工作,同时给下一届师弟师妹留下了可以扩展的接口以及项目文档。虽然最后的系统还是有一些瑕疵的,但是也算是跟着专业团队,从需求到技术选型到设计到开发,包括了前端开发和后端开发,了解了软件开发的大致流程,最终凭借着系统的一部分核心功能,完成了我的硕士论文答辩,最终拿到了硕士学位(感觉自己拿了个假的控制学科学位?!。。。)。

邂逅CSDN

  • 在跟着大佬们实际开发的过程中会遇到各种各样的问题,于是也让我养成了在CSDN上写博客的习惯,我会将项目遇到的技术难点、问题以及最后的解决方案分门别类的规整好,以后再在项目中遇到问题可以随时查看。另外,包括有时候看视频总结的学习笔记都会以博客的形式进行整理,这样的好处就是只要CSDN不倒闭(咳咳。。。),笔记就不会丢失,而且可以随时随地在手机或PC端看。其实这三年来,看过的视频真的多,从C++、Java、前端、算法等等,但是都没留住,现在也都忘了差不多了(白看了。。。)。所以,奉劝各位小伙伴,如果以后真的觉得视频有帮助的话,一定要总结成自己能看得懂的学习笔记,对自己以后无论是复习还是开发项目都非常非常有帮助。
  • 现在好多主流的博客网站都支持markdown编辑模式,这种方式很简练,上手很快,而且笔记整理起来也非常整洁。后来软件大佬告诉我,不用Markdown写文档的程序员不是好厨子 (???) 程序员,所以各位程序猿/媛们,Markdown一时爽,一直用一直爽!
  • 之前有大佬跟我说过最好是用hexo或者其他框架自己做一个博客然后托管到GitHub上,我之前尝试过,但是后续维护管理起来太麻烦,而且如果换电脑的话,整个博客项目都要移植,过程极其复杂,所以也就放弃了。使用CSDN的另一个原因也是不用自己维护,一切交给CSDN后台管理,简直不要太爽。
  • 现在每天早上,习惯性的在CSDN手机端签个到,然后看看当前程序行业的新鲜资讯,看看大家有没有新的留言(日常交流学习扯犊子或直接忽视 ),博客等级积分像挤牙膏一样一点点往上涨,自己的哪篇博客访问量又破万了(嘻嘻嘻。。。)。生活中又多了个消磨时间的方式。

找工作感悟

  • 2020年注定是我人生中最不平凡的一年,受全球新冠肺炎的影响,大量公司裁员、缩招,初级甚至中级程序员面临失业。和大部分人一样,我毕业了,也失业了(当时想接着读博士,结果发现现在想读博士的人一年比一年多,所以我就GG了,因此也错过了秋招),过年期间也投了几个公司的秋招补招,但全部石沉大海。如果经常上牛客网看招聘信息,可以发现字节跳动、阿里、鹅厂等大厂补招的人很多,之前一直不理解这种大厂怎么还能招不满,后来经历过打击,才知道人家大厂从来不缺投简历的人,缺的是那些真正能匹配岗位的技术大佬,也明白了原来自己在学校里学的那点知识是那么的微不足道,学校里开发的项目企业也根本看不上。
  • 春节期间,问了几个秋招还不错的同学,向他们取取经,明确了以自己的就业目标。另外自己学制虽然2年半,但是最后半年还是应届生的身份,还是可以参加校招的。其实当时刚毕业的时候自己岗位有点投偏了,原来对于社招和校招,企业招聘看重的点是不一样的。于是春节在家,一边优化自己的简历(这几年虽然在学校编程技术不咋地,但是学习成绩和学生活动参加不少,手里有一堆证书,所以简历上这一点我是优势项,另外项目经历也参考之前师兄们的简历更细致的进行了更改)并寻找软开的招聘信息投简历、联系HR表达自己的意愿,一边疯狂刷题:牛客网、LeetCode,剑指offer,同时恶补了一些数据库、网络、操作系统的基础知识,就这样,在最艰难的互联网寒冬期,在史上最艰难的春招期间,我拿下了华为软开和中兴软开的岗位,薪资待遇都还不错,但是最终因为梦想都拒掉了(没想到吧~~)。
  • 读博士这个念头,一旦有了,除非读上了,否则一辈子都会留下遗憾,最终我选择了东北最强高校的最强专业(还是老本行,只不过博士要想发论文,就必须走算法了,又回到python技术栈了,嘻嘻,Python No.1!),继续我的学术之路。当然,此时此刻,我已经爱上了编程,没事我还会去牛客、LeetCode刷刷数据结构和算法题,看到讨论区里曾经和我一样辛辛苦苦找刷题找工作的小童鞋们遇到问题时,能解答的我都会适当回复一下(毕竟经历过,也明白孩子们现在的处境都不容易),可能这就是programmer的传承吧。

写在最后的话

  • 等待开学的日子是漫长的,所以在家周围找了一个软件前端的实习岗位,也很有幸得到了老板的赏识让我带团队开发产品(一个老实习生【我】带一帮新实习生。。。)。有了之前的项目经验,一切都显得那么按部就班,中规中矩,另外跟着公司干项目又一次规范了自己很多的不规范的编程习惯,比如网页响应式布局、代码封装及复用性等等,慢慢的也跟大家成为了好朋友,项目也在朝着好的方向迅速推进着。
  • 不算本科那点少的可怜的编程经验的话,三年的编程经历,也让我感受到了生活的酸甜苦辣,仿佛和人生一样,未来的路还很长,但是既然编程已经成为了我的爱好,我就会一直爱下去(因为爱,所以会一直坚持!)。其实我老本行毕竟是学控制的,跟专业搞软件的大佬们比起来,我又是显得那么渺小。作为前人,这一路的艰辛自己走过了才会明白这里面的不易,也想给那些现在很迷茫的程序人留下点称之为experience也罢、navigate也罢(不喜勿喷),希望能早日走出迷茫,少走弯路:
  1. 尽快找到自己最适合的技术栈,不要觉得全栈很牛逼,因为一个小小的领域就够你学一辈子的了。
  2. 学会在自己的博客中总结问题、学会记笔记、重复的问题尽量不要出现第二次。
  3. 尽快明确自己未来的职业发展。如果以后想找软件行业的工作,先问问自己是否热爱,如果不爱,试着热爱,实在不爱,那就拜拜(不要被高薪蒙蔽了双眼,互联网行业普遍996,如果不喜欢就算拿到高薪,整天愁眉苦脸的,影响身体健康,人这一辈子不就是活个乐呵吗)
  4. 珍惜自己应届生的身份,可以参加校招。数据结构与算法、计算机网络、数据库、操作系统,不管你是什么技术栈,这几个都得学,越熟练越好。技术栈不用搞太深,基础一定要打牢,比如前端基本的CSS布局定位、JS基础、闭包原型链啥的是不是能说明白等等。
  5. 校招:《剑指offer》!《剑指offer》!《剑指offer》!重要的事情说三遍,多刷,最好能手撕出来!
  6. 学校的项目好好做,找工作时项目必问,而且如果真的是自己做的话一定要对里面的每一块都特别懂,不懂就别写简历里面,项目遇到的问题要好好整理。
  7. 项目遇到问题时,不要先去问别人,试着先自己去解决,一是不要麻烦别人,二是自己会对问题研究的更加深入。当然可以问问技术大佬自己现在学的东西是不是主流,有没有学的必要,这还是一定要多多请教的。
  8. 想转行,什么时候都不晚,只要你有一颗坚定的心,并决定干好,那干就完了。
  9. 今年找工作是有史以来最难的一年,也是未来找工作最简单的一年,年年如此(明白我啥意思吧)
  10. 年轻人要坚持梦想!翻涌吧,后浪!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值