「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!」
从《喜剧之王》到《演员的自我修养》
《喜剧之王》里观众最深刻的应该是星爷让柳飘飘哭成泪人的一句“我养你啊”,瞬间引起观众共鸣,打动人心。
但是,作为一个后端程序员,我印象更深刻的却是:
- 星爷所饰演的一个落魄演员却还有着对表演的极致热爱;
- 频繁出镜的《演员的自我修养》所体现出来的职业态度;
- 还有他面对大海所喊出的“努力!奋斗!”的那种越挫越勇的毅力。
从《演员的自我修养》到《程序员的自我修养》
正如《演员的自我修养》的封面上作者所说:
没有小角色,只有小演员
那么,放在程序员这行里也蛮贴切的。
以下为我个人对程序员的自我修养的一些理解,因个人知识局限性,各位轻喷。
程序员的入门标准
入门标准是最低标准,所以具备小学程度的英语和数学水平即可。
具备小学英语水平
为什么只需要具备小学英语水平?
因为我从我用过的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个:
asm | do | if | return | typedef |
---|---|---|---|---|
auto | double | inline | short | typeid |
bool | dynamic_cast | int | signed | typename |
break | else | long | sizeof | union |
case | enum | mutable | static | unsigned |
catch | explicit | namespace | static_cast | using |
char | export | new | struct | virtual |
class | extern | operator | switch | void |
const | false | private | template | volatile |
const_cast | float | protected | this | wchar_t |
continue | for | public | throw | while |
default | friend | register | true | |
delete | goto | reinterpret_cast | try |
Java 51个关键字:
abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while、true、false、null
其他语言的关键字也就是和上面的差不多,所以小学英语水平即可掌握这些单词和具体语义。
具备小学数学水平
在实现一般的业务逻辑时,很少需要用到高等数学、离散数学,经常使用到的也是加减乘除,所以掌握小学数学水平已基本适用绝大部分的业务逻辑处理。如果业务中需要更为复杂的运算,那么这时候一般你已有算法组同事。
掌握常用的数据库
主要是使用SQL语言的MySQL、Postgresql、常用做缓存的Redis以及NoSQl的MongoDB
必须掌握常用类Unix系统的命令
主要Linux发行版:Ubuntu、Centos
掌握其中的用户权限文件权限、进程管理、网络端口查看监控、定时任务以及常用的文件处理命令等命令
下面的则是程序员的进阶升级思维了
程序员的软件思维
数据结构和算法
掌握常见的数据结构(列表、栈、队列、链表、树、图); 掌握常见的查找排序算法(主要通过刷Leetcode和牛客网的剑指offer)
软件系统开发管理思维
这块主要是侧重如何让项目高内聚轻耦合,代码复用; 一方面模块化设计; 另一方面如何应用分布式、微服务让系统做到高可用高并发高吞吐。
程序员的产品思维
人人都是产品经理,这句话在IT圈很流行。那么在一个程序员的角度,如果拥有了产品思维,或许只会偶尔有开发工程师打产品经理的新闻。
产品思维可以让工程师理解这个项目的 目的愿景,就可以更好的从技术的角度或者经验的角度提出建设性的建议,对这个项目越来越有信心和激情。
程序员的自我思维
自我思维强调的是程序员对自己未来的规划。
因为程序员这辈子都可以干,但有些事情过了这个年纪想干也干不了。
向星爷一样面对大海高喊:“努力!奋斗!”
所以,遇到自己想干的事,干就完事了。
以上是我个人对程序员这个职业的一些想法,
欢迎大家踊跃留言交流。