我的一点编程经历

共 4352字,需浏览 9分钟

 ·

2020-09-19 03:32


有不少读者看过我一些稍微有点小幽默的文章后,可能会觉得我是一个挺有趣的人。不过人是多面的,在这里可能你只是看到我其中的一个面,我和大部分人一样,在熟人面前可以完全放飞自我,但在陌生人面前也会拘谨会装谦虚。。。

关注我的大部分是大学生,我觉得我可以说一点关于我刚开始学习编程相关的小经历给你参考一下,顺便让你了解我多一点点,满足一下你对我的好奇也无妨。

不像那些大佬,初中甚至小学就开始接触编程,我是从大学才不小心知道有写代码这种玩意的。

高三的时候,因为我们班是重点班,所以有一些复读生也来我们班学习,高三开始不久我就不小心和一个高四的学姐在一起了,还是初恋的那种,可想而知,我高考就 GG 了。

选专业那天晚上一边拿着破分数一边翻着那本厚厚的专业录取参考书,最后琢磨来琢磨去,索性就选了计算机相关的专业,也不知道具体是学啥的。

虽然学校不咋滴,但听说老师都是博士硕士级别的工程师,对于当时的我会觉得他们好像很厉害的样子,不过现在觉得有时候标签这种东西并不能说明什么吧。

有一次开会,老师说「移动应用开发」会火,到时毕业一定可以找到工作,所以我就想着主攻「移动应用开发」好了,也就是 Android ,因为 Android 的应用层是用 java 写的,所以一开始我学的是「java基础」。

当时虽然说是去上课,但是真正听老师讲课的人寥寥无几,我也不例外,电脑前演示着老师讲课的PPT,但是我的视线一直停留在自己手机里的美女上。


不过有一次老师讲到一个「使用for循环打印星星的例子」,我觉得好好玩,这时候我才发现其实 java 并非那么无聊,我可以通过代码写出打印多少颗星星,打印成正三角形的形状,倒三角形的形状,正方形形状等等。


第一次有了一种「有想法可以被java实现的感觉」,从那天起开始对编程产生了兴趣。


那一天虽然知道了「for循环」怎么写(跟着老师的例子照猫画虎),但是对于 java 环境变量怎么配置,二进制是什么,什么是Byte,Long都不懂,那时候可以说对于 java 只知道怎么拼写而已。


因为有些知识点之前从没认真听,也发觉老师讲的实在很无聊,后来我决定自学,自我驱动的学习和被动的学习是两个完全不同的概念,我到现在依然认为:真正牛逼的人,都是自学能力极强的人!


我开始上网查询学习「java基础知识」的资料,无意间发现了某培训机构(是哪个机构就不说了,免得说我打广告)有免费的讲课视频资料,看了一下目录发现很全面,于是我下载下来试着看一下,没想到这位老师的讲课风格和我们学校的老师简直天差地别,我当时被讲师的幽默讲课方式深深吸引,感觉他不做相声演员都可惜了,于是边笑着看他的视频,边跟着他敲代码,自己也做一些笔记。那段时间有时候逃课其实是在宿舍里看他的视频哈哈!


那个视频课时分为三十来天,不过我是除了跟着他敲代码外,我还会自己做一些笔记,所以我大概花了两个多月才把视频学完的,也就这几个月的时间我从如何打印Hello World,到常量,变量,注释,运算,逻辑语句,再到面向对象(可能比较笨,当时想了好几天才明白这一概念),数组,函数,继承,内部类,多态,GUI等,再到集合,多线程,IO流,反射等等有一个全面的了解了。


感觉自己把 java 比较基础的知识学的差不多了,就想着能不能做点好玩的东西出来,记得有一个情人节,那时候我还是有女朋友的人,想给女朋友做一个程序,作为礼物送给她,有那么一个夜晚,我突然想到能不能用 java 做一款小游戏,游戏的主角就是她呢?


想想还是有点激动的,后来我模仿了「坦克游戏」,不过我设想的是:玩家的坦克是我女票的头像,而很多敌方坦克就是我的头像,然后子弹被我改成❤️(爱心子弹,害羞)。


用了几天的时间把它做出来觉得好有成就感,最后我把这个游戏打成 jar 包送给我女票当作礼物,然后看她玩的时候一直在互相发射爱心,不过敌方的“我”又多,射出的爱心子弹又快,每次玩不久她就“挂”了,老是叫我去修改一下游戏速度,让她赢哈哈。不过现在的她已经不属于我了,哎,想想还是有点小伤感呢,我是不是跑题了 - -


因为我一开始就知道我学 java 基础是为了去开发 Android 应用,那时候觉得能在手机上把玩自己开发的 APP 是一种牛逼的存在。所以我又去找了一些「Android入门教程」的视频来学习,因为自己有了一定的 java 基础知识 ,所以对「Android入门教程」视频学起来倒不觉得很难,反而是想着快点学完然后做个有意思的 APP 出来,所以那时候对Activity,Service的生命周期、一些诸如TextView,EditView基础的组件、诸如LinearLayout的容器组件、广播、Intent、内容提供者消费者、Sqlite等基础内容都学的比较认真。


慢慢的我开始写了一些 demo ,但是发现很不满意,原因是我感觉自己写的东西很简单,几个界面跳来跳去,几个增删改查,好像就没什么了,感觉自己没有什么项目经验,而且停留在很基础的层面。


