架构师成长之路二-----技能需求


可以看到网上收的部分架构师的能力要求,多种多样,可根据自己感兴趣的和自己目前从事的方向进行学习。



1.设计和开发汽车电子应用软件;
2.与相关同事沟通协作,理解并实现业务功能需求;
3.编写、维护开发文档,设计测试用例;

岗位要求:

1.本科及以上学历,计算机、电子信息等相关专业;
2.熟练使用C/C++语言,具备良好的编程风格;
3.熟悉Python、Bash等常用脚本语言,了解Lua;
4.掌握软件工程相关的基本概念,熟悉常见开发流程;
5.熟悉Linux应用开发,具备网络套接字、多线程、进程间通信等编程经验;
6.具备一定的软件架构能力,熟悉若干种常用设计模式;
7.有FreeRTOS、uC/OS-II等实时操作系统开发经验者优先;
8.具备较强的英文技术文档阅读能力,良好的中文文档写作能力。


岗位职责:1. 负责公司人工智能产品线软件架构设计与开发。

2. 打通从芯片到驱动/OS/框架/应用/云端的全流程。
3. 相关算法的软件实现与部署
4. 底层信号处理框架/物联网框架/应用框架的开发
岗位要求:
1.计算机/电子等相关专业本科以上学历
2.熟练C/C++,Python,Linux shell编程,网络编程,服务器架设等
3.熟悉操作系统原理,软件设计模式,软件工程,编程思想。
4.熟悉信号处理/机器学习/深度学习相关算法原理

5.优秀的自学能力,自我驱动能力,团队合作意识


1. 计算机或相关专业本科学历,5年以上J2EE应用开发经验,2年以上产品设计、架构经验;
2. 精通J2EE系统架构,深刻理解J2EE架构的优缺点,具有大型基于J2EE体系结构的项目规划、系统架构设计、开发经验,精通J2EE设计模式;
3. 深刻理解软件系统架构,精通面向对象分析设计方法,逻辑能力佳,具有丰富的OOA、OOD、OOP以及UML建模经验;
4. 熟悉Oracle/ Mysql /SQLServer等主流数据库管理系统、相关技术及工具;
5. 精通WebSphere/WebLogic//Tomcat等主流J2EE应用服务器,熟悉Hibernate,mybatis,Spring框架设计者优先;
6. 具备很好的学习能力,及良好的职业操守和个人道德,服从上级的工作安排,高执行力,高理解力
7. 能适应短期出差。


任职要求:
1、首先你必须是一名Geek,或正致力成为一名Geek;
2、你必须具备5年以上编程经验,精通gcc/g++、make、gdb;
3、你必须精通至少一种脚本语言shell/perl/python;
4、你必须熟悉编译原理,精通数据结构和常用的算法,如果你有自己思考和实现会相当靠谱;
5、Oracle/Mysql/MS SQL SERVER/DB2......关系型数据库熟练一种以上,对SQL语言的性能优化有一定的了解;
6、你必须有带领团队的经验,并且对于团队有一定的想法
6、如果你有机器学习/深度学习/神经科学/心理学等相关方向的经验和兴趣,对未来的工作会非常有帮助。


岗位要求:
1、五年的互联网系统设计及开发经验,有互联网架构者优先;
2、精通java,精通jvm(通过jvm命令分析各种线上问题),熟悉各种java中间件(metaQ、solr、netty、java序列化),且深知各个中间的原理;
3、能用领域模型的思想设计系统,且能合理的设计分库;
4、熟悉noSQL,redis集群、mongoDB集群,且能进行java层的封装;
5、熟悉linux操作系统和Shell脚本语言;
6、有分布式存储开发的经验优先;
7、高可用的数据库建模思想。                   

职位描述:
1、3年以上.net开发经验,有2年以上架构设计经验。对系统高并发,高存储,高稳定性、安全性有完整的解决方案;
2、对.Net技术有深入研究,精通C#、asp.net、MVC、Web API/WCF,了解Web Service、Remoting、Restful、WinForm、Dapper、spring、EF或其他Orm、Redis、MQ、领域模型、UML等技术及设计架构,懂java更好;
3、熟悉Web前端开发技术(AJax、HTML5、JavaScript、CSS、jquery等);
4、熟悉软件架构、设计模式,有较丰富的系统分析与设计经验, 熟悉网站性能和安全优化、熟悉分布式、多线程等高性能架构相关技术;
5、精通UML建模,熟练使用相关建模工具;熟练使用各种开发方法进行系统开发,并具有规范的开发、设计文档写作能力;
6、同时具备.net、java两者经验者优先,有大型网站开发经验者者优先。



嵌入式开发注重底层技术,少逻辑。而互联网开发注重业务逻辑,围绕着网络以及用户体验,而且上层技术更新快,在互联网公司不断能接触到新的技术。想想我当初转型还是挺有机遇的。
现在在一家互联网创业公司,公司招人比较看中工作经历,一般喜欢互联网名企的牛人,其次是创业互联网公司的技术骨干,具体能不能转要看你的机遇和努力。嵌入式开发,算法接触的并不多,网络多并发这一块我更是没有任何经验。

脚本语言的比较

脚本语言的比较,可能比较凌乱,但我想侧重以下几个方面:学习曲线,语言本身的特色、跨平台的能力、国际化的能力,以及它在应用领域的份额。

