缺了一部分

  学Java好多年,也参与一次完整项目,觉得让自己写项目写不出来,总觉得缺了一部分。

  在这方面愚笨,不知道缺在哪里。以前觉得是知识不够牢固,于是重复去学,发现就那些东西。如果没有业务来熟悉的话,不会明白那些内容为什么要那样做。

  周围的人,在我看来都是按规矩办事的人,不会有太多思考。让做什么就去做了,没有多少人想这样做是否合适。像使用框架,都在背框架有哪些好处,怎么去使用。到工作中也是直接就可以拿来用,并没有人思考为什么会产生这个框架,为什么会产生那种需求和这种解决方案。明明很庞大和繁琐,思维不够紧密,还是那么多人在用着,不厌其头痛。

  框架是个很大的迷宫,在迷宫中勉强凑合出功能。却没想过一开始就自己找路线,不去用那迷宫。

  这些事说不清。对框架我也没有多深入的理解,觉得那些作用都很别扭。当然有一部分核心功能是很好用的,让人一看就明白为什么要那样做。可是一些拓展功能,就把框架本身弄得复杂而庞大。

  想起,像玩魔兽时候用插件。国内用个大脚,把所有插件都打包,用到的、用不到的。可是其实可能想要的就一两个而已。如果说多了也不要紧,不伤大雅,我就没话说了。

  不过框架的复杂不是做不成项目的直接原因。总觉得在这些类似的复杂背后,有什么是自己不懂的。于是不好承担项目这份责任。

  其实写项目没有多大兴趣,不是对编程解决问题没兴趣,是对那些劣质的需求没兴趣。都是重复做的事,这件事很多公司已经做了,还要复制过来继续做。说着解决新问题,其实是在解决旧问题。别人做了百八十遍了,你再做出来有什么意思。有人说挣钱,这确实,可如果大部分人做的都是这种工作,那就不对劲了。

  有种观点是环境是这样。以前需求过来,国外给设计,国内再编程。现在成APP了,好像直接自己就可以做出来。需求水平其实没什么变化,APP论实现路线要比电脑版简单的多,只是互动性增强。所以按照以前电脑版的解体水平,可以自行处理APP。只是程序设计水平还是没有变,需求水平没变以至于使用框架就可以解决所有问题,没听说哪个项目需要自行研发脱离框架。业务模式是从别人那里复制的,公司做的软件就是别人走过的路,使用框架就很容易满足需求。再臃肿也不要紧,有情愿受苦受累的搬运工。拿着高新其实不知道能成长多少。

  觉得编程可能变成一件繁琐的事。如果说新功能,是有的;可是说实现套路,是没什么变化的。

  这些事情是这样,可还是不明白自己缺少的那一部分是什么。总觉得自己独自写不出来项目。

  第一份工作是在别人项目的基础上打打补丁,当时也觉得写不出来项目,可从数据库建表到后台,再到前台页面更改,都涉及到了。要说做项目还是做不出来。除了现有的公司软件编程方式和我的不一样以外,还有是自己知识不够全。并且不知道缺少了什么。

  对软件思考那么多年,想来早应该做到游刃有余。不知道哪里困惑了自己,却觉得困惑是存在的,包下整个项目会没有底气。

  想起PN结来,模拟电路课上遇到的,自己思考了很多遍,把思路一遍遍走通,可是走通之后,还是觉得不会。大体意思明白,大体思路知道,可是中间是迷雾的。这条路走了这么多变,按理说应该很容易走过来。可是自己知道走过之后就忘了,如果再走一遍需要重新做那些思考,一步一步核对着走通过来。热度在那里的时候还记得,热度过了之后又忘了。然后就到了晶体管,稍复杂一些的PN结,就不好走通了。知道结果,忘记了为什么会是这结果,久了结果也一并忘了。费那么大劲研究好几遍的思路,到头来什么都没了。给个电路不能理所当然就知道结果,这让人觉得好憋。

  知识运用久了,或者理解透彻了,是可以有感觉的。下次再使用这份知识,用的就不是大脑,不用思考就自然知道结果,这才算是真的会。

  编程久了,看一遍就知道运行结果是什么。运行一下只是确认没有疏漏。脑袋也是有容量的,像是胳膊上的肌肉。经常锻炼的话,承受的代码量就多,这里边的逻辑就很容易做到无误。代码量再多,更庞大起来,这里边就容易出现失误。个个环节搭连在一起,整个项目受到牵动。这时候先做框架设计,再写每一个小模块,先画树干再画叶,或许是不错的选择。容量够承受整个程序,应该就可以做项目设计。可是这里边的道道实现起来,并没有那么随心。

  框架是个很大的阻碍。使用框架写程序使得事情要按固定的模式发展。而且框架有阴暗的地方,自己不被告知,没有去钻研底层的地方,这样用起来就不知道整体是怎么流通的,程序设计起来就头大了。可是,又不能不去用框架,因为别人都在用,不用框架的话要自行承担项目逾期的风险,用了框架的话即使逾期了也不要紧,因为都是使用框架后,同样的项目给别人做照样会逾期,这和自己没有主动关系。

  程序设计的繁琐在使用别人的框架,是个很大的累赘。程序做不好不要紧,使用现在流行的框架了,你能很随便地打补丁。打到不行了,就找高人来解决,就打高级一点的补丁。这就是框架的好处,只要程序没有高级到一定程度,在框架承受的范围内就好。可是使用框架的话,就不要谈程序设计了,该怎么做别人已经给固定好了。也不要提软件的整体性,注定从一开始就是个补丁。

  可真要脱离框架了,那些涉及底层或者熟练的业务处理方式都要自己手动写。这些都是非常棒的思考,作为一个学习着会很高兴接触到这部分。可是作为公司,很难有这么大的需求,如果流行框架给的业务处理就能满足,为什么还要花钱自己写?流行框架可是免费的。

  即使是这样。还是觉得自己缺少了一部分。对框架的掌握我确实没有怎么熟练,也并不想去接触太多。可是这和整个项目的走通并没有太大关联。不知道自己缺少的是什么。

  软件相关的计算机知识是一个很庞大的系统。即使在我而言不明白它庞大在哪里。照我的想法,理论的东西走通了明白了之后,不就什么都知道了吗?可真当想去走通,却发现并不那么容易。不是逻辑问题,自己觉得反倒是人情问题。猜测是这样。一些解决办法的产生,是在当时时代背景下酝酿的,可能解决方式还有很多种,相关的可能性还有很多种。只是在当时的资源环境下,就产生了那唯一的一种。以至于现在反过来都不怎么明白,为什么会那样去做,觉得很繁琐,不好背下来。这样想着,于是问自己,如果想去了解CPU的运行,难道还要去和生产CPU的人工资在一起,去明白其中包含的情感? 呵呵呵。大概是知识对我来说太庞大,超出了可以消化吸收的范围,才产生了一些偏离的逻辑。

  去研究底层遇到障碍,去弄明白需求市场觉得看不到更高层析的需求。而眼前的做项目,仍然一个人做不下来。

  不懂框架,加上不懂业务需求,不敢肯定自己做出来的软件是符合需求的。是一条不知道结果的路。我倒觉得,做软件本身就应该是这个样子,本身就是融合自己的思考,抛开那些累赘的框架,做适合当前需求的系统,为当前系统量身打造。所有的处理都去自己写,每一步都有轻微的变动。这对程序员和公司来说,都可以得到良性的成长。

  不用流行框架上的解决方案,自行设计思路,摸着石头过河,不适用再改。有什么公司能有这种需求?

  觉得我缺少的,或许是耐心,却又不这样认为......

