您所在的位置:主页 > 行业资讯 >

程序媛有话说35岁的我是如何成功转型

时间:2018-01-30 14:47来源:未知 作者:os 点击:

  

  我 82 年出生在中国的一个二线城市,毕业于一个三流大学的计算机专业。父母都是国有企业的一般职工,没有什么背景,凭借自己自学当年很火的 JAVA,大四上半年就被国内一家知名企业招聘到了上海,做的第一个软件就是 XX 银行的系统。

  我和大家一样,是从最底层的码农做起的,而且当年崇拜很多骨灰级的技术牛人,也为研究某个新技术兴奋的睡不着觉。当然我也在软件工作的那几年把腰和颈椎弄得至今都不怎么好,在上海待了 2 年后回到了自己的城市(因为感觉上海活的太累,毕竟亲戚父母都在,自己的城市人脉关系也更多一点)。

  先后进入过国内知名企业(类似华为这类的),也进过国外的知名企业(类似 MOTO 这类的)。从软件工程师---软件高级工程师---技术经理---项目经理----技术总监助理兼产品经理,从 21 岁到 27 岁,我一直混迹在 IT 这个工作圈里。

  27 岁,我和大家一样每天上下班,有一套自己的小房子,有一个代步的小车子。每天早上端着一杯星巴克,穿着某商场买的某牌子货的衣服,匆匆忙忙的一天。

  我们当时的外企很正规,我记得最后一个月的加班补助费工资条上是 4000 多,感觉小日子过的还是不错的,至少在同龄人中,还是偏上一点的水平。在我和公司同事的努力下一起完成了一个和中国某国有企业合作的游戏平台以后,我的情绪就出了问题。

  我突然开始厌倦这种生活,每天很有计划的活着,每年为了涨一点工资或者跳槽也是换到另一个同行业的工作而乏味的活着。我当时也不知道自己是哪一根神经没对,我很想打破一成不变的生活,但是又很惶恐因为毕竟当时收入已经不低了,要是离开现在的一切,我靠什么生活,我除了会软件以外,真的什么都不会。

  记得那段时间我思想斗争很激烈,几乎中午不和同事吃饭,一个人到办公大楼对面的一个电玩城打电玩,有时候上着班,我会看着窗外的来来往往的汽车,好想自己也离开这个办公楼,到外面的世界去。和家人朋友聊天当时全部都反对我离职,都觉得我疯了。

  其实就在我迷茫的这段时间,发生了一件事,因为我在 IT 行业工作了很多年,之前在公司上班时也有自己私下接的小单子在做。(有认识一些小公司的老板,有些外包业务。所以这里强调下人脉的积累很重要。)当时正好有一个人找到我合伙做一个项目(一个怪叔叔负责商务,我主抓技术),当时我确实不想呆在公司了,但我其实也不知道自己以后会怎么样,与其痛苦的呆在那里只剩一个躯壳不如离开。

  离开后我就接手了这个软件项目,其实一个刚从公司出来的人思想很固化,缺乏生意人的魄力和勇气,什么事情都喜欢稳妥怕失败。(当时的我就是这样,所以我离职的第一年居然还是在做软件,只不过不在软件公司做,自己在家里做,然后偶尔去去客户那里,偶尔几个技术人员再在某个人家里开开会总结下。)

  离职后的第一年,我接了 2 个软件项目(从经济角度说还不错,至少不比我在软件公司差。补充说下:当时我离职后接项目不是我一个人是一个团队接项目,我们团队有负责商务的,有负责技术的,当然也有写代码的。我的角色就是技术负责人)但很快我意识到我和当时的合伙人不太适合继续合作下去了,而且我在软件这行本身是个技术出身的人不擅长商务这块,如果没有一个商务上的合伙人很难继续一个人带着技术团队走下去。

  因为做软件这行说实话要成功创业只有两种人,第一是有关系的人,第二就是技术大牛又很能坚持的人。这个中间其实也有一点机遇的成份,我跟我的合伙人,合作了一年后我宣布离开。当然我也成功帮他赢到了客户的二期工程所以至少后面的一年他们是不用为收入发愁的。我离开去了哪里?就是我现在做的了,我很喜欢的行业。

  在我 28 岁的时候,我进入了一个全新的领域。

  我和一个朋友合作软件,大概在我离职后的半年我无意间和我一个大学同学聊天,大家难免问候彼此在做什么,当时我这个当年和我关系最好的同学以前也是做软件的。他说他现在在做电商,其实当时的我还不太看得起做电商的人,因为我不觉得这个可以赚到很多钱,而且网上假货那么多,2009 年-2010 年的时候,大家都觉得买便宜的东西才网购。

  当时的我压根就没太在意,我同学还发了一个网址给我,说是他们做的平台。我就看了看,什么破玩意,怎么会有人买啊。可后来的事情颠覆了我所有观点,大概 2、3 个月后,我同学的收入已经超过我了(大家不要误会不是说我同学做网销 2、3 个月就超过我了,他当时应该做了有 2、3 年了,只是我在晓得这个事情后又过了 2、3 个月我们聊到了收入)最开始我半信半疑,之后我让我当时技术团队的一个女生去研究电商这块,结果他研究以后就直接去当时腾讯搞的拍拍开了一个店铺生意还不错,就不再回来做软件了。就因为这个原因,当时我立马也跟着进入了电商大军。

  其实所有的故事都一样,没有一帆风顺也没有不劳而获。今年是我做电商的第六年了,这六年时间,经历的绝对比做软件那几年经历的多。选择电商这个行业,因为就如当年选择软件一样,不靠关系靠能力说话。

  (当年认为进入软件公司只要技术好,我就能进入各大知名企业;做了电商发现都是辛辛苦苦白手起家的人,只要你敢想敢拼)走过突然商品成为爆款,每天关注关键字,数据分析,排名,售前售后产品供应链,从淘宝、拍拍、京东、一号店、团购等国内各大平台的合作,到如今我们国内依靠代理运营,我们自己运营跨境电商从速卖通、阿里巴巴国际站、敦煌、EBAY、亚马孙等。从火爆到惨淡,再到火爆,从希望到绝望,无数个日夜上活动冲销量。(说实话,那么多年软件的工作经验,在我做电商这块有很大的优势)

  现在的我工作的很开心,我已经完成了我的成功转型,希望各位职场中的师兄师姐师弟师妹,无论你转型与不转型,最重要是做自己喜欢的事情,不要为了活着而活着。

 

  谈谈程序员解决问题的能力

  解决问题的能力,程序员立业之本。

  一般写文章我不会特意去写,而是有感而发的时候刚好又有时间我就会去写写文字。本想推些技术文章的,但写技术文章又很耗时,写得太浅显又没有技术含量,写多了恐怕大家也没耐心去看(不就是懒么,给自己找这么多借口)。公众号这么多,你又能看的了多少呢?小巫这个公众号不会像某些网红那样每天都想破脑袋去写文章,也不期望这个公众号能给我带来什么,毕竟以我的尿性我让我每天写鸡汤文我自己都会恶心。好了,进入今天这篇文章的主题,跟大家谈谈程序员解决问题的能力。

  为什么会想写这篇文章?

  前面我写过一篇关于独立思考的文章-你是怎么思考的?[1],大家感兴趣可以去看下。关于独立思考,我觉得每个人都应该要有,作为一个成年人,很多事情都要别人讲得很明白才懂得怎么去做,那别人也不太愿意把事情交给你办,也不太相信你能办好,你也很难掌控自己的命运。今天的这个主题虽然讲的是程序员解决问题的能力,其实也还是讲独立思考的能力,因为解决问题的能力也是源自你是否会独立思考。之前写过一些文章,有的同学想让我写写在鹅厂的一些经验,其实说真的,在鹅厂工作也是因人而异的,不管在哪里工作最终还是取决于你是怎么赋予工作的意义,每天纠结自己工作重复繁重,纠结工作技能得不到提升,纠结薪水满足不了自己的欲望,纠结这纠结那是毫无意义的。问题的根本也不在于这些,而是你是否足够沉得住气去提升自己。如果你连日常工作的一些问题都解决不好,你也别期望自己能在很短的时间内提升很高的水平。还是那句话,就算你有十年的工作经验,如果你只是一年的工作经验用了十年,那真的怪不得别人比你厉害了,人到中年的时候那真的有危机了。

  吐槽一些开发者白纸一般的脑袋

  之从做了SDK开发者之后,每天帮助用户解决各种各样的问题,那我真的有理由相信为什么国外的月亮会比国内的月亮圆了,因为国内的一些开发者真的让我很方啊。国内的开发者复制黏贴的能力是一流的,嗖得一声就能把功能实现,感觉好厉害的样子(皮皮虾,我们走)。集成我们提供的SDK的时候,也是嗖的一声遇到问题不知道怎么解决。

  小白开发者A:为什么升级弹窗提示不了?我已经完全按照文档集成了啊,求救啊。。

  小白开发者B:为什么集成热更新SDK之后,修复不了我的问题?

  小白开发者C:集成SDK之后,编译出错了,谁能帮忙看下。

  小白开发者D:怎么开启混淆啊。。。

  小白开发者E:为什么没有mapping文件。

  小白开发者F:为什么接入SDK之后,没有看到log。

  小白开发者G:这个异常怎么解决?

  更多。。。

  虽然标注的是小白开发者,但我也遇到很多工作好几年的开发者同样这样问问题,这个已经不是经验上的的问题了。换个角度思考一下,如果别人向你这样问问题,你会理睬他么,说真的我还不如利用这些时间多修几个bug,很多开发群最终都会沦为水群就是这个道理。大家都有当小白的经历,人生这一辈子不懂的事情太多了,那你总不能让别人牵着你走,作为一个程序员要对得起程序员这个称号,作为一个工程师,你是否能体现自己工程方面的能力。如果连基本的解决问题的能力都没有,那还是尽快放弃当程序员,这一行当没你想得这么好玩。

  怎样才算具备解决问题的能力

  我先说一下我的一家之言吧,说这些并不是为了吹嘘自己能力有多强,只是把我看到的和想到的东西用文字说出来,至于别人怎么去解读我是无所谓的。

  第一点:主动尝试解决问题

  程序员的解决问题能力不是天生的,自然得靠后天的经验积累。我们工作中会遇到各种各样的问题,比如需要去跟踪调试产品所产生的bug,又比如说使用第三方组件所遇到的一些问题,再比如说使用一些插件或者IDE所产生的一些编译问题。这个时候第一反应不是去别人那里寻求帮助,而是自己尝试去看去解决问题。首先得确定这是一个什么样的问题,对这个问题下一个定义,看它是自己编码上的问题,还是一些编译上的问题,再或者是第三方库引入的问题。确定之后,你可以根据运行时产生的崩溃信息或者编译时出现的编译错误,找到错误的根源。如果是代码上的问题其实是很好定位的,我们只需要根据错误的堆栈找到出错的地方,然后你再去看这部分代码的处理逻辑,只要不是特别复杂的业务处理,基本上能很快解决。如果是编译时出的问题怎么办?你先看具体的编译错误是什么,看自己以前是否有遇到过,是否能够确定是什么环节导致的编译错误,比如是开发环境版本问题,或者是插件的版本问题,又或者是代码导致的编译问题,这类问题只要逐个排除相信也能够轻松解决。那如果是业务逻辑导致的问题怎么办?那我就建议你自己根据需求重新梳理清楚业务逻辑,可以通过debug来验证你的结果,又或者可以通过日常写单元测试用例来保证业务逻辑的正确性。关于各类问题的解决,解决办法总是能找到,就看你是否足够耐心去寻求解决方案。

  第二点:学会提问

  刚才说的第一点,对开发者能力有一定的要求,并不是所有开发者都能够做到这一点,那如果依靠自身能力解决不了问题该怎么办?没错,就是向别人提问,但这里要注意一下提问的技巧,就不要像我所吐槽的白纸一般的开发者。关于提问的技巧很多人都在提,感同身受最深的应该是那些为开源项目做贡献的开发者了,只要一开源就必定会有很多人过来问问题,提issue。以我作为SDK开发者来说,我希望开发者这样向我提问:

  首先态度诚恳,平等尊重(这很重要)

  问题标题有针对性

  标题指明环境、错误时机、现象。如:

  较差的标题(×):发现一个兼容性bug(太宽泛,完全没有点进来看的欲望)

  较好的标题(√):Vivo X5上xxx SDK调用初始化时导致崩溃的兼容性问题求解

  问题描述详细

  问题描述详细,可以方便其他用户帮您定位问题。尽量提供详细的环境、错误时机、堆栈、日志、现象、截图等等。

  可以参考如下格式:

  【问题描述】

  描述出现问题的环境:Android版本、设备型号、网络状态、SDK版本等等

  描述为了解决问题作出的一些尝试,例如Google查到的相关资料

  【错误堆栈】

  贴出由Bugly分享出来的错误堆栈

  这里有一篇文章也推荐大家看下- 提问的智慧[2],想提高自己解决问题的能力,首先得学会如何提问。

  第三点:经验总结

  我们日常遇到的问题就类似打怪升级一样,你解决的问题越多你的能力就会越强,经验自然也会越来越丰富。但人的脑袋不可能记住所有事情,将自己遇到的问题沉淀下来对以后自己查阅也有很大的帮助,就不必每次都要去Google,自己也能够有一个索引库。经常自己总结,也能够提高自己的写作能力,以后写文章、ppt总结提炼自然也难不倒你了,也是一举两得的事情。还有你以后求职面试过程中,提及自己这方面的能力的时候,也能够为自己面试加分哦。

  第四点:知识经验传承

  精神哥说过:不总结哪来的经验,不分享经验有何用?

  一个人能产生多大价值取决于他的影响力有多大,之前看到有人在我们内部论坛提问说提高影响力有什么用?你看看马云就能知道有什么用了,他说一句话比你说上百句都管用,毕竟人家的影响力在那里。很多微商都经常拿马云来说话,尽管马云自身没说过这些话,但为什么别人拿马云来忽悠人,不拿你来忽悠人,这就是影响力的作用。我们程序员做知识经验的传承,不仅能够提高你自身的影响力,还能够帮助你提升逻辑思维能力,因为你需要去总结提炼,你需要将问题梳理清楚,并且要将知识点描述得能够让别人更容易接受。你的经验虽然是你自己的,但如果你的经验能够帮助到别人,那你的价值就不一样了。

  总结

  笔者在写开发文档的时候,经常都会去思考怎么让开发者通过这个文档更加轻松的接入我们SDK,怎么样设计接口会更符合开发者的思维,多提几个为什么可以帮助自己让自己的思考更加完善,这篇文章是笔者入行这两三年的一些思考,也希望能够帮助到广大开发者能够清晰认识到自己在这方面的能力,最后谢谢大家能够看到这里。