关于编程能力


    前一段的直播课程结束了,效果没有我想象的好,但也结识了一些新的朋友,在与大家的交流的过程中,又出现了一个老生常谈的问题,就是感觉各个知识点都会了,到了写代码的时候不知道怎么下笔,其实很多学C语言的同学都遇到了这个问题,这可能就是所谓的编程能力吧.在我的另一篇笔记"编程语言究竟学什么?想说的就是这个编程能力,现在我有了更清晰的认识,编程能力就是在你彻底弄懂算法之后,能够顺利将这个算法用代码实现,当然这个算法可能非常复杂.衡量是否掌握一门语言的标准应该就是这个吧.算法固然重要,但的确是语言之外的东西.
    那么很多同学为什么没有掌握这种编程能力呢.这也正是我的直播课堂主要讲述的内容.

    第一点 对语言的理解不到位,造成了具体的算法过程对应不上抽象的语言理解.计算机语言不是自然语言,也不是数学语言,而是基于处理器和存储器的特殊语言,他的重点内容在于对存储器的管理和使用,而我们现有的教材里恰恰忽视了这点,"变量,赋值"这些抽象的数学名词被拿来讲述编程语言,在我的课程里他们变成了"(内存)空间,存储",数组不再是抽象的数据集合,而是具体的 多个空间 ,再来看算法,有很多步骤就是把一些东西读出来存进去,常见的算法步骤有查找,就是把一大堆数据挨个读出来,进行判断,再一个就是存储,首先看看需要开什么样的空间来存,就是开空间,专业名词是声明变量,我把C语言的涉及到存储的内容合并为一章,讲述了C语言关于内存使用的多个方面,包括变量,数组,指针,结构体,一次课就可以明白结构体类型的指针数组的含义,分开反而不容易讲明白.这方面的东西可以参考我的另一篇笔记"C语言的存储",对于C语言是这样,对于其他编程语言也是这样.

    第二点 对函数认识不够,其实写程序就是写函数,不管是什么语言.函数有一个重要的东西就是参数,算法是一种方法,是针对一些不确定的数据进行特定处理的方法,那么参数就是那些不确定的数据,函数就是算法的载体,写算法就是要写一个函数,而我们现有的教材在讲算法的时候往往忽视了这点,把一个算法弄清楚,首先就是要把参数和返回值弄清楚.在写算法的时候,除了上面说读取和存储之外,还有一些其他的行为,比如在二分法查找里,要先"排序",还有上面说的"查找",每一个行为都是一个函数,在遇到这些行为的时候,我们不要着急写代码,直接调用一个自己定义的或别人的函数(有写过的,就直接调用)代替,等回过头来,再实现这个函数,这样你的算法很容易就写出来了.很多同学对函数参数理解的不好,不敢放开用,就导致了躲避函数的习惯,不管多少代码,都写在一个函数里.其实这样反而影响了算法的思路.
    
     如果以上两点都解决了,我想你的编程能力一定提高了不少,当然,一定要去写,写出来才能看的清楚,想的明白.在我看来,学习C语言,主要就是以上两方面的内容,至于表达式,循环,分支,跳转等知识,应该不是难点.在我的课堂里是以一个小游戏作为练习的内容,不像以前,你只是写一个个孤立的小东西,现在你写的是一个软件的一部分,这样写出的代码实际意义更强一些,开始就是实现游戏里的算法,主要是三个算法,一个随机放球,第二个是检测消球,给定一个点,检查4个方向是否可以消球,第三个最短路径,给定两个点,找到两个点间的最短路径.前两个算法简单,最后一个难一点,学过数据结构的应该没问题,就是广度优先算法.有兴趣的同学可以尝试写一下,来检测一下自己的编程能力.不管你用什么语言都可以来实现这些算法,如果你用一种语言写过之后,学习第二种语言来写这些算法的时候,你会发现你很清楚的知道你学习的重点是什么,这样就会非常快的学会另一种语言.
