2019微笑着对2020说:从今天起,这个傻孩子就交给你了。
前言-零基础起步的小白
我是2019年6月来到团队的。
作为团队里面唯一的非计算机专业学生,在来到梦云智之前,我还是一个完完全全、彻彻底底的小白,当时,我的水平只有这样:
从零基础拓荒,到渐入佳境,再到第一个项目完成,如今已经学习了9个月的时间,对于我自己来来说,这是肉眼可见的成长。
一、开天辟地 2019.06
HTML + CSS
网站开发最核心的基础是HTML。所以来到团队的第一件事,必然是HTML。
从一个一个HTML标签,到CSS样式,再到盒模型...
初来乍到,在来团队的第一天,我只用了一天时间,就把慕课网的HTML入门课程,认认真真的学了一遍。
Bootstrap
这是我学习的第一个前端框架,Bootstrap可是个好东西,尤其是对于像我这样的小白来说非常实用。
首先,Bootstrap提供的组件,简化了对于HTML标签的记忆。
作为初学者,对于标签的记忆和理解都不是很深刻。在传统HTML的模式下,开发人员需要手动输入所有的标签;而使用了Bootstrap之后,只需要记住最重要的标签即可,至于其他的功能,只需要把内置组件的相关代码站过来就可以了,简直不要太方便!
另一个让我印象深刻的,是栅格系统。
在原生HTML中,定义元素大小和位置的方法,是使用px(像素)为单位的数值,这就使得每个元素都需要单独调整布局,非常麻烦;
而栅格系统把浏览器页面等分成12个部分,开发人员可以自己定义页面的元素如何布局,只需要在标签中写上某个元素占用几个栅格,就可以达到想要的效果,再也不用手动输入px值了。
并且,Bootstrap可以根据浏览器大小来计算出,某个元素的实际大小,这样,同一组源代码在不同浏览器上,可以动态调整,以适应不同的设备。
二、渐入佳境 2019.07-09
ThinkPHP
7月,度过了大一,来到了暑假,也开始正式学习第一门后端语言——PHP。
为什么学的是TP5,而不是其他框架呢?因为TP5是国内开发、有全中文开发手册的PHP框架。
这是我来到团队之后遇到的第一个坎。
当时面临的最大困难是——看不懂...
当时连面向对象都不明白是什么意思,学习MVC就更加困难了,当时我不理解MVC是如何实现的,也不知道为什么要进行分层,最关键的是,不知道各层之间如何传值和调用方法...
解释一下这个问题是怎么回事:在学习PHP之前,我只见过把所有代码都放在一个文件里面的源码,所以,在多文件的源码中,我就搞不懂它们的调用关系。比如C/C++中,只要在外面定义了一个全局变量,任意位置就可以调用,但在MVC中怎么才能精确的调用其他文件中的变量和方法呢?如果恰巧M层不同的文件中,有两个同名的方法,会不会调用错误呢?
这就是我当时的疑惑,主要是不明白跨类调用时的对应关系。
这个疑惑导致了,尽管我能看懂教程里的每一个字,连起来却看不明白是什么意思,只能机械的照着教程慢慢敲,把代码一点一点的打到自己的编辑器上...
后来我发现真的不理解,必须要停下来思考一下了。
终于,经历了一天的闭关修炼,终于参透了M、V、C、和数据库之间的交互方式,做了一张很大很大的图,写出了各层之间双向传值的所有方法,并且列出了数据库增删改查时同一变量在各层之间的对应关系,以及Form表单是怎么传值的。
(由于当时的理解并不完全准确,本图片可能有错误)
在真正解决了传值问题之后,我终于认识到了MVC是怎样运行的,有一种豁然开朗的感觉!从那时开始,我可以真正的看懂TP5的教程了。
Shell
我们几个小萌新开发的第一个项目,是由我负责上线维护的。如果PHP项目要上线,肯定少不了服务器和运行环境,所以学习Shell命令也是必经之路。
某某云平台有个好东西,在线上机课程,只要租了云服务器,就可以在上面不限时联系,所以,一开始的练习方法,就是在线学习,这样就掌握了基本命令。
只要掌握cd、ls、mv等几个基本命令以及TAB补全方法和sudo,并且学会用Vim编辑文件,基本上可以在Linux服务器上畅通无阻了,然后就可以在服务器上搭建Http服务、运行环境和数据库了。
Git & GitHub
多人合作开发,不可避免的要进行代码合并和版本控制,所以Git也是必备技能。
走一步看两步,为了不在实际开发的时候抓瞎,我提前找组长请教了一下Git的基本操作,以及最难理解的分支管理,经过一晚上的学习我基本了解了Git常用命令以及分支是如何建立和合并的。这个学习过程为后面的代码合并工作保驾护航。
为了更深刻的理解Git分支的原理,之前的会议中老师推荐了一个很好的学习网站: https://learngitbranching.js....
这个网站由浅到深的讲解了git分支的各种相关知识,并且全程既有图解又有文字介绍。
微信公众号
这个项目的初级阶段是做成网站,而高级阶段就是做成公众号。
不过学习公众号的开发,可比PHP的学习过程曲折多了,最大的困难是没有入门教程,微信官方文档难于理解,不知道从哪里入门。
关于微信这个技能,前期是直接“借鉴”别人的代码,不管完整性,只要能跑起来就行。后来在天奇同学的探索下,发现了一个第三方SDK(Software Development Kit),名叫EasyWechat。
它封装了一些API(Application Programming Interface),也有相关教程,的确简化了一些开发步骤,后期的微信消息提醒功能就是用的它。
这里感谢已经离队的天奇同学为项目的上课提醒模块提供了很大帮助。
第一个TP5项目成功完成
不多废话,就是这样一个流程。
有一个教训是:我们的数据库被黑过两次,都是由于数据库使用root用户和弱智密码导致的......
三 砥砺前行 2019.10-2020.01
SpringBoot + Angular
前一阶段的学习并不顺利,而恰恰是这一个又一个困难,磨砺了我坚韧的意志和面对困难的良好心态。接着我们又开始了新的学习,这是第一次接触前后端分离。
Spring其实就是Java的框架,其本质还是JAVA加上一些封装的库,所以感觉不是特别难,和之前学过的后端语言类似,有相通之处。
但是Angular就不一样了,由于之前没有仔细的学过前端,连JavaScript都没学过,所以一看到Angular整个人都是懵的,连增删改查都要学好久。
最最最难的是哪里?
——是单元测试。
单元测试
单元测试
重要的事情说三遍。
我在Angular的学习中度过了2019的最后一段时光,终于,来到了2020!
四 道阻且长 2020 - +∞
来到了新的一年,要展望未来了。经历了2019的洗礼,褪去了一分稚嫩,增添了一分坚韧,带着对未来的憧憬,悄然启程。
紧跟团队步伐
无论兴趣多么广泛,想学的技能有多么多,最要紧的是不能掉队,必须合理调整自己的时间和精力,把主要精力放在当前 Spring和Angular的学习中。
顺利完成第二个项目
微课堂2.0
我会尽最大努力,在选修课上课之前,把项目做出来。
滚基础
600多页的Java宝典我已经看完了300页,剩下的将会很快看完,并完成相关的学习博客。
然后就要去学习下一本宝典——《Head First 设计模式》
补短板
作为非计算机专业的学生,随着学习的逐渐深入,在离散数学、数据结构等专业课方面的短板日益凸现,为了缩小与计算机专业同学的距离,我会抓时间自学一些计算机专业课。
充电
由于本次疫情比较严重,某学习网站推出了“一元课程”,趁机弯道超车呀,奥利给!
坚持兴趣
生命在于折腾,生命不息,折腾不止!
五 多说几句
秀桌面
有人说,秀桌面是程序员的必备技能,那我也来秀一下吧~
(工作台1.0)
刚来团队时,只有一台黑苹果和显示器。
(工作台2.0)
到后来,两个月省吃俭用憋出来一块带鱼屏,从宿舍拿来了机械键盘。
(工作台3.0)
我家里没矿...只不过是兴趣的驱使下一点一点攒出来的。
初识梦云智
一个偶然的机会,我发现,在学校的某个角落,有一个神秘的软件团队——“梦云智”。
我十分幸运的加入了这个其乐融融的大家庭,开始了一段计算机学习之旅,我也因此成为整个团队唯一一个非计算机专业的学生。
到了暑假,当别人在家里吹着空调吃着零食喝着快乐水玩着游戏时,我还在实验室敲着代码,一个暑假,我学会了ThinkPHP和BootStrap。这是我最充实的暑假。
高考填报志愿时,因为分数不够,而与计算机专业失之交臂,团队,用另一种方式,圆了我的计算机梦。
加入团队后最大的收获不是知识,而是友谊,和我一起并肩作战的同学都成了好兄弟,一起学习,一起写项目,一起跑测试,一起踢球。
但行好事,莫问前程
暑假过后,新学期开始,我发现,自己的事情远比想象中多的多,团队的工作时间是996,再加上上课,几乎没有任何休息时间。而在这种紧迫的时间安排下,社团活动和竞赛,就成了压死我的最后一根稻草。
熬夜成了家常便饭,睡眠成了奢侈品,最紧的时候,连续一个月睡眠不足7小时,连着一个月没有周末。
我只是个普通人,当然也有顶不住的时候,在精力和体力的透支的情况下,也想过放弃,放弃一些事,就不用这么累了。
可到最后,每一次都坚持下来了。“自己选的路,趴着也得走完,如果时间再不够,就从上课挤。就算再艰难,也得对得起自己的人生”
所谓成长,并不意味着:经历过苦难之后就不再有苦难了,
无论对于谁,困难和挑战都是成长的必需品。
而不同之处在于,经历过成长洗礼的人,再去面对挑战时,
不会再手足无措,而是微笑着面对它,怀着信心和勇气战胜它。
我们无法预知未来
无法预测得与失
无法分辨永恒与转瞬即逝
所以,不必担心明天的太阳是否还会照常升起
但行好事,莫问前程吧
你好,2020!