好久没有写过博客了,就连这篇博客,也是拖欠了十几天才写的。
现在回想一下,我这学期,关于编程,关于代码,都在纠结些什么东西:
- C++的各种初始化(值初始化,零初始化,默认初始化,拷贝初始化)
- C++的三五法则,五大copy control函数(析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符),他们的 trivial 与 non-trivial,什么时候才会合成non-trivial的函数,怎么调用父类的copy control函数
- C++的左值和右值,关于std::move的实现
- C++关于返回值优化?RVO,NRVO?内置类型返回为什么不提,寄存器?临时对象,move操作,汇编(大雾).....
- C++的虚函数表,成员函数指针的结构,甚至关注上了 intptr_t
- C++中的 initializer_list 的实现原理(link、link)
- C++中虚继承的实现原理(旷日持久的思考纠结真的可能只是想得太多)(Dec 9th 2017)
- 补码、位操作、取模 etc(Dec 9th 2017)
- Java多态的实现,关于怎么由引用类型找到基类的虚函数表,怎么由引用指向的对象类型找到实际调用的虚函数
- Java和Python中共同存在的字符串问题:拼接效率、string interning pool机制等
- Java 中的方法表机制?为什么要写作ClassName.Method(args),无数次提醒自己这不是调用而只是说明是这个类的成员函数
- Java 中的静态方法中调用静态方法并不会插入类名,什么东西都没有通过参数传进去好么,就是这么diao的直接调用
- Java:不管有几层函数几层嵌套都有JVM和GC替你搞定
- Python中的元类,type 与 object 的关系?菱形继承时通过什么解决的,super 的作用?
- Python、JS、MATLAB等脚本语言中,关于 for if else try 等生成作用域问题,关于变量名相同的重定义问题
- JS的原型链问题、var hoisting问题
- 关于各种语言中的 null
- 其他零零碎碎想过的各种垃圾
回过头来看看,这些东西,对你来说有什么用处,整天围绕在这些东西上纠结于OCD无法自拔,整天弄得自己脑子里像充满了浆糊一样,效率几乎为零,编程能力永远不会得到提高好吧!看看你在大三开学时建的 senior_cpp 文件夹,现在大三结束了里面只有一个 Test 的项目,用于自己在里面折腾那些个语言细节;自己很久很久以前就准备读 MarkAllenWeiss的算法书,至少有一年了吧,现在还是基本没读;Leetcode,注册了多长时间了都,刷了几道题呢;多少次很久以前借的书续借两次了甚至都还了再借了又被催还发现还是没有看;其实可视化实习的时候已经感到自己编程能力的弱鸡了不是么;甚至今天国重夏令营笔试写一个计算多边形面积都没有写利索。
真的,你早都应该意识到,只靠这些东西,每天纠结于这些东西,你永远永远也提高不了自己的编程能力,永远永远也写不出好的代码。
效率为零,纠结于OCD,甚至一整天的时间都在纠结于一个问题,怎么可能会飞速进步?
这样,怎么可能学好编程成为大牛甚至实现自己的梦想?
总是纠结于这些东西,真的,没有任何希望!!!
编程应该重在实践,下面才是你应该做的:
- 你不是科班出身,首先应该达到的是对编程语言的熟练运用状态,纠结于语言的边边角角细节、妄图搞明白语言的具体实现、甚至完全没有必要地联想各种语言之间的关系及其相似点,都是完完全全地在浪费自己的时间。尤其对于现在的你来说,语言只是工具,不管使用什么语言快速将自己的想法实现才是正道。
- 搞清楚自己的侧重点,自己的将来志向在于 ML、DL、DM,并不在于Web、Android或者游戏开发,所以你最需要的是对各种算法的研究与熟练,还是那句话,语言只是工具,有纠结于语法细节甚至具体实现的时间,远远不如刷几道算法题来得划算。搞清楚自己的定位,做对自己的未来最有益的事情。
- 肯定会遇到问题,每个人都会遇到问题,但是关键在于遇到问题能够迅速解决,能够尽快地找到解决方案(可能并不是最佳方案),而不是一味地纠结甚至联想。
- 不要给自己找问题来想,不要自己给自己加戏添堵,着力解决自己遇到的手头上的问题,决不再自己给自己想出那些网上都找不到答案大家都不考虑的然后自己纠结一整天的问题,不要再想已经解决过的问题,相信自己的记忆力与经验好么。
- 编程,最重要的还是实践,这个朴素的真理,自己很早就知道,但是道理明白了更要付诸行动,真正去动手,去实践,去敲代码,而不是每天的纠结空想。
- 数学、算法,是自己的兴趣,更是未来想给自己增添的优势所在,一定要在这上面多花时间,多撸算法,想纠结的时候就去撸算法。
- 最后,时刻记住珍惜时间,提高效率,时刻提醒自己尚未实现的梦想和肩上担负的责任。
明天开始就去群光上苑那里“上班”了,借这个契机,有人可以督促自己有人可以一起学习,这个暑假,跟着刘师兄,努力敲代码,狠狠提高自己的编程能力。
国重夏令营结束→明天开始“上班”→Begin Again!