1月13日晚8点,开启了我的第一次知乎Live,主题是:程序员的精进:你适合做开发吗。因为时间原因,Live中提到的部分问题没来及回答,特意整理出来,一一回答,记录在这里,作为补充。

1软件开发工作各个阶段的人分别负责做些什么?以及各个阶段需要哪些专业知识?

从技术路线上来看,开发者一工程师-->高级工程师---->架构师(技术专家)

一般的工程师,会负责产品模块的设计与编码。

高级工程师,会负责大的模块或子系统的设计以及核心模块的编码。

架构师对技术选型、产品架构负责,同时也可能完成核心模块的开发。另外也会负担一部分团队管理、技术讲授、客户支持等工作。

技术专家在某一个细分方向上有深入研究,能够在这个方向上解决复杂问题。另外也会负担一部分技术讲授、客户支持等工作。

具体到需要什么专业知识,和你做的产品有关。

2从一个领域的开发工作跳到另一个领域的开发工作需要做哪些准备?例如从移动通信跳到VR?

准备分两种:1. 行业或产品领域知识的准备,比如通信和VR游戏,就牵涉到产品知识的准备;2. 专业知识和技能的准备,通信可能会用到C语言、协议分析等知识与技能,而VR用到的技能不同,可能会用Unity3D或者C#。

【3】 30岁转行还来的及吗?没有科班背景?

什么时候转行都来得及,江民杀毒的创始人王江民38岁转软件开发,后来笑傲中关村,开启杀软的黄金时代。但年龄确实会带来一些影响,比如你50岁转软件开发,就可能受到国内用人单位的潜规则的影响。最关键是你真的想做某个职业,那就去做,准备接受一个较为缓慢的过渡期,等你用自己的热情和能力完成了爬坡,前景就展开了。

【4】 电气专业不知道未来该选硬件还是软件

这个需要盘点自己,看看自己的兴趣在哪里,比如你更愿意琢磨硬件、设计硬件、组装硬件,还是更愿意去思考让硬件工作起来的系统,或者硬件暴露给使用者的交互界面。找出兴趣,作为选择的参考。另外也可以考虑做硬件的工程师和做软件的工程师有什么不同,分别找到一些相关的职场人士,看看他们的工作与生活状态,你更喜欢哪一种。

【5】 程序员的天花板是年龄还是什么?

我认为天花板不是年龄,而是你的“应用流程”,也就说你运用知识、技能、经验解决问题的流程和能力。如果你有好的应用流程方面的能力,那你就可以超越初阶的知识、技能,把你的这种能力复制到各个领域,就能够突破常见的技能方面的天花板。如果你只知道在别人思考得出的解决问题框架内按照别人的安排来完成一部分执行的工作,那你的天花板就显而易见。

【6】 目前在做大数据领域开发,但不太喜欢觉得很无聊,想自学全栈开发和前端,但这个就需要大量下班时间的自学,想知道应该怎样规划自己的时间安排

用业余时间学东西,要一个一个来,不要同时学很多,一个阶段学一样。所以,先分析自己要学的内容,挑一样出来。

然后需要定一系列的目标,形成由浅入深的目标阶梯,每一个目标,都要有成功的指标,自己根据这些指标就能度量是否完成。

再然后,就是规划时间,比如一周有三个晚上,每晚投入3小时,周末抽12个小时,这样子的。

【7】 大学生如何快速完成向程序员的角色转变?从事非前沿开发是否要考虑转行?互联网公司是程序员的最好选择吗?

先掌握一门技术,聚焦在做具体事情上,培养自己解决问题的能力。

要不要转行,看自己是否喜欢你开发的产品,看你工作是什么感觉。讨厌、痛苦,就转;喜欢、享受,那就继续。

不存在最好选择,只存在对个人来讲的合适的选择。

【8】 程序员各个阶段应该怎么提升自己

刚开始,重点放在知识、技能、解决问题的能力培养上。这个时候,应该聚焦在如何在技术方向上做得更深入、怎样用技术解决问题。

