本文分享一下,博主从PHP工程师变为C/C++工程师后的一些真实感受。
两句话写在前面
- 编程语言只是工具
- 工程师应该用正确的工具干活儿
但从我现在的经历和感受看,两句话真的不靠谱。
简单介绍转变的过程
2012年大学毕业,进入第一家公司,担任PHPer。之后两三年用的编程语言一直是PHP,即使14年中间换过工作,依然写PHP,做的都是公司后台的业务系统。
2015年,语言转为C/C++,负责公司商业广告投放系统检索端的开发。
技术方向的不同
- PHP 关注业务的实现
- C/C++ 关注底层
PHP程序员和C/C++程序员日常技术关注点
-
PHP 程序员关注对业务的抽象、关注系统的可扩展性,关注如何设计业务架构,使用什么样的设计模式等等
-
C/C++ 程序员更加关注系统的性能,系统的可伸缩性,关注使用什么样的工具提高性能,关注网络IO模型,数据结构和算法等等。
安全性
-
PHP 程序员关注的安全主要是避免系统漏洞和防止攻击,sql注入、XSS攻击、文件注入攻击等等, 系统安全比较重要。
-
C/C++ 程序员更关注逻辑的安全性, 比如输入输出的边界,异常处理等等,系统稳定最为重要。
PHPer 和 C/C++ 工程师何时相互欣赏?
-
PHPer 看 C/C++, C/C++ 好高级啊,底层实现都知道的那么清楚。我们了解就没有那么深啊。
-
C/C++工程师看PHP, 你们做的那么多应用好高级啊,那么复杂的金融系统,你们怎么就做出来了,如果用C来写,怎么才能写出来呀!
PHPer 和 C/C++ 工程师何时相互鄙视?
-
PHPer 看 C/C++, 你们代码怎么都是面向过程的,可读性那么低,多不好维护,抽象和复用都搞不好,软件架构乱成啥了,软件稍微大些,你们就要拆成服务。
-
C++ 工程师 看 PHP, 你们设计这么多类,代码那么啰嗦,难道不是不过度设计吗?你们写的代码性能能行吗?明明10台服务器就能满足的PV,竟然要200台!
同时有了PHP 和 C/C++ 背景之后,我的工作变成什么样子了?(以下故事基于事实,但与事实略有差异)
-
老板:“那个项目是PHP的,你来接吧。” 我:“NO”。 老板:“只能你来接啊,我们辛亏有你啊,组里只有你会php啊,您一定要接啊!” 我:“OK。”(幽怨+无奈)
-
猎头:“我这有PHP职位,薪水丰厚”。 我:“俺转C++了”。 猎头:“C++需求少啊,工作不好找啊”。 我:“俺还要写c++”。 猎头:“看那个PHP职位,背景待遇好”。我:“……”。
-
某一线公司HR :“你C++履历太短,暂时还不适合我们的职位。” 我:”……”(心里流出两行泪)。HR:”但我们公司有PHP职位啊,你来呀”。我:“俺不去了……”(秋风吹皱偶滴心)。
博客写完了, 现在感觉,开头那两句话,说的无比正确。
PHP机会多啊!
为了搞点喜欢的基础技术,还是离开了高薪的PHP,转了C++
为了搞点喜欢的基础技术,还是离开了高薪的PHP,转了C
这两天比较忙,心也有点散了,忘记了按时评论,请理解哈。我觉得开发人员最难的就是得不停的学习,这个是比较大的挑战。加油!
嗯,是哒。我今后可能不做技术人员,但我认为无论换成何种岗位,新岗位背后都有其庞大的知识体系,要不停去学习。
请问PHP转C++后端,除了学习语言本身和网络编程API,还需要学习什么呢?
结合自己经历写一写哈,如有不足,请谅解哈。
在知识储备上,看一些简单的开源系统的代码,比如memcache、redis、webbench、libevent、microhttp;复杂大型软件的比如nginx、sqlite、php的内核等,尽可能去多了解。再结合工作,自己练习写一写C++的工具、网络应用,比如写PHP的mod就是不错的切入点。
转型成功缺一不可的条件就是要去寻找和抓住能转C++机会,最好能在正在供职的公司里转岗到C++的岗位。