• 学会编程, 而不是学会Java


    我发现其中很多初学者,尤其是半路出家的遇到了一个很普遍的情况: 那就是只学会了Java 的语法, 而没有学会编程。 

    我拿一个例子来说一下, 下面是一个SimpleList 的类, 模仿java 的ArrayList,   已经定义好了接口,需要实现具体的业务:

    1. /**
    2.  * 自定义的一个模仿ArrayList的类, 你需要实现其中的add, get, remove , 等方法
    3.  */
    4. public class SimpleList{
    5.     private Object[] elementData;
    6.     private int size=0;    
    7.     public int size() {            
    8.         return -1;
    9.     }
    10.     public SimpleList(){        
    11.     }
    12.     public boolean isEmpty() {    
    13.         return false;
    14.     }    
    15.     public boolean add(T e) {
    16.         return false;
    17.     }
    18.     public boolean remove(Object o) {
    19.         return false;
    20.     }
    21.     public T get(int index) {
    22.         return null;
    23.     }
    24. }

    然后我拿这个类给几个人测试, 我发现很少人能够顺利的把这几个方法给实现了, 哪怕是非常粗糙的实现也没有。 

    感兴趣的同学也可以用你擅长的语言尝试一下。 

    这个题目不要求实现复杂的算法, 也不需要进行面向对象的设计,也不需要考虑多线程下的线程安全, 况且已经给了提示:

    用一个Object数组来实现。 

    如果说有一点语法层面的难度, 那就是使用了一点泛型。 

    其实如果我把泛型去掉, 估计他们还是实现不了, 因为这个类的核心逻辑不是泛型。 

    这个SimpleList 要求的就是能对一个数组进行操作,核心就两点:

    1. 能往数组添加数据, 记录size ,如果数组空间不够了, 需要增大空间

    2. 能删除数组指定位置的数据,并且把之后的数据往前挪动。

    难吗? 这其实是编程序的基本素养, 编程的本质,和用什么语言实现没有关系。

    如果不是Java , 学的是C#, 或者Python,  我估计结果也差不多。

    我想可能是不少人都缺乏最最基本的数据结构和算法的训练, 还没有养成面向计算机的逻辑思考的方式。 

    解决的办法其实也很简单:就是多实践,多编码, 我推荐多做数据结构和算法的习题, 这也是我个人的经验, 大学时把数据结构的习题都做一遍, 后来工作中只要不是设计算法, 基本上没要难住我的。

    如果以后想选择码农作为职业, 这种编程能力是必不可少的, 所以在校的同学, 不妨从现在就开始, 把缺失的能力不上。 

  • 相关阅读:
    Fourier分析导论——第3章——Fourier级数的收敛性(E.M. Stein & R. Shakarchi)
    Python 中的数字
    长沙地铁一号线大客流运输组织优化研究
    框架安全-CVE 复现&Apache Shiro&Apache Solr漏洞复现
    电脑设备管理器在哪里可以找到
    回转窑无线测温系统解决方案
    怎样的数据采集系统才算合格
    七甲川染料CY7标记PLGA纳米粒|CY7-PLGA|PLGA-CY7|CY7-Se-PEG-PLGA
    JavaScript-DOM编程
    已加载插件:fastestmirror, langpacks /var/run/yum.pid 已被锁定,PID 为 2686 的另一个程序正在运行。
  • 原文地址:https://blog.csdn.net/weixin_72753070/article/details/126134148