当前位置:网站首页>编程能力提升方向
编程能力提升方向
2022-06-29 06:41:00 【qazw9600】
问题
- 从整体来看,程序员能力提升的方向有很多:编程能力,沟通能力,管理能力等;细分到编程能力,程序员提升的方向有哪些?
理解
编程本质 - 使用
- 国家教育系统已经给出过答案了,在大学中有两种学科:理论学科和应用学科,例如:计算机是理论学科,软件工程是应用学科,应用的意思就是使用;编程是软件工程最本质的部分,因此编程的本质就是使用。
- 工作多年理解:程序本质上就是上层代码调用下层代码,下层代码调用系统接口,操作系统接口调用驱动接口,驱动控制硬件;当然并不是简简单单的调用,更重要的是同层次的扩展,例如:操作系统在驱动接口基础上还实现了很多扩展功能。
方向
- 虽然编程的本质是使用,但是根据现实场景,我将使用划分为两种能力,如下:
- 研究能力
- 应用能力
研究能力
- 将不懂的知识变为掌握,简单来说就是能实现。
- 最能体现研究能力的职业:算法工程师,底层工程师。
应用能力
- 应用能力就是使用,简单来说就是能做好。
- 最能体现应用能力的职业:架构和产品。
现实
- 现实编程中很多时候是两种能力的结合,并没有什么任务只需要应用能力,也没有什么任务只需要研究能力。
- 但是由于工作所处层次不同,有可能更偏重于其中某一项能力,例如:互联网行业,由于研究的东西相对更少一点,大部分是现成的,因此它更偏重于应用能力,怎么将现成的东西,做的更好,怎么将网络这个现成的东西,发挥出其最大的价值,因此互联网行业更注重产品。
研究和应用思维方式是不一样的
- 如果平时工作两种能力偏重不多,可能感受不深,如果工作中更偏重于某一种能力,就会察觉到思维方式的不同,例如:互联网领域有句话,不要重复发明轮子,这句话是对的,但是有些隐藏的限制,比如:互联网领域,重复等,一些示例可以体现思维的不同,如下:
- 在公司中做嵌入式Linux项目,公司认为嵌入式Linux和嵌入式安卓没什么区别,因此让做安卓应用的来管理项目,项目整体沿用领导做安卓开发方式那套:“完全否决自主实现,直接从网上找现成的代码和框架来使用,修修改改”,我一直做嵌入式linux的,有些需求找不到现成库或者框架,我会自己实现,因此被领导批评:自己写代码干嘛?直接拿现成的框架来用就好了,省时省力,还不一定有别人的好,有空的话就在其基础上思考如何做的更好就不错了,由于中小公司需求不清晰,需求一次次逐步提出来的,最后领导才发现嵌入式领域大部分功能都没有现成的,要不实现不满足产品需求,要不框架太臃肿性能满足不了要求,要不扩展性不好,一开始适用,修改下需求就不能用了,几乎没有太多现成的,最后只能自己架构,自己实现,最后项目告吹,
- 做研究的,会养成习惯,什么都想自己写,却忘了可以使用现成的框架,例如:之前公司领导是华为出身的,习惯于自己实现,之前在公司的时候,所有代码都是自主实现的,甚至json解析,数据库,服务器等都是完全自己写,完全没用第三方框架,但是有些问题,不完善,没有经过的多种产品的验证,容易出现一些问题,项目进度慢,工作量非常大,需要掌握的东西非常多,一个库出现问题,可能要卡很久,等等,因为是第一家公司,所以我也养成了这种习惯,没有现成的就打算自己实现,更倾向于自主实现,但是由于我的能力有限,很多基础模块实现不了,例如:如果我自己实现不了hash算法,我就没办法使用hash表去实现更复杂的功能,因此离开现成库后我的很多编程就会卡住,后来我才理解,为什么我要去实现和使用这些基础模块,可以直接使用网上开源的,感兴趣自己实现没问题,问题在于使用,自己个人简单实现的不可能有网上的开源库那么完备和验证充沛,正常应该是确认自己实现的比现有好时才使用。
应用思维倾向点
- 更全面更整体的考虑,而不是专注于部分
- 对所有有用细节的掌控度,而不仅仅是只关注于用到的。
- 应用能力最重要的体现是对复杂事物的管理,在编程中如何实现和管理复杂的业务逻辑。
- 应用能力也是管理能力的基础之一,类似于家庭事务管理,任务不难,但是复杂,如何将家庭事务管理的井井有条,更考验个人从整体上思考和管理能力,有些人家里比较乱,我认为这说明其应用管理能力不行,做应用程序员也不是非常适合。
研究思维倾向点
- 更注重于简化,不太关注于整体所有,更关注于能满足功能实现的小部分函数。
- 更专注于部分,而容易忽视整体。
边栏推荐
- TF.Slim的repeat和stack操作
- Fluent imitates uiswitch
- 施努卡:什么是视觉定位系统 视觉定位系统的工作原理
- Appium automation test foundation ADB common commands (III)
- What tools do testers need to know
- postman预处理/前置条件Pre-request
- tf. to_ int64
- 施努卡:轮胎自动抓取安装,3D视觉定位,机器人自动抓取
- Interviewer: why does database connection consume resources? Where are the resources consumed?
- 1032 Sharing
猜你喜欢

Appium automation test foundation ADB common commands (III)

Vibration signal generation and processing based on MATLAB Doppler effect

软件测试鸾音鹤信

Schnuka: 3D machine vision inspection system 3D vision inspection application industry
![[FreeRTOS] interrupt mechanism](/img/ab/9b1d07048b4631d7cc95db99ed529a.png)
[FreeRTOS] interrupt mechanism

matlab 多普勒效应产生振动信号和处理

Kyushu cloud helps Inner Mongolia's "counting from the east to the west" project to drive the smart new ecology of the surveying and mapping industry

ROS当中的仿真时间以及Bag包操作

【深度之眼吴恩达机器学习作业班第四期】Logistic Regression 逻辑回归总结

AI与元宇宙擦出火花:人类失去的只有枷锁,获得的是全方面的解放
随机推荐
精选西门子PLC工程实例源码【共300套】
道闸控制器通讯协议
1031 Hello World for U
编译原理王者之路
Alicloud access resource: nosuchkey
Up and down transitions in polymorphism
Appium自动化测试基础 — ADB常用命令(三)
搭建jenkins环境并自动关联打包好的工程jar进行自动发布
Detailed design of PLC program control system for washing machine
【工控老马】基于PLC的花样喷泉设计原理详解
What you should know about databases
Vulnhub's dc7 target
Check whether tensorflow supports GPU and test program
Simulation analysis of sailing dynamics
[translation] swarmed out. Design methods for building modern applications
from xx import*等价于from xx import *,不一定要加空格
4年工作经验,多线程间的5种通信方式都说不出来,你敢信?
TF. Repeat and stack operations of slim
Schnuka: 3D visual recognition system 3D visual inspection principle
tf. count_ nonzero