技术人员初入门,该如何突破早期瓶颈?

简介: 这是我在知乎上关于问题“只会 if, else, 数据库 CRUD 的 Java 程序员如何提升自己?”给出的答案。其实,这应该就是一个关于早期技术人员怎样突破瓶颈的问题。

这是我在知乎上关于问题“只会 if, else, 数据库 CRUD 的 Java 程序员如何提升自己?”给出的答案。其实,这应该就是一个关于早期技术人员怎样突破瓶颈的问题。


作为一个爱好技术的人,我们最常见的技术入门——或者说技术切入点——就是开发有实际可见结果的应用——因为这个够简单,够有成就感。而无论哪个平台、框架上面的应用开发在现阶段都逃不开楼主所说的,某个编程语言的学习(Java、Ruby、PHP 等),某个数据库(Mysql、Sqlite、Mongodb 等),再加上楼主未曾说的该框架、平台(Rails、Android、IOS 等)的知识的掌握。


编程语言、数据库、应用开发框架——这三个部分构成了早期从事应用开发的程序员的全部。


所以当进行了够多的应用开发后,我们就往往会产生这样的思考——我会写应用了,但是我觉得我学会的技术别人学了也会,我的优势在哪里?我想继续提高,我该怎么走?以及类似于楼主这样更为具体的问题:只会 if、else,数据库 CRUD 的 java 程序员如何提升自己?


我觉得,一句话可以指点这个阶段的开发人员——向上走,向下走。

向上走,指的是进一步学习设计——没错,程序员的工作本质上也是设计(只是我们好多人都没有意识到):代码设计、算法设计、架构设计等等。之所以觉得自己在重复地做事情,是因为你的每次设计都采用了同样的方案——排序?用快排吧;生成实例并且要解耦?嗯,用工厂吧;要提高系统性能、可用性?嗯,用 cache 吧。虽然说利用现有的设计方案是设计人员的必经之路,但是如果一次又一次的重复利用相同的方案,你就会觉得自己并没有提高——虽然对于项目本身来说是安全、可靠的。在学会了基础的应用开发之后,你就算是学会了最基础的设计方法。然后你要提高,就得继续去学习更为优秀的设计方法:代码设计上,我们去参考设计模式;算法设计上,我们去了解针对同一个问题的不同的解决方案的可用场景以及相应的优劣性;架构设计上,我们去探索最适合现在我们应用所处的环境最好的解决方案(听过腾讯一位技术总监的演讲,他们后台的用户数据、关系系统的架构就有自己的选择:例如数据库中的读取尽量没有用到锁)。总之,学会了基本的应用开发,就可以尝试向上走,走“形而上学”的路子。我想楼主应该已经看出来了,我的建议具体化下来的时候,就是去学习设计模式、算法设计、架构设计(现阶段仅仅了解一下就好,将来在实际情况中去实践的话体会更深)等一系列关于设计的知识。


向下走,指的是去了解系统下面的世界——也就是说,去学习系统的运行机理,“知道机器在干什么”(我最敬佩的 C 语言老师所言)。一个应用程序运行起来,就得有各种支持它的系统——计算机硬件系统、计算机操作系统、编译系统、语言运行时系统。如果不去了解这些“土壤之下”的机制,你就会觉得自己写的程序有如空中楼阁,不得其中真谛——譬如,同样能达到目的两条语句哪个机器执行的效率最高?哪样的代码组织会导致最终程序执行的崩溃?怎样去避免代码中的内存泄漏?——所谓知其然,不知其所以然也。


所以,代码要写的明白,咱就得往下走,去了解底层。我们可以去看看 linux 对于进程的内存、CPU 管理机制是怎样的,从而去优化我们程序的性能;我们可以去看看数据库的存储引擎,从而在深刻理解之后写出更为高效的 SQL 代码,并且进一步对自己的数据库进行设置、调优;我们可以去看看 JVM 是怎样进行垃圾回收的,从而避免 java 中恐怖的隐性内存泄漏。楼主向下走,可以去学习操作系统、计算机体系结构、编译原理以及运行时等知识——你会在学习的过程中对于自己曾经遇到的问题恍然大悟(我就经历过好多回了,每次都高兴不已哈哈)。


最后再提最重要的一点——不要把写代码本身作为终极目标,而应该把代码之上、之下的东西弄透。我想,这也是区别代码工人和研发工程师的界限之一吧!

相关文章
|
Ubuntu 关系型数据库 MySQL
libmysqlclient.so.18(libmysqlclient.so.20 libmysqlclien.so) => not found
libmysqlclient.so.18(libmysqlclient.so.20 libmysqlclien.so) => not found
1765 0
libmysqlclient.so.18(libmysqlclient.so.20 libmysqlclien.so) => not found
|
SQL 前端开发 安全
anymacro mail 严重漏洞
  设置邮件系统管理密码 密  码: 重输密码: Copyright © 2002 Beijing Anymacro Investment Ltd.
1854 0
|
11天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3286 9
|
3天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
1632 5
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
13天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3335 23
|
7天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2370 4
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
26天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23599 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
13天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
2853 3

热门文章

最新文章