高级工程师必须精通的七种武器(摘录)

注:黑体是从 jiangjiayi的csdn博客中摘录,灰色字体是我同意,不懂或不同意的。

第一种武器:开发工具

  至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中c/c++和java是我重点推荐的开发工具,c/c++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用c/c++编写。而java的跨平台和与web很好的结合是java的优势所在,而本人对sun公司的“网络即计算机”的概念相当欣赏,并相信java及其相关的技术集java one会成为未来的主流开发工具之一。其次,如果能掌握一种简单的可视化开发工具,如VB,PowerBuilder,Delphi,C++Builder,则更好,这些工具减小了开发难度,并能够强化程序员对对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

  上面说至少熟练掌握两到三种开发工具,可能是对于高级工程师的标准;对于初中级工程师,可能熟练掌握一种并能完成工作任务就够了。我现在刚入职两天,能简单运用vs2012,用过一段时间的Eclipse。先精通自己必须用的。由于自己接触比较多的是C#,简单了解java。所以对c/c++,java发言权不大,但一直想学习,相信在把C#搞精通以后会学习相关的内容。我认为,学习技术毅力固然重要,但要循序渐进,切记急功近利。没人学个两年技术就成为高手的! 脚本语言自己暂时没有接触过,工作之余会找相关知识学习。 还有一个疑问,上面没有提到C#,最近看了一篇关于编程语言的争论,说现在在一些很厉害的程序员(能进google,微软)中间形成了类似于教派之间的都成,有些人信奉c++,有些人信奉java。 我认为,程序员可能有自己的偏好,或者熟悉的领域,会有意无意对自己不熟悉的语言有点小恐惧和排斥(我自己有这种感觉,需要改!!)  虽然我人微言轻,但我相信,压根就没有什么计算机语言孰强孰劣,而是擅长的地方不一样(有句我认为是大牛的人的比喻很恰当,暂时记不得,回头补上)。

第二种武器: 数据库

  为什么数据库如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等

  我自己最常用的数据库是Sql server 2008,由于在做的项目是用mvc,基本不用写sql语句,而且自己的sql功底只能说一般,只能勉强应付工作需要,这方面需要加强。数据库确实非常重要。不管什么样的应用程序都是数据的交互。 自己以前做过几个小项目,其实把外衣脱去以后,说到底就是数据的增删改查。 加强!

第三种武器:操作系统

  当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的变成高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获得不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。

  以前考研复习的时候,认真的看过操作系统,现在想来并没有对操作系统有多少理解,脑子里残留的是对其中概念的生搬,得改进!Linux心里虽说一直要学,但始终没有行动!move!!!!!

第四种武器:网络协议TCP/IP

  在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常重要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。

不多评论,弱项!!!

第五种武器:DCOM/CORBA/XML/WEB Services

  随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算机模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。

第六种武器:软件工程与CMM

  现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”

第七种武器:强烈的好奇心

  什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在!

总结:严格来说,自己没有一项合格,作为一个初入职场的菜鸟级程序员,自己要走的路还有很长,很长......马上要开始三个月封闭开发,努力,希望有长足进步。一年后再回顾,看自己技术是否长进,心态是什么样。好奇心还需要培养,自己很缺乏好奇心。

                ---------------谢谢csdn的jiangjiayi  , 以上内容是他博客的摘录,觉得很有用,暂时可以当做一面镜子,检验自己的能力!!

      

                                2013.03.05 于公司  
                                    郑州 

  

posted on 2013-03-05 15:38 Evoque 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/evoque/archive/2013/03/05/Evoque.html

