APP推广合作
联系“鸟哥笔记小乔”
技术人的职场:程序员如何从菜鸟到大牛
2021-09-01

一些程序员朋友找我聊个人职业发展,想起20多年前,我也是一个写代码的,就聊聊我是如何从写代码选择了走产品路线。

1996年,大学期间,出于个人兴趣,写了第一个作品,用FoxBASE编写的学校题库系统,实现了出题、选题、组卷、考试答题、改卷功能。


2000年,我参与组织一个网络课程的项目,用ASP实现动态网页,可以进行图文和视频网络课程的学习,这个时候,我发现自己一边学一边写代码,效率太低,一个人搞不定,于是就开始写需求文档,找到几个计算机专业的同学一起完成了这个项目,这个过程中,我担任的角色是产品经理,只是那个年代,还不知道这个职业岗位。


那个时候,也未曾想到自己居然把做产品这个事情干了20多年,中间经历过教师、销售、市场、产品运营、产品策划等多个职业阶段,现在的职业角色是深圳梅沙科技的合伙人,实际上,仍然在承担产品经理的职责。


我算是一个早期的程序员的职业发展案例, 放弃了技术路线,走上了产品道路。


调侃一下,就是程序员的代码能力没发展好,跑去做了产品经理。


但是,在我的职场经历中,遇到不少个案说明,程序写不好,转行做产品经理,也不容易;一些优秀的程序员,更容易成为优秀的产品经理。


我对一直坚定的走技术路线的实力派,是非常仰慕的,在多年的产品项目过程中,我和不少程序员同事建立了非常好的合作关系,很多是在一起加班熬夜过程中建立的战友关系。


下面的分享内容,源自我的好几位程序员朋友,尤其是现在的梅沙科技技术合伙人Martin提供的内容,他从一个校招大学生进入腾讯,经过5年时间,成为高级架构师,综合几位技术大咖的分析,整理了关于程序员职业发展的文字,这次应帅张邀请,分享给大家。

一、职场意识的觉醒

职场,多数人认为是从走出校门开始的,其实,从很早时候,就可以考虑职业发展了,多早呢,不好界定,有的人,从小就有一个梦想,未来要做点什么,这就是梦想的萌芽,例如从崇拜某个偶像开始,那个心目中YYDS,成为偶像那样的人,微软的创始人比尔盖茨、苹果公司的技术合伙人沃兹尼亚克、腾讯的马化腾、张志东、张小龙、小米的雷军都是优秀的程序员。雷军在大学时候读的一本书《硅谷之火》更是点燃了他的创业梦想。


因此,一个人的职业生涯能走多远,源于他最初的梦想,满足了最基本的生存需要之后,真正想做什么,是值得思考的问题。


职业觉醒,表现为知道自己想做什么,在大学不会迷茫,当别人在宿舍沉浸游戏的时候,找到梦想的人,就开始读书,自学程序语言,尽早的找到一家公司实习,有意识的找到行业前辈,多认识几个能帮助自己成长的职业导师去请教学习,这些都能为毕业求职打下扎实基础。


二、如何系统扎实的准备好面试

 

对于刚刚走出校门,进入职场的技术人的第一份工作,企业不一定会要求你们掌握多么高深的技术问题,技术老司机们更看中基本功和成长性软素质。

 

  • 技术基本功

 

原腾讯高级架构师,梅沙科技技术合伙人Martin针对4种常见的技术职位总结了以下计算机基础知识,相信对大家会有所帮助。

 

A. 协议、算法等基础功底

 

1.有扎实的计算机基础——加分项。如进程与线程知识,TCP/IP协议,数据与结构等。很多人认为计算机基础知识只是做后端,做服务器开发的人才需要,像前端开发根本不需要,这是绝对错误的。对于只应付日常业务编码的普通工程师来说,扎实的计算机基础知识,是锦上添花的东西,但对于优秀的前端工程师来说,是必不可少的。操作系统的基础知识,能更好的掌控代码, 避免性能上不必要的开销, 或者对其有所警觉, 同时也能避开一些逻辑上的问题。

 

2.数据结构和基本算法  清楚特定的基础数据结构的可以处理的问题, 如果已经知道这些算法,那可以跳过很多耗时的技术选型阶段,这就是知识的广度带来的优势。

 

