请问编程功能改如何提升啊?

还在读书,也在实验室帮忙做了些东西,自己也搭过几个网站。在周围人看来似乎好像我很厉害,做了那么多东西,但是我发现这些东西虽然是我做的,但是实际上我手把手自己写的代码却并没有多少,很多都是用开源的东西,我写的代码无非是把别人的东西整合下,类似于胶水一样的工作。

我之前所认为的编程是全手动一行一行敲代码,但是现在我发现哪怕是工程上也有很多人是复制黏贴来解决问题的,并且提倡不要重复造轮子。

但是靠谷歌和复制别人的轮子,虽然我做出了很多东西,可是我并不觉得自己能力上有提升,倒是利用搜索引擎的能力的确提升了不少。而学校里另外一部分在搞ACM的人,他们每天都在刷题练算法,但单凭我个人的感受感觉他们似乎对工程上有些东西并不了解,或许算法的能力才算是实打实的编程能力?那"胶水"的能力和整合轮子的能力算不算编程能力呢?

所以我现在就很困惑,所谓的编程能力到底是什么,我该如何提升自己的编程能力?

我的理解就是 编程能力就是解决问题的能力。 解决问题开始是那个轮子合适就用那个轮子, 不考虑自己造轮子。
当你解决问题多了, 就发现很多轮子不一样,有些好,有些不好, 发现自己能分辨轮子质量了。
再接着,发现自己能改一下轮子,让轮子发挥更多作用。
然后自己就想自己试着造轮子了。
一开始就造轮子,那是另外一个发展方向,就怕轮子造不出,问题也解决不了的两难局面。
回到编程能力,有些基础内容,开始学,可能不知道有啥用,但解决问题过程中,会慢慢觉得有用。
计算机原理,计算机网络原理,数据库原理,数据结构,软件工程,开发模式,编译原理,各种算法 。。。

你好,首先给题主这种觉悟点赞,居安思危,值得学习

其实这个复制粘贴怎么讲呢,本人是做后端开发的,会复制粘贴不是一件坏事
反而是一种技能,这其实是你代码能力提升的途径之一,
很简单,你复制黏贴别人的代码,那你自己肯定是会去搞懂这部分代码是干嘛的(不搞懂别人代码就复制粘贴的除外)
在这个过程中,就是无性的提升,
再者,计算机基础的东西真的很重要,包括你提到的算法
这个都是实打实的东西,需要及其足够的理论和实践知识的
,这个不是复制黏贴就能简单搞定的,需要长时间联系和学习的,
所以你能意识到自己的薄弱点,其实你已经在开始进步了,这个还是值得点赞的
加油