zoukankan      html  css  js  c++  java
  • 一个优秀的.net程序员必须要学会的技能 (转)-----参照学习目标

    最近室友闲聊的时候告诉我,他在网上收集了做为一个java程序员必须要会的东西,他觉得自己要有个方向,否则一定会在平平凡凡的工作中,不思进取,最终 浑浑噩噩。真是让我猛然惊醒啊,做为一个底层的程序员,如何才能拼得过出来的大学精英和社会老手?学习一定必不可少。虽然自己有点懒,我先把这些记下,待 日后尽量弄懂。


    Web/WinForm/通吃,包括ASP.NET,WebService,Remoting,Thread,Serializable,ADO.NET等命名空间
    精通UML
    精通DesignPatterns 23+N种模式:默写各个模式UML图,熟记代码实现方式,范例,以及.NET相关接口
    精通CLR
    VB.NET/C#通吃
    精通OOP理念
    精通DB设计与T-SQL,SQL2005就可以了
    熟悉AJAX全套技术
    通吃WPF/WCF/WF/LINQ
    WEB 2.0理念,理解Blog/Wiki/RSS架构,SOA理念
    精通数据结构/操作系统/安全加密
    精通.NET设计规范
    研究5套以上经典源码,例如:SharpDevelop,PetShop,DotNetNuke,SmartClient,NUnit,FotoVision,CSLA等等
    熟悉DirectX编程模式
    翻译过1-2本技术书籍


    这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯。很多程序新手也是因为缺少、达不到或是不熟悉在这些 基本技能,所以,他们需要有老手带,需要努力补齐这些技能。而高级程序员应该非常熟悉这些基本技能,而且有能力胜任并带领其他经验不足的程序员。

    下面是程序员所应该具备的基本职业技能:

    阅读代码 - 这个技能需要程序员能够具备读懂已经存在的代码的能力,这样的能力可以让程序员分析程序的行为,了解程序,这样才能和开发团队一起工作,继承维护或是改进现有的程序。(相关阅读:《阅读优秀代码是提高开发人员修为的一种捷径》)

    编写程序 - 编写程序并不包括程序设计。不要以为编程是一件很简单的事情,很多程序员都认为编程只需要懂得程序语言的语法,并把设计实现就可以了。但是这离编写程序还 远远不够,使用什么样的编码风格成为编写程序员最需要具备的基本技能。能否使用非常良好的编程风格直接决写了程序员的级别。

    软件设计 - 这一能力直接决定了需要吏用什么样的代码技术达到怎么样的功能,而系统架构设计直接决定了软件的质量、性能和可维护性。并不是所有的程序在这一方面都非常优秀,但每个程序员都需要或多或少的明白和掌握这一基本技能。

    熟悉软件工程 - 每个程序员都应该明白软件工程是什么东西,都应该知道,需求分析、设计、编码、测试、Release和维护这几个阶段。当然,几乎所有的人都知道这些东 西,但并不是每个人都很清楚这些东西。现在很多高级程序员都会混淆“需求规格说明书FS”和“概要设计HLD”。另外,程序员还需要知道一些软件开发的方 法/论,比如:敏捷开发或瀑布模型。

    使用程序库或框架 - 一个程序员需要学会使用已有的代码,无论是标论的程序库,或是第三方的,还是自己公司内部的,都需要学会做。比如:C++中,需要学会使用STL、MFC、ATL、BOOST、AC、CPPUNIT等等。使用这些东西,可以让你的工作事半功倍。

    程序调试 - 程序调试是分析BUG和解决问题最直接的能力。没有人能够保证程序写出来不用调试就可以运行正常,也没有人可以保证程序永远不会出BUG。所以,熟练使用调试器是一个程序员需要具备的基本技能。

    使用IDE - 学会使用IDE工具也会让你的工作事半功倍。比如,VC++、Emacs、Eclipse等等,并要知道这些IDE的长处和短处。

    使用版本控制 - 一定要学会使用版本控制工具,什么叫mainline/trunk,什么叫tag,什么叫branch,怎么做patch,怎么merge代码,怎么reverse,怎么利用版本控制工具维护不同版本的软件。这是程序员需要明的的软件配置管理中最重要的一块。

    单元测试 - 单元测试是每个程序都需要做的。很多单元测试也是需要编码的。一定要学会在xUnit框架下进行单元测试。比如JUnit, NUnit, CppUnit等等。

    重构代码 - 每个程序员都需要有最基本的能力去重构目前已有的代码,使代码达到最优但却不能影响任何的已有的功能。有一本书叫《软件的重构》,每个程序员都应该读一下。

    自动化编译 - 程序员需要使用一个脚本,其能自动化编程所有的工程和代码,这样,整个开发团队可以不停地集成代码,自动化测试,自动化部署,以及使用一些工具进行静态代码分析或是自动化测试。

     

  • 相关阅读:
    HDU 1849 Rabbit and Grass
    HDU 1848 Fibonacci again and again
    HDU 1847 Good Luck in CET-4 Everybody!
    HDU 1846 Brave Game
    HDU 1387 Team Queue
    HDU 1870 愚人节的礼物
    HDU 1509 Windows Message Queue
    HDU 4381 Grid
    HDU 5800 To My Girlfriend
    HDU 5806 NanoApe Loves Sequence Ⅱ
  • 原文地址:https://www.cnblogs.com/dylanblog/p/4269674.html
Copyright © 2011-2022 走看看