转载于:https://www.cnblogs.com/flangrean/p/9257246.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络——各种网络的简洁介绍和实现

各种网络模型:来源《动手学深度学习》 一,卷积神经网络(LeNet) LeNet分为卷积层块和全连接层块两个部分。下面我们分别介绍这两个模块。 卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模…

数据中台是下一代大数据_全栈数据科学:下一代数据科学家群体

数据中台是下一代大数据重点 (Top highlight)Data science has been an eye-catching field for many years now to young individuals having formal education with a bachelors, masters or Ph.D. in computer science, statistics, business analytics, engineering manage…

net如何判断浏览器的类别

回复:.net如何判断浏览器的类别?浏览器型号:Request.Browser.Type 浏览器名称:Request.Browser.browser 浏览器版本:Request.Browser.Version 浏览器Cookie:Request.Browser.Cookies 你的操作系统:Request…

AVS 端能力模块

Mark 转载于:https://www.cnblogs.com/clxye/p/9939333.html

pwn学习之四

本来以为应该能出一两道ctf的pwn了,结果又被sctf打击了一波。 bufoverflow_a 做这题时libc和堆地址都泄露完成了,卡在了unsorted bin attack上,由于delete会清0变量导致无法写,一直没构造出unsorted bin attack,后面根…

优化算法的简洁实现