能够熟练应用一门技术解决问题时,要合理分配精力,培养通用能力,如讲授、沟通、协作、写作等,这些通用能力会放大你运用技术解决问题的能力。

【9】 程序员和业务顾问,哪个有前途

因人而异,不存在绝对的前途。你能做好哪个,哪个就有前途。

【10】 如何判断有没有开发的天分,会不会存在后端语言没天赋,前端有天赋的情况?

一般是先根据你的兴趣选择一个方向,然后用实践来检验,看自己做的时候是什么感觉、做的结果是什么样子,这样才能真正判断是不是在这件事情上有发展前景。

语言有一些特性,与人的气质是存在匹配度的。比如有人就喜欢JS,有人就喜欢C++,有人就喜欢Go,所以不同的人使用不同的语言会有不同的感觉,你喜欢的话,就更容易学好、用好,就会显得在这方面有天赋。

【11】 开发既然只是是一种工具,那我们是不是要把更多的精力投入到一个具体行业的研究而不是开发技能的提升?

软件开发是运用知识、工具在某一个具体行业解决问题的过程。所以,要学好相应的知识、技能,同时也要精研具体行业,两者都需要,缺了哪一个都不成。

【12】 软件开发与IC前端,哪一个值得深入学习?

看个人兴趣,都很值得。

【13】 C9 高校,非计算机专业,转行做开发,能给些建议吗?有哪些合适的方向,适合长期发展。

我看好教育、医疗、金融、人工智能、文化娱乐、体育等行业。

【14】 由于开发这方面的技术更新迭代的非常快,热门的方向也是在变化的。如app,大数据,人工智能。由于迭代更新,程序员一些前期的非通用经验没有市场了?

程序员的经验分三类:语言、技术框架;行业知识;应用技术能力解决问题的思维、框架、系统,也就是你的“应用流程”方面的能力。你换行业时,行业知识就没用了;技术可能有用,也可能没用,看你做的产品是不是还需要用原来的技术;应用流程方面的能力是可以迁移的,永远有用。

【15】 如何学好程序设计里面的算法呢?

分几个层次:1.应用层面的,理解别人提供的接口,能够用别人的算法接口解决应用问题,比如你可以用高斯模糊算法来处理图片,这种意义上的学好,理解算法背景,多做一些实践就可以达到。2.算法开发层面的,比如要你自己设计静音检测或降噪算法,这个就需要你能够深入了解相关的知识,多多从已有的算法中学习,基于已有的算法实现,通过优化、扩展或者组合来形成新的算法,我以为比较重要的是三步走,首先能够理解算法本身,然后用自己的方式来实现算法,最后是把这个算法应用到具体问题的解决过程中,比如希尔排序,你要理解它,然后用不同的方式来实现它,做得多了,琢磨得多了,就掌握了算法本身,然后把它应用到实际场景中,比如解决千万级别的数据排序等。

【16】 28岁女生 机构工程师,喜欢开发的环境,行业优势,打算掺加java培训班,想请问软件企业是否更不愿意招有工作经验的大龄转行者呢

一般的企业,不太愿意接受大龄转行者,因为都追求开箱即用,希望你过来就能解决问题。所以,你需要付出更多的努力,让自己能够更快地具备生产力。你还需要表现出你的能力,在编程语言、技术框架方面暂时没有竞争力,那就从通用能力、做事流程等方面体现自己的竞争力。

【17】想请问一下程序员的职业年龄一般到多少岁?

没有特别的职业年龄一说,有的人干到60岁,有的人25就转行了。关键是自己是否愿意干下去,是否愿意保持终身学习的态度。

【18】 在学习一门语言的过程中,那些方面需要注意的呢?

1. 带着问题去学习,把学到的东西,应用在解决问题中,这样会比较快。

2. 设置目标阶梯,不断提升目标难度,让自己蹦一蹦才能够到,这样会不断进步。