高级工程师必须精通的七种武器(摘录)相关推荐

  1. 揭密Oracle之 七种武器

    揭密Oracle之 七种武器 第一章 搭建测试环境 vage 揭密Oracle之 七种武器  第一章 搭建测试环境 (揭密Oracle之七种武器第二章地址:DTrace语法:跟踪物理IO http:/ ...

  2. 七种武器——.NET工程师求职面试必杀技

    七种武器--.NET工程师求职面试必杀技 一..NET框架(七种武器之孔雀翎) 开发人员应该熟悉.NET FrameWork体系结构和基本原理,熟悉CLR(公共语言运行时)和MSIL(中间语言),熟悉 ...

  3. 旧文重发:程序员的七种武器

    这篇文章发表在<程序员>杂志2007.03期的专辑"程序员的武器大家谈"中. <程序员>:请谈谈您所定位的优秀程序员应该有哪些技能?您是怎样理解程序员七种武 ...

  4. 七种武器——.NET工程师求职面试必杀技(转)

    七种武器--.NET工程师求职面试必杀技 一..NET框架(七种武器之孔雀翎) 开发人员应该熟悉.NET FrameWork体系结构和基本原理,熟悉CLR(公共语言运行时)和MSIL(中间语言),熟悉 ...

  5. GIS就业参考系列之技术篇——七种武器

    题记 从2007--2017,职场中第一个十年即将完成.十年足以摧毁一个人的样貌:十年可以见证一个时代的发展:十年你从匆匆那年转变为而立之年:不知道从毕业一直还在从事本专业的人有多少,不知道这是一种幸 ...

  6. 数据库性能诊断的七种武器-图片参考附件

    数据库性能诊断的七种武器 主要议题 •        性能优化面临的挑战 •        调优工具的变迁 •        诊断工具中的七种武器 •        Q & A 性能优化面临的 ...

  7. 程序员的七种武器视频整理下载

    根据本人的多年开发经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们整理出了程序员必须掌握的七种武器以及相关的视频教程.  第一种武器:开发工具 基于C++.VC++开发平台工具快速入门: ...

  8. 让 Python 代码更易维护的七种武器——代码风格(pylint、Flake8、Isort、Autopep8、Yapf、Black)测试覆盖率(Coverage)CI(JK)...

    让 Python 代码更易维护的七种武器 2018/09/29 · 基础知识 · 武器 原文出处: Jeff Triplett   译文出处:linux中国-Hank Chow    检查你的代码的质 ...

  9. 程序员 :超越软件蓝领的七种武器

    信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落.程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任. 信息技术的 ...

最新文章

  1. 使用git上传代码到github
  2. 不太友好的下载文件提醒
  3. java后台图片的上传预览接口 IO流
  4. 这些名言都是有后半句的,以前都按前半句理解,太坑人!
  5. 837. New 21 Game
  6. 一文总结 CPU 基本知识
  7. java学习避免死锁
  8. 【XS128】Link error L1822 symbol _FADD / _FSUB/ _FDIV/ _FMUL.....错误解决的方法
  9. GCD介绍(二): 多核心的性能
  10. ubuntu ssh远程连接
  11. 读《未来世界的幸存者》
  12. 热电传感器(1)——原理和定律
  13. 联想小新Air2020ill版换硬盘及安装Win11详细过程
  14. 《最好的告别》是有尊严的离开
  15. 目标与哲学---论《道德情操论》与…
  16. 【PHPWord】PHPOffice 套件之PHPWord快速入门
  17. python re正则匹配_python—RE正则表达式
  18. 《瓦尔登湖》中的“访客”篇中一首小诗与刘禹锡的《陋室铭》
  19. 企业管理软件从勤哲excel服务器迁移到奥多odoo的感触
  20. data=*(vu32*)addr;的理解?

热门文章

  1. 震惊!原来这才是Kafka的“真面目”!
  2. Java微基准测试框架JMH
  3. 大部分公司并不需要微服务
  4. 框架:SpringMVC中Interceptor拦截器的两种实现
  5. 8.公有继承 保护继承 私有继承
  6. C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串。
  7. jQuery 中jQuery/$的数据类型是什么?
  8. android数据存放map_android - Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?...
  9. php 单用户登录,Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用...
  10. dvwa安装教程linux,Kali 2020.3安装docker和vulhub