精华内容
下载资源
问答
  • 程序员发展方向

    2011-02-25 17:06:00
    转载  提示:本文适合有2年及以上工作经验的...  程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是选择纯钻研技术。程序员职业生涯 发展的问题,这是所有程序员都在关心的问

    转载

         提示:本文适合有2年及以上工作经验的程序员,对于刚入职或者即将职的程序。

         程序工作二三年后,基本上都会考虑自己以后怎么发展。发展的路径不外乎程序员-系统分析员-架构师-技术经理-CTO,程序员-项目组长-项目经理-项目总监-CTO,程序员-产品设计师-产品经理-CTO.哪一条发展的路线更加适合你?

      程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是选择纯钻研技术。程序员职业生涯 发展的问题,这是所有程序员都在关心的问题,未来究竟要怎么走,30岁之后还能不能再做程序员。

      绝大多数程序员最终的职业目标可能都是CTO,做到CEO的人估计会比较少,也有一少部分人自己去创业创业去当老板,也有部分人说我转行去做业务 了,对于当老板的人毕竟是少数,对于转行的人来说,都不在这行做了,自然没什么好说的了。一般来说,程序员的发展基本上都会经历这么几条路径。程序员-系 统分析员-架构师-技术经理-CTO,程序员-项目组长-项目经理-项目总监-CTO,程序员-产品设计师-产品经理-CTO.

      当然这只是一个大致的路径,不是所有程序员都必需要这么经历的,有些人可能跳过其中的一些步骤,也可能有些人会把中间的很多职位都做了。而最终做到 CTO的程序员,也是非常少的一部分,原因很简单,这个世界上不许要那么多的CTO和CXO.

      也就是说,许多的程序员最终可能是做技术经理、项目经理或者项目总监之类的,那么到底我们职业生涯要选择哪一种呢?我觉得这个问题没有一个统一的答 案,因为每个人的性格不一样,际遇也不一样,就像你从小希望当贪官,可是命运却偏偏让你做了一个程序员。所以应该根据你的兴趣、性格与际遇选择一条道路, 比如说你正好有机会带一个项目,而你又不是很讨厌项目经理这个位置,那么你就可以选择向项目经理方向发展。

      实际上很多时候,国内并没有明确的技术经理、项目经理、产品经理之分,在许多的公司里,他们经常是由一个人承担。在外包公司里,通常会有项目经理和 系统分析员(也可能是技术经理)。在一些非IT公司里,可能会有部门经理,而做自己产品的公司可能会分得比较详细一些。我大致说一下这三个职位的区别,让 正在徘徊的程序员有一个大致的了解。

      项目经理是项目的直接负责人,这个角色相当于一个中间接口,不管是团队成员还是需求方(客户),或者是上级领导,有事都直接找他,所以这个职位着重 于管理与沟通。一般来说,项目经理的工作重点在同客户沟通需求、项目进度的把控、团队的沟通方面,有些公司也会需要项目经理承担团队建设的工作,不过貌似 很多国内公司都忽略了团队建设这个工作了。对于项目经理来说,重点会要求沟通能力、协调能力、危机把控能力、执行力、团队管理能力,着重于沟通、管理与计 划。当然也有些公司还要求项目经历要参与招标谈判,这就要求项目经理有一定的商务谈判能力。

      技术经理有时候也可能叫系统分析员,一些小公司可能会整个公司或者部门有一个技术经理。技术经理承担的角色主要是系统分析、架构搭建、系统构建、代 码走查等工作,如果说项目经理是总统,那么技术经理就是总理。当然不是所有公司都是这样的,有些公司项目经理是不管技术团队的,只做需求、进度和同客户沟 通,那么这个时候的项目经理就好像工厂里的跟单人员了,这种情况在外包公司比较多。对于技术经理来说,着重于技术方面,你需要知道某种功能用哪些技术合 适,需要知道某项功能需要多长的开发时间等。同时,技术经理也应该承担提高团队整体技术水平的工作。

      产品经理这个职位一般在有自己产品(不管是软件还是网站产品)的公司比较常见,产品经理主要会负责产品的设计、产品的改良等工作。需要注意的是,产 品设计与设计师是两个不一样的工作,产品设计主要会从用户体验、业务需要等层面去设计产品,而设计师更多是从用户的视觉上去做。产品经理应该是最懂业务的 人,比如说你在设计一个微博的产品,就要求你对微博这个东西非常熟悉,从用户习惯、用户体验、公司的发展战略上去设计这个产品,还要对比同类产品会有什么 优势等等。

      不管是项目经理还是技术经理与产品经理,都要求要熟悉业务,业务是需求的来源,没有不谈业务的技术,所以不管你从哪个方向发展,都要求对业务熟悉。 产品经理要求对业务最熟悉,项目经理次之,技术经理排最后。对于程序员来说,刚开始工作的前几年可以埋头扎到技术里面,一般这个时间在2-3年的时间,然 后就应该多关注业务了。这个业务不一定是指某个具体的业务,因为具体的业务的范围太少,而且也需要机遇。

      我见过许多的程序员,他们是做Web开发的,但对互联网很不熟悉,对于互联网流行的趋势基本上不闻不问。不知道现在大家都在使用微博,也不知道SNS,也 可能从不使用网银。我觉得这样很不好,程序员应该多多去关注互联网的发展,多多去玩一些新的网站。

    展开全文
  • 2016版的java程序员发展方向建议

    千次阅读 2016-12-07 10:09:56
    java程序员发展方向建议

    2016版的java程序员发展方向建议


    说实话,对于开发应用层面的java程序员来说,我觉得最近几年真的没有什么新的java技术亮点出现。spring还是spring,mybatis还是mybatis,hibernate、struts2也是一样,java的新技术框架主要是集中在了分布式和大数据处理上。于是对一个刚入门的java新人来说,看三五年前的java学习路线建议也完全不会落伍。



    做为目前最全面实用的后端应用开发语言,java值得每个新人用两年时间踏实地把自己的代码质量提高上去。简单来说就是,代码写给人看,比写给机器看更重要,要像写作一样组织好代码的表达,尤其是在业务逻辑复杂的情况下。之后,才是学新技术,寻找新的发展方向。


    而工作数年,已经crud滚瓜烂熟,一般业务需求也没什么压力的java码农,现在有了不同的进取选择,我大致总结一下:


    1、技术型架构师
    这是传统的架构师,你得是一个技术狂人,愿意去钻研java的深层知识,对各类系统运行时的高大上的中间件和框架有深入研究,明白其原理,能实际操作运用。这是一条更需要忘我投入的路线,能让你直达一线大企的架构师岗位,就是那种年薪三五十万,加班加到顾不上家的工作。
    这是传统意义上的技术牛人,适合去大型互联网企业,银行等一些垄断行业大型国企,或者在某个专业领域有高要求的公司。这样的人除了最顶尖的若干,在企业里很少会有高存在感,更多是做为一个工资高,露面少,默默支撑企业的神秘人物存在,他所做的东西外人看不懂。
    除了那些开发中要用到的分布式技术、缓存、队列、服务治理,很大程度上技术型架构师还要掌握许多运维和系统层面的技术,你要把各种各样的软件在服务器上布署调优,确保稳定,还要考虑到大规模集群的自动化管理,持续集成,容灾,或许还要深入到虚拟化技术,docker等。技术要连贯,从开发到测试到上线后的高可用,你都要负责。
    而最后做为一个架构师,你还不能不考虑业务,正所谓脱离业务谈架构都是耍流记氓。



    2、业务型架构师
    这个岗位向产品经理方向在靠近,要去倾听使用者的想法,去合理地给出技术解决方案,做出更具可用性,体验更好的应用。尤其要关注在需求转换成代码实现过程中的合理性,业务领域建模,代码分层和解耦是重中之重,还有数据库的表设计也是重点,你写不出好的分布式框架,但不能不懂分布式数据库下的表设计原则。
    之后就是考虑技术在团队中的学习成本,推广成效,分工协作。
    虽然带着架构师的名头,但是相对技术深度的要求相较于传统意义上的JAVA架构师已经大大降低,因为这几年各种公有云技术已经异军突起,例如阿里云,每个月花几千块钱所能提供的便捷、性能、安全、扩展能力,远远超过了一个企业花个几十上百万的软硬件和运维人力成本去搭建的高可用服务器,更何况多数企业根本不可能在运维上花那么多钱,很多企业只是java程序员兼着去管服务器,然后几个网管配置好网络和系统罢了。公有云还可以为你提供集群容器,分布式数据库,缓存,MQ,搜索,日志等等开发中会用到的中间件和各类服务,大大降低了技术使用门槛,几乎封死了中小企业自建服务器的念头。
    所以我建议,如果在运维上没有数百万级的投入,超高的千万级用户量,或者需求甲方强制要求,业务型架构师可以将对底层技术研究的精力抽到产品方向,对于底层技术,只要掌握其使用原则和理解衡量的能力即可,这样的你能在大多数中小企业中爆发更大的价值,跟对了人就能创业有成。


    3、高大上技术方向
    这是一个比架构师又更钻入到专业领域的方向,比如大数据处理、人工智能等。技术型架构师大致上还是为了常规业务服务的,多数需求来源于直接响应终端用户的操作,但这个方向则是要在用户所不能觉察的地方,去做技术的主动产出。比如那些垃圾网站上无所不见的推荐类广告,背后可隐藏着大量的行为分析和数据处理算法。
    朝这个方向发展的人就业方向与技术型架构师是相似的,只是会更专注专长而不是全能。如果你有名校高学历在这个领域会更有帮助,有工作经验的人往往会胜在业务、管理、运营等非技术层面技能,而这个离常规业务更远的方向,自然给了闭门研究的人缩小工作经验差距的机会。技术宅、理工男不妨考虑这个方向。


    4、全栈工程师
    严格来说,纯粹的java程序员是成不了全栈工程师的,不过,写java web的人,一般都会点javascript,这就成了一个java程序员迈向全践的突破口。
    虽然全栈工程师有着许多不同的解读,但我们可以把它简单理解为能开发在各种客户端上运行的应用,前后端开发包办的程序员。
    javascript这两年大出风头啊,nodejs,react,angularjs等,以及许多其它框架和库,就跟java领域mvc大热,框架百花齐放的年代一般,正处于百家争鸣的时代。现在js可以用于开发android,ios原生应用,html5 web应用,node.js服务端应用,还有在游戏引擎中可以用它来开发跨平台的游戏。
    要不是它的语法对正统的面向对象语言程序员来说颇显另类,恐怕会更加势不可挡,而如今es6规范的正式登场,也在让js的语法更像java,再加上一些如TypeScript这样的扩展技术,类、继承、接口、注解等都已经能在js上实现,前景确是一片光明。相对来说,服务端开发中js的优势的确不多,算是它的短板之一,而前端开发则是js强势,身为java程序员,正好弥补了这个短板,如果精通了js,更算得上是全栈程序员了。
    全栈程序员是什么公司都能去的,小公司里你是万金油甚至技术领袖,大公司里你依托突出的技能主职,再借助你的全能可以为你的晋升占到优势。
    全栈工程师相对业务型架构师要更偏向前端,对于应用实现更接地气。


    5 安卓程序员
    说实话,我认为这个路线不如以js切入前端,局限性毕竟太高,又有html5的虎视眈眈,长远来看受限于安卓平台,转型安卓应该算是一种中短期的风险投资,能保你几年,也能让当前薪水更上一个台阶,但终究现在转职加入已经失去先机了,如房价翻了几翻才咬牙加入炒房大军,风险未知。


    就我个人来说,我的路线是从业务型架构师正转向全栈工程师,我喜欢讲求效率和性价比,这两个方向对我来说相当贴合二八原则,用20%的深度广泛涉猎,能达成众多80%的成就。说难听点,应该叫对技术的懒惰和喜新厌旧吧。


    技术大牛这类称呼我认为技术型架构师和高大上方向的程序员更配得上。我觉得现在三十五岁才是现在技术市场上真正的分水岭,不是三十。如果要迈过35的槛,以上几个方向是java程序员的基本出路(转职做纯管理、产品经理、移动开发等不算在内),当然转型要尽早,javaee基础打牢,然后尽可能在工作5年后进入其中一个方向的岗位,是当前技术人员长远可期的好选择。
    展开全文
  • C++程序员发展方向

    万次阅读 多人点赞 2016-04-25 15:55:51
    笔者就近几年的互联网发展发展,通过在各大就业招聘网站上检索到C++职位的相关要求,归纳总结出几大发展方向。给正在成长的C++程序员一条指引,当然也只是个人整理,仅供参考

    一、C++服务器程序员(流媒体后台,游戏后台,高性能服务器后台) 

    1.      精通C++STLLinux等,熟悉设计模式;

    2.      熟练掌握一门脚本语言(Lua, Python, Perl)

    3.      对多线程环境编程有一定的理解,能独立完成服务器端模块的开发、维护和优化;

    4.      熟练掌握MySQL数据库的开发维护、性能优化;

    1.精通C++编程,3年以上服务器开发经验;

    2.有手机游戏或者PC网游开发经验,有过完整手游开发经验者优先;

    3.精通Socket协议,了解分布式负载和集群类型的服务器框架结构;

    4.精通数据库设计;

    5.熟悉PythonLua语言。

    1、一年以上服务器开发经验,熟悉C++语言;

    2、熟悉TCP/IP协议,熟悉网络编程;

    3、熟悉标准SQL语言,熟悉Mysql更佳;

    4、熟悉linux,熟练掌握linux基本操作命令;

    1. 2年以上C++游戏服务器开发方面的工作经验;

    2. TCP协议相关的开发有全面的认知;

    3. 对多线程的开发相关的问题有全面的认知;

    4. 有完整的C++手游服务器开发经验的优先考虑;

    5. Linux平台相关开发经验的优先考虑;

     

    3年以上网络游戏后台开发经验;

    精通Linux操作系统,具备扎实的Linux环境编程能力;

    精通C++编程语言并具备丰富的面向对象编程经验;

    精通网络编程并有高并发系统的开发经验;

    熟悉MYSQL或其他大型数据库,能够快速根据需求完成高性能数据库设计;

    1、本科以上学历,计算机、通信等相关专业;

    23年以上Unix/LinuxC/C++开发经验,熟悉常用的数据结构、算法,熟练使用STL等标准库;

    3、熟悉Unix/Linux下常用架构设计方法,熟悉流媒体网络协议和格式,包括rtmprtspsip协议,以及mp4ts流媒体格式封装;

    4熟悉Unix/Linux操作系统原理、常用工具,熟悉Mysql/Oracle等数据库管理、开发,SQL调优;

    5、全面的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全)

    6、有大容量通信系统和大型互联网后台开发经验者优先。

    1计算机相关专业,精通C++语言;熟悉常用数据结构和算法;

    2)熟悉Socket、精通TCP/IP协议及编程;

    3)具备编写Shell Makefile能力,熟练使用Linux基本命令;

    4)熟悉Linux操作系统及其环境下的网络通信编程(进程、线程、内存管理、消息机制等);

    5)熟悉音视频封装及编解码技术,了解主流的多媒体标准,例如TSMP4封装、H.264H.265FLVMPEG2MP3ACC编码等;

    6)熟悉HTTP/RTP/RTSP/RTMP/HLS等流媒体传输协议,音视频解码模块与流媒体协议的对接处理;

    7)具备广电行业项目管理经验的,有cdn开发经验者优先;

     

    1、本科及以上学学历,熟悉C/C++语言,3年以上流媒体系统开发经验

    2、熟悉常见多媒体数据解码格式,熟悉H264RTMP、视频切片、音频同步等方面技术;

    3、熟悉TCP/IP协议,熟悉多媒体相关协议(HTTPRTSPRTMPRTP/RTCPP2PSIP等);

    4、深刻理解互联网视频播放原理,对ffmpeg等框架有实际的使用经验;

    5、有视频直播、点播、视频会议、监控安防等方面经验优先

    6、熟悉Nginx/Squid模块开发优先考虑,有FMS等流媒体服务器搭建经验、P2P系统研发经验、知名优秀的视频产品服务端设计和研发经验优先考虑

    二、应用开发工程师windows /linuxc++ (QT和MFC,偏前端)

    13年以上Visual C++开发经验

    2、熟练掌握CC++ATLCOM等编程技术。

    3、熟练掌握Windows系统编程,熟悉窗口、网络和多线程技术。

    两年以上的嵌入式或windows平台QT应用软件开发经验.

    熟悉QT跨平台框架,QT图形库和相应的开发工具。至少参加过一个完整的QT项目。

    具备数据结构、面向对象、多线程和内存管理的基础和经验

    掌握window/wince开发环境

    熟悉通用的代码管理工具,例如SVN, GIT

    12年以上C++开发经验;

    2、在Windows开发平台下的客户端开发有丰富的经验,熟知windows操作系统原理;

    3、熟悉windows api调用,熟悉MFC类,STL标准库,boost库等等;

    4、熟悉windows消息体系,熟悉常用的数据结构与算法,独立研究的能力;

    5、熟练使用MFC异常类对windows结构化进行捕捉,能快速定位发布版本程序的异常,帮助组内成员快速定位崩溃,内存泄露,GDI资源泄露,能使用远程调试定位问题;

    6、尤其擅长利用各种调试,日志记录,分析工具对windows下客户端开发的代码进行调试,BUG查找,问题原因查找,BUG修复;

    7、有以下调试工具使用经验的:spx++bugtrapcrashreportlog4plusgflagsbondcheck,有逆向工程ollydbg等调试的优先。

    本科或以上学历,计算机、通讯相关专业优先;

    1年以上 C++ / Qt开发经验;

    LinuxWindows下的跨平台Qt开发经验;

    socket 编程经验,能编写TCPUDP或串口通信程序;

    工作积极主动,具备团队合作精神及良好沟通能力;

    有版本控制工具使用经验者优先。

    1、本科或以上学历,计算机、通讯相关专业优先;

    23年以上 C++实际项目经验;

    3、熟悉 C++ STL,对 C++ 11/14标准有一定了解;

    4、熟练掌握 socket编程,能编写复杂的 TCPUDP或串口通信程序;

    5、掌握 Windows平台下的图形界面程序开发,熟悉 MFCGDI/GDI+;

    6、熟练编写多线程程序;

    7、熟练使用 Git

    8、熟练使用 MySQL Connector

    9、工作积极主动,具备团队合作精神及良好沟通能力;

    10、有 Qt实际项目经验者优先;有 DirectX开发经验者优先;有流媒体相关开发经验者优先。

    2.扎实的计算机专业功底,较好掌握基本的数据结构和算法,具有良好的文档编写能力;

    3.熟练掌握Windows/Linux/Mac平台下的C/C++语言开发和调试技巧,有跨平台开发经验者优先;

    4.精通MFCQT开发,熟悉GDI/GDI+/OpenGL/DirectX等技术并有相关项目经验者优先;

    三、C++游戏开发(游戏方向,熟悉游戏引擎cocos2dx等)

    1、熟悉Win32API,熟悉WIN32/VS开发平台,熟悉C++开发库(STL/MFC/Qt),熟悉常用数据结构和算法;

    2、精通C++编程,精通网络编程,熟悉游戏服务器端架构和客户端代码、熟悉数据库开发;

    3、了解网狐平台并有成功开发经验者优先;

    4、有COCOS2DX开发经验者优先;

    12年以上网络游戏服务器开发经验,完整经历过大型休闲网络游戏的开发过程者尤佳;

    23年以上实际项目中C++开发经验,深刻理解面向对象设计和开发思想;

    3、精通Linux操作系统下的C/C++软件开发;熟悉基础的数据结构和主流数据算法,了解棋牌算法等优先。

    4、精通分布式系统设计原理,熟悉TCP/IP网络模型,熟悉网络异步通讯;

    5、具有C/S结构软件系统的设计及开发经验;

    6、熟悉数据库设计与SQL语言,精通MySql数据库尤佳;

    7、熟悉RedisMQ等开源技术尤佳;

    8、熟悉protocolbufferjson等协议;

    9、熟悉主流软件开发流程,Scrum等敏捷开发团队管理经验者尤佳;有很强的沟通协调能力。

    四、C++逆向开发工程师(网络安全,黑客攻防,破解等)

    1、学历本科以上;

    2、熟练掌握C/C++,有两年以上的相关开发经验;

    3、精通汇编语言,有较强的程序反汇编技术和逆向分析能力;

    4、熟悉PE文件格式,熟练掌握SoftIceIDAProOllyDebugWinDBG等调试、逆向工具。

     

    1.两年以上相关的项目开发经验,热爱软件开发;

    2.熟悉X86汇编、C/C++语言;熟悉PE文件格式;

    3.熟练使用ODWinDbgIDA Pro等调试、逆向工具;

    4.熟悉病毒、木马、恶意软件的工作原理;

    5.了解常用加解密算法;

    13年以上的嵌入式软件开发经验;

    2、熟练掌握汇编及C语言编程;

    3、熟悉ARMPPCCPU工作原理;至少熟悉一种系列单片机编程。

    4、熟悉LinuxVxWorksThreadx等操作系统原理;

    5、具有逆向分析算法或通信协议数据经验者优先考虑。

    6、具有打印机主板开发经验者优先

     

    1、本科及以上学历,计算机、电子或通信等相关专业,一年以上相关工作经验;

    2、熟悉windowsAndroid平台下反汇编,熟悉X86arm汇编指令;

    3、熟练掌握软件逆向静态分析、动态调试、代码跟踪等技术;

    4、熟练使用OllyDBGIDAProGDB等逆向工具;

    5、熟悉反跟踪调试技术、脱壳技术;

    6、了解各种通用加解密算法;

    7、有andriodIOS反汇编经验优先。

    五、智能硬件 和可穿戴设备(智能硬件VR/C++,)

    1、计算机科学、数学、电子工程或相关专业学士文凭;

    25年以上软件开发经验,2年以上虚拟现实开发项目经验,熟悉Unity3D引擎架构设计者优先;

    3、熟悉网络编程和多线程编程;

    4熟练掌握C/C++,具有3年以上的C/C++软件开发工作经验;

    53D图形引擎开发相关经验;

    6、对物理引擎有深入研究,并在游戏等实际应用中有过相关实践;

    7、对图形学知识有深入了解,熟练使用DirectXOpenGLMetal,并有相关作品。

    8、具有一定的英语水平,能够阅读外国学术文档。

    9Oculus RiftSamsung Gear VR,或HTC Vive开发经验者优先。

     

    六、嵌入式软件工程师(C/C++,Linux平台,软硬兼施)

     

    熟悉交叉编译的原理,熟练构造/使用交叉编译工具链

    熟悉Linux x86arm)的内核裁减,配置,编译和部署

    熟悉Linux根文件系统的组成,并能够配置,编译,使用buzybox等工具按照实际要求裁减,构造根文件系统

    熟练运用C/C++语言进行Linux下应用程序编程

    熟悉Linux下的多进程/多线程编程,理解进程/线程间同步/通信的概念和方法

    了解Linux下内核模块的编程的原理和方法,能够修改/添加内核中的驱动程序

    了解Uboot / GRUB / LILObootloader的配置,编译和部署

    了解Socket编程

    4附加能力(非必需要求):

    Linux内核实时性评估和测试经验

    了解汽车电子相关通讯协议CAN/LIN/UDS/CCP/XCP

    了解EtherCAT协议,有相关开发/测试经验

     

    2、三年以上嵌入式Linux驱动开发经验,有独立开发经验和能力;

    3、熟练操作Linux系统,熟悉C/C++语言,熟悉相关的编译和调试技术更佳;

    4、精通linux平台相关驱动开发技术并有相关经验;

    5、精通bootloader移植、内核剪裁等技术。

     

     

    七、音视频解码(协议优化)

    1、熟悉音视频编解码处理算法,有相关领域一年以上工作经验;

    2、熟悉ffmpeg体系结构,能够移植和优化该系统到移动客户端;

    3、熟悉 RTMPHLS等流媒体直播协议(或者相关协议);熟悉vlc或者ffplaymplayer架构者优先;

    4、熟悉TCP/IP Socket网络编程;

    5、熟悉C/C++开发语言;

    6、熟悉 WINDOWS PC客户端软件开发

    1.数学、声音处理、计算机、信号处理、通信工程相关专业硕士两年以上相关领域工作经验。

    2.有较好的数学基础,较强的音频信号处理或算法开发能力

    3.精通C语言编程或matlab语言,能编程实现音频处理算法。

    4.较强的论文检索、英文专业文献阅读能力

    5.较强的人际沟通及协作能力。

     

    具备以下开发经验之一者优先考虑

    1.理解音频处理技术,进行过音频压缩、回声消除、语音增强识别等算法的研究和实现

    2.熟悉通用音频格式文件(mp3,wma,aac,ogg,ape,flacac3,dolby DTS等)

    3.进行过上述某类音频处理算法在DSPx86FPGAARM等硬件平台上的开发、移植和优化。

    2、对VOIP有深入研究并有相关经验,熟悉VOIP服务器开发(有asterisk源码开发/优化经验),有androidios底层开发经验更佳;

    3、具备良好的数学功底,精通C语言,熟悉ARM的体系结构及相关的汇编;

    4、熟悉音视频编码(如WebRTCspeexOpusH264MPEG等)有音频/语音codec算法优化及开发经验,对语言增强算法有深刻认识和独到见解。

     

    a)扎实的计算机、网络基础知识,有网络模拟、多媒体传输开发经验

    b)丰富的视频处理或者图像处理经验

    c)丰富的深度学习、人脸识别方面经验

     

    1、计算机数字信号处理相关专业毕业

    2、有4年以上的视频频相关算法开发经验,熟悉视频、图像特效及优化技术;

    3、精通C/C++,熟悉基本的数字图像与视频处理算法原理,熟悉OpenCV/OpenGL

    4、熟悉基于GPU的算法设计与优化和并行优化经验者优先;

    5、熟悉H.264等视频编解码标准和FFMPEG者优先;

    6、熟悉rtmp等流媒体传输协议者优先。

     

    1. 通信、自动化、图像处理、模式识别、视频处理、信号与信息处理及相关专业;

    2.较强的数学背景

    3. 对智能视频处理有一定了解,熟悉人脸识别、目标检测和跟踪、行为分析等相关技术,有相关项目实战经验者优先考虑;

    4. 熟练掌握matlabC/C++,有良好的编程习惯;具备视频处理、图像处理、模式识别,DSP开发等相关知识,且编程实现能力快。

    5. 熟练阅读相关英文论文和专利,并能快速编程实现;

    6. 沟通交流能力强,具有良好的团队合作精神,工作积极主动。

    7. 有以下经验之一者优先:有手机、相机等设备的画质调节经验;有手机、照相机、平板电视、投影仪等数码显示设备中图像处理模块的研发经验;有图像信号处理器(ISP)的研发经验。

     

    1 、信号处理 /模式识别 / 图像处理专业本科/硕士以上学历;

    2 有不少于 1年的视频智能分析算法设计开发工作经验;

    3 、能熟练应用 c/c++程序开发;

    4 能用机器学习、统计学习或其他主流智能分析技术解决特定目标识别或行为分析问题;

    5 熟练掌握 OpenCV中图像 / 视频算法;

    6 能熟练阅读英文算法及其他技术文档;

    八、图像处理(机器视觉,医学图像,遥感图像,人像(美颜)等)

    1.图像处理相关算法的设计(如图像跟踪定位)开发与调试。

    2.信息电子或计算机相关专业,本科以上学历。

    3.具有良好的算法与数据结构理论基础。

    4.具有良好的模式识别/机器学习理论基础。

    5.熟悉c/c等相关编程语言。

     

    1. 本科或硕士以上学历,计算机、电子工程、自动化等相关专业

    2. 具备图像、视觉和模式识别方面良好的理论基础,熟练掌握图像处理的一些基本操作(直方图,积分图像,交点检测,特征点提取,缩放,二值化等);

    3. 熟练使用C/C++OpenCVMatlab,并有一定的开发测试经验;

     

    1.熟悉图像处理基本(边缘检测,区域提取,低通滤波,特征提取)

    2.熟悉机器学习算法(例如 LR, SVM, ANN)和深度学习算法CNN等;

    3.熟悉opencv,具有运动标检测、特征提取、物体识别相关开发经验者优先;

    4.OCR字检测等相关研究或项经验;

    5.熟悉linux开发环境,熟悉C/C++/Python等任

    6.有良好的沟通能,责任强,善于协助与分享;

    7.可熟练阅读在线英技术站、技术标准者优先。

     

    1、计算机科学,机器视觉,机器学习等相关专业或方向硕士及其以上学历;

    2、机器视觉,图像处理方面两年以上工作经验;

    3、精通C\C++,熟悉linux下的编程,熟悉OpenCV良好的代码习惯;

    4、在机器学习,贝叶斯滤波,机器视觉,图像处理领域有深厚的功底;

    5、熟悉ROS SLAM TLD等相关系统和技术的优先考虑。




    笔者就近几年的互联网发展发展,通过在各大就业招聘网站上检索到C++职位的相关要求,归纳总结出几大发展方向。给正在成长的C++程序员一条指引,当然也只是个人整理,仅供参考

    展开全文
  • 》之类的文章,发现还是有很多人对于“程序员发展方向”感到迷茫。  据我目前了解的情况来看,大致可以分为四类:  1.技术+技术(深入阶段)   这算是一条纯技术路线,具体又可以分3个方向:   ...
    最近看了很多关于《程序员职业规划》,《再谈国内程序员做不到三十五岁!》之类的文章,发现还是有很多人对于“程序员发展方向”感到迷茫。 
    

    据我目前了解的情况来看,大致可以分为四类: 

    1.技术+技术(深入阶段) 

      这算是一条纯技术路线,具体又可以分3个方向: 

      技术(2年以上编程经验)+技术(软件测试,或系统分析师,或系统架构师) 

      有软件开发的工作经验,再加软件测试,比刚开始就进入软件测试行业的人要更具竞争优势。软件测试工作经验越多越好,可以干到退休,不用担心年龄问题。 

    如果选择“系统分析师,系统架构师”,则首先要打好扎实的“理论基础”(可以通过考证书,比如参加软考),以保证自己“后劲力十足”,这样等有了4,5年 的工作经验后,才有可能能冲上这个高端领域。平时工作中要不断的锻炼自己的“发散思维”,培养善于发现业务需求的“眼光”。 



    2.技术+管理 :比如 项目经理。 

      像雷军说的那样:“程序员象木工一样,熟能生巧。程序员必须写足够代码量(8万行以上)的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。”项目经 理大多是从“优秀”的程序员里挑选出来,想走这条路,平时就要疯狂的编码,迅速累积丰富的编程经验,然后再补充一些管理方面的知识。(本人打算走这条路, 呵呵) 



    3.技术+销售:比如 技术销售工程师,技术支持工程师。 

    这类工作要有一定的技术背景(入门级也可以),具备较好的语言表达,沟通能力。工作比较轻松,月薪待遇主要看个人销售业绩等,个人收入差别可能比较大。 



    4.当培训老师 

    如果你“乐于分享”工作经验,传授知识,或者觉得自己年龄比较大,精力不够充沛,且往上升又比较困难的话,可以选择去培训机构当老师,就目前而言,当老师工作轻松,待遇也不错。 

    5.创业 

    程序员创业除了需要有商业头脑外,更需要具有较高的“胆商”(人有5商,包括智商情商),即有没有胆量去做别人不敢做的事情(抓住商机)。
    展开全文
  • c/c++程序员发展方向

    千次阅读 2018-11-02 10:10:39
    一、C++服务器程序员(流媒体后台,游戏后台,高性能服务器后台)  1. 精通C++,STL,Linux等,熟悉设计模式; 2. 熟练掌握一门脚本语言(Lua, Python, Perl等); 3. 对多线程环境编程有一定的理解,能独立...
  • 程序工作二三年后,基本上都会考虑自己以后怎么发展。... 程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是选择纯钻研技术。程序员职业生涯发展的问题,这是所有程序员都在...
  • 程序员发展方向 职业发展方向程序员发展方向 职业发展方向
  • 程序员发展方向

    2011-02-19 12:03:00
    程序员发展方向
  • 程序员职业发展方向

    2018-08-30 14:27:30
    随着年龄的增长,面对日新月异的代码,感到力不从心,更年轻的程序员层出不穷,这些都是促使程序员向另一个方向进行转型,那么,程序员有哪些职业发展方向呢? 1. 程序员 有些程序员爱好编程,很安心做一名程序员...
  • 程序员发展

    2015-06-10 11:11:42
    下面摘一些程序员发展方向的相关文章给自已也给同样迷茫的战友们,希望能给你一些帮助: 程序员有哪些发展方向 提示:本文适合有2年及以上工作经验的程序员,对于刚入职或者即将职的程序 程序员职业生涯...
  • python从2005年开始使用人数一直攀升,目前Python已超越Java夺下冠军,2020年Python仍然不会冷门!近日,PYPL发布了5月编程语言指数榜,这个指数原始数据基于Google trends,根据编程语言在Google上的搜索频率(次数)...
  • 程序员怎么选择发展方向程序员怎么选择发展方向
  • 了解程序员的未来发展方向 了解程序员的未来发展方向了解程序员的未来发展方向了解程序员的未来发展方向了解程序员的未来发展方向
  • 程序员发展方向.txt

    2011-10-03 01:21:25
    程序员发展方向,可以参考参考,老少皆宜,新手必看
  • 转载:程序员发展方向

    千次阅读 2017-10-11 11:18:03
    前言:程序员工作两三年后,基本上都会考虑自己的未来发展方向。发展的路径不外乎:程序员-系统分析员-架构师-技术经理-CTO,程序员-项目组长-项目经理-项目总监-CTO,程序员-产品设计师-产品经理-CTO。哪一条发展...
  • 程序员5大发展方向

    千次阅读 2008-12-25 20:59:00
    》之类的文章,发现还是有很多人对于“程序员发展方向”感到迷茫。 据我目前了解的情况来看,大致可以分为四类: 1.技术+技术(深入阶段) 这算是一条纯技术路线,具体又可以分3个方向: 技术(2年以上编程经验)+...
  • 程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是 选择纯钻研技术
  • 程序员工作两三年后,基本上都会考虑自己的未来发展方向。发展的路径不外乎:程序员-系统分析员-架构师-技术经理-CTO,程序员-项目组长-项目经理-项目总监-CTO,程序员-产品设计师-产品经理-CTO。哪一条发展路线更...
  • 程序员发展方向和薪水

    千次阅读 2016-05-10 07:43:10
    如果你是一名初学者,对编程非常感兴趣,想成为一名合格的程序员,那么这篇文章就是为你写的。...程序员发展方向 计算机涉及的知识非常广泛,不可能在短时间内全部学完,即使公司的CTO也不可能样样精通,初学
  • Java程序员发展方向

    2011-10-12 10:15:56
    Java程序员发展方向 博客分类: Java JavaOracleMySQLMina框架 一. 架构师   1、主流框架要掌握如(ssh),没事可以了解下jsf,shale,seam,richface,jpa 框架。  2、对于各种缓存的分析利弊,能

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,174
精华内容 40,469
关键字:

程序员发展方向