3.网络协议知识  TCP/IP等网络协议知识,到应用层的HTTP/HTTPS等,对这些协议的深入理解,可以解决web页面在移动网络下的访问耗时长等疑难杂症,提出优化方案。

 

B.后端程序员

 

1. 操作系统基础知识  文件系统、任务调度、内存管理,进程与线程、进程间通信以及同步,锁等知识必须要有。

 

2. 基础语言  一般要求有C、C++基础,精通如但不限于C/C++/PHP/Java/Go等至少其中一种后端语言

 

3. 扎实的网络协议知识  TCP/UDP、HTTP、HTTPS协议,Linux网络编程

 

4. 存储数据库知识  包含数据库原理,sql语句的使用、优化。积累搭建mysql和运维mysql的经验。

 

5. 数据结构知识  不要求能写出RB树的算法,但对常用的排序要熟悉。熟悉常用软件设计模式

 

6. 熟识常用的框架与组件nginx,mysql,redis等

 

7. 实际的项目经验  能分析出系统各个模块的关系,为什么这样设计。系统瓶颈在哪里,如何优化性能

 

C.前端程序员

 

主要分为两大部分:前端代码技能部分(html、css和javascript),前端架构部分(构建工具,新生框架,优化以及安全性)。

如果把一张网页比喻为一栋楼房,那么html相当于搭建一个主体结构,css相当于来做粉刷,javascript发挥的作用就是类似于水泥的粘合剂。其中任何一个环节出现问题,都会可能导致房屋出现问题。

 

1.html基础,如各种Element的含义和用法。

 

2.dom结构与事件模型。

 

3.css样式部分 熟悉最基础的布局方式、常用定位的作用和区别、css的一些常用的选择器以及选择器的权重。另外就是css的浮动部分,掌握浮动的应用场景和消除浮动的常用方法。是否熟悉响应式布局这块,对最新的css3的知识掌握熟练程度以及移动端的经验,属于面试之中比较看重的一块。css3**现了很多的新的浏览器特性和效果,使用熟练程度之余还要知道它的兼容性。

 

4.javascript基础  理解闭包的概念和用途,原型链和继承的概念。网络基本知识像HTTP协议,Get/Post的区别与联系。

 

5.前端与后端交互的数据格式Xml/Json等  进阶部分包括得熟悉使用javascript的流行mvvm框架(vue,angular,avalon等等)其中的一种到两种,构建工具(webpack,fis,gulp等等),以及系统后期的一个优化过程(包括静态资源压缩,合并,按需加载,分流)前端安全这块的知识,如跨域机制,CSRF/XSS 漏洞等知识以及如何防范。

 

D.客户端程序员

 

首先要对系统如何启动App,App如何运行有一个整体的了解,这里就包含App启动过程,沙盒机制的目的,实现原理等。

 

1.  操作系统中进程与线程的知识点,App怎样处理图片与外部网络资源,也要有一个整体的认识。

 

2.  App界面布局和交互的知识。

 

3.  语言基础包含OC,Swift,至少精通其中一种。对象的生命周期,面向对象思想。

 

4.  App界面知识点,自动布局, 自开发组件。

 

5.  UIView,  UIControl,  UIScrollView,  UIViewController 等核心类型的概念和关系。

 

6.  App屏幕旋转及屏幕适配,触摸、手势、加速计的使用。

 

7.网络协议HTTP/TCP等基础知识,Socket/CFNetwork/NSURLConnection等类的使用

 

8.代码管理如Git/Svn的使用,开发测试流程,Bug管理,打包上架到苹果审核发布等知识。

 

9.常用类库框架UIKit/Foundation/MapKit。

 

10.热门技术如微信支付/友盟分享/第三方统计等的使用和注意事项。

 

11.性能调优方面,内存泄漏、网络流量、耗电量方面的优化知识,Analyze的使用。

  

  • 成长性软实力

 

除了技术知识等硬素质,能驱动带来可持续成长的软素质同样重要。今日头条资深架构师夏绪宏提到,对候选人更看重:

 

1. 技术面与职位匹配     建议对照应聘的职位描述,做有针对性的准备,也让企业了解到你的用心;

 

2. 技术热情    对技术热爱,善于使用技术解决问题,有「技术思维」;

 

3. 学习能力    技术不可能一开始全部具备,更新迭代快的环境下需要保持不间断学习;

 

