有天和朋友聊天,朋友是国内一家大型互联网企业的一位技术主管,朋友把他将近十年研发工作积累的心血总结成两点,这两点朋友刚一提出来我并没有马上明白,只是大约有这么一个概念,我还没达到朋友在技术领域的那种高度,不能彻底领悟他深刻的思想。但我想与众多刚刚踏入IT技术研发领域的新人们分享一下这位朋友的思想,我尽全力来解释阐述朋友的话语,希望能给大家带来一些启发。
第一点是:不断抽象已知的东西。现实生活总是包括很多零散的东西,待解决的问题不会只有一面,所以抽取零散东西的共同属性,聚合不同角度的同一面向,成为从问题领域进入编程领域的第一步。抽象的层次越高,你架构设计就越简单。
第二点是:面对未知的东西用已有的抽象经验来模拟体验,从而不断调整直至达到可以控制未知东西的程度。有了上面第一点的基础,才可能到达这第二点的境界。现实问题总是不断变化着的推陈出新的,从未知到半知到已知,是人认识客观世界的一个过程,恰如人生从天真到懵懂到成熟的过程。
天才是什么?聊着聊着我们突然说到比尔盖茨,说到那些天才黑客,朋友和我都很兴奋。我问朋友,从他总结的两点来看天才是怎么实践这两点的?朋友想了一下说,天才就是生来就有那种抽象的能力,他并不一定局限于计算机领域的空间来看待问题,他拥有从这个世界其他领域来模拟体验计算机领域的天赋,他甚而可以抽象整个世界。
朋友的思想太博大高深,如我这般入行不久的初级程序员怎能领会?但我还是装作深有体会的不断点头,同时把朋友从山巅拉到山脚下。我说:“你说得太抽象了,不如你告诉一个起步阶段的程序员应该怎么慢慢通过实践来逐步达到这种境界吧。”我知道朋友在这方面颇有体会,他以前曾跟我提起他毕业后在第一家公司是怎么接受锤炼的。果然朋友很快开始阐述:“很简单,起步阶段就是专心的模仿。切记不要被那些乱七八糟的东西晃花了眼,什么j2ee与.net之争,什么soa的革命等等,你不要去关心这些东西。当你在公司上班时,会有这样一个矛盾,当你完成公司交待的一个任务时,你可能为了尽快完成任务用了很多别人现成的框架。这本身没问题,但何谓专心的模仿?就是说你在工作之余,需要来研究这些框架,你可以不用这些框架,而是用最原始的方式来写,你会慢慢体会到框架的约束,进而有对框架进行改进的欲望。但是最终你也会发现:其实任何一个框架都比你自己写的要好。然而在你不断模仿的同时你就得到不断的提高。”朋友越讲越起劲,又开始分析高手和低手在起步阶段的差异,“其实所谓学得快,所谓高手,就是说他在模仿的过程中不断比较自己写的东西和框架本身的差异,不断发现问题,想尽办法解决问题,思考得越多,你碰到的问题就会越多,这是一个正向循环,最终你的技术能力就会螺旋式的上升;而低手只会被动的等待问题,一旦问题自己觉得解决得差不多就放下了,这样自然就不会产生更多的问题,最终技术能力就始终停留在那个菜鸟阶段。”
朋友的话让我惭愧不已,我就是典型的不求甚解啊,问题解决得差不多就行,能运行就万岁,总是不去深究,这样给系统留下多大的隐患啊,而且也是对自己极大的不负责任。
聊完了技术方面的东西,我们想聊点轻松的,但是话题仍然离不开那些搞技术的新人们。朋友正好最近替公司招聘人才,面试了很多名校的计算机相关专业的一些毕业生。朋友说他们技术功底不够扎实,我说他们除了这个,心态也很浮躁,恨不得一参加工作就拿大几千的工资,一进公司就做项目经理,太眼高手低。朋友也深有同感,说面试的时候就有一种怪怪的感觉,而且朋友进一步将这种心态问题提升到编程提升到认识论的高度,“其实我觉得他们本质上是一个不能够正确认识自己的问题。认识论其实很简单,首先认识问题,然后解决问题。你说你想做项目经理,那么你需要具备哪些技能,技术上的,管理上的等,你需要多长时间来磨炼这些技能等。编程不也就是这样嘛,认识问题,抽象问题,进行设计编码最终解决问题,其实做所有的事情都是如此。”
跟朋友的这番聊天让我受益匪浅,而让我感受最深的不是上面提及的这些关于编程和心态两方面的道理,而是我体会到:技术人员并不像人们想象中的那么呆板,每个人都在以自己的方式活着,不断参悟人生的玄妙,而技术人员以一种更为奇特的方式和电脑搏斗,付出了更多的心血,当然体悟得也更加深刻,然而最终每个人都会殊途同归。
分享到:
相关推荐
本文通过一位技术主管的交流,探讨了十年编程经验的精髓,以及如何将这些经验应用到实际的编程实践中。以下是根据文档内容提炼出的几个重要知识点: 1. 不断抽象已知的东西 在编程领域,抽象是一种至关重要的技能。...
### 十年编程经验凝结 与新人们分享 #### 关键知识点提炼: 1. **抽象思维的重要性**:这是编程中最基本且最重要的能力之一。它指的是从现实生活中复杂的现象或问题中提炼出共性,形成一种更高层次的概念或模型。 ...
西门子S7-200 Smart PLC与昆仑通态触摸屏控制三台台达变频器通讯方案,西门子S7-200 Smart PLC与昆仑通态触摸屏控制三台台达变频器通讯方案,西门子s7 200smart与3台台达VFD-M变频器通讯目标:用触摸屏和西门子smart 控制3台台达变频器通讯 器件:西门子s7 200 smart PLC,3台台达VFD-M变频器,昆仑通态触摸屏(带以太网),中途可以加路由器 控制方式:触摸屏与plc以太网通讯,PLC与变频器通讯485口相连 功能:触摸屏控制变频器设定频率,启停,读取输出频率,电压 说明:是程序,非硬件。 程序有注释,变频器设置,接线都有,一应俱全 ,核心关键词:西门子s7 200smart; 台达VFD-M变频器; 昆仑通态触摸屏; 以太网通讯; PLC与变频器485通讯; 频率设定; 启停控制; 输出频率读取; 电压读取; 程序注释; 变频器设置; 接线。,西门子PLC与台达变频器通讯控制程序:触摸屏操作,频率设定与读取
移动端多端运行的知识付费管理系统源码,TP6+Layui+MySQL后端支持,功能丰富,涵盖直播、点播、管理全功能及礼物互动,基于UniApp跨平台开发的移动端知识付费管理系统源码:多端互通、全功能齐备、后端采用TP6与PHP及Layui前端,搭载MySQL数据库与直播、点播、管理、礼物等功能的强大整合。,知识付费管理系统源码,移动端uniApp开发,app h5 小程序一套代码多端运行,后端php(tp6)+layui+MySQL,功能齐全,直播,点播,管理,礼物等等功能应有尽有 ,知识付费;管理系统源码;移动端uniApp开发;多端运行;后端php(tp6);layui;MySQL;直播点播;管理功能;礼物功能,知识付费管理平台:全功能多端运行系统源码(PHP+Layui+MySQL)
PMSM永磁同步电机仿真中的三电平SVPWM矢量控制与双环矢量控制策略研究——基于Matlab平台,基于Matlab的三电平SVPWM矢量控制PMSM永磁同步电机双环矢量控制仿真研究,PMSM永磁同步电机仿真三电平SVPWM矢量控制matlab PMSM双环矢量控制传统三电平 ,PMSM永磁同步电机; 三电平SVPWM矢量控制; 双环矢量控制; MATLAB仿真。,PMSM仿真与三电平SVPWM矢量控制:双环策略与传统三电平对比研究
三菱FX3U与力士乐VFC-x610变频器通讯案例详解:PLC控制下的变频器操作与设置程序,含接线方式及昆仑通态触摸屏操作指南,三菱FX3U与力士乐VFC-x610变频器通讯案例详解:接线、设置与程序注解,实现频率设定、启停控制与实时数据读取功能。,三菱FX3U与力士乐VFC-x610变频器通讯程序三菱FX3U与力士乐VFC-x610变频器通讯案例程序,有注释。 并附送程序,有接线方式,设置。 器件:三菱FX3U的PLC,力士乐VFCx610变频器,昆仑通态,威纶通触摸屏。 功能:实现频率设定,启停控制,实际频率读取等。 ,三菱FX3U;力士乐VFC-x610变频器;通讯程序;案例程序;注释;接线方式;设置;频率设定;启停控制;实际频率读取;昆仑通态;威纶通触摸屏。,三菱FX3U与力士乐VFC-x610变频器通讯程序及案例:频率控制与读取实践
基于八自由度车辆模型的四轮转向系统横摆角速度控制仿真研究:滑模控制算法的高效表现参考说明,基于滑模控制算法的四轮转向系统横摆角速度控制Simulink仿真模型研究,四轮转向系统横摆角速度控制simulink仿真模型,利用滑模控制算法,基于八自由度车辆模型,控制有比较好的效果,附参考说明。 ,四轮转向系统; 横摆角速度控制; Simulink仿真模型; 滑模控制算法; 八自由度车辆模型; 控制效果,八自由度车辆四轮转向滑模控制横摆角速度仿真研究
内容概要:本文介绍了一系列使用 Python 生态内的不同库和模块,如随机选择、图像处理库(PIL)、动画生成工具(Matplotlib),ASCII 艺术,以及音频播放库(pygame)创建与国庆节日相关的数字资源。这些资源包括祝福文本、静态图像、动态动画、文本艺术形式,以及音乐播放。每个代码示例都简洁而易懂,便于使用者快速复制并进行个性化的修改以适用于各种场合。 适合人群:对 Python 基础有掌握的技术爱好者、程序员、教师或者学生群体。 使用场景及目标:本篇文章提供的实例旨在帮助开发者通过编程的方式为特定节日营造氛围,同时也是一种编程技能练习的方法。目的是让用户学会综合利用各个 Python 库的功能,增强程序间的交流能力,并提升自身对 Python 语言的应用熟练度。 其他说明:尽管例子简单直接但涵盖内容广泛,在实际应用时可以根据个人需要调整或拓展所提供的基础模板。此外文中并未详细探讨涉及到的具体库的基础安装方法,所以可能需要预先确保拥有正确环境才能顺利运行全部示例代码。
整车试验项目清单及DVP模型:全面涵盖整车、系统及零部件,精准掌握开发阶段,助力产品参考开发,整车试验项目清单及DVP模型:涵盖整车、系统与零部件,明确开发阶段参考指南,整车试验项目清单,整车DVP模型,包含整车、系统及零部件,并 给出了项目开展阶段。 可作为整车产品开发参考 ,整车试验项目清单; 整车DVP模型; 整车、系统及零部件; 项目开展阶段,整车DVP模型试验及开发项目清单参考
毕业设计
本资源提供了一套基于OpenCV和Dlib库的完整C++源码,专注于实时人脸识别应用开发。该项目结合了OpenCV的图像处理能力和Dlib的人脸识别技术,实现了多种人脸检测与识别功能,适用于各种实时监控和身份验证场景。 关键功能包括: 人脸检测与标记:从图片中自动检测并标记所有人脸,帮助快速识别和定位。 人脸特征点标记:识别并标记图片中所有人脸的68个特征点,提供详细的人脸特征分析。 特征点绘制与编号:在图片中检测人脸并绘制其特征,同时对68个特征点进行编号,便于进一步处理和分析。 目标人物识别: 从指定lib目录中的图片中识别目标人物,实现特定人物的快速识别。 从视频流中识别出lib目录下的目标人物,适用于动态监控场景。 从摄像监控中实时识别目标人物,实现实时安全监控和身份验证。 非特定目标识别:支持识别非特定目标,增强系统的适应性和识别能力。 项目优势: 高效的C++实现:利用C++与OpenCV、Dlib的结合,实现高效、快速的人脸识别处理。 实时应用支持:支持从静态图片到动态视频流的多种输入形式,满足实时应用需求。
疫情数据可视化分析系统采用Django框架,基于mysql开发,实现了首页、个人中心、用户管理、员工管理、疫情信息管理、核酸检测管理、检测预约管理、检测结果管理、行程信息管理、系统管理等内容进行管理
Java使用JNA、JNI两种不同方式调用DLL、SO动态库方式读写读写15693协议ICODE标签、富士通MB89R118标签示例源码,轻松读写块内数据,改写兼容芯片SLIX1830的UID等操作,支持Windows系统,同时支持龙芯Mips、LoongArch、海思麒麟鲲鹏飞腾Arm、海光兆芯x86_Amd64等架构平台的国产统信、麒麟等Linux系统,内有jna-4.5.0.jar包,vx13822155058 qq954486673
台达DVP PLC与力士乐VFC-x610变频器通讯程序详解:从接线到昆仑通态界面实现控制功能全攻略,台达DVP PLC与力士乐变频器通讯编程指南:接线、设置与昆仑通态程序全解析,台达DVP PLC与3台力士乐VFC-x610变频器通讯程序 程序带注释,并附送昆仑通态程序,有接线方式,设置。 器件:台达DVP ES系列的PLC,3台力士乐VFC-x610系列变频器,昆仑通态 功能:实现频率设定,启停控制,实际频率读取等,状态读取指示 ,台达DVP PLC; 力士乐VFC-x610变频器; 昆仑通态; 通讯程序; 注释; 接线方式; 频率设定; 启停控制; 实际频率读取; 状态读取指示,台达DVP PLC与力士乐变频器通讯程序:带注释与接线设置,实现频率控制与状态指示
Fanuc数据采集中文API
Cruise纯电动汽车与增程混动汽车Simulink联合仿真模型搭建与策略研究,Cruise纯电动汽车与增程混动汽车仿真模型:Simulink联合搭建的整车及策略模型详解,cruise纯电动汽车、增程混动汽车仿真模型,simulink联合仿真,模型均亲自搭建。 提供整车模型及策略模型 ,cruise纯电动汽车; 增程混动汽车仿真模型; simulink联合仿真; 模型搭建; 整车模型; 策略模型,基于Simulink联合仿真:Cruise纯电动与增程混动汽车模型搭建与实践
nodejs windows版安装包
在 GEE(Google Earth Engine)中,XEE 包是一个用于处理和分析地理空间数据的工具。以下是对 GEE 中 XEE 包的具体介绍: 主要特性 地理数据处理:提供强大的函数和工具,用于处理遥感影像和其他地理空间数据。 高效计算:利用云计算能力,支持大规模数据集的快速处理。 可视化:内置可视化工具,方便用户查看和分析数据。 集成性:可以与其他 GEE API 和工具无缝集成,支持多种数据源。 适用场景 环境监测:用于监测森林砍伐、城市扩展、水体变化等环境问题。 农业分析:分析作物生长、土地利用变化等农业相关数据。 气候研究:研究气候变化对生态系统和人类活动的影响。
路径规划人工势场法及其改进算法Matlab代码实现,路径规划人工势场法及其改进算法Matlab代码实现,路径规划人工势场法以及改进人工势场法matlab代码,包含了 ,路径规划; 人工势场法; 改进人工势场法; MATLAB代码; 分隔词“;”。,基于Matlab的改进人工势场法路径规划算法研究
三菱FX3U与台达VFD变频器通讯指南:全程案例解析与接线设置讲解(含实用视频与程序附件),三菱FX3U与台达VFD变频器通讯指南:从编程教程到实际使用(包含接线与设置方法,实用案例程序和设置手册),三菱FX3U与台达VFD M变频器通讯教程。 三菱FX3U与台达VFD变频器通讯案例程序全程讲解,有注释。 讲解实用,自制视频。 并附送程序,有接线方式,设置。 器件:三菱FX3U的PLC,485BD板,台达VFD M变频器,昆仑通态,威纶通触摸屏。 功能:实现频率设定,启停控制,实际频率读取等。 ,教程;通讯案例;注释;程序附送;接线方式;设置;三菱FX3U PLC;485BD板;台达VFD M变频器;昆仑通态;威纶通触摸屏;频率设定;启停控制;实际频率读取。,三菱FX3U与台达VFD M变频器通讯全攻略:程序详解与实用操作指南