31 岁,还要继续干一线码农吗???
伴随着互联网,物联网,大数据,云计算,电子商务,智慧农业,智慧医疗,智慧交通,智慧教育,直播,5G,AI 时代的到来,软件开发也发生了极大的变化,从早期的单体到现今如火如荼的微服务开发模式,直接影响框架升级改造的步伐,依然记得一开始只需几个 java 文件,几个 jsp 文件,和大量的 html 和 JavaScript 文件就能完成项目的开发,慢慢出现了 struts,Hibernate,iBatis,spring 等框架的横空出世,可不到五年就夭折了,只剩了 spring 和 mybatis 了,最近三两年又冒出来一些快速开发的包装框架像 spring boot,spring cloud,dubbo,越来越流程化开发,前后端也分离(早期开发前后台没有分离),是啊,这么多年过去,规范早该制定出来了。务必要记住,mvc 那套请求 /响应处理流程并没有变,是数据格式变了,以前是动态页面,现在是纯 json 格式的数据。前端框架变化也很大,包装的也很恐怖,我经历了从原生 JavaScript>dojo>jquery,现在被 vue.js(国内),react,anguler.js (国外)瓜分。变与不变。大大小小的项目做了近三十个,国税局的监督考评系统,某税务的情报分析系统(人可不能犯大错,比如偷税漏税欠款),厦门市统计标准化控制平台,交通管理系统开发,某私企的定制化软件开发,自研存储平台的 python django for web 开发,长城(合作伙伴)定制化开发,新疆人口普查系统,大数据实验平台收费版,大数据兼人工智能实验平台一体化开发。。。。。。小项目就不写了略过,总之一句话,大同小异!!! 我经历了 java 开发变迁史,从早期编写原生的 servlet 、自研 mvc 和数据库 orm 、和使用开源框架 struts 、hibernate 、jsp 、spring 、springmvc 、freemarker 、springboot,到最后前后端分离式开发,一开始开发工具用的是 editplus 。相对来说,现在开发很好了,框架生态(只有 spring 生态传承下来了,其他都成了历史)建立健全起来了,只需要流程化开发就行, 按目前来说可以,前后端分离了,特别是大厂,分工也明确,不需要关注后端,不像早期按模块(包括前后端,最后合成一个系统)开发,每个人分担两三个模块,甚至装系统配置、调试网络设备、兼后期运维,所以说现在的开发(且框架生态也很好)是很幸福了。
终有一天,幡然醒悟: 人要学习的是操作系统,cpu 、内存分配、io 模型、进程 /线程等是很重要的,希望其他人早意识到 cpu 、内存分配、io 模型、进程 /线程等是很重要的(会让你更好的理解一些库和中间件的实现原理),而不管你用 java 、scala 还是 golang 写。
我们不能只会调 api(群里就不少,你的问题就暴露出来了),要关注人家老外怎么实现的,也曾拜读过 struts(早年了,现在很少有人用了,可理念不会过时)、mybatis 、spring 、kafka 源码,没有一定的知识积累,估计连概念、意想都不一定能想到的,不要纯粹学 java !!得思想者得道。就是说让你去设计一门编程语言或缓存中间件或消息通信库等,您会怎么考虑???那么就能做各种各样的业务开发,不管任何行业(交通、医疗、政务信息化、物联网、区块链、能源、金融等等)。
这也算是我对出道没多久的码农一点建议吧。只有强大的理论体系(道),才能写各种各样的术(框架或工具库),最后就是做业务开发了。
1
taskiller 2020-10-22 07:52:02 +08:00 via iPhone
做业务开发不好吗,技术也是为业务服务的。cpu 内存这些更偏向于纯技术了,也不能只了解纯技术,否则一样会迷茫。
|
2
hello2060 2020-10-22 08:15:00 +08:00
求问 cpu 怎么学!
|
3
96412hj 2020-10-22 09:30:52 +08:00
影响大多数人成长的不是技术而是业务
|
5
dongguangming OP @96412hj 话是这么说,可实际上你不能拿着业务去面试技术
|
6
coderluan 2020-10-22 10:16:10 +08:00
跑个题, 罗列名词并不是个好的写作习惯, 起码在写随笔的时候不是, 用一个词举例或者概括就可以了, 列一堆不能对文章有什么实际帮助, 反而会降低阅读体验.
|
7
hemingway 2020-10-22 10:17:18 +08:00
文不对题
|
8
N1ceHua 2020-10-22 10:27:37 +08:00
写一大堆没用的,看来你确实很迷茫啊
|
9
terrytang1 2020-10-22 10:35:35 +08:00 1
中心思想 : 刚干这行的,注重下基础培养,知其然知其所以然
|
10
kop1989 2020-10-22 10:38:55 +08:00 1
同年,我的理解是要深耕某一领域的业务。
最起码要精通某个领域业务的解决方案。 这样你的技术才有落地的可能,也才能构建你自己的不可替代性。 光有技术本身是没有不可替代性的,只掌握技术的是工人,不是工程师。 |
11
sun1993 2020-10-22 11:48:22 +08:00
你说你做的那些系统大同小异?那我是不是可以理解可以使用代码生成技术来生成一整个项目?
|
12
micean 2020-10-22 11:57:07 +08:00
业务开发想往上走,重要的反而不是技术和业务,而是人际圈子
|
13
kuro1 2020-10-22 15:01:22 +08:00
31 岁了,发个帖子分段落都做不好
|
14
dongguangming OP @sun1993 不可以,业务细节出入还是很大,定制化多
|
17
zion03 2020-10-22 17:42:43 +08:00
赞同楼主观点,很多人以“业务重要”为借口,忽略基础知识的储备。
|
18
revalue 2020-10-22 17:45:21 +08:00
|
19
revalue 2020-10-22 17:51:54 +08:00
|
20
xiubin 2020-10-22 17:54:48 +08:00
感觉这么多年过去了,移动端的技术没咋变化啊
|
21
dongguangming OP @revalue 这个我总结不来 java 早期发展史,也不必太在意,只记得早年是桌面 swing 、applet 、jsp 、原生 servlet 开发,不过现在框架或库很多,是让做选择题的时候,活在当下、把握未来就行了
|
22
dongguangming OP @xiubin 这个不清楚,没做过移动端开发
|
23
dinjufen 2020-10-22 18:09:27 +08:00
每天打开 v2,第一眼都是迷茫帖
|
25
jeeyong 2020-10-22 18:28:05 +08:00
随着技术的发展和完善...
我觉得会发生的变化. 以前. 我是一个爱好者, 我学习成绩不好, 但是靠着自学, 我毕业后可以成为计算机方面的人才, 我求职容易, 我通过更多的学习时间掌握了很多别人不知道的经验. 未来. 我是一个爱好者, 我学习成绩不好, 卒..我只能做最底层的编码工作. 以前有低级, 中级, 高级的概念. 低级做码农, 中级解决一些技术难点, 高级做算法和系统的总体架构. 未来, 要么低级, 要么高级, 中级的工作会被高级的算法替代大部分. 看看现在的网管或者叫 IT 运维. |
26
SurfaceView 2020-10-22 19:07:37 +08:00
同 31 岁路过 迷茫。。
|
27
william2ct 2020-10-23 08:40:27 +08:00
这些了一坨什么啊兄弟。 是跑题了吗??
|
28
nl101531 2020-10-23 09:18:06 +08:00 via iPhone
赞同楼主,基础不会过时
|