码农在工作中的必备能力

从码农到架构师:程序员必备的技能进阶路线与转型策略 在开始技能进阶路线之前,首先需要明确“架构师”这一职位的定义及其职责。架构师(Software Architect)通常指的是设计和规划软件系统结构、技术栈、模块划分、组件协作等方面的专家。架构师不仅要具备深厚的技术能力,还要有系统的思维方式,能够从全局角度考虑问题并做出技术决策。从“码农”到架构师,是一个长期的积累和不断进阶的过程。程序员需要在技术上不断深化自己的专业能力,同时提升跨领域的知识储备,培养解决复杂问题的能力。 阅读详情

要想成为一个优秀的码农, 要求具备的能力挺多的, 我这里根据我的经验, 列举几个我认为比较重要的。 

1

养成计算机的思维方式。

计算机是个典型的只懂得顺序,循环,分支的笨蛋, 它遵循教条主义, 只按特定的指令办事。 


但是人类世界的需求又是如此复杂,更要命的是需求是用自然语言描述的, 这就和计算机之间形成了一个巨大的鸿沟。 


很明显,这个鸿沟需要苦逼的码农去填充。 


码农得理解人类需求, 学会计算机的思考方式, 理解计算机的指令, 然后努力的把翻译工作做好。 


例如: 经理给你一个模块的需求以后, 你得站在计算机的角度, 把它用现有的数据结构或者自定义数据结构, 再加上一般不那么复杂的算法,用计算机语言把它描述出来, 这是基本功, 和具体语言无关, 和框架无关。


这个思维习惯养不成, 做不了码农。


参见我之前写的文章《学会编程,而不是学会Java》

2

定位问题的能力

20世纪初福特公司一台电机出了毛病,几乎整个车间都不能运转了,相关的生产工作也被迫停了下来。


公司调来大批检修工人反复检修,又请了许多专家来察看,可怎么也找不到问题出在哪儿,更谈不上维修了。福特公司的领导真是火冒三丈,别说停一天,就是停一分钟,对福特来讲也是巨大的经济损失。


这时有人提议去请著名的物理学家、电机专家斯坦门茨帮助,大家一听有理,急忙派专人把斯坦门茨请来。 


斯坦门茨仔细检查了电机,然后用粉笔在电机外壳画了一条线,对工作人员说:“打开电机,在记号处把里面的线圈减少16圈。”人们照办了,令人惊异的是,故障竟然排除了!生产立刻恢复了! 


福特公司经理问斯坦门茨要多少酬金,斯坦门茨说:“不多,只需要1万美元。”1万美元?就只简简单单画了一条线!当时福特公司最著名的薪酬口号就是“月薪5美元”,这在当时是很高的工资待遇。  

  

1条线,1万美元,一个普通职员100多年的收入总和!斯坦门茨看大家迷惑不解,转身开了个清单:画一条线,1美元;知道在哪儿画线,9999美元。


在软件开发领域, 也经常会遇到类似的情况: 软件出了Bug , 大家花费了巨大的精力,日夜奋战,最后发现只是有个文件打开后忘记关闭了 。只需要一行代码就能修复!


所以能迅速定位问题的人才是牛人。 


码农定位问题有这么几种办法, 一是查看错误日志,推断错误的可能, 这是最直观也是最直接的了。


只不过很多情况下, 真正的凶手并不在凶杀案的现场, 这时候就需要进行分析了, 可以一步一步的调试代码, 找到真凶, 也可以在代码中输出日志查看运行时行为,  但无论哪种方法都是费时费力。  


更悲惨的是, 不少问题是生产环境出现的 ,根本没法调试。 


好的码农能够把软件在脑海里建立一个运行的模型,设置输入输出,  仰起头在脑海里模拟运行一下, 很快就能找到问题所在。 参见文章《不加断点的程序员是好程序员》

3

搜索的能力

一个人不可能掌握所有的知识, 在工作中遇到不懂的地方, 很多时候没法系统的学习, 还好我们有搜索这个利器可以使用。 


可是有的人试了好多关键词都不能找到理想的内容。

而有的人几乎是一击而中, 无往而不利。


这背后就是对问题本质的理解是否到位。 


学会选择最合适的关键字进行搜索, 也是码农很重要的能力,多多练习吧。

4

熟练使用IDE的能力

我不反对直接使用记事本等文本编辑器进行编程, 我只想说熟练使用IDE,能极大的提高编程的效率。 

别的不说, Eclipse IDE至少提供这些功能:

智能提示: 语法上的任何错误都立刻给你显示出来。

自动补全: 可以省去敲入很多代码