于是我上网去搜索一些 Android 相关的资料,发现了一些大佬的博客,比如CSDN上的「郭霖」大佬,发现他写的博客通俗易懂,那时候他每篇博客我都看,慢慢的我又认识到了「老罗」,他写的东西很深,有时候我看不懂 - -,发现了「阮一峰」的博客,再到后来我又发现在知乎上的 「stormzhang」等等,我这才发现当时自己有多low,这些大佬们经验满满,我从他们身上学到了自定义View,性能优化,网络编程,第三方框架等等比较进阶的东西,不过更加让我学习到的是他们的执行力,他们的认知,他们对信息的敏感。


举个例子:记得 Android Studio 刚出来那会,我只是觉得 Android Studio 应该和 Eclipse 差不多吧,不就是个编辑器,而且Android Studio 刚出来的时候我下载体验了一下卡的要死,我二话不说就把它给卸载了,什么垃圾玩意。


不过后来我发现大佬们都在用 Android Studio ,而且一直在建议更换为 Android Studio,我记得之前大佬们还专门写了Android Studio 的教程。受他们的影响,我把 Android Studio 下载回来,随着 Android Studio 的迭代,我才发现这编辑器简直了,这快捷键,这体验,简直完爆 Eclipse。现在还看到有些人还用 Eclipse 开发,没用过Android Studio或者InteliJ IDEA,说实话,我面试到这样的人一般会直接 pass 掉,并不是说 Eclipse 不好,而是认为,如果不拥抱新的事物,总是固步自封,那么很快会被淘汰。


也是那个时候,我发现了原来还有一个叫做「GitHub」的东西,简直打开了新天地,上面有许多大牛分享代码,聚集了全世界的程序员,吓得我赶紧去学习了 Git 的操作命令,clone了几个觉得适合我当时学习的Android项目源码。


后来和朋友参加软件杯比赛,能写出比较像样的APP了,看着APP从想法到实现,确实能带来很多成就感,也许对别人来说并不完美,但是自己亲手写出来的,自己 debug 出来的APP,就是有不一样的感觉,觉得像自己的孩子一样哈哈!


在大学期间,自己用 PS 画UI,使用第三方的接口,琢磨着做了几个小众的APP,后来将这些APP都装在自己的手机上,面试的时候一边演示一边跟面试官吹吹牛逼,倒也拿了几个实习offer。


后来自己选了创业公司,刚开始就让我接手一个比较大的项目,功能挺多的,商品上下架,第三方支付,商家入驻,到后来甚至还做了附近的人,聊天约炮交友,抽奖等功能,一开始是我和另一个小伙伴负责这个项目的 Android 端,虽然期间遇到了许多问题,比如代码混淆打包闪退,不同手机兼容适配,支付配置不正确等等,也曾怀疑自己是不是能行过,但最后还是一一解决了,前前后后花了快一年时间也在应用市场上架了好几版,不过用户寥寥,可能你应该想到了,产品还没怎么运营,就夭折了。


现在回头想想,产品思维确实很重要,技术只是一个实现手段。


接着也做了几款别的APP,表现也是平平 - -


可能因为表现的还行,后来老大说有个公众号的小项目,后端让我来搞怎么样,当时自己也发现原生 APP 的开发趋势下降了,H5 越来越火,然后跟老大说给我三天熟悉一下 java 后端的,我想了一会跟他说没问题,没想到这一决定让我开始转向后端开发了…


其实这三天主要研究了下 JSP ,Servlet ,还看了点 struts2 框架,然后也算按计划时间倒腾出来了那个小项目,也是因为这个小项目我对后端开发产生了些许兴趣,我觉得写逻辑接口提供给前端调用好像比较牛逼。


那段时间开始研究 SSH2 框架,使用它做了一个电商项目,接着发现很少人用 SSH2 了,然后研究了 SpringMVC 框架,JDBCTemplate,进一步学习 Mysql 的索引、视图,使用 PowerDesigner 设计数据库,Nginx,Linux操作系统环境搭建,操作命令,网络协议等等。


不过之前做的很少涉及到高并发,后来比较流行 SSM 框架了,也使用过它来做一些分布式的项目,慢慢的了解到了连接池、消息队列、定时、缓存、搜索引擎、渲染模板引擎等等。


由于 SSM 配置繁琐,后来 Spring Boot/Spring Cloud 这样的高效框架也越来越多人开始使用了。


后来我又去别的公司做智能产品相关的,学了下 Python,使用 Python 的过程中发现这玩意并没有很难,可能是之前有一些基础在了吧,以至于现在还能用点 Python 教程跟你们吹吹水。


然后越往后越发现基础的东西很重要,诸如:各种设计模式,负载均衡,各种数据结构和算法,网络三次握手过程等等。


就先说到这里吧,当然,这只是我在这过程的一个小片段,有很多我还没说出来,比如也有拼命的时候,一边拉屎一边看教程,也有寻欢作乐的时候,在酒吧「四个六,劈」的那种。


今天发的这篇,主要还是想跟一些正在迷茫中的读者朋友们说,人生有很多不确定性,很多时候的选择,跟着你自己内心深处真的向往的事情去做,会更加好一点。比如我,以前认为技术是我的全部,但现在我觉得不应该被限制住,正在和朋友琢磨一番小事业。


最后,祝你们找到心中所爱,勇往直前,少点顾虑,多点实践,时间会告诉我们答案的。


下回见,peace!


浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报