Unix/Linux Shell

        首选还是要提一提Unix/Linux Shell(包括awk、sed),它也是脚本语言,并且可能是我们日常使用最多的。我个人感觉,shell更适合做流程化的系统管理工作,而对于逻辑较为复杂的应用级产品,shell的开发和维护难度都相当高。带有个人情感的说,shell的学习难度大于大多数主流脚本语言,这和它的语法特点,调试、运行环境等等都有关系。因此,日常流程化的系统管理工作,shell仍然是一个不错的工具,除此之外,相信大家还有更好的选择。

Python/Jython

       Python最大的魅力之一,就是简单易学,一个新手可以短期内(有人说是十分钟,我认为几天是完全可能的)就写出高质量并且实用的程序,它甚至被称为非计算机专业人士学习编程的最好选择。Python的功能强大,标准库的丰富程度,估计连Java也望尘莫及。Python适合做系统管理,但这并不是说它不能做大型应用程序。Python应用的成功案例,已经数不胜数,尤其是在科学计算领域更是独树一帜。Python是一门优秀的面向对象语言,但更多的Python程序员,喜欢Python面向过程的部分。我个人感觉,Python的OO不如Ruby,因为不够彻底,但这也正是Python支持者更爱它的地方。

        可惜的是,Python在企业应用领域没能有更大的突破,近几年更有被后起之秀Rails(Ruby的WEB框架)抛在身后的意思。但这并不说明Python在企业应用方面不成熟(豆瓣网是离我们最近的Python案例),如果有兴趣,大家可以了解Python社区最具人气的WEB框架Django,也可以去看看简单到让人难以置信的WEB框架webpy。Python在短短几年内就成为六大主流开发语言之一,绝对不是盖的!

       Jython是Python的Java实现,它是IBM WebSphere服务器官方指定的管理语言。我选择jython是看重了jdbc访问数据库的便捷。但可惜的是,jython对中文支持非常不好,可能是python本身的复杂度较高,jython团队的活跃度也比较低,总之Jython要走的路还很漫长,至少我认为当前版本,还不具备投入生产开发的能力。

Ruby/JRuby

       Ruby是脚本语言的后起之秀,它的成功要得益于杀手级框架Rails,Rails社区早就喊出了干掉Java的口号,虽然这种口号没有什么实际意义,但Rails的确已经成为眼下最为炙手可热的企业应用框架。我个人花了几个月的时间学习Rails,虽然没有实际的开发经验,但Rails敏捷开发上的突出表现,的确是当仁不让的,这也是它能迅速窜红的主要原因吧。

       抛开Rails框架,还是来说Ruby。Ruby的语言特色是纯面向对象,语法以魔幻著称(它吸收了Perl、Python等脚本语言的大量优秀元素)。因此它的学习曲线要高于Python,但是学成以后可能会写出非常优雅的代码。美中不足是Ruby还年轻,它的标准库还不够丰富,成熟的第三方库也相对较少,但这些情况会随着时间的推进逐渐改变。

       Ruby完全可以胜任系统管理的需要,当然,如果开发WEB程序,Rails更是不二的选择。

       JRuby是Ruby的Java实现,也是最早被Sun官方接收的Java平台脚本语言(后来还有Jython)。JRuby与Ruby的兼容性非常高,团队也非常活跃。如果想在Java平台上使用脚本语言,除了Java原生的Groovy,我推荐JRuby,这也是我的选择。

Perl
       提到Perl可能很多人会想到CGI,我个人可能更多的会联想到文本处理,事实上,Perl设计之初的主要用途的确是在文本中提取信息。Perl像Python一样,是目前最久经考验,且成熟度最高的脚本语言之一,它有着大量的用户群和忠实的粉丝,因此我说Perl的坏话就比较心虚一点:)

       坦白的说,我不太喜欢Perl,可能像大多数不喜欢Perl的人一样,Perl语法让人不太习惯,有人说Perl的语法丑陋,可能有些夸张,但这能说明一些问题。Perl社区至少也应该承认一点:Perl是一门比较难上手的语言。这并不是说,你短期内掌握不了Perl,而是你短期内写不出真正像样的东西。另外,Perl不是面向对象语言,当然,很多人并不看重这一点,但这并不是什么优点。

       Perl适合做系统管理,我觉得它跟shell很像。在其他应用领域,尤其是internet方面,

       Perl都有不俗的表现。Perl非常优秀,还是那句话,语言没有好坏,只有合适不合适。

Groovy

       如果你正在为“热爱Java平台”和“厌恶Java语法”的事情纠结,Groovy可能就是最好的选择。Groovy可以说是Java平台的原生脚本语言,与Java完美结合,它本身不提供标准库,完全使用Java的API库。在Rails成功之后,Groovy社区也出现了Grails框架,用来抗衡Rails。Groovy本身也吸收了Ruby大量的经典语法,热爱Java的人,可以选择Groovy。

脚本语言的缺点和未来

      目前大家公认的,脚本语言的主要缺陷还是性能问题,当然这可能取决于很多因素,问题是有多少情况下,性能问题才是致命的。从EJB的崩溃,Spring的兴起到Java遭受质疑,Rails取得成功,都说明,大家在面对不同规模的应用时,已经非常理智了。我相信能够真正服务于我们的技术,才能有好的前景,脚本语言的明天是无限光明的!




发布了34 篇原创文章 · 获赞 4 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章