格式化:瞬间让代码好看很多

代码浏览: 轻松的打开一个类, 查看类的继承体系, 方法的调用层次

重构: 对付脏代码的绝对大杀器。 文本编辑器是绝对没有的。 


所以想编程如飞的话,还是赶快搞定一个IDE吧。

5

重构代码的能力

优雅的设计和漂亮的代码不是一下子就设计出来 、编写出来的。 


而是在一次次的迭代, 一次次的重构下慢慢的浮现的。 


所以重构就显得非常重要, 如果你没有掌握这个技能, 赶紧去看看 Martin Flower的那本经典的书吧:《重构:改善既有代码的设计》

6

写测试的能力

这里说的测试主要是单元测试, 这一部分的工作是由程序员,而不是测试人员完成的。 


写单元测试主要是保证自己写的业务模块是按照预期来工作的。 


此外,这些测试也会成为一种“文档”,用来描述软件的行为,  永不过时。 


更重要的是,这些测试将会成为负责任的哨兵: 将来你改动代码的时候, 运行这些测试将会告诉你是不是对原来的逻辑造成的损害,这种回归测试的功能是价值无限的。 

7

熟练使用SCM的能力

SCM :即源代码管理系统, 例如SVN, Git, CVS等。


现在的软件开发都是团队合作, 甚至是分布式合作, 所以一个SCM系统几乎是团队的必备。 


日常的工作都是从SCM中check out 代码开始, 所以熟练掌握至少一个SCM是码农的基本能力, 如果还不会的话, 赶紧到github上开个免费账号,学习一下吧。

8

构建软件的能力

构建软件就是把代码从SCM中下载下来, 编译、测试 、打包、部署到测试环境或者生产环境。


这个过程如果是手工的, 那就太无趣了。 


这个过程当然应该是自动化的,码农至少应该学会像Ant, Maven这样的工具和像Jekins这样的平台, 帮助我们完成软件的构建。 


扩展阅读:

学会编程,而不是学会Java

不加断点的程序员是好程序员


热门文章:

我是一个线程

我是一个Java class

Javascript: 一个屌丝的逆袭

小王的架构师之路

TCP/IP 之 大明王朝的邮差

CPU 阿甘

IE为什么把Chrome和火狐打伤了

Node.js :我只需要一个店小二

假如我是计算机系老师

假如时光倒流,我会这么学Java

学会编程,而不是学会Java

15年编程生涯,资深架构师总结的7条经验

0?wx_fmt=jpeg

公共号:码农翻身

“码农翻身”公众号由工作15年的前IBM架构师创建,分享编程和职场的经验教训。

洛谷 P5736 【深基7.例2】质数筛 题目描述 输入 n(n\le100)n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。 输入格式 无 输出格式 无 输入输出样例 输入 #1 复制 5 3 4 5 6 7 输出 #1 复制 3 5 7 板子题,使用一下线性筛 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using n 阅读详情

相关推荐

微机原理课程设计-模拟十字路口交通信号灯

一、设计任务描述 1.1设计目的 通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。 1.2 设计要求 控制LED灯,按照十字路口红绿灯的原理亮灭显示: (1) 东西方向车辆放行x秒...

Learning_is_endless的博客 2万+

优秀的程序员应该具备哪些技能?

优秀的程序员应该具备哪些技能?

Python单行客的博客 3754

ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

萌新常用的都在这了,本萌新的模板集。

张天枭の博客 5万+

作为一名成功的IT程序员,需要哪些必备技能呢?

由于很多同学都是从其他行业转行IT界的,对IT行业应具备技能的理解比较浅显。但事实上,一名成功的程序员不仅应该拥有一定的硬技能,还应该具备一定的软技能。

伤心的辣条 1473

软件测试面试题汇总

软件测试面试题汇总 测试技术面试题 ........................................................................................................................................................................ 5 1、什么是兼容

晴天的专栏 2万+

ESP32 LVGL开发板例程使用记录:自制常用汉字字库(二)

1、将下载的文件移入工程文件中 ,路径为项目文件中 ”......\lib\lvgl\src\font“文件夹下。3、修改字库配置文件,文件名为lv_conf.h中的内容,向其中加入下面内容(位置可搜索注释块来找到地方)修改完成可以编译试试,看是否成功,如字库较大时编译出错,请使能:LV_FONT_FMT_TXT_LARGE。2、打开此文件,修改包含头文件的路径,不然会报错,修改方法可对照自己库中其他字库文件中的包含路径。导入完成后在VSCode工程中可以查看到此文件。上次说完了如何制作 字库.c 文件。

qq_43279097的博客 1958