4. 沟通能力    团队协作需要能沟通顺畅、高效;真正在做项目时,如何正确、高效的与战友沟通非常重要,与学校中不同,在职场上更多是并肩作战;

 

5. 项目经验    实习、生活中自己有项目尝试。最好是有更多的实践,不一定是实习,可以是自己日常去多做小项目尝试,让我们看到你对技术的热情,这一点很重要,已经有相关经验的同学会更有竞争力。

 

此外,初入职场的应届生要做到基础和工程并重,不要只偏重一方,这样有助于扩展整体的技术视野,在思考问题的角度上更广、更全面。在塑造自己的职场初印象时,大家可以参考以上这几条,给外界一个完美的亮相。

三、如何选择第一家供职企业——大公司,还是小公司

 

面临大公司、小公司,究竟该怎么选择呢?结合腾讯高级工程师、今日头条客户端技术总监等技术大牛的建议,归纳了一些要点:

 

1.  行业和公司层面,计算机专业主导行业有哪些?这些行业中top3的公司是哪些?这些公司的商业模式和竞争的护城河是什么?这些问题答案很大程度决定了公司未来的发展空间。通常建议只选快速发展行业中第一、二位的公司。

 

2.  岗位和兴趣匹配,要多问自己内心喜欢的是做什么样的工作,兴趣是最好的老师,兴趣也在后来的职业生涯中帮助更好地找准发展方向,即使在计算机专业领域,也是有很多细分的方向(例如安全领域,后台领域,移动领域,算法领域等)可以发展的,把它给明确下来。明确了自身的兴趣和发展方向后,就要对应地去匹配行业中有发展空间的top3公司的合适岗位,仔细看下这些岗位的Job Description的技能和知识要求,查漏补缺,把自身的能力短板补充好,做好充分准备。

 

3.  考虑团队、导师和个人成长   团队的技术氛围、mentor的水平直接影响到了你在该公司该岗位上的上升天花板的高度。选择业界顶尖某项技术的大牛追随,是对个人成长绝对有利的。


职场新人,尤其是比较优秀的新人,容易吹毛求疵,导师或者团队有一些不足,就产生失望情绪。记住,人无完人,没必要苛求导师每个方面都完美,当遇到导师或团队产生问题时候,真诚的给出反馈,学会发现导师的长处,虚心请教学习,从导师变成朋友。

 

4.  公司产品、公司文化及CEO的认同   比较成体系的优秀公司,无论是成熟大公司BAT还是超级独角兽们,都有拳头产品。在去公司之前你要体验、了解、认可公司的产品,从内心热爱一个产品将成为攻坚的动力。另外,特色鲜明的公司都有自己独特的公司文化,这些文化反应了公司更看重的核心能力是什么,当你有了公司文化认同时,你未来的工作将会非常顺手,并快速容如公司环境。通常这些价值观也是通过CEO的发言传递出来。

 

5.  福利待遇  建议应届毕业生不要在薪水上有太硬性的门槛标准,面对很好的平台和职位,薪资在短时间内相比于成长空间是可以做取舍的。不过目前无论是大公司还是超级独角兽们,为了吸引优秀人才进入,福利水准已经非常接近了,大家可以多去知乎等社区搜索或向前辈询问了解。

 


6. 人才关注  公司对人才发展的重视、培养和激励也是非常重要的。


例如有人问华为创始人任正非:“人才是不是华为的核心竞争力?”任总的回答则出人意料:“人才不是华为的核心竞争力,对人才进行管理的能力才是企业的核心竞争力”。

 

在《华为基本法》里有一句话叫做:“认真负责、管理有效的员工是华为最大的财富”。而不是像很多企业那样泛泛的讲“员工是企业最宝贵的财富”。《华为基本法》中还有一句更厉害的话:“我们强调,人力资本不断增值的目标优先于财务资本增值的目标”。


腾讯,我呆过3年的前东家,印象最深的是,对人才要求最重要的是“正直”,公司很重视人品,位于腾讯价值观的第一条就是正直。其次是体系化的培训机制,校招、社招入职培训,通用培训,专业培训,管理培训涵盖潜龙、飞龙、腾龙等系列,从菜鸟到管理层,培训一路相伴。第三,鼓励员工帮助员工成长,每个员工的成长晋升道路,都需要成为新员工导师、课程讲师,帮助同事个人,帮助团队进行能力提升,这是在职级晋升中的硬性条件。


