我是标题党。
其实这篇文章叫,Alexi.F两年半编程学习的自我剖析和总结 更好。
但是我就这么叫了,你不服打我呀。
最近每天dalao辉都和我讨论一个小时左右的编程,随着这几天跟他的对话以及更深入的了解。客观来讲,我发现无论是分析问题,还是视野,可能大家比我过去想的还要差。
我觉得他每天抽出一个小时的时间跟我交流,这件事对他何止是非常值,简直是赚。
加上最近加了个群,里面群主跟我无论是说话风格还是说话内容都高度一致。怼人效果都一样。他每次说完话我都发现,跟我想说的一模一样。无论是对学习的态度,还是分析问题的思想,方法,以及分析的结果。
人家已经有六年工作经验了,也不算短了。
所以有的时候我真的羡慕每天能和我交流的dalao辉,如果我大二大三的时候也有julao能跟我交流多好。
我没开玩笑。
在不少人眼里,我大概是一个dalao的存在。
但是,我到底会些什么,我会写什么,我不擅长什么。从来没人知道。
我本来以为一篇文章可以写完,后来发现后面的自我剖析有点多。
估计会分为至少两篇吧。
'''
Q:你觉得学编程这两年半,你最后悔的是什么?
A:写的代码还是太少。
'''
简单介绍下自己,
昵称:AlexiFeng/Alexi.F
编程时间:两年半(准确地说从15年11月开始)
代码量:约为4w(自然比不过3年60w的julao了哈哈哈哈哈哈哈,这个梗我能笑一辈子我感觉),目测毕业的时候能到4.5-5w。毕设怎么也得贡献几千行。)
常用语言:C(纯C),Java,Python
曾用:Ruby,Clojure,Haskell,C#,JavaScript,Factor,Golang(唯一没写过正经项目的语言)
(没什么好奇怪的,我本身就对编程语言这种东西感兴趣,所以也会接触Factor,Clojure这样的冷门语言。)
最喜欢的语言:C和Ruby
擅长领域:操作系统及以上,除了机器学习的所有(好吧其实是Web。但是除了机器学习我基本都能插上几脚)
感兴趣的领域:操作系统及以上,除了机器学习的所有(这回是真的)
在Web这方面,我真的有种强烈的感觉,我已经基本摸到天花板了,接下来只能分领域深入研究了。
这也是我义无反顾去研究DS以及高性能MiddleWare的原因。
我觉得不是每个人都能说出"智商不变,空间和时间只能选一个"/"不存在万能的优化,不谈业务的优化和架构都是耍流氓"事实上工作两三年的人,该蠢还是蠢。 我觉得也不是每个人都能脑补出Ajax,callback等一堆东西的本质和底层实现。
当然,也不是每个人都能承认自己的缺陷。
我缺陷很明显,虽然我写过四万行代码,按理说应该对语言很熟悉了,但与此相反,我不精通任何语言。不只是不精通的问题,而是根本记不住。
这就是个小学算术的问题,4w行,10门语言,其中还有四门不过1千行,平均一下每个语言分7000行,也就2个项目。
比如Python,我就会基本的语法,requests库就会requests.get/post,bs4一个函数都想不起来。你让我写个flask的hello wrold,估计我还得去官网找hello world复制下来。(当然这个我硬想应该能想起来...)
就连json.loads()和json.dumps()都还是我这两天记住的函数。
不怕丢人,我前段时间甚至连py如何新建一个类都不会,跟Java记混了。
但是你说我不会写代码吗?
我觉得也不是。有什么是我不敢写的吗?我好像还没遇到过。(机器学习我敢,但是我不想。)
而且我觉得我写代码还挺快的。不然我大二大三两年这么浪每个学期还能写两个至少3k行+N个小玩意,每学期正经写代码的时间加起来也就一个月。
最主要的是,不限语言,不管这门语言我学没学过,用没用过。(说FP的请出去)。
那么我写过些什么项目呢?
到现在我就正经做过三个网站。
第一个,基于ASP.NET MVC5,这个是纯根据教程模仿的,也基本是我唯一跟教程走过的项目。
第二个是一个Ruby On Rails5的网站。
第三个就是解后,解后是唯一我和别人合作写的项目,技术栈比较复杂。
还有FPS游戏,画图板,学生管理系统,小程序,公众号,APP,以前总结过,大概能有十几个或者20几个?...
也就是说,我正经写过的东西,两年半,也就十几个。
但是呢?
我只是记不住API(虽然这事也很严重)。但是我知道每一步我需要什么,我只要查一下就知道语法了。
至于做网站,我从来没写过数据库明文存密码,页面IE6风格,完全没有防护措施,从来不考虑性能的网站。
RoR那个项目,我是大二上学期,7天零基础学ruby+ror+写完一个全站pjax+各种防护措施+抗压+前后端轻度分离的小型网站。
解后,由我负责设计和技术选型。个人觉得在设计上已经非常成熟了。这也是我第一次正经使用nodejs做中间件(不是第一次使用nodejs),redis做分布式session控制,Py和Java双后端架构,第一次设计完整的restful架构。麻雀虽小五脏俱全,那已经是在我俩当时的技术水平所能实现的极限了。至于在细节上,我甚至给Vue抽空写了个主动推送事件的eventbus。不过最后有点毛病,没用上。。。
而且,那不是我的极限,是在时间限制下我们两个水平和的极限。如果当时是两个我的话,解后的深度还能再上一层。
那个画图板,大二下学期,几乎零基础,10天4000多行代码(不算自动生成),内置脚本语言解释器+各方面功能完善+支持配置文件+支持工程模式。之前写过的最大的GUI程序是一两百行的扫雷,还是跟教程一步一步做的。
(画图板唯一留下的痕迹,控制台模式的操作说明,还不是最终版的...)
还有用C零基础写出MapReduce框架实现TF-IDF,以及大一下学期在C语言之前最多只写过链表的情况下写出几千行的学生管理系统,基于socket设计的B/S架构,仿git的提交设计,md5的实现和应用(大一下学期我就知道md5它该怎么用,别笑,很多人大三了都不知道。),增量更新功能,按自己的理解实现的session和cookie....
有人会说,合着这篇文章你还是要装逼吗?
不是。
我写代码有个特点,不知道你发现没。
虽然代码量少,但我几乎没用重复的语言重复的框架写过重复的程序。
同样是做网站,我正经做过的三个网站,用的完全不同的语言和框架,架构从MVC到Micro Service。从VS的自动补全到Linux下VS Code+rails脚手架。
而我都hold住了。
如果让我评价我觉得我最厉害的地方,大概就是这了。
我几乎没有遇到过我hold不住的东西,除了放了一个月的代码。
待续。
在接下来的文章里,
我会分析我做过的几个比较重要的项目,以及我当时的所想所做,我又收获了什么。
而我的缺陷又如何限制我发展的。
我是怎么看待我自己的,以及我走过的误区。
你会看到一个曾经也是纠结于要不要看视频的普通人,百度云也是有数百G视频。而我又是因为什么,经历了怎样的思想变化,变成了现在的样子。
我是如何花两年半时间,达到别人需要可能比此长得多的时间所获取的进步。
我是怎样学习以及我学习方式的局限性。
领取专属 10元无门槛券
私享最新 技术干货