成为一名优秀的程序员,需要具备哪些能力?

22年年底,北京,这类初级程序员大概薪资式8-20k。如果可以进互联网大厂,薪资可以更高点。初级开发一般式能做各种增删改查业务,遇到一些简单的问题,比如空指针制类,能够通过看日志解决,也要有一定的沟通能力,对接个API啊这类的。初级开发阶段,其实不仅仅式体现在业务阶段,在技术层面也有体现。如果初级开发只是熟悉当前企业的业务,那后续肯定式会受到限制了。后续应该从数据库优化、解决各种数据库问题以及分布式组件或者微服务组件实用层面来提升自己。初级Java开发,应该努力摆脱在公司做增上改查。从了解公司业务开始,积极

黑马程序员官方博客 1266

手把手教你用TLP350驱动IGBT:光耦隔离驱动电路完整设计教程

本文详细介绍了如何使用TLP350光耦隔离驱动电路设计IGBT驱动方案。从TLP350芯片特性分析到驱动电路架构设计,包括信号调理、自举电源和栅极控制网络,再到PCB布局优化和保护电路设计,提供了完整的实战指南。通过实测波形分析和故障排查,帮助工程师快速掌握IGBT驱动电路的设计要点和进阶技巧。

weixin_30566063的博客 825

程序员需要哪些基本能力?

真的,能胜任程序员这个行业的人,在基本素养这一块能秒杀80%的其他行业就业者,因为这个行业对个人能力的要求真的太高了。

2201_75362610的博客 646

无线自组织网络基础知识

参考书籍:《无线自组织网络路由协议及应用》 目录第一章 绪论1.1 无线自组织网络概述1.1.1 无线自组织网络的定义及分类1.1.2无线自组织网络的主要特点1.1.3无线自组织网络的应用与发展1.无线自组织网络的应用2.无线自组织网络的起源和发展1.2典型的无线自组织网络1.2.1移动Ad Hoc网络1、移动Ad Hoc网络的定义2.移动AdHoc网络的特点3.移动Ad Hoc网络的应用1.2....

逸凌Time 2万+

大疆RoboMaster嵌入式面试,电机FOC调不出来当场走人

摘要:大疆RoboMaster嵌入式工程师面试以实战能力著称,重点考察FreeRTOS任务调度、FOC电机控制和CAN总线三大核心技能。FreeRTOS部分涉及优先级调度、栈溢出排查及信号量与互斥锁的区别;FOC控制要求现场编写电流环代码,并解释Clarke/Park变换原理;CAN总线则关注仲裁机制、CANopen协议应用及错误帧排查方法。面试强调工程实践,需具备STM32开发经验,建议搭建实际环境进行练习。该岗位被誉为"硬件版修罗场",充分体现大疆对实际开发能力的严格要求。

郑伟强dev的专栏 150

浅聊码农和程序员的区别!

关于【码农和程序员】 一、码农的基本定义 二、码农必备知识技能 三、程序员的基本定义 四、程序员必备知识技能 五、码农和程序员区别

zhaoylzy的博客 1474

HCIE-Datacom笔试题库

关于HCIE Datacom笔试考试题目整理!

坏坏-5的博客 609

码农好沟通吗?

找对沟通的对象,是保证有效沟通的前提和基础

guyuelin123的博客 2000

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

用一篇博文告诉你为什么80%的码农很难晋升为架构师?

关于【码农为什么很难晋升为架构师】 目录: 一、什么是码农 二、什么是架构师 三、从码农晋升架构师的难度

zhaoylzy的博客 2516

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

程序员 VS 码农

领导前不久教导我要做程序员不要做码农,我以前以为程序员就是码农,今日再看大为不同,正可谓王国维在《人间词话》所说:“古今之成大事业、大学问者,必经过三种之境界:‘昨夜西风凋碧树,独上高楼,望尽天涯路’。此第一境也。‘衣带渐宽终不悔,为伊消得人憔悴’。此第二境也。‘众里寻他千百度,蓦然回首,那人却在灯火阑珊处’。此第三境也。”

2404_87509149的博客 1213

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

你仅仅是个码农,还是软件工程师?你还“安于现状”,年龄一大你就遭企业淘汰了

IT 界知名的段子手曾说:对于那些月薪两万以下,自称 IT 工程师的码农们,其实我们从来没有把他们归为我们 IT 工程师的队伍。他们虽然总是以 IT 工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少小猴子的愤怒,但却也只能默默地捏着工资条躲在小黑屋里伤心。然而,笔者认为,薪资的多少并不能成为分辨码农(普通程序员)和软件工程师(高级程序员,上面所指的IT工程师)的分界线。码农和软件工程师如果要强行去区别,最根本的区别不过是技术层次的不同。 码农: 顾名思义为编代码的农民,从本质上来说,码农就是.

