你想告诉准程序员些什么?

1,626 阅读11分钟
原文链接: www.zhihu.com

你想告诉准程序员些什么?

本人大一新生,信工狗一个。作为“过来人”你想告诉我些什么?

因为不怎么懂知乎,所以请知友帮忙邀请一下这方面的大牛吧。

PS:本人腾讯云布道师,也是一名鹅厂面试官。近期面了30多位工作2-10年不等的技术骨干、总监、CTO,对于互联网或计算机方向的同学们又一点建议,都写下来了。

1.趁着在校期间,多做完整项目,多写代码。哪怕没有老师给你项目做,你可以自己创造需求也可以编程实现这个项目。

exp:作为鹅厂面试官一员, 我们会更多基于STAR面试法,主通过你的行为看你的编程能力,除了让你做算法题外,更重要的是你实际写过的代码和项目,效率如何?有没有考虑过异常处理?实际的访问性能如何?有没有开过自己的github项目,或者是给知名项目贡献过源码,其次才是你的编码风格如何,学习成绩啥的。

2.产品经理说的不一定都对。

exp:据我的老大(腾讯第一个前端T4)讲,鹅厂的产品好,不仅仅是因为产品经理牛,而是包括程序员在内的所有人都会用自己的产品,有产品的思维。对于产品经理提出的不合理的需求,鹅厂的程序员们会基极主动的站出来,就产品功能提出自己的合理化建议。

3.你作为开发你一味的只想用新的技术栈,你考虑过运维同学的感受么?

exp:一台服务器上装 3个版本的虚拟机的故事。在某家云计算公司,技术负责人没有太过于限制研发人员的积极性,在数据库层面用了某款较新的开源数据库软件,在监控类的系统里有着很好的访问性能和扩展性。 但是问题来了,在本公司产品的研发周期中,该数据库进行了几次版本更新,而且版本与版本之间存在一定兼容性问题,为了要用好该开源数据库软件的性能,开发通过创建3台虚拟机的方式提供社区镜像服务。

4.当你踩过的技术的坑多了,自然你就成为大牛了...

exp:之前我在知乎发了一篇小程序的教程,得到了800多个赞和知乎编辑的推荐,背后是花了3个晚上每晚干到12点,来填小程序的一些坑。

5.学技术要学主流框架,学Node要学Express,学Java就不要忘了SSH,学Ruby首学Rails。

exp:非主流技术比如Action Script,你会也没人招这个专业的。

6.关注云计算、docker、微服务、Devops、Baas技术

exp:下来这些可能技术或者思想会改变5-10年后的IT业界,比如云计算会干掉不少传统IDC运维,Baas会干掉不少后端开发。

7.没有人一定要帮你,要让你值得别人来帮。

exp:就以常见的填坑为例(修复问题+错误调试),你可以自己摸索,也可以找前辈请教,态度好一些,干活勤快一些,自然多一些机会获得前辈指教。

8.你干了什么,你的老板知道么?

exp:新任研发总监的故事 我的朋友是一家创业公司的某研发部负责人,他的老板在上海,他们的研发团队在成都,老板大概三个月才来一次成都分公司。朋友和我反映他感觉自己和团队成员交流完全没问题,但就是被各种需求压的喘不过气,有的时候他都觉得手下的研发太苦,我和他提起,你离你们老板这么远,你做的事他都认可吗? 他说还真是,这块老板似乎多次暗示过,但是他都没有太关注...所以,做好向上沟通很重要。

9.对于新技术的热爱不仅可以拿来装13,而且可以变成创业的优势

exp:朋友是极客学院的CTO,他们两个创始人是国内第一批安卓开发者,写了国内第一本这方面的技术教程,后面围绕着读者衍生出了eoeandorid开发者社区,再演变出了当前的在线技术教育项目极客学院,目前已经超过200万用户,而且获得B轮融资。

所以,谁说技术的热爱不能成为你技术创业过程中的优势呢?

  1. 不要担心自己没有计算机基础,也不要羡慕高中有计算机基础的同学,其实你们都还是在一个水平线上。
  2. 很多课程不是没用,不要太抱怨,只是教学的方式没有办法引起你的兴趣。对于一门课程,选一本经典的教材,认真研读,并且善于Google,看看国外名校这门课程的教材与讲义,并且做做他们的作业。
  3. 数学很重要,也许你只有这一次机会有大把的时间来好好学习数学。
  4. 编程语言不需要会太多,C,C++,Java,Python,汇编远远足够。增长见识可以看看函数式语言,如OCaml,Haskell。学会一门语言,就去用这门语言刷刷题,如HackerRank | Technical RecruitingAbout - Project Euler
  5. 勿好高骛远。经常去造造轮子,如标准库,OS,编译器,网络库,这个时候都是青春年少容易被诱惑的时候,但是切记不要被周围所谓华丽的界面与技术迷惑,那些其实都是浮云。
  6. 找找实习,好好学习后找实习不要太容易,不要担心周围的人都很厉害,其实大部分水的让人难以置信。趁实习可以好好体验一下工作中编程是如何的,丰富一下自己的经历。
  7. 和室友处好关系,交一两个好基友。
  8. 好好谈一次恋爱,无论以后你们的结局如何,TA一定会教会你很多,以后记得感谢TA,TA也在用TA最美好的时光和你在一起。
  9. 看看夕阳,听听音乐,读读文学,全身心的放松,去享受一下大学的美好,努力的同时不要太担心未来,大学生是最美好的职业,大学也是最美丽的时光,这是属于你的青春,好好珍惜。