今日头条张一鸣对人才极其渴求,他不止一次表露过对人才的看法。尊重人才要做到三个方面:「一是回报,包含短期回报长期回报;第二是成长,他在这个公司能得到成长,第三,他在这个公司精神生活很愉快,他干起事来觉得有趣。」

四、职场冲刺攻略:每个程序员都有可能成为架构师

程序员一般在三年,五年,七年都分别面临自身发展的一个坎,根据HR的统计,这几年一般是程序员跳槽换工作最频繁的年限。对于工作前三年的程序员,TA一般都是能比较好地完成好手头上的工作,会开始觉得现在做的工作没有什么困难和挑战了,很多东西都会了,对工作的**可能逐渐开始消退。初涉职场,如何要求自己,快速成长,BLUES的朋友们都很积极地给了很多建议:

 

1. 尽快完成身份转换,从学生过渡到公司员工。更好的平衡实际产出和学习提高的精力,这方面有问题不妨多和直线经理沟通

 

2.兴趣驱动自我成长,能做技术源于我对技术的热爱,找到你的兴趣点;

 

3. 有优秀的mentor指导;

 

4. 在某个领域需要有特长,需要去深钻;

 

5. 学会合作,公司不同于学校里接触的项目,工作上有大项目才能获得锻炼,你会发现原来需要考虑这么多问题,看起来一个简单的产品需要那么多人协同。

 

6.  辅助技能也是必备,不光是技术上的成长,需要了解用户、推动产品落地,这涉及到用户洞察、执行力、沟通能力等等一系列技术人员必备的技能。

 

7.  和业界保持更新,不要闭门造车,需要跟更多的业内人士交流、学习。

 

那么多计算机专业的小鲜肉,有老司机在前面带路,就大胆的去追逐程序员的梦想吧,第一份工作的选择也是一个磨练的过程,或许这个过程有诸多坎坷,但也不用蓝廋香菇,学会自我总结反思,相信会找到一个适合自己的发展平台。


最后,我的亲身感触,任何行业的大牛,都是一个积累过程,不排除天才的存在,但概率上说,99%的人都不是天才,但是可以凭借自己的专注与努力成就职场的发展,很多人的努力程度其实并没有到拼天赋的时候,所以,大家找好方向,按照自己的节奏,持续努力就好。


-END-

BLUES
分享到朋友圈
收藏
收藏
评分
评论

综合评分:

我的评分

参与评论(0)

评论规则

暂无评论,快来抢沙发吧~
登录后参与评论
发布评论

鸟哥笔记限定畅饮吸管杯600ml
超大容量,让你爱上喝水
2000羽毛
立即兑换
【新品】办公/外出两用静音充电小电扇
办公桌必备小电扇!
2000羽毛
立即兑换
超级nice便签砖
超级超级超级奈斯!
1000羽毛
立即兑换
BLUES
BLUES
深圳梅沙科技合伙人,原迅雷产品总监,YY语音、QQ秀高级产品经理
确认要消耗 0羽毛购买
技术人的职场:程序员如何从菜鸟到大牛吗?
考虑一下
很遗憾,羽毛不足
我知道了

为了促进广大用户对鸟哥笔记网站的干货文章做出更加客观、真实、优质的评论,为其他读者在学习干货时提供参考,特地制定本评论规则。

一、什么样的评论内容会被通过

15字以上的、基于文章内容的优质评论。

二、什么样的评论内容不会被通过

1、15字以下的评论;
2、“已阅”,“1”,“11”,”666”,“学习”,“学习了”等明显划水的内容;
3、重复评论,即在多篇文章下面发布同样的内容;
4、带广告性质的内容(含网址、电话、微信等);
5、评论内容与本文无关的;
6、带诋毁,辱骂,色情,赌博、暴力等不符合社会主义核心价值观的内容,及一切法律法规不允许的内容。

最后,你的评论在审核通过的同时,还可以获得5羽毛的奖励,羽毛可在 "羽毛精选" 兑换各类小礼品哦~

我知道了
恭喜你~答对了
+5羽毛
下一次认真读哦
成功推荐给其他人
+ 10羽毛
评论成功且进入审核!审核通过后,您将获得10羽毛的奖励。分享本文章给好友阅读最高再得15羽毛~
(羽毛可至 "羽毛精选" 兑换礼品)
好友微信扫一扫
复制链接