动量法 思想: 动量法使用了指数加权移动平均的思想。它将过去时间步的梯度做了加权平均,且权重按时间步指数衰减。 代码: 在Gluon中,只需要在Trainer实例中通过momentum来指定动量超参数即可使用动量法。 d2l.train_gluon_ch7…

北方工业大学gpa计算_北方大学联盟仓库的探索性分析

北方工业大学gpa计算This is my firts publication here and i will start simple.这是我的第一篇出版物,这里我将简单介绍 。 I want to make an exploratory data analysis of UFRN’s warehouse and answer some questions about the data using Python and Pow…

泰坦尼克数据集预测分析_探索性数据分析-泰坦尼克号数据集案例研究(第二部分)

泰坦尼克数据集预测分析Data is simply useless until you don’t know what it’s trying to tell you.除非您不知道数据在试图告诉您什么,否则数据将毫无用处。 With this quote we’ll continue on our quest to find the hidden secrets of the Titanic. ‘The …

各种数据库连接的总结

SQL数据库的连接 return new SqlConnection("server127.0.0.1;databasepart;uidsa;pwd;"); oracle连接字符串 OracleConnection oCnn new OracleConnection("Data SourceORCL_SERVER;USERM70;PASSWORDmmm;");oledb连接数据库return new OleDbConnection…

关于我

我是谁? Who am I?这是个哲学问题。。 简单来说,我是Light,一个靠前端吃饭,又不想单单靠前端吃饭的Coder。 用以下几点稍微给自己打下标签: 工作了两三年,对,我是16年毕业的90后一直…

L1和L2正则

https://blog.csdn.net/jinping_shi/article/details/52433975转载于:https://www.cnblogs.com/zyber/p/9257843.html

基于PyTorch搭建CNN实现视频动作分类任务代码详解

数据及具体讲解来源: 基于PyTorch搭建CNN实现视频动作分类任务 import torch import torch.nn as nn import torchvision.transforms as T import scipy.io from torch.utils.data import DataLoader,Dataset import os from PIL import Image from torch.autograd…

missforest_missforest最佳丢失数据插补算法

missforestMissing data often plagues real-world datasets, and hence there is tremendous value in imputing, or filling in, the missing values. Unfortunately, standard ‘lazy’ imputation methods like simply using the column median or average don’t work wel…

华硕猛禽1080ti_F-22猛禽动力回路的视频分析

华硕猛禽1080tiThe F-22 Raptor has vectored thrust. This means that the engines don’t just push towards the front of the aircraft. Instead, the thrust can be directed upward or downward (from the rear of the jet). With this vectored thrust, the Raptor can …

聊天常用js代码

<script languagejavascript>//转意义字符与替换图象以及字体HtmlEncode(text)function HtmlEncode(text){return text.replace(//"/g, &quot;).replace(/</g, <).replace(/>/g, >).replace(/#br#/g,<br>).replace(/IMGSTART/g,<IMG style…

温故而知新:柯里化 与 bind() 的认知

什么是柯里化?科里化是把一个多参数函数转化为一个嵌套的一元函数的过程。&#xff08;简单的说就是将函数的参数&#xff0c;变为多次入参&#xff09; const curry (fn, ...args) > fn.length < args.length ? fn(...args) : curry.bind(null, fn, ...args); // 想要…

OPENVAS运行

https://www.jianshu.com/p/382546aaaab5转载于:https://www.cnblogs.com/diyunpeng/p/9258163.html

Memory-Associated Differential Learning论文及代码解读

Memory-Associated Differential Learning论文及代码解读 论文来源&#xff1a; 论文PDF&#xff1a; Memory-Associated Differential Learning论文 论文代码&#xff1a; Memory-Associated Differential Learning代码 论文解读&#xff1a; 1.Abstract Conventional…

大数据技术 学习之旅_如何开始您的数据科学之旅?

大数据技术 学习之旅Machine Learning seems to be fascinating to a lot of beginners but they often get lost into the pool of information available across different resources. This is true that we have a lot of different algorithms and steps to learn but star…

纯API函数实现串口读写。

以最后决定用纯API函数实现串口读写。 先从网上搜索相关代码&#xff08;关键字&#xff1a;C# API 串口&#xff09;&#xff0c;发现网上相关的资料大约来源于一个版本&#xff0c;那就是所谓的msdn提供的样例代码&#xff08;msdn的具体出处&#xff0c;我没有考证&#xff…