`

代码二十万,程序如有神

阅读更多
课程设计虽然最后因为迟到被取消答辩资格,该做的总结还是要有的。年轻人最终还是要自己对自己负责。
首先从方法上说起吧!这次的课程设计的两周一直在闭门造车了。谈到学习,大抵可有两类:一是说,先模仿然后个人去思考;另一是说先思考,独立寻找问题的解决方案,然后再追踪严谨的解题方式,去比较异同,进而反思自己的漏洞与不足之处。两类方法绝无优劣之分,因人因情而异。前者的弊病在往往我们模仿完了就忘掉了自己的独立深入思考,以为问题就这样被简单的解决了,自己已经掌握了问题的最优解决方案。殊不知,没有深入思考的模仿就像用空篮子去打水,当时捞了一箩筐,等你真正口渴了想去喝的时候,那点水分早就被时间消磨,被其他刚接触出的东西挤压,不知去处了。再说后者,有了个人的解决方案,问题虽然解决。可不是最佳方案,那可能是牺牲了太多的时间空间,效率最低的方式。没有事后的深度思考,深入比较,很容易形成思维惯性。也就是说之后虽然看到了一些解决问题的巧妙办法,当时只觉豁然开朗,醍醐灌顶大骂自己愚笨,但是当再一次碰到类似的方法时候,个人很容易用最早的方案而不是后来遇到的好办法去解决问题。深度思考会使大家走的更有效,更轻松。对前后效用给个估计,我相信不做思考只占到效用的30%,后边70%绝对来于你怎样把问题概括、发挥、总结、升华。
一言以蔽之,就是子曾经曰过的举一反三。事多如此,知易行难,举一反三不是天赋,不是兴趣,只是个习惯问题。假如你渴望成功,这个习惯就值得你拥有。咀嚼回味,写博客对诸编程帝是个很大众的做法哈~
其他的感慨之一是程序绝对不是瞎凑出来的。不论何时,作为IT人一定要保持清晰的逻辑思维。有算法意识,是写出完美程序的第一步。计算机是个实践性很强的专业,这没错,刚入门的菜鸟譬如说我,写程序第一步就是打开IDE,边想边做,一边改BUG,一边想语句,基本没有算法意识。寒假看过一段时间的算法,觉悟的东西可怜的很,十中甚至无一二。用的熟练的恐怕就是蛮力法了,自己也真是蛮的可以……其他的,贪心、分治还是七窍通六窍,递归还好,经过这次的设计算是知其一二矣!王一男《编程黑马真言》还说:递归,神人也。递归思想绝对博大精深。小子在这儿得瑟了。另一感慨是不要过分依赖IDE,更确切的说法是不要过分依赖编译器的报错查错。之于新手,利用编译器报错,能解决很多的语法错误,但是因为这,不自然的就会养成很多不好的习惯。很严重的一个就是上边谈到的,缺乏算法意识。总想着试试看,有问题再解决。过分依赖编译器的查错报错机制,一个程序员迟早会丢掉代码嗅觉,导致编程基础知识的模棱两可,导致基础的不牢固。《大唐双龙传》里边鲁苗子把寇徐两人手里的飞天神爪给扔下深崖就是出于这么个考虑,依赖工具会限制个人能力的增长。程序的BUG只能存在在逻辑,存在在算法里边,否则只会浪费更多的时间,却不会有什么进步。、
上边所说的两点,在小的设计里边或可支撑一二,看不出严重的问题。倘若在大的架构里边,这样的做法只会使项目工程以灾难收尾!这些缺陷最终必然导致无限复杂性,使代码趋向不可控制。
最后再说一下程序员的阶梯进步,下一步应该怎么做。最好多去大型的书店转转,一来愉悦自己,二来开开眼界。缺乏导师,缺乏志友,能伴我的就是书了。虽然大学两年了,入门也就一年,进步很慢,总觉得自己该走的更快,每每都会想到自己落后太多,心里总是有所不安。进来忽然想不知道这算不算人性的一个弱点:熬夜的太多是出于一种对未来的责任感,实际想想,熬夜的反面却是效率不高。学会平衡生活各方面吧,否则只会输的更惨。
代码二十万,程序如有神。如果在十年内能做这一点,足够了。没来由的想起杜牧的一句诗:春风桃李一杯酒,江湖夜雨十年灯。不解释了,都懂得……就编程哲学,像克努特那样天天说算法我们怎么样我们怎么样是不可能了,能到梁肇新我就是程序程序就是我那高度,人生也就圆满了。还要提一点,之后怎么走,大学剩下的是多博、还是精专,细思量!
分享到:
评论

相关推荐

    零基础实现微信电商小程序开发PDF+HTML

    资源暂时不全 ,需要的后续联系 非原创 如有冒犯原作者请联系删除第一章 开篇词 01 开篇词:为什么你觉得学编程好难?... 05 源代码:了解构造才能下刀如有神 06 解剖分类拆解法详解2 L! s7 B. F$

    群辉 jun 大神的 918+ 6.2 的1.03b引导程序

    - 引导镜像:"synoboot-ds918p.img"是引导程序的核心部分,它包含了一个定制的启动加载器,能够快速启动系统,并且可能包含了一些优化代码,以提高启动效率和整体性能。 3. 安装与使用: 安装jun大神的引导程序...

    读MAC的dll

    在IT行业中,DLL(Dynamic Link Library)是一种共享库文件,用于封装一组函数和资源,供多个应用程序调用,以实现代码复用。标题中的“读MAC的dll”指的是一个特定的DLL,它专注于读取计算机网卡的物理地址,即MAC...

    3ddb54758e09438da4411e0ff1bc9d13_ccf_

    通常,竞赛中的程序代码会按照题目顺序命名,所以1.java可能是第一题的解答,2.java是第二题的解答,而5.java可能是额外的代码或者第三题的解答,不过这里没有提及第三题。 对于Java编程来说,我们可以讨论以下几个...

    R7F0C016定时器RD(互补PWM模式).zip

    当定时器的计数值达到特定阈值时,可以触发中断,这在实时控制系统中非常有用,因为中断服务程序可以执行关键任务,如更新PWM占空比或处理其他系统事件。 在"an_r01an2684cc0100_r7f0c016_pwm"这份文档中,很可能会...

    c语言深度挖掘(一)

    2. **代码区**:程序的指令和大部分字面常量(如字符串字面量)存储在此区域。 3. **栈区**:大部分函数的形参和局部变量在这里分配,当函数调用结束时,栈空间会被回收。 4. **堆区**:通过`malloc`或`calloc`等...

    C语言深度挖掘(二)

    C语言深度挖掘的第二部分主要探讨了函数指针、动态链接库以及编程中的内存管理概念。函数指针是C语言中的一个重要特性,它允许我们将函数的地址赋值给指针变量,使得我们可以通过指针来调用函数。函数指针的定义格式...

    gotGods:众神展示

    在压缩包文件名"gotGods-main"中,"main"通常代表主要的或者核心的部分,可能是项目的源代码仓库、主程序包或者主要资源文件。这提示我们"gotGods"项目的核心内容可能包含在这个压缩文件里。 如果我们要深入探讨这...

    上班时间刷leetcode-algorithm_notes:这是我的算法笔记

    算法题如同学生时代的试题,我们需要反复练习才能下笔如有神。 为什么刷题 于我们程序猿来说一个很现实的问题就是面试需要,面试官在筛选人才的时候看重数据结构和算法分析的掌握,尤其是大厂。所以要过面试则必须...

    水晶报表开发

    - `<param-name>crystal_image_use_relative</param-name>`设置了图片路径为相对于web应用程序的相对路径。 3. **配置CrystalReportEngine-config.xml**: - 在`jdevhome/jdev/myhtml/OA_HTML/WEB-INF`目录下,...

    游戏开发中的经典算法集锦之一

    ### 二、归并排序(Merge Sort) #### 算法描述 归并排序是一种高效的排序算法,采用分治策略来实现排序。该算法通过递归地将待排序的序列分成两半,直到每个子序列只有一个元素,然后再逐步合并这些子序列,同时...

    JQuery参考文档

    jQuery 的事件处理程序通常包含在 `$(document).ready()` 函数内,确保在用户可以交互之前,事件监听器已经安装好。 总结,jQuery 通过其简洁的语法、强大的选择器和丰富的功能,极大地简化了 JavaScript 编程,...

Global site tag (gtag.js) - Google Analytics