【19】 学的时候挺喜欢编程 找的第一份工作现在六个月没发工资 对编程一点兴趣也没有了 应该转行做其他的吗

请仔细想想:

1. 是对软件开发能赚到比较多的钱感兴趣,还是对用技术解决问题感兴趣。

2. 没发工资,是因为你做编程工作,还是因为公司状况?

这将决定你是否要转行。

【20】 工作城市的选择,对程序员的职业发展影响是不是很大,我觉得氛围好的城市可以更快的在线上业务中实践新技术,成长也能更快

与城市相关的是行业、产业的发展,不同的城市,行业、产业的发展状态不一样,机会也不一样。从这个角度讲,城市对程序员的职业发展影响蛮大的。比如你在上海做金融,就比在咸阳好得多。

【21】 一个程序员最好至少要掌握几种语言呢,我是个phper

一般来讲,初期最好先做精一门,然后再做宽度,根据产品需要学习不同语言。5年下来,如果你做过几个产品,可能会掌握2~3门语言,或者更多。但更重要的是,不是语言数量的多寡,而是你应用语言解决问题的能力。

【22】 怎么才能提高编程工作的积极性呢?

想想你工作的意义,比如你做一个读书的App,能让更多人获取知识得到提升,你喜欢这一点,你就更有积极性;比如你享受解决别人解决不了的难题这种快感,你就会有积极性;比如你觉得成为某个方向上的大拿,建立竞争优势会让你很有成就感,你就更有积极性……所以,最重要是,为你的工作赋予对你个人来讲的积极意义。

【23】 把这个作为今后职业,在高考志愿选择方面和进入大学后要准备些什么

软件开发其实是运用技术工具解决具体问题的过程。所以,在填写志愿时,应该优先考虑你喜欢的工作内容,宽泛点说就是行业、产业、产品。比如你喜欢金融、喜欢幼儿教育、喜欢牙医,这些更重要。有需要的话,你可以在任何时候学会软件开发的相关技能,用它们来解决具体行业领域中的问题。

【24】 女生适合做开发吗,不太喜欢人际,走计算机行业的职业规划大概是怎样呢

Google 云计算业务 Google Cloud 成立了一个新的部门,推进机器学习方面的技术进步和新功能,领导者是李飞飞和李佳,都是女性,也都是技术出身。我几年前带过的团队里,有三位女性开发者,工作表现比部门里有的男生还要好。所以,我觉得性别不是最重要的,重要的是你个人怎么看待这个职业。

如果做软件,职业通路有技术和管理两条线,技术线就是工程师-->高级工程师-->架构师(技术专家)-->科学家;管理线就是工程师-->项目经理-->研发经理-->研发总监-->CTO。

【25】 在一个小公司里面自己的技术是最高的,这种情况下如何学习?需要跳槽到一个有高手的公司吗

有这么几种学习方式:

1. 自主学习,积极主动学习,给自己更高的要求,想办法把事情做得更好

2. 通过网络和线上线下的社群,与同技术方向的牛人保持联络,相互学习和促进

3. 学会复盘,不断总结做事中的不足,不断改进。不断总结做得好的方面,固化为经验和规律,指导自己以后做得更好。

如果觉得没办法,或者进步慢,也可以考虑到高手多、技术氛围浓的公司,与牛人一起,你会变得更牛。

【26】 本科即将毕业,非计算机专业,对开发很感兴趣,怎么判断自己是否适合从事这项工作,通过哪些途径学习,培训班吗?

感兴趣就可以做哦,兴趣是最好的老师,也是动力源泉。接下来就是,先自己学习,验证下自己是否能深入进去,深入进去之后是否还能在各种困难前葆有兴趣。建议先找本编程的书自学,学上两个月,看看是否能入门,看看自己的感受,判断下自己是否还愿意继续。如果愿意,恭喜你,你是真喜欢,也真适合从事这项工作。

【27】 计算机专业 毕业,一直从事嵌入式应用软件、 bootloader,os,driver开发。但是无行业感,不知道应该选择什么样的行业去发展?

