程序员的自我修养

1,076 阅读5分钟

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

从《喜剧之王》到《演员的自我修养》

《喜剧之王》里观众最深刻的应该是星爷让柳飘飘哭成泪人的一句“我养你啊”,瞬间引起观众共鸣,打动人心。
泪人.jpeg

但是,作为一个后端程序员,我印象更深刻的却是:

  1. 星爷所饰演的一个落魄演员却还有着对表演的极致热爱;
  2. 频繁出镜的《演员的自我修养》所体现出来的职业态度;
  3. 还有他面对大海所喊出的“努力!奋斗!”的那种越挫越勇的毅力。

努力奋斗.png

从《演员的自我修养》到《程序员的自我修养》

演员.jpeg 正如《演员的自我修养》的封面上作者所说:
没有小角色,只有小演员
那么,放在程序员这行里也蛮贴切的。
以下为我个人对程序员的自我修养的一些理解,因个人知识局限性,各位轻喷。

程序员的入门标准

入门标准是最低标准,所以具备小学程度的英语和数学水平即可。

具备小学英语水平

为什么只需要具备小学英语水平?
因为我从我用过的C、C++、Java、PHP、Python、Golang这些高级语言汇总的保留关键字也就是这些:
C语言一共32个关键字,如下表:

关键字说明
auto声明自动变量
short声明短整型变量或函数
int声明整型变量或函数
long声明长整型变量或函数
float声明浮点型变量或函数
double声明双精度变量或函数
char声明字符型变量或函数
struct声明结构体变量或函数
union声明共用数据类型
enum声明枚举类型
typedef用以给数据类型取别名
const声明只读变量
unsigned声明无符号类型变量或函数
signed声明有符号类型变量或函数
extern声明变量是在其他文件正声明
register声明寄存器变量
static声明静态变量
volatile说明变量在程序执行中可被隐含地改变
void声明函数无返回值或无参数,声明无类型指针
if条件语句
else条件语句否定分支(与 if 连用)
switch用于开关语句
case开关语句分支
for一种循环语句
do循环语句的循环体
while循环语句的循环条件
goto无条件跳转语句
continue结束当前循环,开始下一轮循环
break跳出当前循环
default开关语句中的“其他”分支
sizeof计算数据类型长度
return子程序返回语句(可以带参数,也可不带参数)循环条件

C++98/03关键字共63个:

asmdoifreturntypedef
autodoubleinlineshorttypeid
booldynamic_castintsignedtypename
breakelselongsizeofunion
caseenummutablestaticunsigned
catchexplicitnamespacestatic_castusing
charexportnewstructvirtual
classexternoperatorswitchvoid
constfalseprivatetemplatevolatile
const_castfloatprotectedthiswchar_t
continueforpublicthrowwhile
defaultfriendregistertrue
deletegotoreinterpret_casttry

Java 51个关键字:

abstractassertbooleanbreakbytecasecatchchar、class、continuedefaultdodoubleelseenum、extends、finalfinallyfloatforif、implements、importint、interface、instanceoflongnativenewpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhiletruefalsenull

其他语言的关键字也就是和上面的差不多,所以小学英语水平即可掌握这些单词和具体语义。

具备小学数学水平

在实现一般的业务逻辑时,很少需要用到高等数学、离散数学,经常使用到的也是加减乘除,所以掌握小学数学水平已基本适用绝大部分的业务逻辑处理。如果业务中需要更为复杂的运算,那么这时候一般你已有算法组同事。

掌握常用的数据库

主要是使用SQL语言的MySQL、Postgresql、常用做缓存的Redis以及NoSQl的MongoDB

必须掌握常用类Unix系统的命令

主要Linux发行版:Ubuntu、Centos
掌握其中的用户权限文件权限、进程管理、网络端口查看监控、定时任务以及常用的文件处理命令等命令

下面的则是程序员的进阶升级思维了

程序员的软件思维

数据结构和算法

掌握常见的数据结构(列表、栈、队列、链表、树、图); 掌握常见的查找排序算法(主要通过刷Leetcode和牛客网的剑指offer)

软件系统开发管理思维

这块主要是侧重如何让项目高内聚轻耦合,代码复用; 一方面模块化设计; 另一方面如何应用分布式、微服务让系统做到高可用高并发高吞吐。

程序员的产品思维

人人都是产品经理,这句话在IT圈很流行。那么在一个程序员的角度,如果拥有了产品思维,或许只会偶尔有开发工程师打产品经理的新闻。

产品思维可以让工程师理解这个项目的 目的愿景,就可以更好的从技术的角度或者经验的角度提出建设性的建议,对这个项目越来越有信心和激情。

程序员的自我思维

自我思维强调的是程序员对自己未来的规划。

因为程序员这辈子都可以干,但有些事情过了这个年纪想干也干不了。

向星爷一样面对大海高喊:“努力!奋斗!”

所以,遇到自己想干的事,干就完事了

以上是我个人对程序员这个职业的一些想法,

欢迎大家踊跃留言交流。