[JAVA工程师必会知识点之并发编程] 1、现在几乎100%的公司面试都必须面试并发编程,尤其是互联网公司,对于并发编程的要求更高,并发编程能力已经成为职场敲门砖。 2、现在已经是移动互联和大数据时代,对于应用程序的性能、处理能力、处理时效性要求更高了,传统的串行化编程无法充分利用现有的服务器性能。 3、并发编程是几乎所有框架的底层基础,掌握好并发编程更有利于我们学习各种框架。想要让自己的程序执行、接口响应、批处理效率更高,必须使用并发编程。 4、并发编程是中高级程序员的标配,是拿高薪的必备条件。 【优惠说明】 1、120余节视频课,原价299元,今日报名立减100,仅需199元 2、现在购课,就送价值800元的编程大礼包! 备注:请添加微信:itxy41,按提示获取讲师答疑服务。 【主讲讲师】 尹洪亮Kevin: 现任职某互联网公司首席架构师,负责系统架构、项目群管理、产品研发工作。 10余年软件行业经验,具有数百个线上项目实战经验。 擅长JAVA技术栈、高并发高可用伸缩式微服务架构、DevOps。 主导研发的蜂巢微服务架构已经成功支撑数百个微服务稳定运行 【推荐你学习这门课的理由:知识体系完整+丰富学习资料】 1、 本课程总计122课时,由五大体系组成,目的是让你一次性搞定并发编程。分别是并发编程基础、进阶、精通篇、Disruptor高并发框架、RateLimiter高并发访问限流吗,BAT员工也在学。 2、课程附带附带3个项目源码,几百个课程示例,5个高清PDF课件。 3、本课程0基础入门,从进程、线程、JVM开始讲起,每一个章节只专注于一个知识点,每个章节均有代码实例。 【课程分为基础篇、进阶篇、高级篇】 一、基础篇 基础篇从进程与线程、内存、CPU时间片轮训讲起,包含线程的3种创建方法、可视化观察线程、join、sleep、yield、interrupt,Synchronized、重入锁、对象锁、类锁、wait、notify、线程上下文切换、守护线程、阻塞式安全队列等内容。 二、进阶篇 进阶篇课程涵盖volatied关键字、Actomic类、可见性、原子性、ThreadLocal、Unsafe底层、同步类容器、并发类容器、5种并发队列、COW容器、InheritableThreadLocal源码解析等内容。 三、精通篇 精通篇课程涵盖JUC下的核心工具类,CountDownLath、CyclicBarrier、Phaser、Semaphore、Exchanger、ReentrantLock、ReentrantReadWriteLock、StampedLock、LockSupport、AQS底层、悲观锁、乐观锁、自旋锁、公平锁、非公平锁、排它锁、共享锁、重入锁、线程池、CachedThreadPool、FixedThreadPool、ScheduledThreadPool、SingleThreadExecutor、自定义线程池、ThreadFactory、线程池切面编程、线程池动态管理等内容,高并发设计模式,Future模式、Master Worker模式、CompletionService、ForkJoin等 课程中还包含 Disruptor高并发无锁框架讲解:Disruptor支持每秒600万订单处理的恐怖能力。深入到底层原理和开发模式,让你又懂又会用。 高并发访问限流讲解:涵盖木桶算法、令牌桶算法、Google RateLimiter限流开发、Apache JMeter压力测试实战。 【学完后我将达到什么水平?】 1、 吊打一切并发编程相关的笔试题、面试题。 2、 重构自己并发编程的体系知识,不再谈并发色变。 3、 精准掌握JAVA各种并发工具类、方法、关键字的原理和使用。 4、 轻松上手写出更高效、更优雅的并发程序,在工作中能够提出更多的解决方案。 【面向人群】 1、 总感觉并发编程很难、很复杂、不敢学习的人群。 2、 准备跳槽、找工作、拿高薪的程序员。 3、 希望提高自己的编程能力,开发出更高效、性能更强劲系统的人群。 4、 想要快速、系统化、精准掌握并发编程的人群。 【课程知识体系图】
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页