不是大牛,但也不是新生了,我就想说一条:
千万不要觉得大学四年很长!!!其实一晃就过去了!!!
千万不要觉得大学有四年!!!其实大三就要找工作了!!!千万不要老是想着哪个语言好,纠结Windows还是Linux,幻想成为谁谁谁一样,最重要的是脚踏实地。为什么要粗体+感叹号,因为都是我含泪打出来的。。。-------------------------第一次更新------------------------被越来越多人点赞了,方

要认真补充几句话了。

如果还有点追求,大学课程教的东西,我指专业方面,少的可怜。如果你只是上完课,听了课,完成了作业,完成了考试,而已,那几乎相当于没学。因为有可能你一个寒暑假能忘掉你学的东西。以我们为例,大一第一学期c语言,第二学期数据结构,现在大二第一学期java,而有多少个人还记得c怎么写?还记得怎么层次遍历二叉树?还记得图最短路?这很基础但能有一半以上人不能在纸上完整写出你信?当然,我说这个的意思不是指,你要记住c语言怎么写,记住这些数据结构怎么实现,而是,对于我们的专业,如果你还热爱这个专业,如果你还想学好编程,那么请保持练习。当你踩过的坑多了,思考过的坑多了,你才能不断进步,慢慢朝着专业的方向前进。对于编程,没有捷径,无他,唯手熟尔。对于怎么练习,可以去看其他的问题和回答。

知道准程序员,或者说初学者,最容易问的或者说最经常想的问题是什么吗?是那些听起来很酷但实际离他们很远的东西。比如:怎么做一个游戏?怎么做一个(类似QQ)的软件?xxxx要怎么实现?等等等等。确实每个人都想做出一个像样的东西来,但在你没学会走之前,不要跑。你可以把做这样一个大型的东西当做一个目标,但他不是你现在该去做的事,否则你也不会看这个回答。你目前该关注的是什么?是离你最近,但比你现在所知道的要高出那么一点点的东西。每个阶段,你都可以尽自己所学的,做一个你认为最好的、最难的,但是经过时间思考和努力能做出来的东西。
比如,你刚学编程,你可以做一个控制台版的扫雷,学完基本语法了,做一个贪吃蛇,去查WIN API怎么用,又学了一段时间,做升级版贪吃蛇,加入了数个COM蛇。不要对此嗤之以鼻,对于初学者来说,这很酷不是么?当你熟悉了语法之后,还在做课后几分钟、几小时的题有意义么?慢慢开始做几天、几周、几个月才能做出来的东西。别怕,任何大型的东西,也是由小的区块组成的。你不开始的时候,觉得它永远都难,你开始之后,就会专注在目前所做的部分。毕竟,有的东西,你只有做到一定规模,你才会接触到坑在哪。不必担心你那远大的目标,不用纠结怎么才能知道那么多东西,你只要坚持以上所说,慢慢的你会在适当的时候,接触到你想知道的。

以上。个人体会,如有不到之处还请谅解。

  1. 不要自称「 xx 狗」,尊重自己
  2. 不要为了谈恋爱而谈恋爱,不要相信「程序员找不到女朋友」
  3. 除了计算机知识,也要学好英语 + 数学
  4. 基础学扎实,不要追求热门
  5. 不要迷恋语言,不要陷入语言的战争
  6. 多写有质量的代码

如果可以的话,要找一份不强制加班的工作。。。比如我们公司

也会有加班的

说点看起来不正经,但是很有用的1.写代码,别太偏执。不写完不动地方,容易前列腺有问题,湿一鞋2.有条件了就上个好点的椅子,没钱几百的也可以做,别对不起自己的腰3.累了出去呼吸下空气,千万别养成屋里抽烟的习惯4.刚起步没资金,就省着点买个显示器,dell便宜款也不贵。实在不行买个高点的电脑支架,脖子一直一个姿势受不了的5.别管是因为颈椎还是编码而头疼,果断放下键盘休息会,别吃止疼药6.女盆友不急,外面那些只追求外在而缺乏内涵的姑娘不值得抬头或难过。人以类聚人以群分,会碰到你喜欢的姑娘,别为了缺爱而爱7.不随时间而变的是codestyle8.别总和比你差的人比,会失去动力的9.别忘了如何爱人

先这些

Don't sweat the stuff you don't understand immediately. Keep moving!

(别在不懂的地方打转,先继续读下去!

不要认为自己学的语言是“世界上最好的语言”。
不同语言很大程度上是相似的,多学几种语言的时间成本很低,却可以让自己的就业机会和眼界成倍的增长。

我只想说不要认为在学校学的东西没有用,它教会你一个学习和解决问题的方法与过程,也就是“授之以鱼不如授之以渔”里面的渔。