‘壹’ 做程序员8年了感觉好累,有没有其他好的行业推荐
上周做了几次咨询,来访都是三十多岁的程序员,每个人对年龄都表露出深深的焦虑。这周一和知乎一个话题的策划者电话聊选题,选的也是35+的互联网人何去何从。这不由又唤起了我对年龄焦虑的思考,索性来谈谈大龄程序员的未来吧,献给所有找我做咨询的程序员们,也献给所有为年龄而焦虑的互联网人。
首先我会讲下年龄焦虑的本质,然后会谈谈大龄程序员的8种出路,最后会聊聊如何选择自己的方向。
年龄焦虑的本质是竞争力不足
所有和我聊年龄的程序员,聊到最后,都会确认这个事实:所谓年龄焦虑,焦虑的根本不是年龄,而是竞争力相较于年轻人,逐年下降。
这才是年龄焦虑的本质——竞争力不足。
介绍两个简单的方法。
第一个方法是以终为始,面向未来做决策。
也就是说,你先设想你想要的目标,想过的生活,想成为的样子,然后来倒推,自己现在该怎么去做。
有的人可能想不清楚未来会怎样,介绍一个小技巧——找榜样。通过榜样的工作和生活状态,来明确自己想要的,然后你再来倒推。
第二个方法是贪婪算法,不管未来会怎样,总是基于现在,做出在当前看来是最好的选择。
比如现在你觉得自己要是在技术上多投入时间,可能快速提升技术水准,还可能拿到更高薪水,那就倾尽全力去钻研技术,先不管别的,干上两年再看。
比如在你现在的公司里,管理者有更大的权力和回报,这深深的吸引着你,那你就想尽办法去抢管理的坑,先抢到再说,不管别的。
所有的方法,都是纸上谈兵,最重要的,是你结合自己的情况,落地执行。
‘贰’ 程序员最好的职业方向是哪些
现在软件和互联网大概有哪些方向?程序员的职业方向又有那些?
首先是需求从哪里来?
客户的项目
如果做的是客户的项目,需求当然是从客户那里来的。客户绝大多数是软件开发的小白,但我也见过客户是优秀的软件人才,他们很难清楚地描述自己真正的业务要求,这时候就需要有个人隆重出场了:业务分析师。对于大公司,业务分析师是专职的,对于小公司,项目经理或者开发骨干也就硬着头皮上了。业务分析师需要把需求理理清楚,交给后面的架构人员做设计。
业务分析师如果在某个行业干久了,就会变成业务专家,例如你把国内各大银行的核心系统项目都做了个遍,那你对银行业务的熟悉程度甚至可能超过银行的特定人员,这时候你就超级值钱了,不仅仅能分析业务,更能够帮助银行优化业务,你说牛不牛?
问:业务分析师需要懂技术吗?
答:最好是懂一点,你分析出来的东西是要程序员们实现的,如果不考虑现有的技术,一味地迎合用户,肯定会被程序员们骂死。
如果你是由程序员成长起来的业务专家,技术精湛,那就坐着数钱玩吧。
公司的产品
如果你做的是产品,例如微信、QQ、淘宝、魔兽世界、征途、大话西游,那需求其实是自己公司的人来定义的。
定义这个需求的现在有个时髦的职业:产品经理。像张小龙就是微信的超级产品经理,史玉柱就是征途的骨灰级产品经理。
产品经理主要根据用户的心理和体验来设计产品,让大家用的爽,好的产品经理现在非常吃香,也属于紧缺人才。
问:产品经理需要懂技术吗?
答:需要,最好是从程序员成长起来的,知道一个产品设计实现的难度,不然只顾自己爽,也会被程序员骂死。
设计和开发
架构师
听起来很高大上的一个职位,但是需要强悍的技术实力和深厚的技术积累。架构师的成长需要历练,需要技术的广度和适当的深度。设计优雅、灵活、可扩展的架构是架构师的主要工作。
不能只追求最新、最热的技术,还需要考虑现有团队的能力,技术的成熟度。
人员需求:★
难度指数:★★★★★
web 后端程序员
后端程序员主要实现业务逻辑,提供接口给前端使用。
java 当然是用的最多的,但是也有别的相对小众的像 Python、ruby on rails 等,还有就是 PHP,简单粗暴,中小网站常用,无论哪一个,学习起来都不是很难。
这一块的人员需求是比较大的。
人员需求:★★★★★
难度指数:★★★
web 前端程序员
主要是 Java、CSS、JQuery 等,最近几年大家重视浏览器端用户体验,浏览器端做得越来越炫,所以也很火。
人员需求:★★★★★
难度指数:★★★
手机端程序员
主要是 Android、iOS,由于移动互联网的发展,现在很火爆,需求量很大,相对而言 iOS 的门槛高一些,程序员也少一点,不过工资高一点。
人员需求:★★★★
难度指数:★★★★
系统编程程序员
有些需求很简单,有些需求很复杂,需要支持海量的用户,海量的并发,像淘宝的“双十一”, 像微信的春节抢红包。
需要做云计算,虚拟化,分布式处理,支持系统水平扩展。对于海量的数据,还需要做大数据分析,从中提取有价值的信息,例如 Hadoop。由于需要对操作系统,数据库,服务器端系统做定制开发,甚至自己做一套,小公司一般没有这样的技术能力,主要是 BAT 这样的公司在做。人员需求不是很大,对程序员来讲,需要在一个领域钻研得非常深,技术稳定度比较好。
人员需求:★★
难度指数:★★★★★
安全
互联网时代,你的信息一不留神就有可能被偷走,安全变得越来越重要。所以单单实现了功能,满足了性能还不够,很多公司,尤其是 BAT 对安全非常重视。当然这个方向也需要对技术钻研得很深才可以。
人员需求:★★
难度指数:★★★★★
测试
这个对技术要求不太高,但也需要测试相关的知识,能够设计测试用例,准备测试数据,执行测试。
现在敏捷开发流行,对测试也要求懂开发知识,至少能够开发一些自动化的脚本。很多女生后来转到了测试岗位,我想主要是因为女生比较细心。我在 IBM 见过一个非常优秀的测试人员:她不仅仅能出色完成上面指派的工作,还可以参与设计开发的讨论,经常能从测试角度提出开发人员都没有想到的问题,极大地帮助提升了软件的质量。
数据库管理员
几乎所有项目都需要数据库的支持,对于大型、超大型项目,会有一个叫做 DBA 的职位。他对数据库知识极为精通,平时对数据库进行管理,开发时能帮助开发团队设计数据库,并且找出性能瓶颈,进行性能调优。
美工 / 文档
美工
主要是对界面进行美化,一般是由美工先出界面原型,大家讨论,修改,确定后美工会生成各种界面元素,像图标、按钮等。
现在对美工也有一定的技术要求,不仅仅是画界面,还要把 html 模板做出来,所以美工需要懂得 HTML、CSS,甚至部分 Java。程序员拿到 html 模板后,往上添加业务代码即可。
文档编写人员
小项目一般是团队中有人兼职做,大的项目、产品会有人专职写文档, 我 2003 年的时候参与过上海证券交易所的项目,看到有个专职的文档编写人员写的 Word,非常专业、精美,完全是可以直接出版的水准。我把它 下来,自己都想山寨一个,但照葫芦画瓢都做不出来。
项目管理
项目已经开始了,业务分析师、架构师、开发、测试等一群人如饿狼扑食,势必要把项目撕个粉碎。可是这么多人怎么协作? 如何管理?进度能不能按要求完成?这就需要项目经理出马了。
项目经理,说白了就是带着大家做项目,主要和人打交道,需要协调各个方面的关系,保证项目的进展顺利。
问:项目经理需要懂技术吗?
答:当然需要,最好是开发出身,要不然你就听不懂那帮程序员在说什么,只能在表面漂浮着,无法深入项目,别人也就不服你,团队肯定是带不好的。
运营
如果你是在开发自己的产品,开发完成以后,马上就会遇到一个问题,怎么推广?
在互联网时代,世界是公平的,竞争异常激烈,一个好的软件、App 或者网站,如果缺乏运营,你的技术再好也不行。
运营其实就是想方设法让你的产品被人知道,被人用起来,这里边水很深,例如怎么写个软文?怎么在社交网络、微信、微博进行营销?怎么统计,分析,精准地定位?
这方面,2014 年以前的小米绝对是典范。雷军的 7 字诀:专注、极致、口碑、快。 黎万强的《参与感》 都是经典。
好的互联网运营人才奇缺,当然非常的吃香。对编程不感兴趣的同学,不妨看看这个方向。
说了这么多职业方向,你会发现,绝大多数都要求懂一定的技术,所以我其实想说的是:刚参加工作,不妨先从程序员开始,慢慢地再寻找自己感兴趣的方向。
‘叁’ 程序员哪个方向好
阁下是说的做网站后面的后台了吗?
因为你本身原来做前台 可能跟我一样 美工不太好 想学习后台罢了
学完前台至少能看懂基本的HTML代码 后台至于哪个方面
现在网站方面的后台总共有ASP,PHP,.NET,JSP
ASP:很早很早以前的技术了 在windows 98上就可以用了
适用于一般小的公司刚开始信息化,只要求在网上有个网站罢了。用VBScript开发。优点是成本小,周期短。缺点是数据链大的话网站整体反应速度稍微慢点。安全性不够好。
JSP:主要用java加html开发 优点是:安全性较高。缺点就是开发成本大,开发周期长。
PHP:用PHP脚本开发,语法类似于C,perl等语言,可以面向对象开发。优点是跨平台 速度快 缺点是数据库支持不是很出众。
.NET:微软推出的.net(C#3.0,Visual Studio2008)网上有种说法是专门对抗Java的。他的安全性比ASP要高。集成智能开发环境,代码和显示相分离能让开发人员快速开发。建议学习C#方面的.net. C#是继承于C和C++基础之上的一门面向对象语言。
综合评价上面四种:个人建议主要学习PHP和ASP.NET
以上是BS(网站)方面的 在软件方面我不太清楚
我也主要是做网站后台开发的 软件现在学习的话一般也是
Java和C#
‘肆’ 现在程序开发中那个方向更好
你好,目前软件工程就业前景较好的9个专业: 1 可视化编程 掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。 就业方向:企业、政府、社区、各类学校等可视化编程程序员。 2 WEB应用程序设计 具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。 就业方向:企业、政府、社区、各类学校等WEB应用程序员。 3 软件测试 掌握软件测试的基本原理、方法和组织管理,精通软件测试工具。获取ATA软件测试工程师或Delphi初级程序员或Java初级程序员认证。 就业方向:企业、政府、社区、各类学校等软件测试员。 4 数据库管理 能应用关系范式进行数据库设计,精通SQL语言,胜任数据库服务器管理与应用工作。获取Oracle数据库管理或SQL Server数据库应用或Windows XP应用认证。 就业方向:企业、政府、社区、各类学校等部门的中、大型数据库管理员。 5 图形图像制作 精通国际上流行的图形/图像制作工具(如CorelDraw、Photoshop、Pagemaker等)。获取平面设计师相关的认证。 就业方向:广告制作公司、建筑设计公司、包装装璜设计公司、居室装修公司、出版印刷公司。 6 网络构建技术 熟悉网络结构和组网方式,掌握建网方法,能利用工具分析和排除常见网络故障。获取Cisco路由配置或华为网络工程或AMP应用工程师认证。 就业方向:企业、政府、社区、各类学校等网络构建工程师。 7 网络系统管理 掌握网络系统管理的基本知识与应用技能,能进行网络系统的安全设置。获取Window2000 Server或Turbolinux TLCE或Cisco路由配置专家认证。 就业方向:企业、政府、社区、各类学校等网络系统管理员。 8 多媒体制作 具有多媒体程序设计与多媒体制作策划的能力。基本掌握面向对象程序设计与建模、造型设计、场景设计、分镜头原理等技能。获取多媒体设计师相关的认证。 就业方向:多媒体设计与制作公司、动画美术制作出版公司、广告制作公司。 9 计算机办公应用 精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、FTP、OA、BBS等系统的应用和维护能力。 就业方向:企业、政府、社区、各类学校等系统管理
‘伍’ 学编程的话,选哪个方向好
楼主要想学的比较系统的话先要看你准备学哪方面的。比如c就是基础类的,往后可能会出现微软平台下的编程,linux下编程,苹果方向的编程。甚至有网络方向和软件方向。单片机方向和移动终端设备编程。主要看楼主要向往那个方面发展了。另外,现在还有几种流行的脚本语言。而且目前的程序员要求不仅要精通一种,同时要会或者知道另外几种。。。
‘陆’ Python编程,请问未来选择哪个方向发展比较好
Python是一门高级的编程语言,通俗易懂、容易入门,适合零基础学习;而且Python前景好、岗位多、薪资待遇高,学习后可以选择就业的方向有很多:
一、人工智能
Python作为人工智能的黄金语言,选择人工智能作为就业方向是理所当然的,而且就业前景好,薪资普遍较高,拉勾网上,人工智能工程师的招聘起薪普遍在20K-35K,当然,如果是初级工程师,起薪也已经超过了12500元/月。
二、大数据
我们目前正处于大数据时代,Python这门语言在大数据上比Java更加有效率,大数据虽然难学,但是Python可以更好地和大数据对接,用Python做大数据的薪资也至少是20K以上了,大数据持续火爆,未来做大数据工程师,薪资还将逐渐上涨。
三、网络爬虫工程师
网络爬虫作为数据采集的利器,在大数据时代作为数据的源头,十分有用武之地。利用Python可以更快的提升对数据抓取的精准程度和速度,是数据分析师的福祉,通过网络爬虫,让BOSS再也不用担心你没有数据。做爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。
四、Python web全栈工程师
全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。也叫全端工程师(同时具备前端和后台能力),英文Full Stack
developer。全栈工程师不管在哪个语言中都是人才中的人才,而Python web全栈工程师工资基本上都高出20K,所以如果你能力足够,首选就是Python
web全栈工程师。
五、Python自动化运维
运维工作者对Python的需求很大,小伙伴们快快行动起来吧,学习Python自动化运维也能有个10k-15k的工资,很不错哦
六、Python自动化测试
Python这门语言十分高效,只要是和自动化有关系的,它可以发挥出巨大的优势,目前做自动化测试的大部分的工作者都需要学习Python帮助提高测试效率。用Python测试也可以说是测试人员必备的工具了,Python自动化测试的起薪一般也都是15K左右,所以测试的小伙伴也需要学习Python哦!
‘柒’ 刚毕业程序员 大学学的很杂 哪个方向比较好
我是专门搞培训的。
如果你大学学的是电子信息之类的,那么选择嵌入式
如果你大学学的是计算机网络,那么选择网络维护
如果你大学学的是软件工程,建议从javaWeb方向入手
‘捌’ 想当程序员,大学应该学什么专业
想当程序员可以学这两个专业:
1、软件工程
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
2、计算机科学与技术
计算机科学与技术专业主要培养具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才。
选了这两个专业,会在大学中学习到c语言,c++,java,javaweb等等一系列编程语言,要注意的是,大学里一般一个学期结束一门语言课程的学习,进度会非常快,课程安排量也不会太充足,想要学好,还得靠自己课下努力才行,至少得掌握一门自己拿手的语言。
当程序员需要具备的能力
1、编程语言能力
作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累。
2、编码能力
遵守编码规范,是一个程序员最基本的要求。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
3、面向对象思维能力
多数编程语言都是面向对象的编程语言。而这些面向对象编程语言的共同精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。