想想你现在的软件,是应用在什么行业的。家电?工控?消费电子?汽车?一定有行业属性的。多想想别人怎么用你的软件、怎么用你的嵌入式硬件,分析那些场景,就能找到行业属性。

【28】 研一,工科,非计算机相关专业,想选择一个方向入手转行,会一些C语言的基础语法。怎么选择?能推荐一个方向吗

如果我是你,会先看看我的专业可以做些什么,做这些东西,可能会用到什么技术,什么语言,然后就选择这个语言来学习,然后用这个语言来做专业相关的项目。

【29】 近期开发,感觉不在状态,开发的时候容易开小差,怎么调整?

是因为想到了什么才开的小差?分析一下,有针对性的采取措施。举个例子,如果你在担心领导找你聊年终总结,那就先停下开发工作,把年终总结这事儿想明白,做一些文案,准备上,那这件事就放下了,就不会因为它开小差了。

【30】 零基础的其他行业在职人员,想进入前端这个行业,怎么才能尽快上手呢?是需要报名培训班学习好一点?还是看网上的视频或者资料自学比较好呢?

我给想转行从事软件开发的朋友,通常的建议是:先买一本书,或者买一个视频课程,跟着学上两个月,看看是否能学懂。这是检验你自我学习能力的最好方法。如果你能搞定,可以自己搞好环境搭建、可以学会基础语言、可以完成一些小实践,那就继续。如果搞不定,停下来想想,体会下自己的感受,看看自己愿不愿意承受这种挫败的感觉继续前行,如果愿意,继续死磕,或者报个培训班,如果不愿意,就放弃。

【31】 算是一个入行一年多的程序员,大专学历。之前做硬件的软件。现在刚刚结束自学转为javaweb的程序员,不知道人才市场现在对这种职业的技能要求有多高?还有自己开发项目时一遇到bug进度就会被拖慢。不知道有什么技巧可以提升开发的速度?

人才市场对javaweb要求有多高,可以到拉勾之类的招聘网站上搜索职位信息,找一定数量的职位信息,就能自己分析出来。

其实,我们都是被bug拖慢进度的……要说有什么技巧来提升开发的速度,那就是先慢后快。所谓慢,指的是先思考、先设计、先在头脑里把事情琢磨明白,然后再开始写代码,这样就快了,bug也少,返工也少。一上来就写代码,往往是似快实慢。

【32】 老师你好,我本科写过安卓,但听到说学软件应该有硬件知识,所以研究生就选择了硬件方向,与IC前端有一点关系。现在就是不知道应该往哪个方向走了?很想学软件,但是现在又必须学习硬件的知识(研究方向)。所以很是纠结,时间很少,不知道要怎么分配。

除非你纯粹是做IC设计,否则你就需要用软件来驱动硬件,需要懂软件。但是反过来,学软件就不一定要懂硬件,比如你做Android APP,不需要懂硬件,只需要了解框架接口就可以了。

考虑到门槛,我觉得软硬结合会更有竞争力哇。如果纯粹学软件,作为研究生,也建议不要把焦点放在语言、框架上,应该深入到算法层面,这样将来更有竞争力。

【33】 程序员怎么做职业规划呢,我是刚入门两年的PHPer

常见的职业通路有技术和管理两条线,技术线就是工程师-->高级工程师-->架构师(技术专家)-->科学家;管理线就是工程师-->项目经理-->研发经理-->研发总监-->CTO。

对个人来讲,还要定位自己在哪个技术方向上发展,自己的优势在哪里,如何放大自己的优势。

------

如果想回顾本场Live,点击这里:程序员的精进:你适合做开发吗

欢迎支持程序员的精进系列Live的第二场:程序员的精进:如何成为高手,时间是1月20日晚8点。