测试萌萌 4733

码农与真正程序员的区别

码农是程序员吗?码农与真正程序员的区别根据百度百科释义,码农是一个依靠写代码为生的群体,表现在:低收入,工作时间长,这种职位只能强化职业者在单方面的技术领域技能。如果按照从业者们将自己自嘲为码农的表现,那么码农的程序员分级中理应只属于初级程序员,是属于依靠复制粘贴将各类代码链接的IT从业者。这个群体的数量有多少呢?大学计算机相关专业的同学们、大中专软件专业学习者、毕业不久的程序员、广大编程初级爱好...

hellocsz的博客 1万+

【科普】码农是程序员吗?码农与真正程序员的区别是啥?

IT界知名段子手,网络红人留几手曾经说:对于那些月薪两万以下,自称程序员的码农们,其实我们从来没有把他们归为我们程序员的队伍。他们虽然总是以程序员自居,只是他们的一厢情愿罢了。 此话一出,不知有多少小猴子默默地捏着工资条躲在厕所里轻轻啜泣。然而,钱的多少并不该成为分辨码农和程序员的分界线,那么码农和程序员之间的区别到底是什么呢? 根据百度百科释义,码农是一个依靠写代码为生的群体,表现在

Hey_HelloWorld的博客 1万+

【编码心得】当名码农的自我修养

1、Google 》必应 》百度2、关键词空格分割。如果搜索出来的不满意,重新更换/删减关键词或者调整关键词的顺序。3、利用好图片搜索,好的图片往往都会带着优质的作者或者博文推荐。程序员的自我修养是一个全面的过程,需要不断提升技术能力、职业素养、心理调适能力和团队合作能力。通过持续学习、积极沟通、保持积极心态和勇于承担责任,祝愿大家都能成为一名合格的码农,哈哈~~我是杰叔叔,一名沪漂的码农,下期再会!

杰叔叔不是个好叔叔的博客 908

码农如何不断晋升

  在知乎上看到上面这个问题计算机科学与技术专业的学生要怎样做才能避免成为一个低级的码农?,以下是我的回答: 其实题主应该是看到一些学长学姐或者是看到网上一些有关程序员的言论才来问这个问题的吧?首先,我觉得题主是个很有心的人,还没毕业就开始对自己的未来开始考虑了。其次,题主现在的技术积累和学习成绩应该是一般般,我猜没什么项目经验,虽然想努力但是还是很迷茫,不知道如何下手。再者,题主应该是个对计...

ai_yue的博客 3432

程序员的三重境界:码农,高级码农、程序员!

见字如面,我是军哥!掐指一算,我在 IT 行业摸爬滚打 19 年了,见过的程序员至少大好几千,然后真正能称上程序员不到 10% ,绝大部分都是高级码农而已。今天和你聊聊程序员的三个境界的差异,文章不长,但是值得你看完,深思,请一定要看到最后。1、第一重:码农码农这类程序员能够熟练使用编程环境,熟悉一种编程语言、开发框架和开发库,擅长写 CRUD 代码,代码能运行就行,什么可维护、什么设计模式,什么...

chengjun_java的专栏 1444

经历≠经验,码农如何工作10年依然是菜鸟?

引言说实话,工作10年不等于是高手;高手也不等于要工作时间久。圣人曾经曰过:“工作经历不等于工作经验”。工作10年,只是一个“经历”,而“经历”不能得以总结、归纳和升华,就无法转化为“经验”。一个2年“工作经验”的工程师水平可能远高于一个10年“工作经历”的工程师。如果程序员在35岁的时候,“工作经验”与刚毕业的时候差别不大,则其不可替代性就不高,很难在大龄时具备足够竞争力。大龄程序员,跟应该以专...

会写Bug的攻城狮 427

程序员和码农,有什么本质上的区别?

常有人问,“那些只学了XX的人,编程能力都退化成什么样了?” 之前看到一个比喻,真的很赞同: 当土著拿到猎枪之后,他们射箭的技能退化严重,但因为食物更多了,厨艺有了长足的进展。 当你不再为一些问题担心之后,你就可以把注意力集中在另外一些问题上了。这就是选择不同的编程语言的根本差别。 用任何语言都会降低你的编程能力,只要你以为这门语言就是编程的全部了。 上面这张截图近期在...

优快云资讯 2861
上一篇: TCP/IP 之 大明王朝邮差
下一篇: Java : 一个帝国的诞生
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值