首页 > 编程语言 >程序员修炼之道

程序员修炼之道

时间:2023-04-21 20:05:01浏览次数:50  
标签:Java 模式 之道 程序员 MVC 修炼 设计模式 知道

今天在论坛里看到了一位工作10年的java大牛总结的java程序员修炼之道,看完后给出的评价是:字字玑珠,深入人心,猛回头,自己一无是处···

大牛告诉我们应该好好学习与修炼以下知识与技能

 

  • Java语言学习(对线程(thread),串行化,反射,网络编程,JNI技术,容器(Map,List, Iterator), 类加载器(ClassLoader),输入输出流,垃圾回收机制, 有比较深入的了解,最起码做过项目应用。有过Java项目的性能优化经验,最起码掌握一种性能监视工具的使用,熟悉JVM参数,最起码知道可以在JVM启动时指定不同垃圾回收机制,以及不同垃圾回收机制之间的差别,熟悉JVM参数优化。)
  • J2EE方面(最好知道JDBC规范是怎么回事情,面对Oracle数据库如果告诉你JDBC驱动不能用了,你还知道有OCI驱动可以。掌握常见的SQL语句,熟悉JMS, JNDI等组件,掌握一套web开发模式,从前台到后台,有能力整合好这样的框架。理解并掌握MVC思想,像SSH已经实现了MVC的分层,几乎不需要你自己再实现,假设你开发一个简单的Swing程序,你能MVC就说明你真的掌握了MVC的精髓。有能力在J2EE前端开发中构建自己的MVC模式,知道什么是WEB2.0,知道什么是SOA, SaaS, SaaP等含义)
  • 理解并能合理运用设计模式,UML建模(知道并理解设计模式中蕴含的几种基本原则如:里氏替换原则, 开闭原则,合成复用原则,依赖倒置原则有很好的理解,并能举例说明。对常用的设计模式如工厂模式,单例模式,观察者模式,责任链模式,桥接模式等知道灵活运用,明白什么是回调(Callback)。最后用一位高人话来总结设计模式,它是为了让软件更容易被别人读懂,更容易维护而产生,设计模式本质是程序员之间的交流,如果A用工厂模式设计一个模块B来接替,A只要说该模块是工厂模式实现,B维护起来应该容易得多,所以设计模式是关于交流,不关于代码。切忌滥用设计模式。学会使用UML建模工具至少熟悉一种URL建模工具。)
  • 注重用户体验,掌握KISS原则,知道欧卡姆剃刀原则(顾客就是上帝这个口号我们已经喊了N年了,程序员的劳动成果最终也需要转换为服务提供给客户,用户体验至关重要,常常看到的场景是功能实现了,软件很难使用,程序员有个很充足的理由我不是美工,其实注重用户体验跟美工八杆子也打不到一起,FoxMail的成功在很大程度是用户体验的成功,友好,清晰的用户提示,强的容错与纠错设计是获得好的用户体验的不二法门。傻瓜相机顾名思义傻子都会使用,这个就著名的KISS原则(Keep it simple and stupid)意思是UI设计要简单明了,傻子一看就知道怎么用,想想我们做出来的东西,对照说明书都不知道怎么用。另外一个就是最著名的例子IPhone手机外观设计,是典型的欧卡姆剃刀设计原则来完成人机交互。)
  • 自动测试与软件配置管理(SCM)实现(知道什么是软件配置管理,知道Hudson - http://java.net/projects/hudson/运用该工具SCM,知道怎么获取测试代码覆盖率, Java有效代码行数(NCSS),完成firebug, JDepend等工具集成ant/maven。熟悉并注重在开发过程中使用JUnit单元测试,理解白盒测试规范。)
  • 熟悉常见的网络通信协议(对HTTP协议,知道POST, GET的区别是什么,阅读过HTTP相关的RFC文档。学会使用sniffer工具查看数据包,帮助查找与调试程序,知道TCP与UDP的区别,知道并理解E-Mail发送与接受的协议如SMTP, POP3,IMAP等协议,了解MIME与Base64编码。知道组播是怎么回事情)
  • 面向市场,永远对新技术保持渴望(计算机技术的发展日新月异,做为IT行业的软件开发人员要不断的给自己充电,更新自己的技术与时代保持同步,同时还要面向市场,华为总裁任正非说过-“华为的技术革新必须面向市场”,作为程序员同样要有市场意识,很多人都后悔没有在android刚出来的时候加以关注学习。那些很早关注android开发技术的很多程序员因此获得丰厚回报。如今HTML5得到越来越多的浏览器厂家支持,你是否已经跟上脚步,开始学习。)
  • 保持谦虚,三人行必有我师(乔帮主说他要保持初心,努力学习,我等更应该保持谦虚,IT技术发展日新月异,在你眼中不可能实现的技术,也许别人早已经有思路。保持谦虚就有机会吸取别人身上的长处,古人有云:满招损,谦受益。一个得道的高人更是说出了”下下人,上上智”的禅语。永远不要拒绝帮助你周围的人解决难题,解决难题是进步最快途径。不要放弃任何一次可以提升自己技术与能力的机会。)

  • 养成总结的习惯,不断反思(这个就不用多说了)

  • 数学功底与算法知识(《算法导论》,《编程珠玑》等书绝对值得读十遍)
  • Java代码反编译与代码保护(Java编译产生字节码,因而可以被轻松的逆向工程(反编译),微软的C#生产的DLL也一样可以被轻松反编译。正式由于这个原因产生了许多Java开源的代码保护工具,而Proguard是其中佼佼者,已经被google集成在android之中用于Java代码保护,访问这里了解更多:http://proguard.sourceforge.net/

  • 努力成为某个行业或者领域骨干

  • 提高语言与书面表达能力,掌握基础的项目管理知识

  • 掌握英语,良好的读写能力(外企人员向上晋升的不二法门)
两种: 1.外向型思考方式,思维灵活,敏捷,反应快,深度不够。 2.内向型思考方式,对外界环境要求安全,在安静环境下思考深度深,思维发散广,但反应慢,不灵活,特别是在日常生活中事事慢一步。 不同的思考方式决定了对世界不同的价值观与人生观。 那种好?以前我是内向型的,但我现在知道仅仅是单类型的思考方式不适合这个社会。 我怎么知道的?当然是我思考出来的啦。要不然你以为一个外向型的人会想这么多?

标签:Java,模式,之道,程序员,MVC,修炼,设计模式,知道
From: https://www.cnblogs.com/lzs666/p/17341583.html

相关文章

  • 阅读《第五项修炼 知行学校④》
    作者:彼得圣吉  阅读时间:2023.04所写内容仅代表本人所感所想。如若指正,欢迎留言讨论。无论你是一名教师,还是学校管理人员,或者是家长,乃至学生,这本书对你都会有所助益,让你在自己的学习里也能取的同样的成就。......
  • 程序员修炼之道阅读笔记
    第16节强力编辑器1、我们认为你最好是精通一种编辑器,并将其用于所有编辑任务:代码、文档、备忘录、系统管理等等。进行编辑活动时,你不必停下来思考怎样完成文本操作,编辑器将成为你双手的延伸,键会在滑过文本和思想时歌唱起来。这就是我们的目标。2、好的编辑器应该具有这些特性......
  • 程序员面试金典---11
    魔术索引思路:直接代码functionfindMagicIndex(nums){leti=0if(!nums.length){return-1}else{while(i<=nums.length&&i!==nums[i]){i++}letmin=i>nums.length?-1:i......
  • 有理想的程序员必须知道的15件事
     评:作为程序员,要取得非凡成就需要记住的15件事。1.走一条不一样的路在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。2.了解自己的公司以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。不同公......
  • C++黑马程序员——P185-188. STL初识
    P185.STL初识——STL的基本概念P186.STL初识——vector存放内置数据类型P187.STL初识——vector存放自定义数据类型P188.STL初识——容器嵌套容器P185.STL的基本概念STL,StandardTemplateLibrary,标准模板库STL:为了提高代码的复用性,提供一套标准的数据结构和算法STL......
  • NPDP|程序员转产品经理好转吗?
    经常看到有程序员小哥工作几年因为压力大想转行,这种情况确实是存在的。整日泡在无穷无尽的代码中,确实是一件很枯燥的事情。这可能不仅仅是工作量方面的压力,更多的是做到一定程度后,对这个工作不够感兴趣,需要找到更适合自己的职位。程序员转岗,最常见的就是产品经理了。为什么是产品......
  • #yyds干货盘点# LeetCode程序员面试金典:串联所有单词的子串
    题目:给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串长度相同。 s 中的串联子串是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如,如果 words=["ab","cd","ef"],那么 "abcdef", "abefcd","cdabef", "cdefab","efabcd",......
  • 程序员面试金典---10
    三步问题思路:通过题意很明显就是动态规划问题,而且本问题很简单(是两步楼梯的进阶版),构造动态转换方程为:\[dp[i]=d[i-1]+dp[i-2]+dp[i-3]\]解释一下:在第i层楼梯,到达这一层的方式可以从第i-1层上来,也可以在i-2层上来,也可以从i-3上来,因此相加即可。初始状态:dp[0]=0,dp[1]=1,......
  • 程序员必备上传服务器Xftp及连接服务器工具Xshell
    1.下面截图为破解工具,点击执行就可以用了 ......
  • 给你们讲个笑话——低代码会取代程序员
    今天是正经男,我们严肃讨论一下一直以来争吵不休的取代问题。低代码开发平台,低代码技术会取代开发人员么?一、背景低代码开发平台的普及,让很多公司对快速生成应用抱有很大期望。甚至有人认为,低代码开发平台未来会“干掉”开发者。这是真的吗?好久没时间分享了。今天来谈谈关于低......