“你适合做开发吗”知乎Live问题集锦相关推荐

  1. Mac 更适合做开发?从零把 Mac 打造成开发利器

    点击我爱计算机视觉标星,更快获取CVML新技术 本文作者:guoweiye,腾讯 PCG 开发工程师 很多人都说 Mac 比 Windows 更适合做开发,那关键是要把 Mac 配置好,下面就来和大家 ...

  2. 女生适合做开发还是oracle数据管理?

    做 java开发 两年,做oracle数据管理也快两年了,做java时 动脑比较多,做数据管理 天天写存储过程,业务了解的比较多,不知道以后该往哪个方向发展?

  3. 虾皮跨境电商,2022年还适合做吗?知虾数据告诉你答案

    今天是2022年10月,距离2023年只剩不到三个月,那么2022年,乃至2023年虾皮到底还能不能做呢?今天我就结合我的个人经历来给大家说道说道. 本人是从2018年开始做跨境电商的,只不过一开始入 ...

  4. 你真的适合做前端开发吗?

    朋友,你真的适合做前端开发吗?换句话说,在开发这一领域里你适合前端开发吗? 互联网的岗位很多,光是一个前端,就包含:web前端,安卓,ios. 而web前端需要掌握哪些东西呢?随着时间的流逝,互联网越 ...

  5. 第06课:做开发还是转管理

    大家好,我是安晓辉.从今天开始,我们将开始<程序员职场进阶 32 讲>的第二部分内容,技术精进篇. 我先给出本章的思维导图,方便对照阅读和快速抓取要点,如图2-1所示. 图2-1 我有十几 ...

  6. python最适合做什么-python适合做什么开发?

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. pytho ...

  7. python能做什么项目-python适合什么开发

    Python是一款流行的计算机编程语言,具有简单.易学.免费.开源.可移植.可扩展.可嵌入以及面向对象等特点,拥有强大的库,简洁的几行代码即可实现强大的功能,应用范围广泛,可广泛应用于以下领域: 1. ...

  8. python可以做什么开发-python适合做什么开发_python未来发展怎么样

    python概述 Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年.Python是纯粹的自由软件, 源代 ...

  9. python适合做后端开发吗-python适合后端开发么

    python适合后端开发,因为Python是一种计算机程序设计语言,既可用于前端也可用于后端开发,在Python中编写后端可以简化为编写各个模块,其间的连接随后由前端部分中的用户操作确定和控制. Py ...

最新文章

  1. 关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值
  2. FPGA设计——全局曝光CMOS图像采集与USB2.0显示
  3. 16张思维导图+学习路线图,囊括所有Python基础,可打印
  4. hdu 5285 二分图黑白染色
  5. 计算机的网络操作题,计算机网络操作题
  6. 应急照明市电检测_应急照明如何供电? 如何接线? 图文分析!
  7. python项目开发案例集锦_在线分享 | 在 VS Code 中一站式完成 Python 项目开发
  8. 为什么md5是不安全的?
  9. We7 CMS 2.7beta3 版发布!SVN源码同步开放
  10. linux驱动编写(字符设备编写框架)
  11. sqoop 命令在crontab 不能自定执行
  12. js中的相等与不等运算
  13. Mybatis中的foreach
  14. java实现数据库同步
  15. 农村信用社答题小程序
  16. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
  17. 网站漂浮广告代码收藏
  18. No.38-VulnHub-Tommy Boy: 1-Walkthrough渗透学习
  19. AP8022电源芯片离线式开关电源IC
  20. Ubuntu18.04开进进入grub命令行,如何修复

热门文章

  1. OpenHarmony--Hi3516DV300设备版本烧写
  2. Javascript算法实现PDF批量加盖不同宽度骑缝章,vue加持。
  3. PCL_ROS的使用
  4. Java实现k个数乘(cheng)(自然数的k乘积问题)
  5. html输出转成word(转)
  6. 远古Vod故障404排除实战
  7. 也说说家养猿类养成套路
  8. MyEclipse下载地址全攻略
  9. 【图像基础】帧与帧数
  10. ItemCreated和ItemDataBound事件的区别