【心灵鸡汤】谁的青春不迷茫

技术界没有银弹,只有你自己不断的提高自己,练好内功,方能在未来指点江山


对技术要有追求,要学会偷懒,经常完善自己的编程思想 


迷惑一

最近有好几个人问我,说:工作已经1年左右,每天都在忙,感觉技能方面没有什么提升,感觉到对技术方向的迷茫。


迷惑二

有很多人本身有点眼高手低,只要一听到干货就打了鸡血,干什么都要看看是不是干货


迷惑三

我只想写个能运行的代码就行了,请不要和我讲那么多编程思想的问题


迷惑四

普通工程师和高级工程师的差别在哪里?


我以我这几年的工作经历和大家来唠唠这迷惑之一二三四说


首先这两个阶段我都经历过,我刚开始来到上海这个陌生的大城市当年的确就是凭着一股不服输勇气支撑着我(Too Young Too Simple)。今天当然也感谢当年那次的决定,不然也不会有今天的我



第一份工作是为一个公司(BAT之一)做外包项目,当时真的蛮辛苦的,经常半夜还在加班,由于是第一份工作当然非常开心并且干劲十足。


那时候我记得我只用了三个月就已经熟悉了公司的框架以及外包公司框架。那时只要有时间(经常三更半夜)就debug MVC框架怎么运行的,并且在心中给自己定下了一个目标一定要自己实现一个MVC框架


我很高兴我实现了,项目地址:https://github.com/apanly/phpframe-simple ,虽然现在看起来实现很乱,但是这个东西为了打下了非常深厚的MVC基础。



第一份工作我大概做了不到6个月,由于我个人自学能力,理解能力,沟通能力还不错,所以在公司说话还有点地位。然后我就有点自傲了,当时我曾经一度认为:我写PHP,你也是PHP,我就不相信你比我写的好多少。



第二份工作是一个非常大公司(当时好多朋友都羡慕我能进去这个公司),这是我进入 迷惑一 阶段,在这家公司基本是吃老底,

一:使用的代码管理工具是FTP(以前用的也是SVN了),感觉一下从 现代社会 进入了  落后的封建社会

二:连个MVC框架都咩有,原生的代码一行一行的堆起来


在这个公司除了薪水还可以,天天就感觉在重复劳动(数据库增删改查)。身心感觉非常疲惫,并且经常感觉无法进步,怕找不到下一份工作。在这里也基本呆了6个月,然后离开了



第二份工作的离开,也让我吃了非常大的苦头,当时基本找工作都找了一个月,你可能会问 为什么找不到工作哇?当时我的工资以我刚毕业的经验看来,一般小公司是给不到的,并且很多公司认为我不值我心中的那个价格。


当时每天都在外面跑,早上可能在浦东,下午又要跑到浦西,不光身体累,心里更累,因为一次次残酷的打击 让你开始怀疑自己的能力。并且还要担心马上要交房租了。


老天总是公平的,经历了磨难,彩虹就出来了。来到了第三家公司:它是我生命中最感恩的公司,也是我成长最快的公司。在这里终于见识到了:天外有天,人外有人。并且这些牛逼的人一点都不是那种高高在上的感觉,非常好相处。在这里我学会了太多东西,我的整个知识体系都是在这里搭建起来


故事到这里当然没结束,但是今天我们不是来讲故事,而是来解决或者避免 迷惑一、二、三、四


迷惑一之解答


找不到方向很正常,因为一般工作1-2年我们还没有哪种能找到方向的能力。我这里以我知道的知识点为基点,看各自的情况,自行选择。最后我也会放一些链接,大家有兴趣可以看看


  1. 逛各大技术网站,获取最新的技术前沿信息,请一定要让自己不要过时。例如开发者头条,Github,Info,微信的搜一搜和看一看

  2. 请一定要认真了解PHP运行机制。

    1. OPCODE是什么?

    2. 什么是解释型语言,什么是编译型语言

    3. 扩展是干什么的,如何安装,如何卸载

    4. HTTP协议,了解到每一个头部都是干什么的

  3. 一定要了解PHP MVC的实现原理,非常重要。因为你了解之后你会发现任何MVC框架你使用起来都很快入手的

  4. Mysql数据库一定要了解更深,不要只是写SQL语句,要了解索引,语句优化,主从配置,分库,分表。墙裂推荐书籍:高性能Mysql

  5. Linux是你逃不掉的,只要在这个行业,做研发,请一定要找机会慢慢熟悉Linux,我建议可以从使用Linux系统开始,熟能生巧,用多了就会了

  6. 不要求你可以手动编译LNMP环境,但是需要你可以通过apt-get 或者 yum install

  7. 要对自己的代码有追求,对不好的代码要零容忍,我一直在强调这点。能够一行写完的绝对不要写多行。我个人对代码有强烈的代码洁癖。

  8. 前端知识

    1. 可以写简单的CSS,并且可以排除错误

    2. 能够熟练使用jQuery,要求最起码做到 表单验证,简单的JS动效

    3. 前端框架  Bootstap OR Foundation 。至少二选一

    4. 为什么会跨域?解决方案?

  9. 安全知识:SQL注入、验证码、刷新提交、跨域攻击、XSS 这些都要了解下,并学会基本的防御手段,你一定会碰到这些破坏的

  10. Git:最好的版本工具,没有之一。研发的基本要求之一

  11. 缓存知识:Memcache、Redis

  12. 队列:Redis、RabbitMQ、Kafka

  13. 运维知识:负载均衡、常规健康监控、HA、CDN、DNS服务、

  14. 常见电商的高并发解决方案

  15. 找一个自己喜欢的IDE,工欲善其事必先利其器,工具只有适合自己的,没有最好的这个说话。墙裂推荐 PHPStorm

  16. 时机成熟时,也学习下其他语言,例如Python、Java、NodeJS等等

  17. 一定要学会搜索、一定要学会搜索、一定要学会搜索 重要的事情说三遍。没有人会一直帮你解决问题的。


迷惑二之解答

干货都喜欢,但是我们要多问自己一句:自己能否区分什么是干货?如果不能请老老实实练习和学习,不要想那些无聊的事情。


我最喜欢一句话:Show Me The Code !!!


迷惑三之解答

请提高对自己的要求,只有你比别人更高的要求,你才能成长的比别人快,不然企业为什么从那么多同等的人中要你


迷惑四之解答

我想用一下几点来解答

  1. 更快(效率):目前的操作流程是否是最快的?如何改进?

  2. 更好(效果或性能):目前的解决方案是否是最佳的?能否进一步提升能?

  3. 更省(成本):什么样的方式能够降低人力成本、财物成本?


初级工程师的自我介绍是这样的:我会做十道凉菜、三十道热菜;

普通工程师的自我介绍是这样的:我一小时能做二十道菜;

高级工程师的自我介绍是这样的:打从我来到饭店后,客人更多了,赚钱更多了;

专家工程师的自我介绍是这样的:你听过这道菜么?是我第一个搞出来的。



最后关于心态要是开放的,要学会包容,要心正。

       

希望大家共勉:学海无涯,学无止境